Skip to Content
avatar image
Former Member

How to dynamically(at run time) hide UIBB FORM for FPM?

Hi Everyone,

I have a requirement where I have to hide few sections(Form UIBB) on the NWBC screen for Customer.

I know how to make a field invisible using feeder class, but I am not sure how to make the entire form/Section invisible at run time using the same feeder class.

Could you please offer your suggestions on the same.

Thanks,

Faraz

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Jul 21, 2017 at 07:27 AM

    Hi Faraz,

    I don't know what kind of floorplan you are using (I'm working with an OVP floorplan) but FPM floorplans can be enhanced by using custom application controllers. Those controllers consume an interface reference which allows you to access and change the UIBBs in the current configuration.

    To use a custom app controller simply create a class that implements the specific interface (In case of OVP floorplan its: IF_FPM_OVP_CONF_EXIT). Now just set your class in your floorplan configuration.

    In the interface implementation you should now be able to access the UIBBs of your floorplan. Keep in mind that your custom app controller is called at every round trip of your FPM application, so you may want to run your code only at specific application events. In case of an OVP custom controller your code could look like this:

    " look up the current event
    lo_evt ?= io_ovp->get_event( ).
    
    
    
    " only at start of the application (just an example).
    check lo_evt->mv_event_id EQ if_fpm_constants=>gc_event-start.
    
    
    " get the UIBBs
    io_ovp->get_uibbs( IMPORTING et_uibb = lt_uibb ).
    
    
    
    " identify the one you're looking for
    READ TABLE lt_uibb into ls_uibb 
    WITH KEY component = '<THE_UIBB_WD_COMPONENT>'. " or go for the specific configuration...
    IF sy-subrc EQ 0.
    
    
    
      " found it! So delete it or make it invisible
      io_ovp->change_uibb( ... ). " invisible
      io_ovp->remove_uibb( ... ). " remove
    
    
    
    
    ENDIF.

    After you did the changes to your floorplan, you may have to trigger another roundtrip. You can do so by:

    lo_fpm ?= cl_fpm_factory=>get_instance( ).
    lo_fpm->raise_event_by_id( 'DUMMY_EVENT' ).

    Best regards,

    Fabian

    Add comment
    10|10000 characters needed characters exceeded