SAP BRFplus与决策树
**SAP BRFplus介绍**
Business Rule Framework
Plus(BRFplus)是由SAP开发的强大的业务规则管理系统。它提供了一种灵活高效、直观的方式来定义、维护和执行组织内的业务规则。
**作用与优势**
BRFplus允许企业在用户友好的图形环境中构建复杂的业务规则。这些规则可以独立于底层应用逻辑进行定义,并且在不同的应用中被重复使用,从而使得管理和更新规则随着业务需求的变化更加容易;同时也便于组织进行集中管理业务规则,使其对业务用户更加透明和易于访问。它使非技术用户能够积极参与定义和维护业务规则,减少对IT部门进行规则制定和更改的依赖。
可以举一些BRFplus的应用场景:
• 验证和检查数据的状态和有效性
• 匹配责任、选择合适的产品和位置
• 计算成本,费用,风险等各种指标
• 作为一种技术配置引擎
**组件与架构**
该框架支持各种类型的规则,包括决策表(Decision Table)、决策树(Decision Tree)、搜索树(Search
Tree)、公式(Formula)、数据库查找(DB Lookup)、过程调用(Procedure
Call)等等。它提供了广泛的规则版本控制、模拟、测试、和监控功能,确保业务规则正确、规范、有效的运行。
BRFplus是SAP NetWeaver ABAP 堆栈的一部分,所有基于 SAP NetWeaver 的 SAP 应用程序都可以在 SAP
系统的边界内访问 BRFplus。通过BRFplus
创建的函数作为后端应用程序访问的API。无论规则有多么复杂,在外部看来,函数就相当于一个规则的容器。规则有输入(上下文)和输出(结果),所有输入输出对象都由BRFplus建模中定义的元素、结构、表组成。
**SAP BRFplus建模**
**基本流程**
实施一个BRFplus项目可以通过以下流程来进行
如流程图所示,通过事务码BRF+ 或
BRFplus打开BRFplus的维护界面,首先创建一个应用程序,然后创建一个提供外部使用的函数,根据业务需求定义函数的输入(Context),内容(Top规则表达式),输出(Result)。其中Top规则表达式中定义了业务规则的具体内容,规则中可能还嵌套了一些其他子规则或函数。当这些对象都开发完成之后便可进行激活,模拟测试,最后集成到应用中进行消费。
下面我们以决策树(Decision Tree)作为一个例子来进一步介绍BRFplus整个的实施过程。
**使用决策树表达式**
在SAP
BRFplus中,决策树是一种常用的规则建模工具,用于基于特定条件和判断路径制定决策。决策树由一系列节点组成,每个节点代表一个决策或一个条件。通过在节点之间进行连接和分支,可以形成一个完整的决策树。
决策树的原理很简单,它是一个二叉树,非叶子节点被叫做条件节点(Condition Node),
用于表示某种条件或规则的判断,返回一个布尔值,根据其判断结果向左或向后选择下一个孩子节点来做进一步的判断或决策。一旦到达叶子节点,它便需要进行一个决策,即要么返回一个结果(Result),或执行一个动作(Action),然后终止。
在BRFplus中创建决策树时,可以根据需要添加和配置这些节点,并定义它们之间的关系。例如,可以设置条件节点的条件表达式,以确定是否满足某个条件并移动到下一个节点。决策节点可以用来制定不同的决策路径,根据条件节点的判断结果进行选择。
通过使用决策树,业务用户可以以可视化和直观的方式定义复杂的业务规则。决策树可以轻松地扩展和维护,使业务规则的管理更加灵活和易于理解,并且不需要编程。
很直观的看出决策树每一步的判断逻辑,做好之后,可以直接点击开始模拟进行测试。
为了提供给外部程序使用,可以创建一个函数,函数的TOP规则表达式可以直接设定为决策树,该函数的上下文会传递给决策树的上下文,函数的上下文不必完全和TOP规则表达式一致,但需要保证TOP规则表达式的上下文都含于函数的上下文中
这种情况下函数和决策树的测试结果是一致的。
当然,真实的业务情况并不会这么简单。他可能还需要考虑多重判断和调用SAP自开发功能模块。
**使用循环表达方式**
以下是将使用一个循环表达式作为函数的TOP规则表达式。循环表达式中将表作为上下文,返回一个相同结构的表,循环中设定Where条件,循环体内添加条件规则,使用决策树的输出值做判断,当满足条件时更改表中的字段值,规则中可以定义多个步骤,可以调用其他规则,赋值,写表操作,也可以定义退出条件和继续条件,它就像运行程序一样按照给他定义的规则依次向下执行,不过它比程序更加直观。
**模拟测试**
这时函数测试时可以同时输入多组测试数据
测试返回的结果与预期相符
**跟踪分析**
我们还可以显示规则执行的所有明细过程,通过监控日志可以分析出产生结果的决策路径,在哪一步被触发,在哪一步被跳过,哪一步值被更新,找出可能存在的问题。
**使用过程调用表达式**
ABAP函数调用也是BRFplus规则成员中的一种,它的用法和其他规则一样,但是需要对参数做映射。OO函数调用也是支持的,操作大同小异。
**发布与消费**
BRFplus函数测试无误后,可以点击BRFplus界面上的按钮直接产生SAP调用代码,或者直接发布成RFC或者web服务
生成的RFC可以通过SE37访问,并直接测试,效果和BRFplus上类似
**总结**
总而言之,SAP
BRFplus的提供了多种进行业务规则建模的强大工具,它提供了一种直观和可扩展的方式来制定决策,并支持业务用户在不涉及编程的情况下定义和维护规则。从而简化业务流程、提高灵活性、降低成本并确保合规性。
**_\- END -_ **
作者:陈 鹏
审核:贾栋才
编辑:朱思聪