总结:当然,不同的产品实现订单延期的方式是不同的。 如果您想增强订单履行流程,世界上的限制比之前介绍的要多。 Primary检查返回的分数是根据当前配置文件认为这个结果是primary。
尽管有一万人的不舍,2018年仍然不可挽回地遥远。
只有去年我和SAP成都研究院的同事在网上留下的痕迹,才能证明我们认真度过了2018年的每一天。
SAP成都学院2018年共87篇技术文章
SAP开发者2018年年终总结
今天,我需要完成工作,这就是我的原因。写了这篇文章。 在本文中,我们将首先介绍 SAP 旧产品中的订单编排增强技术,然后了解 SAP Kyma 如何满足相同的增强要求。
内容
基于SAP传统ABAP技术的订单编排增强技术
关于基本 SAP Kyma 订单编排增强技术
四个词概括了 SAP 产品的订单履行流程,无论是本地解决方案还是云产品,我认为都可以。 订单编排包括两个层次的内容:
1.单个订单从最初的创建状态经过一系列业务流程或工作流驱动的状态,包括一系列操作,最后到达关闭状态。
2.多种订单类型协同工作,完成完整的端到端业务流程。 典型示例包括销售人员自动化中的各种类型的订单协作,从销售线索、机会、报价到合同和订单。
SAP系统中的订单状态迁移有多复杂?复杂程度远远超出初学者的想象。
<以SAP CRM为例。 我使用的SAP CRM 714系统总共有906个订单状态。 正因为如此,SAP CRM 最初设计者的彻底性给人们留下了深刻的印象。
尽管设计了这900种状态,SAP还是考虑到了其客户可能存在的状态扩展需求,因此经典我们采用了两种用户状态: /strong>(用户定义状态)和系统状态(SAP标准状态)的分层状态设计,让用户可以通过业务交易中自由定义自己的用户状态g 中介角色。 层。 /strong>,映射到SAP标准程序可以识别的系统状态。
上图左侧的“未结”、“处理中”、“已发布”、“已完成”是用户自定义的订单状态。 SAP 允许客户为每个状态分配低值和高值。 通过这两个值,我们巧妙地提供了一个以非图形方式执行状态跳转的函数。
例如,处理状态Low为20。 这意味着打开状态的ID 10在In process状态中为Low - 状态跳转到的目标状态的ID必须在该字段中Low和High定义的范围内。
除了复杂的状态处理和跳转之外,SAP订单编排的复杂性主要体现在以下几个方面:
1. 除了购买 SAP 的 On- 之外,许多 SAP 客户还拥有除本地产品和订阅云服务之外的其他业务系统。 这些客户的订单履行通常涉及与基于 SAP 标准业务流程的第三方业务系统进行交互。
2.即使是同一行业的客户,由于地域、国家、语言的不同,业务流程也可能存在一定的差异。 SAP 发布的标准功能可能无法 100% 详细地支持这些功能。互联网上有各种各样的业务流程。
因此,SAP系统对订单编排有更好的支持是非常有必要的。
当然,不同的SAP产品以不同的方式实现订单增强。
在SAP CRM中,虽然SAP没有明确提出业务对象的概念,但基于订购应用的模型实际上仍然是由各个节点组成的。
每个节点对应几个下层模型节点,可以注册各种事件处理函数。 下图显示了服务请求标头节点的事件处理函数。
当每个事件被触发时,会自动执行注册的函数。 。
每个节点可以被分配一个或多个执行功能。 当然,严谨的德国人在最简单的观察-发布者模式上又添加了一些维度设置。
下图中第一列红色的执行时间决定了这些分配的函数是在事件触发后立即执行,还是执行订单头或行项目通用例程(经常使用(。实现批量操作,或者因为执行的函数依赖于公共例程,或者出于性能原因)。
第二列的优先级是当有多个函数时函数执行的优先级。如果除了优先级之外,其他维度上保持相同的属性,它们将从高到低执行。
第三列事件是观察者-发布者中的事件:
p>
最后一栏是事件监听功能。
Jerry 倾向于理解 CRM 订单处理系统:它就像一个复杂的水管一样运行类似于图中所示的传输系统。订单业务流程是通过注册各种事件的监听函数来顺序执行的,类似于水管传输系统,有一段水管贯穿其中。
如果客户需要增强他们的一个业务步骤(需要更换特定的水管),他们需要的是一个自我实现的功能,只需使用(您将需要找到另一个水管和)替换SAP标准功能。替换当前的),替换的前提是要实现的功能的接口与被替换的功能完全相同(找到的水管两端接口规格与之前的水管完全相同)。
SAP Cloud for Customer中的订单模型,其业务对象是由最新版本1811中的ESF2框架实现的,但是后台对合作伙伴是不可见的。 。 这可以与 SAP On-Premises 领域的 BOPF 框架进行比较。 两个框架的实现原理类似。
在云世界中,如果您想增强订单履行流程,与我们之前介绍的 SAP CRM 相比,限制相对较多。
在Cloud Application Studio中,合作伙伴进行扩展开发,所有可以扩展的点都以钩子的形式表示,如下所示。
可利用这些挂钩的合作伙伴业务扩展开发已在此处完成。 某些挂钩可能有特定的读取和写入限制。 例如,在执行标准 SAP BO 加载逻辑后调用 AfterLoading 挂钩。 在这个钩子实现中,SAP不允许对BO节点的标准字段进行写操作。 避免合作伙伴增强功能对 SAP 标准流程产生的影响。 我的一些顾问朋友可能会问,这些钩子不是 SAP Netweaver 的传统业务插件 (BAdIs) 吗? 是的,这在概念上是有道理的。 需要注意的是,这些钩子创建后,并不是以BAdI实现的形式存储在ABAP后台,而是以类似于下图所示的BOPF决策的ESF2决策的形式存储在ABAP后台。
让我们看看如何使用 SAP Kyma 满足类似的要求。 在使用Kyma之前,大家应该清楚地了解Kyma是什么以及SAP为什么开发它。 上一篇文章牛顿站在巨人的肩膀上:库伯恩etes和SAP Kyma已经介绍了这两个问题的答案,本文不再赘述,直接举例。
假设您想要增强 SAP Hybris Commerce 订单流程,并将在 Kyma 中实施的自定义检查流程添加到标准欺诈检查中。
如下图所示,浅蓝色矩形框代表我们使用 Kyma 实现的自定义欺诈检查逻辑。
增强了哪些具体检查逻辑?从采购订单中检索下单客户的客户 ID,并将其连接到 Kyma 的 SAP Marketing Cloud 和 SAP 验证您的客户通过调用云平台提供的服务。 Kyma 检索验证结果后,将其发送回 Commerce。
具体步骤如下。
1. 首先,登录 Commerce 后台页面并定义一个 ID 为 EXTERNAL_KYMA_FRAUD_CHECK 的新操作。 如果有做过ABAP开发的朋友,这个动作会很容易理解。 这可以与 ABAP 的操作配置文件进行比较,后者用于存储和维护合作伙伴扩展。
2.进入Kyma控制台页面:
选择stage,点击Lambdas进入编辑页面输入:
p>
创建一个新的 Lambda 函数并将其命名为“fraudcheck2”。 所有的扩展逻辑都写在这个函数中。
此功能自动创建的标签对于 Kubernetes 资深人士来说应该很熟悉。 这个标签其实和你实际工作中使用的云笔记本、图片管理软件标签的功能是一样的。 这些键值对允许用户灵活地对 Kubernetes 对象进行分组以进行高效检索。
这个标签概念不是 Kyma 发明的,而是 Kubernetes 的标准功能。
函数触发器允许您指定哪些事件触发这些 Lambda 函数的执行。 思路和上面介绍的SAP CRM功能的注册是一样的。 选择第一步定义新建action后对应的事件:
对于Lambda函数的具体实现,应该有做过nodejs开发的朋友,我相信这对你来说并不陌生。
首先,第 18 行和第 19 行从事件输入参数对象中检索事件的订单代码,然后第 26 行使用 OCC(Omni Commerce Channel)Restul API 检索订单代码并获取详细信息。从细节开始订购。 然后,它调用第 30 行的代码根据客户 ID 检索客户详细信息,并使用第 37 行和第 40 行的代码检查客户的电子邮件地址是否有效以及客户是否已订购产品。 第一次。
请注意,我们将暂时注释掉代码的第 43 行和第 46 行,稍后再启用它们。
现在让我们测试一下。 在 Commerce 中下订单并记下订单 ID 2139。
返回商务后台页面,输入2139即可查看并查询您刚刚下的订单的业务流程。 :
这里根据 ID EXTERNAL_KYMA_FRAUD_CHECK 搜索,找到您在第一步中创建的 Kyma Action 对应的进程日志记录:
我们来查看一下该订单的欺诈检查记录:
p>
此欺诈点击报告查看测试结果。 这种从左到右的标签样式与 Fiori 和 ABAP Webdynpro 非常相似。
通过上面介绍的电子邮件有效性检查,您可以检查这是否是您的第一笔订单。
电子邮件检查结果:您的电子邮件地址有效。
第一次订单检查返回的分数为 100。根据您当前的商务资料,此结果被视为第一个订单。 具体配置文件的位置与本文主题无关,因此这里不再详细讨论。
接下来,返回 Kyma 中的 Lambda 函数编辑器,添加之前注释掉的函数,该函数从 Marketing Cloud 检索联系地址并调用 SAP 中的业务合作伙伴服务云平台评论一下。 。 重新启用该功能。
启用后,保存并进入服务目录。 该组件也是 Kubernetes 提供的标准组件。 Kyma 在此基础上构建,允许您导入第三方服务以与 Kyma 的 Lambda 函数一起使用。
这里可以看到已经导入了很多第三方服务。 事实上,您可以将此界面与 SAP Cloud Platform 的服务市场进行比较。
为 SAP Cloud Platform 选择业务合作伙伴服务:
接下来的步骤是: SAP Cloud Platform 服务也是如此,您首先在其中创建一个服务实例。
接下来,创建基于此服务实例的绑定。
绑定类型设置为函数绑定,绑定目标设置为您之前编辑的 Lambda 函数。
请尝试再次订购。 下订单的客户选择了与第一个订单相同的客户:
现在,这第二个订单的欺诈报告还包括另外两条记录:
首先检查第二次初步检查。 该记录的得分为 0,这与预期结果一致,因为这不是该客户第一次执行测试。 订单:
查看Marketing Cloud服务返回的结果:
从商家返回的结果中可以查看如果订购SAP Cloud Platform合作伙伴服务的客户没有对应的经营者。党卫军伙伴。
本文中的示例使用 Kyma 访问 Marketing Cloud 和 SAP Cloud Platform 服务,以便在商业订单流程中执行额外的欺诈检查。 从商业角度来看,这很有意义。 现在,我们从更技术的角度来介绍一下这种基于微服务架构的订单编排增强。
祝大家新年快乐。
相关书籍
巨人肩膀上的牛顿:Kubernetes 和 SAP Kyma
运行 SAP 的 SAP UI5 应用程序Kubernetes 上的 UI5 应用程序(第 1 部分)
在 Kubernetes 上运行 SAP UI5 应用程序(第 2 部分)
获取更多 Jerry 原创文章,请关注公众号“王子熙”。
p>
评论前必须登录!
注册