2. 到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(
DATA(lv_event) =
READ TABLE lt_node ASSIGNING FIELD-SYMBOL(
DATA(lv_opp_detail) = zcl_c4c_crm_integration_tool=>get_opp_detail(
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系統裡註冊的CRM的endpoint指向的ICF服務的handler處理類的HANDLE_REQUEST會自動被調用:C4C發生修改的Opportunity的ID和修改類型(新建還是更新)也會自動從C4C傳入CRM。
Opportunity的明細也包含在內。可以通過這些信息用One Order API比如CRM_ORDER_MAINTAIN在CRM裡創建或者更新對應的Opportunity。
閱讀更多 汪子熙SAP 的文章