
SAP CRM Web UI has information on the Home Page itself so that specific information for logged in useris displayed on the Home Page. This information includes Today's Appointments, Tasks, Workflow Tasks etc.
Objective of this Blog is to lay down the steps to configure a similar View on Home Page. One of the case Example we can take is to Create a View on Home Page to Show all the Opportunities for which Logged in user is part of Sales team.
Components : CRMCMP_GS_WC ( Component for Work Center). This component contains standard Home Page views as well.
WCC_SLS_HOME - Component for Home Page. This Window encapsulates all the views of Component CRMCMP_GS_WC.
STEPS:
Since we are planning to Read/Display the Opportunities in this view, the Model Entity for the context Node of View would be the Result of Query Object -
BTQROpp.
The View should be of 'Table View' Type.
- Create a Custom Method GET_OPP in Impl Class of View to Query the Opportunities. The logic to obtain the required data is written in this method. In this scenario, the opportunities where logged in user is entitled as employee responsible.
Implement the Below Logic to Query Opportunities.
Logic |
---|
lr_query_service = cl_crm_bol_dquery_service=>get_instance( 'BTQOpp' ). * Get BP of Logged in User CALL FUNCTION 'COM_BPUS_BUPADATA_FOR_USER_GET' EXPORTING is_username = sy-uname IMPORTING ev_businesspartner = lv_login_user If lv_login_user is not initial. lv_query_service->add_selection_param( iv_attr_name = 'EMPLOYEE_RESP' iv_sign = 'I' iv_option = 'EQ' iv_low = lv_low ) * Global variable for Collection of results gr_col If lr_query_service IS BOUND. gr_col = lr_query_service->get_query_result( ). Endif. |
lr_col = get_query_result( ).
me->typedcontext->BTQROPP->collection_wrapper->set_collection( lr_col ).
HTM Page |
---|
<% data: lv_xml type string. lv_xml = controller->CONFIGURATION_DESCR->GET_CONFIG_DATA( ). %> <span class="appTab"> <chtmlb:configCellerator xml="<%= lv_xml %>" design = "TRANSPARENT" id="ResTable" onRowSelection="select" table="//BTQROPP/Table" horizontalScrolling="false" actionsMaxInRow="5" fillUpEmptyRows =" " selectedRowIndex="<%=BTQROPP->SELECTED_INDEX%>" selectedRowIndexTable="<%=BTQROPP->SELECTION_TAB%>" selectionMode="SINGLE" usage = "HOMEPAGE" editMode = "NONE" visibleRowCount = "10" /> </span> |
Create Window using Wizard to encapsulate the custom view.
We are going to use Object ID field to be shown as hyperlink and generate the event on clicking.
Logic in Get P Method |
---|
Case iv_property. WHEN if_BSP_MODEL_SETTER_GETTER=>fp_fieldtype. rv_value = cl_bsp_dlc_view_descriptor=>field_type_event_link. WHEN if_BSP_MODEL_SETTER_GETTER=>fp_onclick. rv_value = 'OPP_OVP'. |
Logic in Event OPP_OVP to Navigate to Overview page.
Event logic |
---|
* Get Event Index info cl_thtmlb_util=>get_event_info( exporting iv_event = htmlb_event_ex importing ev_index = lv_index ). * Feed Selected entity to outbound plug lr_current = me->typed_context->BTQROpp->collection_wrapper->find( CHECK lr_current is BOUND. CALL METHOD lr_current->get_property_as_value EXPORTING iv_attr_name = 'GUID' IMPORTING ev_result = lv_guid. lr_core = cl_crm_bol_core=>get_instance( ). TRY. CALL METHOD lr_core->get_root_entity EXPORTING iv_object_name = 'BTOrder' iv_object_guid = lv_guid RECEIVING rv_result = lr_entity. CATCH cx_crm_genil_model_error . RETURN. ENDTRY. create object lr_col. lr_collection->IF_BOL_BO_COL~ADD( lr_entity ). op_opp_ovp( lr_collection ). |
Call Window Outbound Plug and pass collection
lr_window_ctr = me->get_window_controller( ).
lr_window_ctr->call_outbound_plug( IV_OUTBOUND_PLUG = 'OPP_OVP'
IV_DATA_COLLECTION = IV_DATA_COLLECTION ).
Write the below logic in O/B plug OPP_OVP in window.
me->fire_outbound_plug( iv_outbound_plug = 'OPP_OVP'
iv_data_Collection = iv_data_collection ).
- Add View to window
Add Custom View to Newly created window. Also attach the O/B plug.
- Add Component Interface
Add Component interface for custom window. Also attach O/B plug as well.
Component WCC_SLS_HOME is the actual window for home page. So it should also be configured for the changes.
- Add Component Usage
Component usage of custom view is to be added in the component WCC_SLS_HOME
- Create Outbound Plug in the component usage.
Delegate Outbound plug to Window Outboung plug UIU_APPLICATION.
- Add Custom view in Viewset of WCC_SLS_HOME.
- Change UI Configuration of WCC_SLS_HOME to accomodate the new view.
This will govern the positioning of the custom window on home page.
These steps should be a complete set of activities so that a custom view can be exposed on Home Page. We can always vary the changes based on requirement as to which Business Object or View type is to be displayed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.