Read ‘What it takes to reuse a view’ before reading this chapter.
Go to the component ->run time repository and create a component usage.
Click on edit button and right click on component usage and choose the option add component usage.
In the next Dialog box, give name to the component usage and details of interface view and component that we want to reuse.
Choose continue once you enter the details. Now this interface view will act as view in our own component.
Add this view to the overview page.
Save the runtime repository. Go to the configuration tab of overview page and add the new view to displayed assignment block section.
Now we need to take care of data. In the previous chapter, we know that there is one context node BTPARTNERSET of component controller of component BTPARTNER. So we will create one new same context node at component controller level in our own component.
Go to the component controller and create one context node with base entity BTPartnerSet.
Give the base entity name and complete the wizard.
We have created the context node. Then we need to give the data to this context node. There are no of ways doing it.
Let us do it through coding.
As we know, in the event handler (will trigger whey user clicks on hyper link) of result view, we got the BTAdminh entity. We will fetch related BTPARTNER SET from it and feed it to the context node of component controller.
Do the following changes in the event handler. Save and activate it.
METHOD eh_onobjectid.
DATA:lr_clickedrecord TYPE REF TO cl_crm_bol_entity,
lr_order TYPE REF TO cl_crm_bol_entity,
lr_header TYPE REF TO cl_crm_bol_entity,
lr_col TYPE REF TO cl_crm_bol_bo_col,
lr_custcontroller TYPE REF TO zl_ztutcomp_cucosearch_impl,
lv_index TYPE i.
DATA:lr_partnerset TYPE REF TO cl_crm_bol_entity,
lr_col1 TYPE REF TO cl_crm_bol_bo_col,
lr_component TYPE REF TO zl_ztutcomp_bspwdcomponen_impl.
"calling the outbound plug of the view to start the navigation.
op_tooverviewpage( ).
ENDMETHOD.
复制代码
(This is just part of changed code regarding above scenario. Previous code remains as it as ). once we got the header entity BTAdminh, we got its related entity BTPARTNERSET using the relation. Once we got the required record we added it to the collection and this collection is fed to the context node of component controller.
Data feeding to context node is done. There is one more important binding left between the context node of our component controller to the context node of BTPARTNER component controller. As discussed we will use the method WD USAGE INITIALIZE to do this job.
Go to the component controller and redefine above mentioned method.
Once you redefine, and then double click on that method to open it. write the following code in it and activate it.
iv_target_node_name = 'BTPARTNERSET' "node in current component
iv_node_2_bind = 'BTPARTNERSET'. "node in different component
WHEN OTHERS.
ENDCASE.
ENDMETHOD.
复制代码
Sharing data across context nodes of different components is done.
Test the application. If service contract has any partners, then data will be displayed in the partner assignment block.
Go to the component ->run time repository and create a component usage.
Click on edit button and right click on component usage and choose the option add component usage.
In the next Dialog box, give name to the component usage and details of interface view and component that we want to reuse.
Choose continue once you enter the details. Now this interface view will act as view in our own component.
Add this view to the overview page.
Save the runtime repository. Go to the configuration tab of overview page and add the new view to displayed assignment block section.
Now we need to take care of data. In the previous chapter, we know that there is one context node BTPARTNERSET of component controller of component BTPARTNER. So we will create one new same context node at component controller level in our own component.
Go to the component controller and create one context node with base entity BTPartnerSet.
Give the base entity name and complete the wizard.
We have created the context node. Then we need to give the data to this context node. There are no of ways doing it.
Let us do it through coding.
As we know, in the event handler (will trigger whey user clicks on hyper link) of result view, we got the BTAdminh entity. We will fetch related BTPARTNER SET from it and feed it to the context node of component controller.
Do the following changes in the event handler. Save and activate it.
(This is just part of changed code regarding above scenario. Previous code remains as it as ). once we got the header entity BTAdminh, we got its related entity BTPARTNERSET using the relation. Once we got the required record we added it to the collection and this collection is fed to the context node of component controller.
Data feeding to context node is done. There is one more important binding left between the context node of our component controller to the context node of BTPARTNER component controller. As discussed we will use the method WD USAGE INITIALIZE to do this job.
Go to the component controller and redefine above mentioned method.
Once you redefine, and then double click on that method to open it. write the following code in it and activate it.
Sharing data across context nodes of different components is done.
Test the application. If service contract has any partners, then data will be displayed in the partner assignment block.