The Solution involves the following Steps:
Crmc_pcuitools-> Analysis Tools -> Determine the correct model access class -> Enter the name of the accounts application (CRMM_ACCOUNT) and execute.
Adding a new tab:
- Identify the Tab page group name (ACC_03) and add a new tab name (ACC_LEAD) in the following transaction.
Crmc_blueprint_c->Application Element –>Tab Page Group –> Tab Page Group Structure
- Create a new field group, say ACCT_LEADS, giving the structure name as some database structure which has all the fields that are required to be displayed on the screen. The structure CRMT_BSP_LEA_DISPLAY suffices our scenario. (A “Z” structure with required fields to be displayed can be created and used.)
Crmc_blueprint_c-> Application Element –> Field Group –> Change mode-> New entries
“List the fields of structure CRMT_BSP_LEA_DISPLAY to be displayed on the screen in the field group structure.
Crmc_blueprint_c-> Application Element –>Field Group structure-> Change mode->New entries
- Generate the layout for this newly created field group.
Crmc_blueprint_c-> Application Element –> Field Group structure->Change mode->New entries
- Create an Event for the leads tab.
Crmc_blueprint_c-> Application Element ->Event->Change mode->New entries
- Create a class ZCL_BSP_ACC_ACCMOD_LEAD (which can be a copy of CL_BSP_ACC_ACCMOD_ACTIVITY or CL_BSP_ACC_ACCMOD_OPPORTUNITY tab since the Leads tab is similar to Activity or Opportunity tabs.)
Ensure that the mandatory methods- QUERY, READ, MODIFY and GET_MESSAGES are implemented (though empty.)
- Assign a model class which will handle the tab functionality.
Crmc_blueprint_c->Application Element ->Application Set
Select COMM_BUPA (Application set corresponding to our application CRMD_ACCOUNT).Create a new entry for leads class under the model access folder (copy of entry for activity or opportunity)
The above steps will bring the Leads tab on the accounts screen. We need to implement some changes to the model access class in order to populate Leads into this tab.
2) Changes in Model access class:
- Change the value of attribute GC_PROCESS_CLASS to ZCL_BSP_ACC_ACCMOD_LEAD.
Changes in IF_CRM_BSP_MODEL_ACCESS_IL~READ method :
- Redefine the local structure ls_search_struc_act of type CRMT_BSP_LEA_SEARCH_TEMP instead of CRMT_BSP_ACTIVITY_SEARCH.Redefine the value of constant lc_act_search_struct to CRMT_BSP_LEA_DISPLAY instead of CRMT_BSP_ACTIVITY_SEARCH.
- Pass the value of object_type as BUS2000129 (Leads) instead of BUS2000110 (Activity)
- Comment the code to set Navigation keys.
- Change the type of attribute gr_bt_accmod to YCL_CRM_BSP_AM_HEADFM_1O (Copy of CL_CRM_BSP_AM_HEADFM_1O ).
The following changes are to be made in the class YCL_CRM_BSP_AM_HEADFM_1O:
Method IF_CRM_BSP_MODEL_ACCESS_IL~QUERY :
- Comment the code get_object_type and pass the value of object_type as BUS2000108 directly.
- Before calling the FM CRM_BSP_OIC_1O_SEARCH_FROM_RF to get the search results, pass the value of BU_PARTNER as one of the entries in lt_search.
Method: IF_CRM_BSP_MODEL_ACCESS_IL~READ :
- Add the lead screen structure CRMT_BSP_LEA_DISPLAY along with other screen structures in the IF condition to set the read_request flag.