SAP
Business Rules Framework Plus (BRFplus) is a SAP functionality possible to
manage all of your custom business logic in a single place and in a re-usable
way.
Transaction BRFplus Workbench
application BRFPLUS or BRF+ or FDT_Workbench. If you are presented
with a web application in a new browser window, then you are basically set to
utilize BRFplus in your environment.
DSM vs. BRFplus comparison:
However, DSM (Decision Service Management) requires additional licensing from
SAP, whereas BRFplus is typically available for use with existing SAP licensing
that is in place.
Migration (BRF/BRFplus) to DSM: The seamless migration
process helps customers to control new DSM capabilities without losing their
existing investment on BRF or BRFplus. Identify the existing BRF or BRFplus
rules in the system, migrate them into the DSM services and integrate into the
application process.
FDT_HELPERS is a transaction for DSM/BRFplus data analysis and maintenance
BRFplus Reports:
1. Cross-Reference Analysis - FDT_SHOW_OBJ_RELATION_TREE
2. Content Overview - FDT_CONTENT_OVERVIEW
3. Application Overview – FDT_APPLICATION_OVERVIEW
4. Cross-System Content Comparison - FDT_CONTENT_COMPARISON
5. Data Objects bound to an ABAP Dictionary Type – FDT_DDIC_WHERE_USED
6. Data Objects with Dictionary Binding by Application - FDT_DDIC_APPLICATION
7. Mass Check of Objects in Transport Requests - FDT_TRANS_MASS_CHECK
8. Manual Restart of the Import Queue - FDT_TRANS_Q_RESTART
9. Transport Phase Execution - FDT_TRANS_PHASE_EXECUTION
10. Write Application or ID to Transport - FDT_TRANS
11. Export BRFplus Objects to XML File - FDT_XML_EXPORT
12. Import BRFplus Objects from XML File - FDT_XML_IMPORT
13. DB Check - Where-Used Table - FDT_CHECK_DB_WHERE_USED
14. DB Check - General Data Consistency - FDT_CHECK_DB_CONSISTENCY
15. Show Object Database Entries - FDT_OBJECT_DB_ENTRIES
16. Mark Objects for Deletion – FDT_MARK_FOR_DELETE
17. Logical and Physical Deletion Run - FDT_DELETE
18. Discard Old Versions - FDT_TRUNCATE_VERSIONING
19. Delete Unused Unnamed Expressions and Data Objects-
FDT_APPLICATION_CLEANUP
20. Delete Corrupted Expression types - FDT_DELETE_EXTY
21. Analyze Generated Functions / Regenerate - FDT_GENERATION_TOOL
22. Mass Generation of BRFplus Functions - FDT_GENERATE_MANY_FUNCTIONS
23. Lean Trace Readiness Check - FDT_LEAN_TRACE_READY_CHECK
24. Define Trace Settings for a BRFplus Function - FDT_TRACED_CONTEXT_SETTING
25. Rerun Functions with Traced Context - FDT_TRACED_CONTEXT_RE_EXECUTE
26. Generate Template Coding to Call Function Processing –
FDT_TEMPLATE_FUNCTION_PROCESS
27. Check or update DDIC binding for data objects –
FDT_DDIC_BINDING_UP_TO_DATE
28. Analyze Decision Table for missing and/or overlapping cond-
FDT_ANALYZE_DECISION_TABLE
BRFplus Examples from the real world to
meet business requirements:
- Logo determination on output forms
- Default priority and deadline determination on service notification documents
- Default plant determination during sales order entry
- Custom carrier determination in SAP Transportation Management
- BRFplus functions are easily re-usable, which greatly reduces the amount of duplicated business logic in your system.
- BRFplus contains a large library of expressions that greatly speed up the development process for mapping business rules, especially if those rules are complex. Something that might take you days or even weeks to write in ABAP from scratch can be quickly modeled within BRFplus using one of many expressions.
- All of your custom business logic can be seen in a single place - BRFplus transaction. You don't need to hunt around the vast number of programs, exits and enhancements to be able to make adjustments to existing business rules.
- Simple adjustments to existing business rules can be made by non-technical staff, without any need for ABAP changes.
BRFplus creates Customize and Master Data
applications:
Customizing applications require the use of SAP transports in order to move the changes between SAP systems, whereas master data applications allow the changes to be made directly in each SAP system and client. This becomes especially useful when you have master data values, such as customer, material, vendor numbers, etc., as part of your business logic. Keep in mind that since in most cases BRFplus functions are called via ABAP, the functions themselves will need to reside under a customizing application. But these customizing-level functions are then able to utilize expressions (such as decision tables) that reside under other master data-level applications. In a nutshell, you are able to mix the use of customizing and master data BRFplus objects in a single business rule.
From a technical point of view, the
most common use case for BRFplus that we run into is the implementation of
custom business logic in user-exits and enhancements. In fact, nowadays
BRFplus is our default approach for implementing custom business logic in such
context, which can be described at a high-level with 2 steps:
- Creating a function within BRFplus that takes certain inputs, processes them through the necessary business logic, and then produces the derived outputs
- Calling the BRFplus function created in prior step via ABAP in a user-exit, enhancement, BAdI, custom program, etc.
It is important to note that using the
aforementioned approach you are still required to write some ABAP to make the
call to a BRFplus function. The difference is that, generally speaking,
the ABAP syntax is only responsible for making the call to BRFplus and no
actual business logic is specified directly via ABAP. The advantages are
In reality, the actual creation of
BRFplus elements (functions, expressions, etc.) is still a fairly technical
exercise. Understanding of such basic programming concepts as variables
and loops becomes a huge advantage when working with BRFplus.
BRFplus supports the following action types:
BRFplus supports the following six types of Constant expressions
BRFplus supports the following action types:
- Call Procedure Action
- Log Message Action
- Send Email Action
- Start Workflow Action
- Workflow Event Action
BRFplus supports the following six types of Constant expressions
- Text
- Number
- Boolean
- Amount
- Quantity
- Timepoint