一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

S/4HANA端完整的ABAP实现代码已经放到我的github上了:


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


核心的逻辑就是使用函数SD_SALESDOCUMENT_CREATE进行创建,这个S/4HANA函数的接口虽然和SAP CRM的CRM_ORDER_MAINTAIN有差异,但设计思路都类似,订单的数据散落在诸如Header,Item,Party,Text等节点上,直接填充某节点对应的输入结构即可完成相应数据的创建。


将C4C创建好的销售订单同步到S/4HANA的实际效果,可以参考这个腾讯视频。


这种通过观察者-发布者模式进行C/4HANA和S/4HANA数据同步的方式,依赖于C4C里BO状态的三种变化:创建,修改和删除,显得不够灵活。从上面的开发我们能看出,Partners的二次开发工作量主要集中在S/4HANA,C/4HANA端没有任何编码工作,仅仅完成了一个OData服务的建模和事件注册。当事件发生后,从C/4HANA端向S/4HANA发起的事件推送是由C4C系统层面的组件来完成的。


那么Partner有没有办法在C/4HANA里,通过C4C端的二次开发编码,直接消费S/4HANA的服务呢?


当然有。假设这样一个场景:C/4HANA的销售订单同步到S/4HANA后,在S/4HANA完成必要的生产流程后,可以进行后续的交货流程。现在的需求就是:直接在C4C销售订单的UI上触发S/4HANA外向交货单(Outbound Delivery)的创建,这样业务人员不需要登录S/4HANA系统,而只需在手机上使用C4C应用,就能完成S/4HANA交货流程的触发了。


这个需求Partners完全可以通过二次开发来实现。


思路是:在S/4HANA把外向交货单创建函数BAPI_OUTB_DELIVERY_CREATE_SLS包装成一个Restful API,然后在C4C Cloud Application Studio里进行二次开发,使用ABSL(ABAP Scripting Language)来消费API。


1. 在S/4HANA里按部就班的完成上述Restful API的创建与实现。详细实现代码还是放在Jerry的github上:


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


2. 在销售订单的BO上创建一个新的Action triggerOutboundDelivery:

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享

一些SAP Partners能够通过二次开发实现打通 SAP C/4HANA和S/4HANA 的场景分享


上一篇:SSRS报表连接超时的问题


下一篇:SAP Spartacus 单元测试开发规范