一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

i042416發表於2018-10-22

SAP Cloud for Customer和SAP其他傳統產品的同步,除了使用SAP Netweaver Process Integration和SAP HANA Cloud Integration外,還有一些輕量級的同步方式。


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

本文介紹其中一種,C4C OData通知(Notification)。

  1. 登入C4C系統,工作中心Administrator,工作中心檢視General Settings:

選擇OData: Event Notification to External Systems


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

假設A6P是我的CRM系統,client為213,我期望的同步場景是:C4C上一旦有新的Opportunity建立成功,就會自動同步到CRM去。

為此,我需要建立一個新的consumer,維護一個endpoint:https://<crm host name>/sap/bc/bsp/sap/crm?sap-client=213,

這個endpoint指向的ICF服務需要在CRM系統A6P/213建立,負責響應C4C系統Opportunity的建立。


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

在Subscription標籤頁,選擇Opportunity對應的Business Object和OData服務。因為我只希望CRM監控到C4C Oppportunity的建立和更新,因此我只勾選Create和Update兩個checkbox。


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

  1. 到CRM系統使用事務碼SICF在路徑/sap/bc/bsp/sap/crm下面建立一個新的ICF服務:


    一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

建立一個新的處理類:


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

開發如下的ABAP程式碼:

METHOD if_http_extension~handle_request.
DATA(lv_payload) = server->request->get_cdata( ).
CALL METHOD zcl_c4c_crm_integration_tool=>parse_json_to_internal_table
EXPORTING
iv_json = lv_payload
IMPORTING
et_node = DATA(lt_node).
READ TABLE lt_node ASSIGNING FIELD-SYMBOL(<event>) WITH KEY attribute = 'event'.
DATA(lv_event) = <event>-value.
READ TABLE lt_node ASSIGNING FIELD-SYMBOL(<opp>) WITH KEY attribute = 'odataServiceEndpoint'.
DATA(lv_opp_detail) = zcl_c4c_crm_integration_tool=>get_opp_detail( <opp>-value ).
CLEAR: lt_node.
CALL METHOD zcl_c4c_crm_integration_tool=>parse_json_to_internal_table
EXPORTING
iv_json = lv_opp_detail
IMPORTING
et_node = lt_node.
ENDMETHOD.

zcl_c4c_crm_integration_tool這個類的完整程式碼,參考我的 Github

現在回到C4C系統,隨便修改一個Opportunity,比如修改name欄位,將值改為 “Jerry change demo”:


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

然後C4C系統裡註冊的CRM的endpoint指向的ICF服務的handler處理類的HANDLE_REQUEST會自動被呼叫:C4C發生修改的Opportunity的ID和修改型別(新建還是更新)也會自動從C4C傳入CRM。


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

Opportunity的明細也包含在內。可以通過這些資訊用One Order API比如CRM_ORDER_MAINTAIN在CRM裡建立或者更新對應的Opportunity。


一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2217160/,如需轉載,請註明出處,否則將追究法律責任。

相關文章