This blog talks about my learning to work on a CRM development to enhance the UI reporting to show up additional values when searching for customer information.
The blog talks about how you can make changes in the CRM reporting and do easy customization with the help of BADI.
Below is what the blog covers:
- Requirement
- Analysis
- Technical details
- Additional information
Requirement:
In this current scenario, I am trying to display values for DATE as shown below for one of the transaction ID types which was not shown currently. The solution was to map the value stored in one of the custom fields to the standard SAP field so it starts showing up
Analysis:
Reports are created combining header. item and index tables in CRM. Whether your requirement is to improve the performance or modify what the user sees as a result of the search criteria is controlled using program CRM_INDEX_REBUILD
This table is run as a background job and updates all the tables so the value is seen correctly on the UI side and helps a lot to tackle any issues related to performance and customizations as needed.
Majorly the program includes
- Table crmd_orderadm_h
- Table crmd_order_index
- Using FM CRM_ORDER_READ to read specific information related to order.
- Updates CRM_DNO_MONITOR
Technical details:
If you would like to modify the logic of this program SAP has provided a BADI which can be used for customization. Below are the steps to be followed;
The program CRM_INDEX_REBUILD updates the value in the index tables after which the values are updated in the Portal. The BADI CRM_ORDER_INDEX_BADI is called within this program and can be used to change the standard logic.
Step 1: Add custom fields to the Structure CRMT_ORDER_INDEX using Append structure:
Step 2: To add values to date 2 write code to populate the value in date 2 field from the Zfield as shown below.
LOOP AT ct_order_index ASSIGNING FIELD-SYMBOL(<ls_order>).
<ls_order>-DATE_1 = <ls_order>-ZZ_date .
ENDLOOP
Remember you may need to check whether it is Header or line item field from which you need to populate this value as one transaction can have header/line item and multiple partner function values. With the above logic, I was now able to populate Date 1 field with the value stored in a custom field ZZ_date. Now the screen would look something like below
Additional information
The note below talks in detail about some additional concepts related to CRM indexing. Please have a look at it
1527039 - Enhancements in CRM Reporting Framework
Some Archived discussion links below which I found an interesting read
https://archive.sap.com/discussions/thread/1937316
https://archive.sap.com/discussions/thread/1832810
Thanks for reading the blog Please share your comments.