共计 4200 个字符,预计需要花费 11 分钟才能阅读完成。
这是 Jerry 2021 年的第 44 篇文章,也是汪子熙公众号总共第 321 篇原创文章。
在 SAP ABAP On-Premises 产品工作过的 ABAP 开发人员,可能都接触或者据说过 Business Rule Framework(简称 BRF,前面还有升级版 BRF+)这个框架。
SAP BRF+ 次要蕴含实现存储性能的规定仓库 (Rules Repository),以及依据用户输出,剖析并执行规定,返回给用户处理结果的规定处理器(Rules Processor) 两局部。前台提供的是基于 ABAP Webdynpro 界面的规定编辑器,反对决策表,决策树和公式等多种形式的规定建模形式。规定仓库和规定处理器位于 ABAP 零碎后盾。
理解 SAP ABAP BRF+,有助于咱们学习其余的业务规定解决方案。比方 SAP Commerce Cloud,抉择的是反对 Java Rules Engine API 规范的开源业务规定引擎和企业框架 Drools.
无论是 SAP ABAP BRF+ 还是 Drools,只管其技术实现细节不同,但工作场景和实现的需要都统一:
- 业务规定制定者,在零碎里依据建模工具保护业务规定
- 业务规定解决方案暴露出接口,消费者调用该接口,传入输出,失去业务规定处理器执行后返回的输入。
本文简要介绍 SAP Business Technology Platform(下文简称 SAP BTP)上的 Business Rules Service.
登录 SAP BTP Cockpit,在 Service Marketplace 里找到 Business Rules Service,其形容信息强调,这是一个基于云的业务规定解决方案。
Jerry 经验了从 SAP HANA Cloud Platform,到 SAP Cloud Platform,再到现在 SAP Business Technology Platform 的变迁史,切身感受到,随着工夫的推移,开发人员生产这些云端服务的步骤越来越简捷了。
以前利用开发人员在 Service Marketplace 抉择一个服务后,在应用之前,须要手动配置 Entitlements 和进行用户角色调配等工作。而现在应用 SAP BTP 提供的 Boosters,能将这些繁琐的人工配置自动化。
点击 Boosters 面板里的 Set up account for Workflow Management, 能够一键实现 SAP BTP 上应用 Business Rules 的筹备工作。这个辅助器同样也是实现应用 SAP BTP Workflow(工作流)所需配置的入口,后续 Jerry 介绍如何应用 SAP BTP Workflow 服务的文章里还会提到。
该 Boosters 帮忙咱们主动实现了如下配置工作:
(1)调配服务限额
(2)订阅 Business Rules 治理的 SaaS 利用
(3)创立 Business Rules 服务实例
(4)创立生产 Business Rules 所需的 Destination
(5)给以后用户调配必要的用户角色等权限
下图是 Boosters 为咱们调配好的 Entitlements 里蕴含的 Business Rules Service Plan:
以后登录用户曾经被主动调配上了应用 Business Rules 服务所必须的用户角色组:
- WorkflowManagementAdmin
- WorkflowManagementBusinessExpert
- WorkflowManagementDeveloper
- WorkflowManagementEndUser
SAP BTP 编辑 Business Rules 的入口,从 Subscriptions 面板里的 Workflow Management 订阅超链接进入:
https://304a49cetrial.cockpit…
在关上的 Fiori Launchpad 里,抉择 Manage Rule Projects:
创立一个新的我的项目,取名为 DetermineEquipmentJerry01:
SAP BTP 上的 Rules Project,蕴含了 Data Objects,Rule Services,Rulesets 和 Rules 几局部,上面别离介绍。
- Data Objects:相当于 ABAP Data Dictionary 定义的数据结构,用来定义业务规定的输出和输入模型。
比方设计一条给新员工入职(onboarding)调配工作电脑的业务规定,输出是员工信息(Employee), 输入是调配的电脑型号(EquipmentInfo).
Employee 构造蕴含的属性:
下面的构造能够类比 ABAP Data Dictionary 里形容 Employee 信息的 Structure:
- Rules:定义具体的业务规定。SAP BTP Business Rules 反对 Decision Table 和 Text Rule 两种类型的规定模型。
上面这个决策表蕴含的两条规定的语义是:
- 如果员工所在国家代码为 USA,就给其调配 ID 为 106847 的电脑;
- 如果员工所在国家代码为 DEU,就给其调配 ID 为 106840 的电脑。
Text Rule 类型的规定,本文不会用到,但未来 Jerry 介绍 SAP BTP Workflow 的文章会提到,所以这里也顺带举个例子。
下图 Text Rule 的语义是,如果电脑的价格大于 800,就将 EmployeeApproval 构造的 ApprovalNeeded 字段设置为 true. 这个字段在后续的 Workflow 文章介绍里,会触发额定的审批流程。
始终记住咱们正在应用的是基于云的 Business Rules 服务,规定模型创立结束之后,得可能被外界生产才行。
因而新建一个 Rule Service,咱们能够将其类比成反对 RFC 调用的 ABAP Remote Enabled Function Module:
定义这个 Rule Service 的输出 (Input) 构造为 Employee,输入 (Result) 构造为 EquipmentInfo. 当然这两个 Data Objects 必须提前创立好。
最初,创立一个 Rule Set,将下面创立的蕴含 Decision Table 的 Rule,以及 Rule Service,顺次调配给该 Rule Set:
实现 Business Rules 编辑之后,点击 Release Version,公布一个新版本:
创立好 Release 版本的 Rule Service 之后,将其部署到 Cloud 运行时环境:
最初,咱们在 SAP API Hub 提供的测试工具里,生产这个 Business Rule Service.
登录 SAP API Hub,搜寻关键字 business rule:
应用 Rule Execution API for Cloud Foundry:
在应用 HTTP Post 调用部署好的 Rule Service 之前,咱们须要先在 API Hub 的测试页面里,新建一个 API Environment,指向被测试 Rule Service 所部署在的 SAP BTP trial 环境。
创立一个 API Environment,须要实现下列字段的保护。
runtimeurl 字段,将上面 Url 中的 region,替换成理论值:
bpmruleruntime.rule.cfapps.<region>.hana.ondemand.com
比方我应用的 SAP BTP 运行环境的 Region 为 Singapore 即 ap21:
因为 SAP BTP Business Rules Service 采取 OAuth 2.0 作为服务生产的认证形式,因而还须要在环境设置里,保护 Client ID,Secret 和 tokenurl.
这三个值从 SAP BTP Cockpit 里取得。给 wm_businessrules 创立一个新的 Service Key:
在创立好的 Service Key 里,能找到这三个字段的值:
实现所有必填字段的保护,保留 Environment,命名为 Jerry Business Rule. 在 API Hub 测试工具里抉择该环境,而后点击 Invoke Rule Service,筹备以 HTTP Post 的形式,生产部署在 SAP BTP 上的 Rule Service.
在 HTTP 申请注释里,保护待调用的 Service ID,Version 和 RevisionVersion, 这三个字段值在咱们之前做 Release Version 操作时能找到。
其中版本号 1.0.1,须要换算成格局 000001000000000001.
顺次进行测试,首先将申请里的 countryofCompany 字段保护为 USA,失去返回的电脑 ID 为 106847:
将 countryofCompany 值改成 DEU,失去的电脑 ID 为 106840:
测试后果和咱们之前在 Business Rule 里保护的 Decision Table 里的值统一。
有了本文 Business Rules 的根底,后续 Jerry 也会简要介绍 SAP BTP 上的 Workflow(工作流), 敬请期待。
更多 Jerry 的原创文章,尽在:” 汪子熙 ”:
更多浏览
- 应用 SAP iRPA Studio 创立的本地我的项目,如何部署到 SAP 云平台上?
- 在 SAP 云平台上部署和运行 Docker 利用
- 应用 SAP 云平台 Mobile Service 开发挪动利用
- SAP 云平台上的 Low Code Development(低代码开发)解决方案
- SAP 智能机器人流程自动化解决方案
- 在 SAP 云平台 ABAP 编程环境上编写第一段 ABAP 程序
- 云端的 ABAP Restful 服务开发
- 应用 abapGit 在 ABAP 零碎和 SAP 云平台 ABAP 环境之间进行代码传输
- SAP 云平台上的 ABAP 编程环境里如何生产第三方服务
- ABAP 开发者上云的时候到了 – 当初大家能够收费应用 SAP 云平台 ABAP 环境的试用版了
- 学而不思则罔 – SAP 云平台 ABAP 编程环境的由来和实用场景
- SAP 云平台里的三叉戟利用
- SAP 2019 TechEd Key Note 解读:云时代下 SAP 从业人员如何做二次开发?
- 有哪些 ABAP 关键字和语法,到了 ABAP 云环境上就没方法用了?
- 应用 SAP Cloud Application Programming 模型开发 OData 的一个理论例子
- SAP 云平台和第三方 CRM 解决方案 (火锅) 互联
- 应用 Java+SAP 云平台 +SAP Cloud Connector 调用 ABAP On-Premise 零碎里的函数
- 应用 JDBC 操作 SAP 云平台上的 HANA 数据库
- 用 JavaScript 拜访 SAP 云平台上的服务遇到跨域问题该怎么办
- 企业数字化转型与 SAP 云平台
- SAP 云平台,区块链,超级账本和智能合约