前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用SAP C4C OData notification实现CRM和C4C的数据同步

使用SAP C4C OData notification实现CRM和C4C的数据同步

作者头像
Jerry Wang
发布2020-08-31 10:43:15
3940
发布2020-08-31 10:43:15
举报

There is a useful feature OData notification in C4C which allows any kinds of external applications such as other SAP system or third party applications to hook the create, update and delete of a given business object in C4C.

In this blog, I will demonstrate the technical steps needed to monitor the create or update of C4C Opportunity in SAP CRM On-Premise system, that is, whenever a new Opportunity is created or updated in C4C, this change event is logged in SAP CRM accordingly. This might not be a valid case from business perspective, but you could just follow the steps to build your own integration scenario.

Detail steps

(1) Log on C4C, work center Administrator, General Settings ->OData: Event Notification to External Systems

Create a new Consumer by clicking button Add Row. Suppose system A6P is my CRM On-Premise and client 213 is the client where I expect to monitor the C4C Opportunity creation.

Here I specify Consumer Endpoint as https:///sap/bc/bsp/sap/crm?sap-client=213, which means once the ICF service in CRM under path /sap/bc/bsp/sap/crm will be called to log the C4C opportunity creation. I will create the ICF handler for this service in CRM in next step.

In Subscription tab, select corresponding Business Object and OData service for Opportunity. Since I am only interested with Create and Update, so mark the first two check-boxes accordingly.

(2) Go to CRM system, create a new ICF service in tcode SICF under path /sap/bc/bsp/sap/crm. Of course you could change the path according to your own requirement.

Create a new handler class for this service and activate both.

It is ready now to write some real logic in CRM.

Paste the following source code and activate the class.

代码语言:javascript
复制
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.

Now go to C4C system, make some changes on Opportunity name field, for example change it to “Jerry change demo”,

And then the handler method in CRM will automatically be called.

Here below is an example of payload sent from C4C system, including BO instance id and change event type.

The detail information of changed opportunity could also be retrieved as well.

Further reading

You can find a list of all other blogs related to OData written by Jerry.

  • Consume standard C4C OData service via ABAP code
  • Leverage C4C Odata notification to monitor C4C Opportunity change in CRM system
  • OData Service backend implementation in C4C, CRM and S4 HANA
  • JMeter beginner – how to use JMeter to measure performance of OData service accessed parallelly
  • Regarding cookie manipulation in CL_HTTP_CLIENT to avoid CSRF token validation failure issue
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Detail steps
  • Further reading
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档