I have one FPM OIF application which is consuming several generic UIBBs (Form, List. etc). I have created two configuration variants. DISPLAY and CHANGE and setting desired VARIANT in the "SHARED_DATA" component which implements IF_FPM_OIF_CONF_EXIT like this:
METHOD override_event_oif . CASE io_oif->mo_event->mv_event_id. WHEN if_fpm_constants=>gc_event-start. io_oif->set_variant( 'DISPLAY' ). WHEN if_fpm_constants=>gc_event-save. io_oif->set_variant( 'DISPLAY' ). WHEN if_fpm_constants=>gc_event-edit. io_oif->set_variant( 'CHANGE' ). ENDCASE. ENDMETHOD.
In DISPLAY mode user selects TAB "B" . After switch to CHANGE mode becomes TAB "A" active.
After each VARIANT switch always the last selected TAB of every single Variant becomes active which is confusing for user, which is in DISPLAY mode in TAB "B" and wants to continue changing data on the same TAB switching to CHANGE mode.
I can read current VARIANT, MAINVIEW, SUBVIEW within override_event_oif like this:
DATA l_state TYPE if_fpm_oif=>ty_s_state. io_oif->get_current_state( IMPORTING es_current_state = l_state ).
BUT I CAN NOT FIND OUT, how to set those values back to the FPM framework.
Thank you in advance for your proposals.