在这篇文章中,我想概述一下为saps/4HANA云设置混合扩展场景所需的步骤。我们在TechEd 2019的CAA604会话中也提供了这个场景作为迷你代码阻塞,提供详细的分步指南。
此处所示的用例是在SAP S/4HANA中作为自定义业务对象构建的奖金计划,您可以在SAP云平台上触发经理的审批工作流。
自定义业务对象及其ABAP业务逻辑开发为在SAP S/4HANA堆栈上运行的应用内扩展,鉴于工作流是在SAP云平台上运行的。
练习中显示的奖金计划应用程序仅用于教育目的,不用于生产用途。无法确保此扩展场景中使用的数据是根据所有国家和行业的适用法律要求以及业务需求(如数据生命周期要求)进行管理的
首先让我们看看SAP s/4HANA端的对象,在这个场景中,您需要:
在SAP云平台上您需要:
让我们一步一步地通过这些点,在这里我将向您展示如何创建相应的对象,需要什么编码或如何设置和配置某些功能。
让我们从SAP s/4HANA云端开始,定义自定义业务对象和通信设置。
自定义业务对象
作为先决条件,您的用户必须分配一个业务角色,其中包含业务目录SAP\ U CORE\ U BC\ U EXT和SAP\核心\u BC\外部\u TST。对于通信设置,大数据趋势,除了业务目录SAP\u CORE\u BC\u COM之外,您还需要
从Fiori启动板中的扩展性组启动应用程序自定义业务对象
在那里,您必须使用根节点BonusPlan和子节点Products创建自定义业务对象BonusPlan。作为功能确定和验证,必须选择"UI生成"和"服务生成"。
切换到"字段"选项卡。在BONUSPLAN节点上,我们需要以下字段:
发布状态链接到以下自定义代码列表:
在自定义业务对象BONUSPLAN的子节点产品上,我们有两个文本字段Product ID(文本20)和Product Description text 255)。
通过这些设置,您已经定义了数据结构或自定义代码业务对象,在发布期间将从中创建相应的数据库表和CDS视图。
但在发布对象之前,必须定义业务逻辑(操作)。切换到逻辑选项卡,在那里您已经找到保存前和修改后的事件。
此外,我们需要两个操作计算和请求批准,您必须在这里创建。
在本博客中,我们将重点介绍请求批准操作,它触发SAP云平台上的工作流。
您必须现在发布对象在开始编码之前,物联网,要生成所有后端对象,如表、CD视图、类、服务或UI。
发布后,您还必须通过"常规信息"选项卡上的"维护目录扩展"链接创建Fiori磁贴。
有关此主题和计算逻辑的其他信息,请查看有关自定义业务对象的教程(https://blogs.sap.com/?p=391857)。
您将在扩展目录中找到具有生成的Fiori元素UI的磁贴,或者,如果您在自定义业务对象的"常规"选项卡上单击"转到生成的UI"。
在这个BonuPlan UI中,您现在可以创建一个奖金计划实例:
让我们看看请求批准操作,并在其中添加一些编码。
返回到您的自定义业务对象,打开ABAP编辑器以获得请求批准操作:
最初操作为空,因此必须添加以下代码。
在使用中心TRY块进行一些声明之后开始,在开始时确定员工的经理。此编码存储在自定义库yy1\u business\u partners中。您可以在本博客的附录中找到编码。
下一部分是出站服务处理,啥叫大数据,其中http请求被发送到SAP云平台上的工作流。
您需要根据通信场景和通信安排创建一个http客户端,稍后您将创建它。
使用此http客户端,您可以准备并发送GET请求,以接收触发工作流所需的XSRF令牌。
如果您需要从请求中获得更多信息,可以使用跟踪功能,这是SAP S/4HANA中可扩展性的一部分。
最后一部分是POST请求的准备和一些错误处理。
消息正文包含您将与员工一起为工作流定义的结构(我们稍后讨论),经理和奖金数据。
要从SAP云平台发回经理的批准决定,您需要修补程序请求的此BonuPlan实例的guid。由于这不是此操作的导入参数,因此必须使用Bonuplan对象的CDS视图来选择它。
自定义通信场景
SAP S/4HANA和SAP云平台之间的通信(入站和出站)的设置从自定义通信场景的定义开始。
自定义通信场景方案包含入站和出站http调用的信息。
从扩展性组打开应用程序自定义通信方案,并创建一个名为YY1\BPWORKFLOW的新方案(与操作的ABAP编码相同)。
在"入站服务"选项卡上,必须为自定义业务对象创建条目:
在出站服务选项卡您必须为SAP云平台上的工作流服务创建一个条目,其URL路径为/workflow service/rest/v1
出站ID必须与操作的ABAP编码相同,在我们的例子中YY1\bpu-approval\u REST.
通信用户
如果您想访问Bonusplan OData服务(入站),您还需要设置一个授权方法。您可以使用多种方法,例如基本身份验证、证书或OAuth。
我们在本例中选择基本身份验证,您需要为其设置通信用户。
从通信管理组打开应用程序维护通信用户,并在其中创建一个新的用户名为的用户,说明和密码。
通信系统
在自定义通信场景中,您定义了服务的相对URL部分,运行此服务的系统被定义为通信系统。
从通信管理组打开应用程序通信系统,并在其中创建一个ID为(如CAA604)、名称为的新系统和主机名。