Some of you would be interested in knowing how we achieved this. We were trying to add a new tab at the item level which holds Z fields. Now, this is possible via SPRO -Create Table Extensions and Supply with Data . But the limitation is that a table appears in the new tab. Our requirement was to have the new tab similar to that of the item basic data tab.
This was achieved in the following way, I will show below an example wrt to Rfx and the same can be incorporated for Response and Contracts.
Pre-Requisite - Add custom fields through SPRO to the Rfx Item structure and maintain metadata for each field.
- Create a custom webdynpro componet call Z_RFQ_CUSTOMTAB with your required layout and implement interface /SAPSRM/WDI_L_FPC_CA_DLTS,/SAPRM/WDI_L_FPC_GENERAL and IF_FPM_UI_BUILDING_BLOCK.
- Create a context node with the structure of the Zfields that were created via SPRO
- Create an enhancement to /SAPSRM/WDC_DOFC_RFQ_I_D1 and to the used component add Z_RFQ_CUSTOMTAB.
- In the layout of the /SAPSRM/WDC_DOFC_RFQ_I_D1 comp, add a new tab to the tabstrip called D1_CUSTOM.
- Create an overwrite exit to the INIT_TAB method of the component controller of /SAPSRM/WDC_DOFC_RFQ_I_D1. The logic in this method should be such that you look for the tab D1_CUSTOM , instantiate the Usage of the Zcomp that you added. Create a component using the usage and then initialize the usage
- In the ONACTIONSELECT_TAB of the view create an overwrite exit , such that you write a code to perform the necessary action when the additional tab is selected.
- In the window IV_L_FPC_CA_DETAILS embed and emty view and the interface view of Zcomp.
- Create an outbound plug D1_I_RFQ_CUSTOM of window and then create a navigation link between the plug and 'Default' Inbound plug of interface view as shown
- Create a context node in component controller with the structure of the Zfields, that was created using SPRO.
- Embed the View of the custom component to window IV_L_FPC_CA_DETAILS.
- Create a Custom Controller 'CONFIG CONTROLLER’and then right click on it and select ‘SET AS CONFIG CONTROLLER’ to convert it to configuration Controller.
- Create a Context ‘USAGE_DEFINITION’ in CONFIG_CONTROLLER and map it to your View Controller because the standard code of FPM application checks this context node of embedded components .Thus create a component configuration for the custom component.
- In the component controller method WDDOINIT create a task container instance and get the data from the mapper object using the instance method 'get_current_bo_mapper' into attribute mo_bom_rfq.
- Using the mo_bom_rfq in the component controller get all the data to the current view controller.
- Add the standard assistance class ‘/SAPSRM/CL_CH_WD_UI_ASSIST_DTL’ in custom component as shown below.
This is all we did to achieve this. I hope this helps you . Please feel free to drop any questions or view with respect to this and I will be more than happy to reply back.
18. Screenshot of the Custom tab.