In SAP CRM we use Application Enhancement Tool(AET) to create extension field in a very convenient way.
In S/4HANA for Customer Management, AET should no longer be used, since S/4HANA has its own extensibility tool, which instead should be used to create extension fields on S4CRM model like Product and One Order.
We are aware of the fact that there are indeed some features supported by CRM AET which is not available in current S/4 Key User Extension tool(KUT).
For example, there are some field type provided by CRM AET but not possible in S/4 KUT:
However this small limitation could never become a real showstopper in business process, so currently we leave it in S/4HANA for Customer Management 1.0.
How to create extension field using S/4HANA extension tool
Click tile “Custom Fields and Logic”:
Create a new extension field:
Specify field detail. The field creation UI looks almost the same as the one in CRM AET:
Select the created extension field and press “Publish” button in footer toolbar, which works as the “Save and Generate” button in CRM AET. Once done, the status should become “Published”.
Check CRMS4D_SERV_H in backend to ensure that the extension field appears in persistence table successfully.
Why the extension field is visible in CRMS4D_SERV_H? Launch S/4HANA tcode SCFD_REGISTRY, and double click the Business Context CRMS4_SERV_H, which is actually the technical model for business context “Service Header” visible in S/4HANA extension field UI.
The persistence include CRMS4S_SERV_H_INCL_EEW_PS is defined in this business context, and is included by CRMS4D_SERV_H. As a result, whenever an extension field is created based on business context CRMS4_SERV_H, the extension field will be available in include structure CRMS4S_SERV_H_INCL_EEW_PS and then automatically available in CRMS4D_SERV_H.
How to put S/4HANA extension field to CRM WebClient UI
In S/4HANA for Customer Management, all custom fields added through S/4HANA Extensibility tool will only be available in Customer_H/Customer_I BOL Component or context nodes.
However if you open BT116H_SRVO/Details in SAP CRM, you find that by default context node CUSTOMERH is not exposed.
Use tcode SM34 and maintain view Cluster BSPWDVC_CMP_EXT to define an enhancement set ZCRMS4.
Expose context node CUSTOMERH and store the enhancement to this enhancement set.
Now you can see the created extension field under context node CUSTOMERH.
Make it visible via UI configuration as usual in SAP CRM:
Now maintain some value in the extension field and save the change:
The value is successfully saved in CRMS4D_SERV_H:
With the same approach you can also create extension field on Product via S/4 extension tool and make it visible in Product search view and search result view in CRM WebUI:
How to read the extension field value via One Order API
Use CRM One Order API CRM_ORDER_READ:
DATA: lt_guid TYPE crmt_object_guid_tab,
lt_customer_h TYPE crmt_customer_h_wrkt.
APPEND ‘E04F430697291EE7AEAA0367A1F2DB37’ TO lt_guid.
CALL FUNCTION ‘CRM_ORDER_READ’
it_header_guid = lt_guid
et_customer_h = lt_customer_h.
The extension field value is stored in component CUSTOMER_H of One Order model: