Skip to Content
Author's profile photo Tobias Trapp

What is the “Plus” in BRFplus?

Carsten Ziegler did a great job promoting BRFplus an SCN in blogs, with his book and SAP TechEd lessons. He also published a very interesting paper on the differences between BRF and BRFplus: http://scn.sap.com/docs/DOC-4559. It seems to me that BRF was quite unknown because it was mainly used in the SAP for Insurance Solution and in contrast BRFplus is the successor of BRF and all other rule technologies with the ABAP world. For those who don’t know the differerences between BRF and BRFplus I will summarize some important points and their consequences:

  • BRF has poor editors compared to BRFplus. It’s more difficult to create and to analyze artefacts.
  • BRF rules are more complex since you need additional expressions to access the context. Another reason for complexity is that you don’t have expressions like decision tables, so you had to do it all on your own.
  • As a consequence BRF developers sometimes defined own expression type and used sophisticated expressions for their purposes. And of course they wanted to reuse them which also increases the complexity of the BRF rule sets because you have to take care of side effects.
  • BRF artifacts are identified using application, type and name. If you can use only one BRF application (because the SAP supports only access to one application) you have to be very careful and use difficult naming conventions to keep order over your rules. When moving from BRF to BRFplus the naming conventions will often stay because otherwise parallel maintenance and compararison will become difficult in the implementation phase.
  • Last but not least: as a consequence of above mentioned drawbacks most BRF rule sets became too complex that only experts know how to change them.

·      Another drawback of BRF was the speed of execution because of interpretation. When I first came in contact with BRF in release 6.20 the problem was visible in the debugger: when working with simple expressions there was a deep inheritance hierarchy and since ABAP has in release 6.20 (perhaps this changed) no mechanism of VTABLEs the speed was very poor. As the consequence BRF experts sometimes tried t change the rules to optimize their execution speed which often make them too complex. In BRFplus this is not necessary but BRF experts sometimes tend to optimize rule sets too early.

In my last blog about BRFplus I discussed architecture principles of BRFplus applications that in fact apply to every rule based systems architecture: http://scn.sap.com/community/brm/blog/2013/08/11/architecture-of-brfplus-based-applications. Now I want to discuss what those differences mean for implementation projects.In my opinion using BRFplus can make the implemented rules more tranparent, it allows you to be more agile and focus on business processes because you don’t need to care about pesky technical weaknesses of BRF. But this also means that BRF experts who start working with BRFplus hat to question their BRF practices and change their mind. In this blog I’ll discuss only some aspects and I would like open the discussion and I hope as a result I’ll be summarize the discussion to give BRF experts a concrete advice when starting with BRFplus.

Difference between BRF and BRFplus from the viewpoint of an Implementation

What does this mean for BRF experts who enter the world of BRFplus and know only a little about the features of BRFplus?

  • At first they ask for naming conventions because in the past they are the only way to control complexity. My answer to this question is very simple: If they want to use their old naming conventions they can do it but this shouldn’t slow down the implementation of a BRFplus implementation. Since all objects are identified using GUIDs you can rename objects very quickly. So my first advice is: start working with BRFplus and rename the objects afterwards since this is very simple in BRFplus.
  • A crucial aspect is reuse. Since BRF has much overhead compared to BRFplus reuse makes sense although it is difficult because of side effects. For BRFplus my answer is that you should try to reduce the complexity and do reuse only if it is absolutely necessary.
  • As I already mentioned in BRF artifacts are identified using names and not GUIDs. This makes it possible to define expressions that use standardized elements that are centrally governed and can be easily “injected” in BRF applications for creating a common reuse layer which is useful if the BRF “frame” (elements, functions and some expressions) are developed in a central manner (think of a concern in business) and rules, rule sets and additional expressions are developed by local companies belonging to the same business group. In this case reuse of elements between BRFplus applications can help you but also increase the complexity  may come to point that the use of SAP NW Decision Management may be absolutely necessary. I think in this case it would be interesting to discuss BRFplus design patterns.

In the following I would like to discuss a very simple BRFplus design pattern for reuse:  

  • When creating a new BRFplus application usually all my elements and expressions are reusable and potential candidates for reuse. Procedure call expressions arte good candidates for reuse since it indicates that there is a functionality that can’t be done in BRF (think of calling BAPIs) or is too difficult to be implemented in terms of BRFplus.
  • But even if I identify candidates for reuse I’ll question whether reuse is necessary especially if I move these expressions in a lower “basis” application because reuse makes only sense if all “client” applications can be changed at the same time if the expression changes otherwise there is the danger of unwanted side effects. This is not surprising because we expect the BRFplus runtime (another “basis” application) to be stable, too, so that changes don’t affect other BRFplus implementations.

  So my current best practice is currently the following:  

  • I reuse the context elements and use variables only if necessary.
  • Expressions are reusable but I try to reuse them only when necessary. I think in BRF my reuse factor was a little higher compared to BRFplus.
  • Rules are sometimes reusable but in many cases they are unnamed and “tied” to a ruleset. I make a rule reusable when it makes sense to me from a business perspective and the BRFplus represents a real business entity with semantic that makes reuse likely.
  • In BRF I defined huge projects and tried to reuse many expressions because of technical reasons and in BRFplus my advice is to introduce more redundancy and focus on the business perspective when doing reuse.

But I want to say that these are only a rule of thumb when comparing  BRF and BRFplus implementation – and depending on the project I’m working in I it may be possible that I will favor a different solution.  

Summary

Besides new editors, code generation and so on, BRFplus has really unique features compared to BRF:

  • It allows rapid prototyping: Just start developing a set of expressions and rules and discuss them with a domain expert.
  • We can use BRFplus in small projects for new applications because we don’t need sophisticated naming conventions like in BRF in many cases. In fact I recommend to focus on readable names that lead to business rules that business users can read. If naming conventions should be necessary then renaming objects is a very easy task in BRFplus.
  • We can focus on business logic and don’t need to focus on performance issues like we had to do in legacy BRF. We can even try to create readable rules by using tests and short texts.
  • Even analyzing rules is much easier: Sometime colleagues just mail BRFplus applications to me so that I can install, analyze and comment them. This is not thinkable in BRF where you need special test systems. And transparency and agility will even more when working with SAP NetWeaver Decision Management.

Opening the Discussion

I would like to open the discussion:   

  • What are you experiences when moving from BRF to BRFplus?
  • What do you as BRFplus expert to a BRF expert when starting with BRFplus? What is the first advice you give to him or her?
  • And even if you don’t know legacy BRF, how would you, as BRFplus expert, reuse objects?
  • What effect has the use access of BRFplus artifacts in your projects? Is reuse simpler compared to BRF?
  • What are your best practices for documentation? How do bridge the gap between internal documentation and description of rules in Word documents of domain experts who define the rules?

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Tammy Powlas
      Tammy Powlas

      Tobias,

      My experience with BRFPlus is very limited (see BRF Plus in Solution Manager 7.1 – IT Service Management Support Team Determination ) however I hope to use it more in the future for the SAP Utilities solution, in areas of Dunning, possibly more.

      In terms of documentation we still use MS Word.  If I have time, I try to document it on SCN to share with others (and yes I've referred to my own SCN documentation at work)

      We aren't a big shop, so only a few of use BRF Plus right now.  I expect that to change next year.

      Author's profile photo Tobias Trapp
      Tobias Trapp
      Blog Post Author

      Thank you for your feedback. I would like to read what you are thinking about BRFplus and what features do you misss. When more BRFplus is used in you company I'm sure you will have great ideas for further improvements.

      Best Regards,

      Tobias

      Author's profile photo Otto Gold
      Otto Gold

      Hi Tobias,

      I like your motivation and different topics, very cool.

      I am also very interested in BRFplus and want to understand this blog. I have read it twice already, but it is too "expert" for me I guess.

      It is a sure thing your blogs are not meant to replace documentation etc., of course not, but would you consider adding pictures and/ or examples? At least for me that would double the value of the blog in a moment.

      Anyway, keep the good work going!

      Cheers Otto

      Author's profile photo Tobias Trapp
      Tobias Trapp
      Blog Post Author

      Hi Otto,

      you are right - the blog is hard to understand because it is written for people who know BRF: the predecessor of BRFplus.

      For those old-school people (including me) moving from BRF to BRFplus is not easy since BRFplus (and SAP NetWeaver Decision Management) changes everything: creation, documentation, governance, logistics and governance of rules. We have to learn to use catalogs instead of naming conventions, we can distinguish (and reuse) parts of rulesets belonging to an application and parts which have to be defined and governed by business process experts.

      I think this blog is meant for people who are trying to migrate complex BRF rulesets to BRFplus or BRF experts who create their first BRFplus application. I would appreciate to read about their experiences and discuss what they learned. In a second step I plan to collect this feedback and add my own experience and I will write a follow-up blog which will be much more readable: "Moving from BRF to BRFplus - the most important Lessons".

      Best Regards,

      Tobias