SAP S/4HANA Customer Management(CRM)模块的扩展性设计

标题:One order extensibility in S4HANA for Customer Management

In SAP CRM we use Application Enhancement Tool(AET) to create extension field in a very convenient way.

When I was working on SAP CRM, I have also made some research on AET. Here below are some of my blogs in SAP community:

In S/4HANA for Customer Management(called S4CRM for short in the following part of this blog), 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.

Please follow the blog Enhancing a UI Component in CRM Web UI to expose CUSTOMERH in CRM UI component workbench. 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'
  EXPORTING
    it_header_guid = lt_guid
  IMPORTING
    et_customer_h  = lt_customer_h.

The extension field value is stored in component CUSTOMER_H of One Order model:

Jerry’s other blogs on S/4HANA for Customer Management

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/13598837.html