SAP Cloud for Customer和SAP其他传统产品的同步,除了使用SAP Netweaver Process Integration和SAP HANA Cloud Integration外,还有一些轻量级的同步方式。

本文介绍其中一种,C4C OData通知(Notification)。

  1. 登录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。

  1. 到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的原创文章,请关注公众号"汪子熙":

一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知相关推荐

  1. 一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知 1

    SAP Cloud for Customer和SAP其他传统产品的同步,除了使用SAP Netweaver Process Integration和SAP HANA Cloud Integration ...

  2. java移库数据同步,库存调拨 java 实现方式

    项目开发中客户提出一个要求: 我只选择商品和数量,完成商品的移库操作 在开发中发现这里商品又有批次的问题,那么计算成本的时候又需要根据批次来计算他的成本,那么这样就产生了几个问题 1.当某个商品的这个 ...

  3. java定时增量同步,一种可配置的定时数据同步方法与流程

    本发明涉及数据交换技术,尤其涉及一种可配置的定时数据同步方法.解决企业内部异构系统之间的数据同步问题.主要利用计算机多线程技术.XML技术.数据库技术实现.具有简单配置.快速部署.灵活扩展的特点,并且 ...

  4. 同步亚马逊产品广告(SP)业务数据

    序言 亚马逊提供 snapshot 快照功能,实现您构建的系统与亚马逊广告业务数据同步.同步的目的是做分页辅助之类(比如:广告活动查询,接口未提供总记录数,我们就无法实现分页功能,如果把广告活动数据同 ...

  5. 内存数据库和关系数据库之间的数据同步原理

    关系数据库到内存数据库同步 这部分数据同步采用增量表的方式,系统新增或更新的数据将生成到关系数据库的增量表中,程序先到这些增量表中查询数据.如果能在这些增量表中查到数据就把这些数据更新到内存数据库对应 ...

  6. Qt—页面加载和数据同步

    一.页面加载和数据处理不同步时的几种处理方法 对于某些场景下,由于数据处理可能耗时较长,需要页面加载和数据处理保持同步,下面有几种处理页面刷新和数据同步处理的方法: 1.先等待页面,线程处理耗时长的业 ...

  7. 数仓建模—数据同步方案设计

    数据同步方案设计 通过前面的学习数据仓库的特性之一是集成,关于一点你可以参考我们前面的文章 数仓建模-数仓初识 数仓建模-数据集成 数据集成狭义上来说就是把未经过加工处理的.不同来源的.不同形式的的原 ...

  8. MySQL异构同步_详解MySQL数据库异构数据同步

    本文主要向大家介绍了MySQL数据库异构数据同步,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在实现levelDB挂载成MySQL引擎时,发现在实际存储是key-value格式 ...

  9. 工作心得之接口数据同步

    在开发过程中避免不了调用其他第三方接口,获取数据或者同步数据,以下是在同步数据到第三接口时踩过的坑和需要注意的一些事,前车之鉴,希望通过这次总结可以避免后续继续踩坑. 本次同步数据主要采用resetf ...

最新文章

  1. 4D毫米波雷达Radar
  2. 数学 计算机工作,不过有人说先学数学,后学计算机后劲足一点,工作也可以的,这估...
  3. linux内核参数注释与优化
  4. EndNote20教程:中英混排问题解决方法(中文参考文献处理) 附最新版下载
  5. 程序员偷偷深爱的 9 个不良编程习惯
  6. mysql date类型加一个月jdbc_JDBC操作数据库Date类型数据
  7. 生成全1矩阵_2020美赛A题(1)-图像处理
  8. 开源GIS软件初探(转载)
  9. Oracle 创建表空间与用户
  10. 刷爆了!Java蝉联5次第一,网友:最强王者!附70k架构师Java学习路线
  11. Promise基本概念和基本示例使用
  12. jvm垃圾回收机制_详解JVM内存管理与垃圾回收机制1 - 内存管理
  13. 一分钟解决微信小程序截图(截屏问题)
  14. 一个月攻克托业--复旦大学考生
  15. 8.1 - mysql 基本知识
  16. CTF-杂项与密码学总结
  17. HDwiki模板说明
  18. 【SQLServer】用SQL语句更改数据库名,表名,列名
  19. unityShader入门了解
  20. 股票融资全面解决方案

热门文章

  1. php实战第二十一天
  2. the fair-sounding
  3. 在用户控件中弹出消息框的方法
  4. Width Height -- (1)
  5. BZOJ3172 [Tjoi2013]单词 字符串 SA ST表
  6. 关于时间差查询的一个小技巧
  7. oracle按照时间过滤
  8. 【freemaker】之FreeMakerUtil工具类
  9. nginx同IP、同端口、不同域名时的转发
  10. QuickPager asp.net 分页控件 转