且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子

更新时间:2022-09-10 19:58:00

出于工作需要,Jerry写了这篇文章,给某些SAP Partner做参考。


以前Jerry曾经介绍过SAP C/4HANA的五朵云到底包含哪些具体产品,其实在SAP官网上有更权威的中文解释:


https://www.sap.com/china/products/crm-commerce/c4-hana-cx-suite.html

SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子

有Partner询问有没有更详细的步骤介绍,关于如何在第三方系统里调用SAP C4C暴露出的Restful API进行集成。本文就给出一个具体的例子,将SAP C4C销售订单的创建功能通过自定义的OData服务暴露出来,然后Partner可以根据项目需要选择合适的编程语言(本文选择JavaScript)来消费。


Jerry以前发布过一个视频,演示了如何在SAP C4C里手动创建一个销售订单,步骤可以说简单易懂。


https://v.qq.com/x/page/d0809f4tswl.html


现在我们通过OData的方式将销售订单的创建功能暴露出来,就能在第三方系统或者应用里完成C4C的订单创建。


大家如果对SAP OData还不太了解,可以先读一读我这篇文章开头的部分:


SAP OData编程指南


下面是详细步骤。


登录C4C系统,访问工作中心Administrator,工作中心视图OData Service Explorer,这里可以在SAP发布的标准OData服务和客户自定义的OData服务之间切换。

SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子

下图就是一个已经创建好并处于Active状态的OData服务。左边显示的是CustomerQuote这个BO的Root节点的所有字段,每个字段都有一个可以勾选或取消的Select属性,勾选则该BO字段会出现在右侧的OData模型里。




除了Root节点之外,BO的其他子节点上的字段当然也是可以出现在OData模型里的,比如我上图右边OData模型的子节点CustomerQuoteItem, CustomerQuoteParty和CustomerQuoteText等,就是分别从左边BO的同名节点选中后自动带到右边的OData模型中去的。


理论上,完成基于BO模型进行OData模型的创建并激活后,这个OData服务就可以使用了,这体现了SAP C4C OData服务自定义框架的强大之处。然而我也收到了一些朋友从后台给我提的一些问题,罗列如下。


问题1: 仍然以本文销售订单创建这一场景为例,假设我希望我创建的OData服务能够允许消费者调用时指定External Reference的值,但是我找遍整个BO列表,也没发现销售订单的BO上有叫这个名称的字段啊?


SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子

我们再回顾一下用SAP C/4HANA Sales Cloud中的C4C OData同外部系统做集成的三个主要步骤:


1. 在C4C的OData模型编辑页面里,根据业务需要,从对应的BO节点里选择合适的字段,添加到OData模型中。


2. 用Postman或者C4C自带的OData测试工具对OData模型进行测试,确保其正常工作。


3. 根据项目需要选择合适的编程语言消费OData服务。


如果对于SAP C4C OData有更多的问题需要讨论,欢迎留言。感谢阅读。


Jerry关于OData的更多文章


SAP OData编程指南


OData服务同步模式和异步模式的讨论


https://blogs.sap.com/2015/06/19/a-test-on-fiori-odata-request-synchronous-mode-vs-asynchronous-mode/


OData服务的性能分析

https://blogs.sap.com/2015/07/01/how-to-find-odata-performance-trace-and-payload-trace-functionality/


https://blogs.sap.com/2016/01/13/measure-the-performance-of-your-odata-service/


基于SAP CDS view生成OData服务

https://blogs.sap.com/2016/03/12/my-cds-view-self-study-tutorial-part-4-how-does-annotation-odatapublish-work/


OData的offline支持

5.1 https://blogs.sap.com/2016/08/04/how-is-odata-request-routed-to-offline-data-store-by-odata-offline-plugin/


5.2 https://blogs.sap.com/2016/08/04/how-is-javascript-code-in-odata-offline-plugin-delegated-to-native-java-code-in-android/


5.3 https://blogs.sap.com/2016/08/05/how-is-odata-offline-store-opened-in-android-platform/


使用ABAP消费SAP C4C标准OData服务

https://blogs.sap.com/2017/08/04/consume-standard-c4c-odata-service-via-abap-code/


SAP CRM,C4C和S/4HANA里OData服务实现的横向比较

https://blogs.sap.com/2017/08/07/odata-service-backend-implementation-in-c4c-crm-and-s4-hana/


使用Java和jMeter对需要支持CSRF验证的OData服务进行高并发性能测试

https://blogs.sap.com/2017/08/28/odata-service-parallele-performance-measurement-how-to-deal-with-xsrf-token-in-java-program-and-jmeter/


使用C4C OData + ABSL消费自定义BO的逻辑

https://blogs.sap.com/2017/12/07/expose-custom-bo-logic-implemented-by-absl-via-custom-odata-service/