还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧

Jerry从2018年末至今,已经写了一系列关于SAP Kyma的文章,您能够移步到本文末尾得到这些文章的列表。Kyma是SAP开源的一个基于Kubernetes的云原生应用开发平台,可以容许SAP的partners以简捷而现代的方式,对SAP的云解决方案和传统On Premises产品进行链接,集成和扩展。所谓“现代”,即partners在进行二次开发时,能够充分利用近些年来企业级开发领域不断涌现出的新技术,好比Serverless计算,微服务架构等等。git

clipboard1,1

Kyma是彻底开源和免费的,任何人均可以试着在本身的本地电脑上进行安装。固然,尝试本身本地安装有一些门槛,由于安装过程当中须要从Google的网站上拖取一些Kubernetes相关镜像,所以须要学会“科(fang)学(zhi)上(he)网(xie)”。github

而SAP Cloud Platform Extension Factory,是SAP在开源项目Kyma上进一步完善而推出的一个商业化解决方案,自己并不单独卖,而是做为SAP云平台的一个组成部分。编程

clipboard2,2

Kyma和SAP Cloud Platform Extension Factory的关系,就比如Open UI5和SAP Fiori目前使用的UI5框架之间的关系同样。在Jerry这篇文章特殊的上下文里,由于Jerry不想每次都敲出“SAP Cloud Platform Extension Factory这五个单词”,因此下文仍是统一用Kyma这个词。微信

Jerry以前的文章 WordPress,SAP Kyma和微信三者的集成,介绍了如何使用SAP Kyma中的Lambda Function,监听WordPress中的post.created事件,从而完成对WordPress的加强。架构

今天这篇文章,让咱们把经过SAP Kyma进行扩展的对象换成C/4HANA中的一朵云,SAP Cloud for Customer(C4C)。Jerry但愿每当C4C中有新的Opportunity建立时,C4C都会把这个事件通知给Kyma上的Lambda Function,后者做为事件监听函数,能够进行对应的处理,具体作什么逻辑,你们能够试着开开本身的脑洞。框架

好比实现一个Account Address Enrichment的功能,就是用户在C4C里建立Account时,只须要维护基本的地址信息,而后点击保存,C4C发送事件给Kyma,后者接到这个事件后,调用SAP API Hub上的Address微服务,把丰富事后的地址详情经过C4C Account OData API调用的方式,写回C4C。经过这个加强,减小了C4C用户录入数据的工做量,同时也展现了Kyma与被其扩展的C/4HANA产品的数据双向读写功能。less

clipboard3,3

下面咱们就来看看这个扩展如何完成。ide

首先固然是要把C4C同Kyma创建起互相信任的链接了。对于SAP partners来讲,好消息是这个链接的配置是一个黑盒子,经过下图Kyma的Application Connector模块完成,partners不须要了解其技术实现。函数

clipboard4,4

首先进入SAP Cloud for Customer的Administration的工做中心,打开General Settings视图,进入Event Notification配置UI:微服务

clipboard5,5

新建一个C4C OData事件和API的消费者:

clipboard6,6

类型选择SAP Cloud Platform Extension Factory,即Kyma:

clipboard7,7

这个Remote Environment URL从哪里来呢?就是SAP Kyma应用里的Application Connector对应的url:

clipboard8,8

到Kyma控制台的应用里,点击Connect Application,就获得了须要维护到C4C里的url:

clipboard9,9

维护了回调用户名和密码以后,再添加Subscription,即您但愿将Cloud for Customer系统里的哪些BO事件,发布给Kyma:

clipboard10,10

我选择了Account和Opportunity这两个BO的建立和更新事件,暴露给Kyma:

clipboard11,11

成功保存并激活配置:

clipboard12,12

回到Kyma的应用界面,在Provided Services & Events界面下,此时能看到Cloud for Customer发布过来的API和事件了:

clipboard13,13

进入Kyma Service Management的Catalog界面下,找到从Cloud for Customer系统导入进来的服务,

clipboard14,14

进入服务明细,能观察到Cloud for Customer系统发布的BO事件的字段参数,

clipboard15,15

以及该C4C系统全部支持的OData API列表。若是咱们指望在Kyma的Lambda Function里对C4C的数据进行写回操做,就得使用这些OData API.

clipboard16,16

接下来,咱们就能够基于这些API和事件进行Lambda Function的开发了。

首先基于C4C导入进来的服务,建立一个新的实例:

clipboard17,17

确保实例处于运行状态:

clipboard18,18

而后基于该实例建立一个新的Lambda Function:

clipboard19,19

Lambda Function的触发方式,选择以前C4C暴露的BO建立和修改事件:

clipboard20,20

因为文章篇幅缘由,这里暂时不介绍在Kyma Lambda Function里如何调用C4C的OData API,而只是简单的打印出C4C传递过来的事件参数:

clipboard21,21

至此Kyma端的开发和配置就结束了,是否是以为步骤很是简单明了?

如今到C4C里建立一个新的Opportunity,保存:

clipboard22,22

到C4C的Event Notification Monitoring界面去,观察到Opportunity建立的事件已经成功被投递到Kyma去了,对应的Kyma实例的url也能够在投递明细里查看到。

clipboard23,23

再回到Kyma Lambda Function的日志界面,这里也看到了Lambda Function实现体里打印出的来自C4C的事件明细:

clipboard24,24

为何只打印了两个guid呢?由于C4C暴露的BO事件,其参数规范里就只包含了发生事件的当前节点和Root节点的guid. 至于如何在Kyma的Lambda Function里调用C4C的OData, 我们未来再聊。

clipboard25,25

你们能够试着比较一下,如何使用C4C传统的二次开发方式,该如何监听BO的建立和更新事件呢?那就是使用SAP Cloud Application Studio,在Solution里建立BO加强,而后在BO节点上建立AfterModify并经过ABSL编程实现。 clipboard26,26

而SAP Kyma的横空出世,确实像SAP的官方宣传那样,给SAP partners们提供了一种不一样于过去在ABAP平台上进行的全新的二次开发方式。经过SAP Kyma提供的事件监听机制,进行SAP二次开发的从业人员再也不须要对被加强的SAP解决方案的技术细节有过多的了解,仅仅在Kyma Lambda Function定义好的接口上下文内,调用公开稳定的API,便可完成开发任务。

clipboard27,27

但愿本文可以对广大的SAP二次开发从业者们有所启发,感谢阅读。

要获取更多Jerry的原创文章,请关注公众号"汪子熙": 公众号截图

相关文章
相关标签/搜索