一種輕量級的C4C業務資料同步到S4HANA的方式:Odata通知
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的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2217160/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP CRM和C4C資料同步的兩種方式概述:SAP PI和HCI
- Soa: 一個輕量級的微服務庫微服務
- SAP C4C OData服務的filter,客戶端分頁和排序的使用方式Filter客戶端排序
- 數倉的兩種輕量級資料交換格式:json與jsonbJSON
- 一種不通過UI給C4C自定義BO建立測試資料的方式UI
- 一個工業級、跨平臺、輕量級的 tcp 網路服務框架:geventTCP框架
- Nancy .Net 輕量級mvc框架使用(4)返回資料到頁面的幾種方式NaNMVC框架
- 一種後設資料同步的方法
- 語音通知簡訊 API:一種新型的資訊傳遞方式API
- 前端輕量級資料庫mongodb前端資料庫MongoDB
- ShadowNode: 以更輕量級的方式使用 Node.jsNode.js
- 如何用程式碼的方式取出SAP C4C銷售訂單建立後所有業務夥伴的資料
- Pekwm:一個輕量級的 Linux 桌面Linux
- 使用nodejs呼叫C4C的Odata服務建立銷售訂單NodeJS
- 如何找到SAP ECC事務碼升級到S4HANA後對應的新事務碼
- python 非同步的幾種方式Python非同步
- 使用Excel消費C4C的OData serviceExcel
- 一種Mysql和Mongodb資料同步到Elasticsearch的實現辦法和系統MySqlMongoDBElasticsearch
- 桌面輕量級資料處理指令碼指令碼
- Go Web輕量級框架Gin學習系列:多種資料響應格式GoWeb框架
- iOS 一個輕量級的元件化思路iOS元件化
- CherryPy :一個輕量級的 Python Web 框架PythonWeb框架
- 阿里專家分享:企業級大資料輕量雲實踐阿里大資料
- [資料庫]事務的4種隔離級別資料庫
- 用go設計開發一個自己的輕量級登入庫/框架吧(業務篇)Go框架
- docker快速建立輕量級的可移植的容器(一)Docker
- SAP Gateway Service Builder 裡的 OData 服務實現方式GatewayUI
- Python Schema一種優雅的資料驗證方式Python
- Express 提交資料的幾種方式Express
- 宜信開源專注業務邏輯的輕量級服務框架nextsystem4框架
- 仿Laravel寫了一個輕量級的框架Laravel框架
- SNP Glue:SAP資料匯入到其他系統的多種方式
- Spring的輕量級實現Spring
- HDFS+ClickHouse+Spark:從0到1實現一款輕量級大資料分析系統Spark大資料
- 一個輕量級的分散式定時任務排程平臺-Cloudtask分散式Cloud
- 資料庫系列:事務的4種隔離級別資料庫
- 【框架】一種通知到多執行緒框架框架執行緒
- 歸納避免同步鎖的幾種方式