
Visualising BRF+ functions
Understanding the inner workings of the Business Rule Framework might be daunting for many. Some find a visual representation of the BRF+ components beneficial and increases the likelihood to embrace the tool to become more efficient and productive.
Visualising BRF+ is done via several blog posts, and this will be the first in the series, focusing on the function.
![]() |
BRF+ function |
The function allows you to communicate between the ABAP program and the complex decision making with the Business Rule Framework.
The function contains a signature, that consists of:
![]() |
Function input |
![]() |
Function result |
You can offer many types of data objects as input:
![]() |
Element: A single value. |
![]() |
Structure: Collection of single values. |
![]() |
Table: Rows of data with the same structure. |
Often the data object is linked to the SAP Data Dictionary. Then changes made in this dictionary are also applied to the BRF+ data object when they are updated.
For example, a BRF+ structure relates to the SAP Data Dictionary. The structure is updated in the SAP system (via transaction code SE11). This change is also applied within BRF+ when you refresh the structure definition.
Use the following icon to identify that the data element refers to the SAP Data Dictionary:
![]() |
SAP Data Dictionary object |
Only one result is returned, which could be:
![]() |
Element: A single value. |
![]() |
Table: Rows of data with the same structure. |
Returning only one result is very important to realise. Imagine you want to determine a packing material for a specific product. You also know that finding a suitable packing material might not be possible due to data errors in the database. When you want to validate the data and also return the identified packing material, then two BRF+ functions need to be created. At first, you check data quality via the first function and issue messages. When it passes the data validation, then the second function will supply the packing material.
For example, your system makes a distinction in packing materials based on whether it is second-hand. The material type and material group are used to identify second-hand materials. The incorrect combination of a material type and material group can exist for second-hand materials. This bad data can result in inaccurate packing material. Therefore, you only want to return a packing material after it passed the validation of data in your database. You need two separate BRF+ functions because they have two different purposes.
You can activate a function after identifying the signature, with at least one input parameter and the return parameter. The code template becomes available, and the developer can cut and paste this into the ABAP code. However, you get no result when you execute the program because you are missing the complex decision making. Next step is to define rulesets in your function to analyse the input to generate a result.
That is a topic for the next blog post for the visualisation of BRF+ components.