What was your Recipe for Success for Learning BRFplus?
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.
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)
Christian
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
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
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
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
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
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.
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
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
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:
All the best to everyone else on the BRFPlus/DSM journey
Rgds,
Jocelyn