您好,登錄后才能下訂單哦!
SAP Cloud for Customer和SAP其他傳統產品的同步,除了使用SAP Netweaver Process Integration和SAP HANA Cloud Integration外,還有一些輕量級的同步方式。
本文介紹其中一種,C4C OData通知(Notification)。
登錄C4C系統,工作中心Administrator,工作中心視圖General Settings:
選擇OData: Event Notification to External Systems
假設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的創建。
在Subscription標簽頁,選擇Opportunity對應的Business Object和OData服務。因為我只希望CRM監控到C4C Oppportunity的創建和更新,因此我只勾選Create和Update兩個checkbox。
到CRM系統使用事務碼SICF在路徑/sap/bc/bsp/sap/crm下面創建一個新的ICF服務:
創建一個新的處理類:
開發如下的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系統里注冊的CRM的endpoint指向的ICF服務的handler處理類的HANDLE_REQUEST會自動被調用:C4C發生修改的Opportunity的ID和修改類型(新建還是更新)也會自動從C4C傳入CRM。
Opportunity的明細也包含在內。可以通過這些信息用One Order API比如CRM_ORDER_MAINTAIN在CRM里創建或者更新對應的Opportunity。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。