即便努力去尝试最小化 SAP 系统中的自定义内容, 通常还是无法避免大量的自定义业务逻辑. 在过去, 这意味着需要在系统的各种地方引入自定义 ABAP 代码, 包括 user-exits,enhancement,BAdi 和自定义程序等等. 考虑到 SAP 系统的复杂性和相互依赖性, 人们不得不小心翼翼地管理基于 ABAP 的自定义内容, 以保证业务逻辑在不同的功能区域一致, 且不重复.
现在, Business Rule Framework Plus https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=428114190 (业务规则框架, 以下简称 BRFplus 或 BRF+)来了, 它是 SAP 推出的新功能, 可以在一个位置, 通过可复用的方式管理你的所有自定义业务逻辑.
本文链接: http://www.cnblogs.com/hhelibeb/p/9021665.html
英文标题: BRFplus - a hidden gem within your SAP system http://www.xpertminds.net/blog/2015/3/9/brfplus-a-hidden-gem-within-your-sap-system
可用性
通常来说, BRF + 功能在任何基于合适版本的 SAP NeWeaver 的系统都可用. 要快速地检验它是否在你的系统上可用, 只需要执行事务代码 BRFPULS 或者 BRF+. 如果你看到了在新浏览器窗口打开的 web 应用, 那么基本上你的环境允许使用 BRF+.(如果不能的话打开的话, 有可能是系统本身不支持, 也有可能是没有配置 webdynpro 相关服务等)
值得注意的是, 在 2013 年, SAP 发布了一个名为 Decision Service Management(DSM)的解决方案, 它建立在 BRF + 的基础上, 并且添加了某些新的功能. 最重要的是 DSM 允许跨 SAP 系统和实例的中央业务规则管理. 然而, DSM 需要额外的许可证, 相反一般 BRF + 通过已有的 SAP 许可证就可以使用. 我们发现对绝大多数客户来说, DSM 的功能有点过了头, BRF + 则更适合使用.
使用场景
现在你知道了一点 BRF + 的历史, 那么在你能用它来做什么呢? 这里是一些真实世界利用 BRF + 满足业务需求的例子:
输出表单中的 Logo 判断
服务提醒文档的默认优先级和截止日期判断
销售订单的默认工厂判断
SAP Transportation Management 中的默认载具判断
从技术的观点看, BRF + 最常见的用例是在 user-exits 和增强中的自定义业务逻辑实施中. 事实上, 在这些情况下, BRF + 是我们实现自定义业务逻辑的首选实现手段. 它在较高层面上可以被描述为 2 步:
在 BRF + 中创建一个 function, 依据需要的业务逻辑, 它接收输入, 进行处理, 然后给出输出结果.
通过 ABAP 在 user-exits/BAdi/enhancement / 自定义程序等地方调用先前创建的 BRF + 应用.
很重要的一点是, 在上述的 (aforementioned) 方式中你还是需要写一些 ABAP 代码来调用 BRF+ function.(和完全使用 ABAP 代码实现业务逻辑的)区别在于, 通常来说, 在这种情况下, ABAP 代码只负责调用 BRF+, 不会直接包含业务逻辑. 你可能要问这样做的好处在哪里. 它的好处是:
BRF+ function 易于复用, 通常可以大大地减少系统中重复业务逻辑实现的数量.
BRF + 包含一个巨大的 expression 库, 可以加速映射业务规则的开发过程, 特别是这些业务规则比较复杂的情况下. 使用 ABAP 编码来从零开始 (from scratch) 实现某些东西, 也许可以花上数天甚至数周的时间, 但是在 BRF + 里只要使用 expression 就可以快速地建模实现.
你的所有自定义业务逻辑可以在一个地方实现 --BRF + 事务. 你不需要从庞大的自开发程序, 增强中搜寻代码以调整现有的业务逻辑.
对现有的业务逻辑的简单调整可以经由非编码的方式实现, 不需要开发人员的参与.
最后一点值得详细阐述 (elaborating on).SAP 通常建议通过 BRF + 工具让业务用户代替 ABAP 开发者来作为他们自己的逻辑的维护者. 坦白说, 这种建议有点夸张(exaggerattion). 实际上, BRF + 元素(function, expression 等) 的创建依然是一件相当技术性的活动. 大部分没有技术背景的 SAP 专家可能会发现, 想要掌握 BRF + 的全部内容是件具有挑战性的事情. 了解一些基本的编程概念, 如变量和循环, 会对 BRF + 的使用起很大帮助, 即便你只是通过鼠标来创建这些对象, 而不是 (as opposed) 写 ABAP 代码. 但是撇开陡峭的学习曲线不说, 在具备足够多的学习时间和努力的情况下, SAP 功能分析师当然是可以精通 BRF + 的, 由此便可以在不依赖开发者的情况下构建复杂的自定义业务逻辑. 然而, 业务用户完全是另一回事. 业务用户对 BRF + 进行某些实验性的调整是可能的, 例如改变已有的 decision table 中的值, 但是 BRF + 内的主要变更还是需要由 IT 团队进行.
特性
BRF + 中包含很多了不起的特性, 使得它是一个杰出的业务规则框架.
expressions
在许多方面上 expressions 是 BRF + 中第一个令人心动的东西. 它们是预包装的逻辑对象, 可以在 BRF + 环境中大大加速业务规则的建模. 虽然 BRF + 中支持多种表达式类型, 但最常用的一种是 Decision Table. 如果你熟悉 SAP 系统中的条件技术, decision table 会给你相似的感觉, 并且它会提供扩展性更强的功能. 除了 (In addition to) 可以从表的顶部检索到底部直到找到匹配的记录为止外, 你也可以维护输入值为多值的 range,sets, 通过空白来表示任意值, 以及使用其它一些逻辑操作符等.
customizing and master data applications
自定义和主数据应用 (customizing and master data applications) 是 BRF + 中的一个灵巧的特性. 自定义应用需要使用 SAP transports 来在不同 SAP 系统之间移动修改, 相反主数据应用允许直接在每个 SAP 系统和 client 直接进行修改. 在你将主数据值, 比如客户, 供应商, 物料等是业务逻辑的一部分时特别有用. 记住因为在多数情况下 BRF + 通过 ABAP 调用, function 本身需要存在在一个自定义应用中. 但是这些自定义级别的 function 接下来可以利用存在于主数据级别应用下的 expressions(例如 decision tables). 一言蔽之(In a nutshell), 你可以在一个业务规则中混合使用自定义和主数据 BRF + 对象.
user interface
BRF + 中的建模大多通过 "点击" 的用户界面进行, 通过事务代码 BRF + 访问它. 你可以通过简单地右击屏幕左侧的节点来创建新的对象, 并且通过上下文菜单选择合适的条目.
api
你也可以通过 API 和 BRF + 交互. 这意味着你不仅可以通过事务 BRF + 来创建和更新 BRF + 对象, 你也可以通过标准交付 ABAP 类和方法 (standard delivered ABAP classes and methods) 实现同样的事情. 例如, 在某个场景中我们需要存储美国的柴油平均价到 BRF + 的 decision table 中. 我们可以创建一个自定义 ABAP 程序通过公网服务来查找上周的柴油价格, 并且最后经由 BRF+ API 更新 decision table.
web services
BRF+ functions 可以很容易地暴露为 web services. 这意味着你可以同时在 SAP 和非 SAP 系统中消费 BRF + 业务逻辑.
HELPER TOOLS
BRF + 伴随着大量的工具, 可以帮助你开发, 导入 / 导出, 检查和 BRF + 对象和排查故障. 其中某些工具可以从 BRF + 事务中的菜单访问, 不过最简单的查找他们的方式是在 SE38 中运行程序 FDT_HELPERS. 较早地了解这些工具, 你就可以在将来省下很多时间. 例如, 下图里选中的工具允许你快速地识别和解决大部分有关系统间传输 BRF + 对象的问题.
总而言之, 大部分 SAP 客户都可以在不需要额外许可证的条件下使用 BRF+. 我们鼓励你们仔细了解 BRF+, 并且开始为你们的自定义业务逻辑需求使用它.
来源: https://www.cnblogs.com/hhelibeb/p/9021665.html