如何在SAP S/4HANA里创建自定义的partner function

282 篇文章 41 订阅

Requirement: create custom partner function and consume it in Service scenario in S/4HANA for Customer Management.

As introduced in my blog One Order Partner Component model in S/4HANA for Customer Management, there are corresponding fields in flat table CRMS4D_SERV_H which stores the ID of different party roles. How about if customers would like to create their own partner functions and maintain some business partners based on those custom partner functions?

Here below are the steps in detail.

(1) Create a new extension field with type Text and length equals to 10. For detail please refer to my blog One order extensibility in S4HANA for Customer Management.

Find the technical name of this extension field in backend: ZZ1_JERRYCUSTOMPARTNER_SRH

(2) Create a custom partner function Z0000002:


tcode SM30, maintain table CRMS4C_PARTNER:
maintain the extension field name and custom partner function ID as below:

(3) Create a new partner determination procedure:

and assign the custom partner function Z0000002 to the created procedure:

Create a new transaction type and assign the custom patner determination procedure to it:

Now it is ready for test.
It is possible now to maintain business partners with custom partner function in WebUI. In my example the partner ID is 142.

This partner ID is stored in the very extension field we created in the first step:

The partner with this custom partner function could still be read out via CRM_ORDER_READ:

REPORT zread.

DATA: lt_guid       TYPE crmt_object_guid_tab,
      lv_id         TYPE crms4d_btx_h-object_id VALUE '8000000420',
      lt_partner    TYPE crmt_partner_external_wrkt,
      lt_customer_h TYPE crmt_customer_h_wrkt.

SELECT SINGLE guid INTO @DATA(guid) FROM crms4d_btx_h WHERE object_id = @lv_id.
APPEND guid TO lt_guid.

CALL FUNCTION 'CRM_ORDER_READ'
  EXPORTING
    it_header_guid = lt_guid
  IMPORTING
    et_partner     = lt_partner.

SELECT * INTO TABLE @DATA(lt_partner_fct) FROM crmc_partner_ft AS a
   FOR ALL ENTRIES IN @lt_partner WHERE a~partner_fct = @lt_partner-partner_fct AND
  spras = @sy-langu.

LOOP AT lt_partner ASSIGNING FIELD-SYMBOL(<partner>) WHERE ref_kind = 'A'.
  READ TABLE lt_partner_fct ASSIGNING FIELD-SYMBOL(<fct>) WITH KEY partner_fct =
   <partner>-partner_fct.
  IF sy-subrc = 0.
    WRITE:/ |Partner No: { <partner>-partner_no }, 'Role:' { <fct>-description }| COLOR COL_GROUP.
  ENDIF.
ENDLOOP.

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪子熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值