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

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

2. 到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() WITH KEY attribute = 'event'.

DATA(lv_event) = -value.

READ TABLE lt_node ASSIGNING FIELD-SYMBOL() WITH KEY attribute = 'odataServiceEndpoint'.

DATA(lv_opp_detail) = zcl_c4c_crm_integration_tool=>get_opp_detail( -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:

https://github.com/i042416/KnowlegeRepository/tree/master/ABAP/C4COData

現在回到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通知


分享到:


相關文章: