Skip to Content

In the last months I spent much time helping people in the BRM forum on SCN. I realized how many devlopers started with BRFplus and made quick success. At a certain time typical problems occur: how do you transport rules? How do you analyze transports requests? How do you trace the results? Obviously DSM can help in these cases. Nevertheless many people are mastering BRFplus within shortest time and other people need more time. What is reason for it?

How did you learn BRFplus? What have been difficulties? How did you overcome them?

Before I present my personal point of view I would like to hear your story:

  • How did you start with BRFplus/DSM?
  • What was helpful for you?
  • What was misleading?
  • What was your breakthrough to success?

I would really appreciate if you share your experience in the comment section of this blog or start blogging about this topic.

My Personal Story

At first I was overwhelmed by the complexity of the framework and had many questions: which storage type have I got to choose? How do I structure my BRFplus application? What expression types should I choose?

Then I asked myself whether I should think of BRFplus as a framework or library. This is in fact a huge difference: most frameworks define rigid boundaries and you need strict development guidelines for using them properly. The reason is that frameworks rely on the principle of “inversion of control” – they call your code which is in fact a kind of plugin. And in fact BRFplus has some properties of a framework since it has en entry point (a function) and is modularized
using rule sets.

But then I realized that I can use BRFplus as a library that defines a language consisting of rules, formulas, Boolean expressions and decision tables. And then I used those expressions to formulate the business logic and I tried it to do so that business experts can understand it.

From this moment on it became very simple: I sensed a feeling of success. I started to refactor my rules and learned about using the UI efficiently. Later I learned more expression types, learned about rule logistics and extensibility and experts like Carsten Ziegler and Wolfgang Schaper gave me valuable advice. In fact they already wrote down most of their knowledge here so I read their whitepapers. So let me conclude: I succeeded when I stopped thinking of BRFplus as a framework and thought of it as a library.

Danger of Frameworks

Please don’t understand me wrong – I appreciate frameworks and SAP invented some very powerful framework like BOPF for example.

But frameworks have their dangers and problems: They are difficult and it takes some time to master them.  Once they are mastered developers get highly specialized and I learned that many team and development leaders don’t encourage their developers to learn about new frameworks and libraries and don’t promote that their developers learn something new.

BRFplus is a Toolbox – not a Framework – and you have to use it that way

From the point of view of a software architect BRFplus is a sophisticated framework and I encourage everyone who is interested in good ABAP development should to study its internal structure and design patterns. And you have to understand These patterns when you extend BRFplus But you shouldn’t think about it as a framework when you are creating rule systems and decision services. As I already mentioned I recommend to think about it as toolbox, language or library.

Unfortunately many ABAP developers know more frameworks than libraries and most of the time they work within borders of frameworks like BDT, enhancements of SAP standard software and so on. But this has to change in the future since I think the time of crating frameworks at SAP is over in my opinion. In fact SAP has many really mpressive and powerful frameworks but more and more libraries are developed at he moment.  The reason is simple: libraries are more flexible and allow people to create their own individual UIs and processes and this is the direction SAP is going right now.

Maybe you have a different opinion about this and I would like to discuss this as well but it is my belief that it will help getting successful with BRFplus.

To report this post you need to login first.

10 Comments

You must be Logged on to comment or reply to a post.

  1. Christian Dr. Drumm

    Hi Tobias,

    I just published a blog about my experiences integrating BRFplus with SAP CRM Rapid Applications:

    CRM Rapid Applications – An Advanced Tutorial (Part 2)

    • How did you start with BRFplus/DSM?
      • BRFplus was one of the first SAP technologies I started playing around with about 7 years ago. However, I never used it in a project until the integration with the SAP CRM Utilities products and your talk at sitMUC sparked my interest again.
    • What was helpful for you?
      • For me most helpful were some of the existing SCN blogs as well as asking questions in the SCN forum. The existing tutorials as well as teh SAP documentation were not very helpful for me.
    • What was misleading?
      • mainly tow things. Not beeing able to reuse data objects cost me a few days of trying. Secondly the need to think different about the problem. Currently rule modelling feels still a little alien to me. Kind of like trying to develop in a functional programming language where one simply has to approach certain topics differently
    • What was your breakthrough to success?
      • In the end just trying and getting over the initial learning curve. Once this was done everything kind of fell into place.

    Christian

    (0) 
    1. Tobias Trapp Post author

      Thank you for sharing your story. Well, I remembered that you asked in the forum about reuse but I have to admit I didn’t understand the problem – but if I remember right, Christian did and gave you the answer,

      But if I remember right I had a similar problem: I created data objects with the the same and got confused. In the context of a function resp. rule set the name has to be unique but every object is characterized by a guid. In fact this can get nasty if you do reuse between applications and have different objects with the same name but different guids.

      Best Regards,

      Tobias

      (0) 
  2. Oliver Jaegle

    Hi Tobias,

    I started with BRF+ when we first had to include customizable logic into our business application. This was about three years back, I only knew the name of BRF+ from my previous work at SAP. After three years, I’m still struggling with it and I’d not dare to say I have mastered it. However, what I’d like to share is a switch in mindset which I’m sure helps many other “ABAPers” to implement their rules in a better way: Don’t think about customizing, think about decision making! I like the rebranding ( 😉 ) of BRF+ to Netweaver Decision Service Management as it emphasizes on this very important aspect: In a business application, decisions need to be taken which may vary based on the customer, based upon Masterdata and so forth. BRF+ provides a mechanism to abstract the decision to be taken to an interface / a signature: Based on information provided, a decision of a dedicated type is being made. Glen Simpson ‘s post some months ago sketched this very nicely: A Business Rules Engine should not replace Z-Tables…

    Coming to the actual tooling, there’s plenty of things which made it a bit cumbersome to get used to it: What a data object actually is, when a new application shall be created, which expressions are available and should be used when, when to go for a functional or a ruleset based BRF-function-implementation, why object’s can’t be deleted, …

    After two years of usage, I’d say I found answers to most of my questions. One thing remains really annoying though: Refactoring BRF-Applications is really cumbersome.

    Particularly when merging multiple functions into one application, data objects with the same names (but different technical GUIDs) remain and there’s no way of replacing them with each other – at least, none that I know of.

    Nevertheless, I’d always recommend to use business rules for every customizable behavior.

    Cheers,

    Oliver

    (0) 
    1. Tobias Trapp Post author

      You are absolutely right: we should think of a BRFplus function as a decision service, This can help you to create good implementations when the business process is separated but controlled by decision services. If you start to mix up both things then it will lead to terrible implementations with lots of BRFplus actions and you will loose many benefits like the capability of measuring processes with the SAP Process Observer as well as simulation as part of your application.

      And yes, you are absolutely right refactoring can be difficult and there should be a Kind of support for merging of data elements with same name/type.

      Cheers,

      Tobias

      (0) 
  3. Christian Lechner

    Hi Tobias,

    here the ansers to your questions:

    How did you start with BRFplus/DSM?

    I started with BRF+ in different projects where we thought it might be a good idea to replace the classical approach of ABAP code and customizing tables using the BRF+. Well .. we had some lessons learned on that side especially when it comes to best practises and to some “special” topics with respect to delivery of add-on products (delivery, translation etc.).

    What was helpful for you?

    First of all BRFplus – The Book was a very good starting point to get in touch with BRF+. This delivered some solid foundation but as usual the fun starts when you do a project for the first time in real life and run into problems that have to solved. Then debugging the BRF+ often helps a lot 😉

    In general the openness of SAP with respect to blogs and documents provided here in SCN helped a lot to learn more and more about BRF+. In addition (at least my experience) is the fact that if you are running deeply into trouble even a telco with Carsten Ziegler is possible.

    What was also very helpful was (and is) answering questions here in the forum as you learn about new scenarios and have to think about possible solutions

    What was misleading?

    I did not experience something really misleading in my “journey” through/with BRF+. Sometimes you miss some documentation or some best partices.

    What is a little bit annoying is the stability of BRF+ with every new Netweaver release (not only the XML import/export). In Netweaver 7.31 we still have severe bugs in SP07 (ok that is not up to date but it is quite high). And implementing notes in BRF+ is definitly far away from having fun.

    What was your breakthrough to success?

    I do not know if there was any breakthrough or any success. I think that BRF+ is one of the most elaborate tools at SAP and has a very good design and enhancement concept from the top to the buttom. So usually (if the patch level is high enough 😆 ) it makes fun to design and implement solutions for decision services (I also like that naming very very much) … and what is then even the bigger fun: to apply changes to them in short time (which would have cost days in the classical ABAP/customizing approach)

    BR

    Christian

    (0) 
    1. Tobias Trapp Post author

      Thanks for this comment, Christian. I can remember BRFplus at NW 7.31 SP4 and it was really a nightmare. Luckily those times are over. But in SP4 and SP5 I am really glad that Carsten Ziegler was quite frank about quality problem in early SPs. With his tips and the work of SAP Active Global Support we went through those “dark ages”. But Luckily this is over. Yes, there are still XML problems from time to time and sometimes I wonder why SAP doesn’t use unit tests to test the im- and export features. This should be simple since test cases could be stored as XML in MIME repository and the import can be done using the API).

      And yes, if you have your breakthrough BRFplus is really fun 😆 .

      Best Regards,

      Tobias

      (0) 
  4. Martin Fischer

    Hi Tobias,

    here my feedback:

    How did you start with BRFplus/DSM?

    In my current project BRFplus is used for all the business rules. It’s a large scale          custom development project on the AS ABAP. The first steps where quite easy.

    What was helpful for you?

    I started with the modelling decision tables. That was quite self explanatory. I needed some time to realize that I should do a shift in mind for BRFplus modelling. It’s not about moving customizing tables from SM30 to BRFplus. It’s about designing rules. Just as Oliver mentioned.

    What was misleading?

    Misleading was that there is not too much documentation on which expression type should be used for which use case. So designing rules was/is more time consuming than building customizing tables. But it’s worth to invest the time because it’s much more powerful.

    In the beginning I also didn’t get the difference between customizing and local applications. Carsten Ziegler’s book was quite helpful for that.
    I also didn’t understand the versioning. It’s really a powerful feature, but in the beginning I thought just about versioning as in SE80.

    XML export and import didn’t work always and also TMS was a nightmare before I found the FDT_*** check reports.

    Finally, I’m sometimes struggling with the usability of the UI. Some buttons are just not where I expect them 🙂

    What was your breakthrough to success?

    I’m still on my way to the breakthrough. But anyway, I will always favour BRFplus over customizing tables. Especially because of the simulation features and the easy integration into ABAP code.

    (0) 
    1. Tobias Trapp Post author

      Hi Martin,

      yes, this sounds very familiar. Learning about simple rules and decision tables was easy but table and loop expressions are challenging.

      Best Regards,

      Tobias

      (0) 
  5. Daniyar Kulmanov

    Hi Tobias,

    I also have feedback:

    How did you start with BRFplus/DSM?

    First I met BRF+ in Solution Manager functionality of support team determination.  When I saw decision table I liked it! So after this BRF+ was like my dream, because my main focus is Solman I didnt have time for learning BRM systems.  Not used DSM yet.

    What was helpful for you?

    Best thing that helped me a lot is a TZBRF SAP course in Moscow. I also have book and it is helpful but very big… for the beginners its hard to understand overall picture.

    What was your breakthrough to success?

    Right now I have a team 4 people, after TZBRF course, I have started to study and train my team. I need to present BRF+ technology or BRM vision to our Governance  (I hope it will go good).

    And finall target is to create a new Department that focuses on Business Rules Management as a methodological and architectural approach.


    I would say – BRF+ and BRM itself is really powerful, flexible and all IT industries should and would move to this approach.

    Regards Daniyar

    (0) 
  6. Jocelyn Dart

    Hi Tobias,

    This is a great blog and the responses are fascinating to those of us looking to upskill others. For myself – I agree with the library vs. framework comments. We have been doing some serious looking at frameworks around some very complex rules locally and I hope to share some of our journey soon.

    One tip now… custom formula functions are GOLD and keep you from delving back into ABAP for minor stuff like formatting, data conversions, and business day calculations.

    For myself:

    • How did you start with BRFPlus/DSM
      • I actually started with BRM and really liked the Rules Manager web tool so I wasn’t so impressed with BRFPlus at first. But it’s not long before you realise how much more power is in BRFPlus and then of course I met Carsten Ziegler – who really understands what Business Rules Engines are there to do.
    • What was helpful for you?
      • James Taylor‘s blogs on Decision Modelling Notation as an approach to modelling rules made a lot of sense and made me look harder at Catalogs…. and of course both Carsten Ziegler and Wolfgang Schaper‘s blogs have been invaluable. Plus just giving it a go.
      • A focus on BUSINESS rules and reminding yourself who is the real target audience helps a lot and stops me from getting too techie
      • Thinking really hard about HOW adaptable does this rule need to be and what ways might it change in the future  – I love Exit Conditions and Date driven Decision Tables
      • Realising how many of the missing pieces in BRFPlus are filled in DSM – like deployment instead of transport, approval deployment workflows, and deploying the same set of rules to multiple systems
    • What was misleading?
      • Insert vs Change for tables didn’t work the way I expected .. that took a little while to get my head around, but in the end I agree that a roll forward approach is much safer and more understandable than updating individual rows
    • What was your breakthrough to success?
      • Figuring out how not to create multiple copies of the same data object, figuring out how to roll forward when working with tables, getting to grips with Catalogs, and understanding the Technical Attribute extras
      • Custom Formula Functions are my new favourite feature – I can create about 5 in an hour now .. magjc stuff
      • Figuring out how to rename data dictionary objects… !!! Standard names are mostly very unfriendly but easily overridden – and the new names stay even if you refresh the binding!
      • As I’m working in CRM/ERP systems now multi-deployment has been a godsend
      • But mostly just getting my hands dirty and working with it!

    All the best to everyone else on the BRFPlus/DSM journey

    Rgds,

    Jocelyn

    (0) 

Leave a Reply