1 Develop Popup Editor Component
- To develop popup editor component, create a Web Dynpro component and implement the interface POWL_POPUP_EDITOR_COMP_IF. Method SET_SELECTED_DATA will get the required details to popup.
- To launch the popup, changes in the feeder class method HANDLE_ACTIONis required.
- To fire the action back to framework from popup, event FIRE_ACTION has to be triggered with appropriate action type. .
1.1 Method SET_SELECTED_DATA (POWL_POPUP_EDITOR_COMP_IF)
- Create a Web Dynpro component.
- In implemented interface add POWL_POPUP_EDITOR_COMP_IF and click on re implement.
- Implement method SET_SELECTED_DATA in the component controller to retrieve the requires data from POWL and bind the same to context.
1.2 Method GET_UI_PERIPHERALS(IF_POWL_FEEDER_EXT)
In the feeder class implementation (which already implements the interface IF_POWL_FEEDER, add a new interface IF_POWL_FEEDER_EXT and implement the method GET_UI_PERIPHERALS of this interface to provide the pop-up component name.
Note: Implementation if Interface IF_POWL_FEEDER_EXT is mandatory for this feature. If this interface is implemented in the feeder class, both the detail component name and the pop-up component name should be provided in this method only.
This method is to supply all the supporting component names such as detail component name and popup component name. Here pass the component which is already been created.
1.3 Method HANDLE_ACTION (IF_POWL_FEEDER)
To open a pop-up on performing a particular action, set the flag for pop- in this method implementation corresponding to the action ID. Note that setting the flag for launching a pop-up will suppress OBN navigation as well as refresh (if set for the same action).
1.4 EVENT FIRE_ACTION (POWL_POPUP_EDITOR_COMP_IF)
Now the popup is opened. When a user performs some action on the popup, the control has to go back to the framework. When the action is fired, 3 different types of action are possible.
- Refresh - This action type has to be used/ passed to just trigger a refresh of the result list. For refresh pass the action type as below.
i_editor_action_type = IF_POWL_FEEDER_EXT=>C_FOLLOWUP_ACTIONREFRESH.
- Update cache alone - This action type has to be used/ passed if the requirement is to just update the cache and the data note at UI level.
For caching the data, pass the action type as below.
i_editor_action_type = IF_POWL_FEEDER_EXT=>C_FOLLOWUP_ACTIONC_UPDATE_CACHE and result table in i_result_data.
- Loop the action back to feeder - This action type has to be used/ passed to have the control back in HANDLE_ACTION method of the feeder.
For looping the action back to feeder method HANDLE_ACTION, se the following,
i_action_id – the action id
i_editor_action_type = IF_POWL_FEEDER_EXT=>C_FOLLOWUP_ACTIONC_LOOP_EVENT
i_editor_additional_data – if any additional data has to be passed back to handle_action() method
i_result_data – Result data
This example is for second case.