SAP中的BRF+

即便努力去尝试最小化SAP系统中的自定义内容,大量自定义业务逻辑通常还是无法避免的。在过去,这意味着需要在系统的各种地方引入自定义ABAP代码,包括user-exits,enhancement,BAdi和自定义程序等等。考虑到SAP系统的复杂性和相互依赖性,人们不得不小心翼翼地管理基于ABAP的自定义内容,以保证业务逻辑在不同的功能区域一致、且不重复。

现在,Business Rule Framework Plus(业务规则框架,以下简称BRFplus或BRF+)来了,它是SAP推出的新功能,可以在一个位置、通过可复用的方式管理你的所有自定义业务逻辑。

 

本文链接:

英文标题: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、通过空白来表示任意值、以及使用其它一些逻辑操作符等。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzgjz.html