SAP BRFplus
Configuration and Learning Guide
Business Rule Framework plus on SAP S/4HANA, with a worked Output Determination example
A self-contained, paper-based guide for learning BRFplus without access to an SAP system, designed so that every step can later be repeated in a real system.
| At a glance | |
|---|---|
| Target release | SAP S/4HANA (differences from ECC / NetWeaver 7.x noted) |
| Transactions | BRF+ / BRFPLUS (workbench), OPD (output parameter determination), SPRO |
| Worked example | Sales order output determination: output type, channel, language, copies |
| Screens | Illustrative mock-ups only, clearly labelled. No SAP screenshots are reproduced. |
| Edition | October 2026 |
| How to use this guide. Read Part 1 once. Follow Part 2 step by step with pen and paper (or a spreadsheet), using the paper test cases. Use Part 3 to see where else BRFplus applies, and Part 4 for checklists, troubleshooting and exercises. Items marked [VARIES BY RELEASE] differ between SAP releases; confirm them in your system. |
Table of Contents
If the table of contents appears empty, right-click it in Word and choose Update Field, then Update entire table.
BRFplus (Business Rule Framework plus, often written BRF+) is a tool inside SAP's ABAP technology stack (SAP NetWeaver) that lets you describe business rules in tables and simple expressions instead of writing ABAP code. A rule is a decision such as: "If the document type is OR and the plant is 1000, send the order confirmation by e-mail in English."
Think of it as Excel-style decision logic that lives inside SAP. You already know how a lookup table or an IF formula works; BRFplus gives you the same ideas (input columns, result columns, conditions, formulas) with SAP governance around them: versioning, transport to production, tracing and testing.
| Excel idea you know | BRFplus equivalent |
|---|---|
| A lookup table with input columns and result columns | Decision table (an Expression type) |
| IF / AND / OR formulas | Rule with a condition expression (Boolean, formula, etc.) |
| Named cells / named ranges | Data objects (elements, structures, tables) |
| A worksheet that takes inputs and returns an answer | Function (the interface to the calling program) |
| A workbook | Application (the container for everything) |
| Evaluate Formula / step through | Simulation and Trace |
| Save As version / track changes | Versioning |
Why it matters to a functional consultant: key business changes (a new plant, a new customer group, a new output channel) can be made by changing table rows, usually without an ABAP developer, and the same change can be tested and transported like any other customizing.
It is part of the ABAP application server. The rules engine, the repository (where rules are stored) and the workbench (the screen you work in) are all delivered as part of NetWeaver ABAP. It is not a separate product to install.
You start it with transaction BRF+ or BRFPLUS. Both work in an S/4HANA system. The SAP Help documentation also lists a second way: opening the workbench in a web browser using a URL specific to your landscape. In an SAP Community answer from an SAP product expert, the exact entry in older ECC releases is described as "BRF+" rather than "BRFPLUS".
The workbench is a Web Dynpro ABAP application. That is why it opens in an embedded browser window inside SAP GUI (or directly in a browser) and looks different from classic SAP screens.
You need an authorization role. SAP Help states that the role BRFplus Administrator (technical name SAP_BC_FDT_ADMINISTRATOR) must be in your user profile; a custom role with a subset of its authorizations also works. "FDT" stands for Functional Data Types and is the technical prefix of the BRFplus repository.
It is shared across SAP products. The same framework is used by SAP S/4HANA, classic ERP and SAP Master Data Governance (MDG).
| Release note (ECC vs S/4HANA). In SAP Community, an SAP product expert explains that transaction BRFPLUS needs NetWeaver 7.02, which is bundled with ECC enhancement package 5. On NetWeaver 7.01 (ECC EhP4) only a limited early version exists, started with transaction FDT_WORKBENCH. So for an older ECC 6.0 system, check the enhancement package level first. In S/4HANA, BRFplus is always available. |
Business application (e.g. Sales order, Purchase order, MDG save)
|
| 1. passes CONTEXT values (document type, plant, ...)
v
+---------------------------+
| BRFplus FUNCTION | <- the interface (signature)
| Context -> Result |
+-------------+-------------+
|
v
+---------------------------+
| RULE SET | <- holds one or more rules
| Rule 1: condition ... |
| action ... |
+-------------+-------------+
|
v
+---------------------------+
| EXPRESSIONS | <- decision table, formula,
| (Decision table, ...) | database lookup, etc.
+---------------------------+
|
2. RESULT values go back (output type, channel, ...)
v
Business application continues with the resultFigure 1 - Illustrative flow diagram, not an SAP screenshot.
Everything in BRFplus is an object with a name, a text, a version and an active/inactive status. The objects nest as follows.
Applications
+-- ZOUT_DET_APP (Application)
+-- Data Objects
| +-- Elements
| | +-- DOC_TYPE (Element, text)
| | +-- PLANT (Element, text)
| | +-- OUTPUT_TYPE (Element, text)
| +-- Structures
| | +-- S_CONTEXT
| | +-- S_RESULT
| +-- Tables
+-- Expressions
| +-- DT_OUTPUT (Decision Table)
+-- Functions
| +-- F_DETERMINE_OUTPUT (Function)
+-- Rulesets
| +-- RS_OUTPUT (Rule set)
| +-- R_FIND_OUTPUT (Rule)
+-- Catalogs
+-- CAT_OUTPUT (Catalog, optional)Figure 2 - Illustrative object tree. Folder names in your release may differ slightly.
| Object | What it is | Excel analogy |
|---|---|---|
| Application | The container for all objects belonging together. It carries the development package, the storage type (decides if objects can be transported) and default settings such as versioning. | The workbook file |
| Function | The interface between ABAP code and the rules. Its signature lists the context data objects (inputs) and the result data object (output). A function holds one or more rule sets. | A named input/output area |
| Rule set | A collection of rules. It can also hold its own variables and a priority; SAP Insider notes that a rule set with priority 0 runs first and one with priority 99 runs last. | A sheet with several formulas |
| Rule | A condition (when does it apply) plus actions (what happens). The central entity of the framework. | An IF formula |
| Expression | A computational unit that returns a value. Types include decision table, formula, database lookup, procedure call, and others. | Formulas and lookup ranges |
| Action | Something performed outside BRFplus, for example sending a message or calling a method. | A macro |
| Data object | A data carrier: an element (single value such as DOC_TYPE), a structure (group of elements) or a table (list of structures). Elements can be bound to ABAP Dictionary (DDIC) data elements so value help works. | Named cell / range |
| Catalog | A folder-like way to group and find objects. Helps navigation only; not versioned. | A tab colour or index sheet |
Decision table - rows and columns. Easiest to read and the type SAP uses for output parameter determination.
Formula - calculations and date/time logic.
Database lookup - reads a value from an SAP table.
Boolean / comparison expressions - for rule conditions.
Decision tree, procedure call, loop, constant, case and others - available in the workbench. The exact list depends on the release.
| Concept | Meaning | Where you use it |
|---|---|---|
| Context | The input data the calling program hands to the function. Defined in the function signature. | Function > Signature |
| Result | The output data returned by the function. | Function > Signature |
| Simulation | You type values for the context and run the function in the workbench to see the result. SAP Help compares it to function-module testing. It is available for functions, expressions and actions. | Function > Simulation |
| Trace | A record of what the engine did. Lean trace logs only steps that contributed to the result; technical trace logs every step, including dead ends. Simulation uses the trace tool too. | Simulation result; trace mode of the calling code |
| Versioning | Keeps older states of an object, based on the timestamp of save and activation, so you can see what a rule looked like on a given date. Default modes are set per application on the Default Settings tab: Off, Enforced (recommended if you use Lean Trace) and Transport-dependent. Catalogs are never versioned. | Application > Default Settings |
| Transport | Moving active objects from development to quality and production. Works through a normal transport request if the application storage type is transportable, or through XML export/import in Expert Mode. | Save dialog; Expert Mode XML |
| Activation | Objects are created inactive, then saved and activated. Only the active version is used at run time. | Every object |
| Simple vs Expert mode | Expert Mode unlocks advanced features such as XML export and import. | Workbench settings |
| Trace and versioning belong together. SAP Help explains that Lean Trace normally requires every traced object to be versioned, because otherwise the system cannot tell which object state was used. If nothing has changed since the trace was recorded, the trace can still be displayed. |
+----------------------------------------------------------------------------+ | BRFplus Workbench [Mode: Expert] [Settings] | +--------------------+-------------------------------------------------------+ | NAVIGATION PANEL | DETAIL AREA | | | Object: F_DETERMINE_OUTPUT Type: Function | | [Search........] | Status: Active Version: 1 | | | +--------+---------+----------+----------+ | | > Applications | |Signature|Assigned |Simulation|Settings | | | > ZOUT_DET_APP | | |Rulesets | | | | | > Functions | +--------+---------+----------+----------+ | | > Expressions | | | > Rulesets | Context data objects: [ DOC_TYPE ] [ PLANT ] ... | | > Data Objects | Result data object: [ S_RESULT ] | | | | +--------------------+-------------------------------------------------------+ | [Save] [Activate] [Check] [Where-used] [Create Object v] [Export XML] | +----------------------------------------------------------------------------+
Figure 3 - Illustrative layout. SAP Help describes a navigation panel on the left and a detail area on the right; the tabs shown depend on the object type. Right-click the background and choose Display Quick Help to get on-screen explanations while you learn.
Where to see real screenshots. This guide uses reconstructed mock-ups. For genuine SAP screens, use: (1) the SAP Learning course "Customizing Output Control in SAP S/4HANA Sales" at learning.sap.com, lesson "Determining Output Parameters"; (2) SAP Help Portal pages for "BRFplus workbench", "Versioning" and "Trace"; (3) the SAP Community blog posts listed in the Sources section, several of which include full-screen walkthroughs.
A company sells from two plants. When a sales order is saved, the business wants the system to decide four things automatically: which output type to create, through which channel, in which language, and how many copies. We will build this rule set in BRFplus from scratch and test it on paper.
Inputs the rule looks at (context):
| Context (input) | Meaning | Example values |
|---|---|---|
| DOC_TYPE | Sales document type | OR, ZOR, RE |
| PLANT | Delivering plant | 1000, 2000 |
| CUST_COUNTRY | Country of the customer (stands in for the customer) | IN, DE, US |
Outputs the rule returns (result):
| Result (output) | Meaning | Example values |
|---|---|---|
| OUTPUT_TYPE | Which output document to create | ORDER_CONF, PROFORMA (illustrative names) |
| CHANNEL | How it is sent | PRINT, EMAIL |
| LANGUAGE | Output language | EN, DE |
| COPIES | Number of copies (text in this exercise to keep it simple) | 1, 2 |
The business rule, written as a table (this becomes our decision table). A blank cell means "any value". Rows are checked from top to bottom and the first match wins.
| # | DOC_TYPE | PLANT | CUST_COUNTRY | -> OUTPUT_TYPE | CHANNEL | LANGUAGE | COPIES |
|---|---|---|---|---|---|---|---|
| 1 | OR | 1000 | IN | ORDER_CONF | EN | 1 | |
| 2 | OR | 1000 | (blank) | ORDER_CONF | EN | 2 | |
| 3 | OR | 2000 | DE | ORDER_CONF | DE | 1 | |
| 4 | ZOR | (blank) | (blank) | PROFORMA | EN | 1 | |
| 5 | (blank) | (blank) | (blank) | ORDER_CONF | EN | 1 |
Row 5 is the catch-all default that applies when nothing above matched. Output type names are invented for this exercise.
Read this before you start - how this exercise relates to real S/4HANA output management. In SAP S/4HANA, SAP delivers its own BRFplus applications for output parameter determination, one per business object (sales document, billing document, purchase order, and so on). Their function signatures are fixed by SAP and are called by SAP code. You normally do not create your own application and plug it in. Instead you maintain the rows of the SAP-delivered decision tables, using transaction OPD (or the Output Parameter Determination app in SAP S/4HANA Cloud). So the exercise in Steps 1 to 8 builds a practice twin: a complete BRFplus application you own, which teaches every BRFplus skill the real thing uses. Step 9 then shows how the same logic is maintained in the real integration. Step 10 covers transport for both. Treat Steps 1 to 8 as your safe training ground and Step 9 as the day-to-day consulting work. |
| Item | What to confirm | Done? |
|---|---|---|
| Authorization | Role SAP_BC_FDT_ADMINISTRATOR (or a custom subset) is in your user | [ ] |
| Development package | A package for the new application, for example ZBRF_TRAINING, or $TMP if the objects are local-only | [ ] |
| Transport request | A customizing transport request, if the application must travel to other systems | [ ] |
| Browser/Web Dynpro | Web Dynpro ABAP is active and the embedded browser works | [ ] |
| Mode | Expert Mode available if you want XML export/import later | [ ] |
1. Navigation / transaction
SAP GUI command field: enter BRF+ or BRFPLUS and press Enter.
Alternative: open the system-specific workbench URL in a web browser (SAP Help lists this as the second way to start the workbench). [VARIES BY RELEASE AND LANDSCAPE]
2. Screen (reconstructed mock-up)
+------------------------------------------------------------------+ | BRFplus Workbench | +------------------+-----------------------------------------------+ | Navigation Panel | Welcome | | | | | [Search.......] | Recently used objects: | | | (none yet) | | > Applications | | | (empty) | [ Create Object v ] | +------------------+-----------------------------------------------+
Figure 4 - Illustrative. If the screen is blank, wait for Web Dynpro to load and check that you are not in a restricted browser mode.
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Mode switch (Settings) | Choose Expert Mode if available | Needed later for XML export/import |
| Quick help | Right-click the background > Display Quick Help | SAP recommends this for newcomers |
4. Why this matters
The workbench is the only place where BRFplus objects are created and maintained.
Quick help gives a one-line explanation for every screen area, which makes learning faster.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| "Transaction BRFPLUS does not exist" | Older ECC: the system is below NetWeaver 7.02. Try BRF+ or FDT_WORKBENCH (limited version on 7.01), or upgrade the enhancement package. |
| Authorization error or empty workbench | Ask your administrator to add SAP_BC_FDT_ADMINISTRATOR to your user. |
| White screen | Web Dynpro ABAP services are not active. Ask Basis to activate them (SICF). |
1. Navigation / transaction
Workbench > Create Object (toolbar) > Object Type: Application.
Use the button Create And Navigate To Object to jump straight into the new object.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------+ | Create Object [ X ] | +-----------------------------------------------------------+ | Object Type: [ Application v ] | | Name: [ ZOUT_DET_APP ] | | Description: [ Output determination - training ] | | | | Storage Type: (o) Customizing ( ) System ( ) Local | | Development Pkg: [ ZBRF_TRAINING ] | | Transport Req.: [ DEVK900123 ] | | | | [ Create And Navigate To Object ] [ Cancel ] | +-----------------------------------------------------------+
Figure 5 - Illustrative dialog. Field labels and the available storage types can differ by release. [VARIES BY RELEASE]
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Object Type | Application | Fixed for this dialog |
| Name | ZOUT_DET_APP | Use the customer namespace (Z or Y) |
| Description | Output determination - training | Meaningful text helps search |
| Storage Type | Customizing | SAP Help: transportable storage types are System and Customizing. Local objects cannot be transported. |
| Development Package | ZBRF_TRAINING | Use $TMP only for throw-away practice |
| Transport Request | Your customizing request | Asked when saving, not always on this dialog |
| Default Settings tab > Versioning | Enforced (tick/select it) | Recommended if you intend to use Lean Trace |
4. Why this matters
The storage type decides whether you can transport the application later. It is hard to change afterwards, so decide now.
The versioning default is set once per application and applies to all objects created in it afterwards (existing objects are not changed).
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| "Name already exists" | Choose another name; names are unique per system. |
| Cannot assign a transport request | The package is local ($TMP) or the storage type is Local. Use a transportable package and storage type. |
| Objects not traced as expected later | Versioning was Off at creation. Switch the default and re-save objects. |
1. Navigation / transaction
Navigation panel: right-click the application > Create Object > Object Type Data Object, or create them directly from the function signature in Step 4.
Create three context elements and four result elements, then group them into two structures.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------+
| Create Object [ X ] |
+-----------------------------------------------------------+
| Object Type: [ Data Object v ] |
| Name: [ DOC_TYPE ] |
| Description: [ Sales document type ] |
| Data Object Type: [ Element v ] |
| Element Type: [ Text v ] |
| Binding to DDIC: [ AUART (optional) ] |
| |
| [ Create ] [ Cancel ] |
+-----------------------------------------------------------+
Resulting tree:
Data Objects
+-- Elements: DOC_TYPE, PLANT, CUST_COUNTRY,
| OUTPUT_TYPE, CHANNEL, LANGUAGE, COPIES
+-- Structures: S_CONTEXT (DOC_TYPE, PLANT, CUST_COUNTRY)
S_RESULT (OUTPUT_TYPE, CHANNEL, LANGUAGE, COPIES)Figure 6 - Illustrative. Labels and the way structures are assembled vary by release. [VARIES BY RELEASE]
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| DOC_TYPE | Element, Text; optional DDIC binding AUART | Binding gives value help and length checks |
| PLANT | Element, Text; optional DDIC binding WERKS_D | Same |
| CUST_COUNTRY | Element, Text; optional DDIC binding LAND1 | Same |
| OUTPUT_TYPE, CHANNEL, LANGUAGE, COPIES | Elements, Text | No binding needed for a training app |
| S_CONTEXT | Structure containing the three context elements | Optional: you may use single elements instead |
| S_RESULT | Structure containing the four result elements | A structure lets the function return all four values together |
4. Why this matters
Data objects are the vocabulary of the application. Everything else (decision table columns, rule conditions, function signature) refers to them.
Binding to a DDIC element makes input values typed and gives the person maintaining the table a value help list.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| Value help is missing in the decision table later | The element has no DDIC binding. Add one or type the values by hand. |
| "Data object is not active" | Save and activate the element before using it in other objects. |
| Mismatch between simulation input and the table | Check upper/lower case; text elements are case-sensitive. |
1. Navigation / transaction
Right-click the application > Create Object > Object Type Function.
Open the Signature tab and add the context and the result.
The tab Assigned Rulesets is used in Step 6.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------------+ | Function: F_DETERMINE_OUTPUT Status: Inactive| +--------------+-----------------+------------+-------------------+ | Signature | Assigned Rulesets| Simulation | Settings | +--------------+-----------------+------------+-------------------+ | | | Context Data Objects | | [ Add ] [ Remove ] | | +----+--------------+-------------------------------+ | | | | Name | Description | | | +----+--------------+-------------------------------+ | | | 1 | DOC_TYPE | Sales document type | | | | 2 | PLANT | Delivering plant | | | | 3 | CUST_COUNTRY | Country of customer | | | +----+--------------+-------------------------------+ | | | | Result Data Object: [ S_RESULT ] | +-----------------------------------------------------------------+
Figure 7 - Illustrative. The tabs match what SAP community tutorials describe (Signature, Assigned Rulesets, Simulation); extra tabs depend on the release. [VARIES BY RELEASE]
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Name | F_DETERMINE_OUTPUT | |
| Description | Determine output type, channel, language, copies | |
| Context Data Objects | DOC_TYPE, PLANT, CUST_COUNTRY | These are what the calling program must supply |
| Result Data Object | S_RESULT | What the function returns |
| Function mode | Leave the default (normal) | Other modes exist for special uses; not needed here |
4. Why this matters
The function is the contract between the business application and your rules. If the signature changes later, every caller must change too.
Keeping context small and exactly what the rule needs makes the function easy to reuse and to test.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| Cannot add a data object to the signature | The data object is inactive or belongs to a different application. Activate it or create it in this application. |
| Result structure not offered | Create it first (Step 3) or create it directly from the signature. |
1. Navigation / transaction
Right-click the application > Create Object > Object Type Expression > Expression Type Decision Table.
Name: DT_OUTPUT. Use the tabs for table settings and table contents.
2. Screen (reconstructed mock-up)
+----------------------------------------------------------------------------+ | Expression: DT_OUTPUT Type: Decision Table Status: Inactive | +----------------+---------------------+-------------------------------------+ | Table Settings | Table Contents | Where-Used | +----------------+---------------------+-------------------------------------+ | [ Insert Column v ] [ Insert Row ] [ Delete Row ] [ Move Up ] [ Move Down ] | | | | |------ CONDITIONS ------| |--------- RESULTS ---------| | | # | DOC_TYPE | PLANT | CUST_CTRY | OUTPUT_TYPE| CHANNEL|LANG|COPIES | | 1 | = OR | = 1000| = IN | ORDER_CONF | EMAIL | EN | 1 | | 2 | = OR | = 1000| | ORDER_CONF | PRINT | EN | 2 | | 3 | = OR | = 2000| = DE | ORDER_CONF | EMAIL | DE | 1 | | 4 | = ZOR | | | PROFORMA | PRINT | EN | 1 | | 5 | | | | ORDER_CONF | PRINT | EN | 1 | +----------------------------------------------------------------------------+
Figure 8 - Illustrative. A blank condition cell means "any value" in SAP's output parameter determination tables. In your own table, confirm the blank-cell behaviour in simulation (see Step 8). [VARIES BY RELEASE]
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Result Data Object (Table Settings) | S_RESULT | Tells the table what columns it fills |
| Condition columns | DOC_TYPE, PLANT, CUST_COUNTRY with operator "Equals" | Other operators such as ranges or patterns are offered by the workbench |
| Result columns | OUTPUT_TYPE, CHANNEL, LANGUAGE, COPIES | One column per element of S_RESULT |
| Row order | Most specific first, catch-all last | Because the first match wins |
| Exit / exclusive indicator (if offered) | Tick on rows that must stop further evaluation | In SAP's output tables, the indicator stops the determination at that row and no later rule is applied |
| Return mode | First match | Alternatives such as "all matches" exist; wording varies by release |
4. Why this matters
A decision table gives business users one readable page for the whole rule. It is also the expression type SAP chose for output parameter determination, so practising it here transfers directly.
Row order is logic. A catch-all row at the top would hide every other row.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| No row is found in simulation | No row matched and there is no catch-all. Add row 5. |
| Wrong row picked | A less specific row sits above a more specific one. Reorder rows. |
| Empty cell does not behave as "any value" | Your table uses the default condition type. Use the operator that treats blank as wildcard, or add an explicit alternative row. |
| Table cannot be activated | A column refers to an inactive data object. Activate the data objects first. |
1. Navigation / transaction
Open the function > tab Assigned Rulesets > button Create Ruleset.
Name the rule set RS_OUTPUT, then create one rule R_FIND_OUTPUT inside it.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------------+ | Ruleset: RS_OUTPUT Status: Inactive | +-----------------------------------------------------------------+ | Header | | Description: Rules for output determination | | Priority: [ 50 ] Variables: 0 | | | | Rules | | [ Insert Rule ] [ Delete Rule ] [ Move Up ] [ Move Down ] | | +---+---------------+--------------------+-------------------+| | | # | Rule | Condition | Action || | +---+---------------+--------------------+-------------------+| | | 1 | R_FIND_OUTPUT | (always true) | Process DT_OUTPUT || | | | | | -> result S_RESULT|| | +---+---------------+--------------------+-------------------+| +-----------------------------------------------------------------+
Figure 9 - Illustrative. SAP Insider describes opening the rule set from the function's Assigned Rulesets tab, and notes that rule sets run in priority order (0 first, 99 last).
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Ruleset name | RS_OUTPUT | |
| Priority | Leave the default, or 50 | Matters only if several rule sets are assigned to the function |
| Rule name | R_FIND_OUTPUT | |
| Rule condition | Always true (leave the condition empty / default) | The decision table itself does the filtering |
| Rule action | Process the expression DT_OUTPUT and assign the outcome to the function result S_RESULT | Exact action names differ by release. [VARIES BY RELEASE] |
4. Why this matters
The rule set is where you decide when an expression runs. With one decision table, the rule is trivial. With more logic you could add conditions (for example, skip output for certain document types) before the table runs.
Several rule sets and priorities are how larger applications are structured.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| Function returns an empty result | The rule action does not write to the result. Re-check the assignment to S_RESULT. |
| Rule set never runs | It is not listed under the function's Assigned Rulesets, or it is inactive. |
1. Navigation / transaction
Toolbar of each object: Check, then Save, then Activate.
Suggested order: data objects > decision table > rule set > function. If the system offers to activate dependent objects, accept.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------+ | Activation | +-----------------------------------------------------------+ | [OK] DOC_TYPE activated | | [OK] PLANT activated | | [OK] CUST_COUNTRY activated | | [OK] S_RESULT activated | | [OK] DT_OUTPUT activated | | [OK] RS_OUTPUT activated | | [OK] F_DETERMINE_OUTPUT activated | | | | Transport request: DEVK900123 [x] Transport Objects | +-----------------------------------------------------------+
Figure 10 - Illustrative. The tick "Transport Objects" and the Transport Request field appear in the confirmation dialog when the application is transportable (as described in SAP Help on versioning).
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| Check | Run on every object | Reveals missing references before activation |
| Transport Objects (tick) | Tick it | Records changed objects on the transport request |
| Transport Request | Your customizing request | If the application is already assigned to a request, its ID is shown and cannot be changed |
4. Why this matters
Only active versions are used when the function runs. Inactive objects are your draft.
If you forget to tick "Transport Objects", the change exists only in this system.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| "Object X is inactive" while activating the function | Activate X first, then repeat. |
| Transport dialog does not appear | Application is Local or in $TMP. Change storage type before relying on transports. |
| Active version differs from what you tested | You edited after activating; activate again. |
1. Navigation / transaction
Open the function > tab Simulation.
Enter context values, run the simulation, then open the trace.
2. Screen (reconstructed mock-up)
+-----------------------------------------------------------------+ | Simulation | +-----------------------------------------------------------------+ | Context input | | DOC_TYPE [ OR ] | | PLANT [ 1000 ] | | CUST_COUNTRY [ IN ] | | | | Trace mode: (o) Lean ( ) Technical [ Execute ] | | | | Result | | OUTPUT_TYPE = ORDER_CONF | | CHANNEL = EMAIL | | LANGUAGE = EN | | COPIES = 1 | | | | Trace | | F_DETERMINE_OUTPUT | | +-- RS_OUTPUT > R_FIND_OUTPUT (condition true) | | +-- DT_OUTPUT: row 1 matched | +-----------------------------------------------------------------+
Figure 11 - Illustrative. SAP Help compares simulation to function-module testing; the simulation uses the same trace tool as production runs. Lean trace logs only the steps that contributed to the result; technical trace logs every step.
3. Field-by-field entries
| Field / control | Enter / select | Notes |
|---|---|---|
| DOC_TYPE / PLANT / CUST_COUNTRY | See test cases below | Type exactly as stored; text is case-sensitive |
| Trace mode | Lean first; Technical when debugging | Lean needs versioned objects (see Step 2) |
4. Why this matters
Simulation is how you prove the rule before any business document uses it.
The trace shows exactly which row matched, which is the quickest way to explain a surprising result to a business user.
5. Common errors and fixes
| Symptom | Fix |
|---|---|
| Result is empty | No row matched. Add or fix a row. |
| Trace is truncated | Hover the line; SAP Help says the full text is shown in the tooltip. |
| Trace not displayed | An object was changed and is not versioned. Turn versioning on (Step 2) and run again. |
Paper test cases. Run each one in the simulation and compare. The "Expected" column is what the decision table in Section 2.1 must return.
| Test | DOC_TYPE | PLANT | CUST_COUNTRY | Expected row | Expected result |
|---|---|---|---|---|---|
| T1 | OR | 1000 | IN | 1 | ORDER_CONF, EMAIL, EN, 1 |
| T2 | OR | 1000 | US | 2 | ORDER_CONF, PRINT, EN, 2 |
| T3 | OR | 2000 | DE | 3 | ORDER_CONF, EMAIL, DE, 1 |
| T4 | OR | 2000 | IN | 5 (default) | ORDER_CONF, PRINT, EN, 1 |
| T5 | ZOR | 3000 | FR | 4 | PROFORMA, PRINT, EN, 1 |
| T6 | RE | 1000 | IN | 5 (default) | ORDER_CONF, PRINT, EN, 1 |
This is the step where your BRFplus knowledge meets standard S/4HANA output management. Facts below come from SAP Learning, SAP Community and SAP Help (see Sources).
How it works
SAP S/4HANA output management replaces the older condition-technique output (NAST) for many business objects. It is configuration-based: all rules that decide how an output is created are maintained in output parameter determination.
Behind the scenes, BRFplus decision tables hold these rules. Each output parameter (output type, channel, form template, recipient and so on) lives in its own decision table. SAP Learning states that there are eight determination steps with different result columns.
You maintain them in transaction OPD (SAP GUI) or, in SAP S/4HANA Cloud, in the app Output Parameter Determination (technical name APOC_WD_BRF_DEC_TAB_MAINTAIN, as quoted in SAP KBA 3535356).
The BRFplus applications are delivered by SAP and, where needed, are imported from XML files attached to SAP Note 2248229 ("SAP S/4HANA output management - BRFplus files for output parameter determination"). The import is done inside the BRFplus workbench with the XML import described in Step 10.
Blank means any value. SAP documentation states that a decision-table column left empty is deemed to satisfy the condition.
The exclusive indicator stops the determination at that record: no later rule is applied. Include and exclude conditions can be combined: the result is used only if the include condition is true and the exclude condition is false.
Extensibility: determination steps can be based on application-specific fields that can be extended; CDS-based extensibility is supported.
Navigation
SAP GUI: SPRO > Cross-Application Components > Output Control > Define Business Rules for Output Determination, or transaction OPD.
Activation of the new output management is per application. For purchase orders, SAP community material lists an IMG path under Integration with Other SAP Components > Business Network Integration > Integration with the Ariba Network > Application-Specific Settings > Define Message Output Control > Method 2: Use SAP S/4HANA-Based Output Management. For contracts and scheduling agreements: Cross-Application Components > Output Control > Manage Application Object Type Activation. [VARIES BY RELEASE]
S/4HANA Cloud: open the app Output Parameter Determination.
+----------------------------------------------------------------------------+ | Output Parameter Determination | +----------------------------------------------------------------------------+ | Show Rules for: [ Sales Document v ] | | | | Determination steps (the exact list depends on the business object) | | (o) Step 1: Output type | | ( ) Step 2: Channel | | ( ) Step 3: Form template | | ( ) Step 4: E-mail template / recipient | | ( ) ... | | | | [ Check ] [ Add Column ] [ Save ] [ Activate ] [ Additional actions v ] | | | | Excl. | Sales Doc. Type | Sales Org. | -> Output Type | Description | | [ ] | OR | 1000 | ORDER_CONF | Order conf. | | [x] | ZOR | | PROFORMA | Stop here | | [ ] | | | ORDER_CONF | Default | +----------------------------------------------------------------------------+
Figure 12 - Illustrative only. Real step names, columns and button labels differ per business object and release. For genuine screens, see the SAP Learning lesson "Determining Output Parameters".
A realistic consulting task, step by step
Confirm that SAP S/4HANA output management is active for your application object (for example sales document).
Open OPD and choose the business rule (for example Sales Document).
Select the determination step you need to change, for example the channel step.
Add a row: fill the condition columns (for example Sales Document Type = ZOR) and the result column (for example Channel = EMAIL).
Tick the exclusive indicator if no later row should be applied.
Choose Check to validate, then Save and Activate. In S/4HANA Cloud the check can report that a selected form template is not valid for the chosen output type, or that a channel is not supported; fix the combination as SAP KBA 2843926 describes.
Test with a real document (create a sales order and see which output is proposed) and, if needed, debug using the output management classes described in the SAP Community troubleshooting blog.
Transport the change as shown in Step 10.
| Limits to know. The scope of SAP S/4HANA output management is not identical to NAST; IDocs are restricted to business applications that previously used NAST; and for some objects (for example quality notifications and inspection lots) SAP KBA 3535356 states that BRFplus-based OPD is not supported. Always check the application-specific SAP Note for your object. |
There are two ways to move BRFplus content between systems.
Option A - Normal transport request (recommended)
Works when the application storage type is Customizing (for customer objects) or System (for SAP-delivered objects) and the application has a proper development package.
On every save and activation dialog, tick Transport Objects and choose the Transport Request. SAP Help states that once an application is assigned to a request, that request ID is displayed and cannot be changed.
Release the request in SE09/SE10 and import it in the target system as usual.
SAP Help also notes a prerequisite for turning versioning off for selected objects: they must be recorded in a transport.
Option B - XML export and import (Expert Mode)
+-----------------------------------------------------------+ | Import BRFplus XML [ X ] | +-----------------------------------------------------------+ | File: [ C:\temp\ZOUT_DET_APP.xml ] [...] | | Import type: [ Normal v ] | | Transport: (o) Customizing request ( ) Workbench | | Request ID: [ DEVK900123 ] | | [x] Test Run (simulate, do not write) | | | | [ Import ] [ Cancel ] | +-----------------------------------------------------------+
Figure 13 - Illustrative. Based on the SAP Help description of XML export and import.
Requires the workbench to run in Expert Mode.
Useful for moving content between systems that are not in the same transport landscape, or for importing SAP-delivered applications from a note (for example SAP Note 2248229).
Exported XML can be adapted to the format of a lower target release, which helps when the target system has a lower release than the source.
Enter a Customizing Transport Request for customer-defined objects and a Workbench Transport Request for SAP-delivered system objects. For purely local objects in the target system, no transport is needed.
Use Test Run first: it performs every import step except writing data.
SAP Help advises using the repair import type only to apply content changes supplied by an SAP correction note.
| Symptom | Fix |
|---|---|
| Transport request missing the BRFplus objects | The "Transport Objects" tick was not set on save. Re-save the objects with the tick set. |
| Import into target fails on a missing data object | Dependent objects were not in the request or the target. Include them or import them first. |
| Objects exist in target but behave as before | They are inactive in the target. Activate them. |
| Trace not available in target | Versioning is off on those objects. See Step 2. |
BRFplus is a general rules tool, but SAP does not use it for every topic you listed. To avoid giving you the wrong picture, each section states plainly whether BRFplus is the standard SAP mechanism, an available option or a custom extension idea. Where the standard engine is something else (condition technique, dunning procedure, availability check), BRFplus is only useful for custom logic around it.
| Use case | Status | Standard engine if not BRFplus |
|---|---|---|
| Output determination | Standard in S/4HANA output management | (older: NAST condition technique) |
| Pricing / surcharge logic | Custom option; SAP Press tutorial builds one | Pricing condition technique (VK11, pricing procedure) |
| Workflow routing / approvers | Commonly used option | Workflow agent assignment, flexible workflow |
| Fiori / BOPF validations | Available option for rule logic | BOPF determinations/validations in ABAP |
| Master data checks | Standard in SAP MDG; option elsewhere | Validation exits, BAdIs |
| Tax / account / posting | Custom option | Tax procedures, account determination (OBYC, VKOA) |
| Dunning / credit / ATP | Custom option | Dunning procedure, credit management, availability check |
The status column reflects the sources listed at the end plus general SAP practice. Verify each item against the documentation of your own release before relying on it in a project.
| Aspect | Detail |
|---|---|
| Status in SAP | Standard in S/4HANA output management (from the 1511 era onward for several applications). SAP Community also notes that BRFplus gained prominence with release 1610. |
| What BRFplus does | Decision tables decide output type, channel, form template, recipient, language and copies for sales, billing, delivery, purchasing and inventory (goods movement) documents. |
| Mini-example | Goods receipt (transaction/event type WE) posts a material document; the system checks whether the new output management is active for that event and then reads the OPD rules for the business rule "Goods Movement". A row such as Plant 1000 + movement type 101 -> output type GOODS_RECEIPT_SLIP, channel PRINT could be maintained in OPD. (Output type name illustrative.) |
| See Part 2, Step 9, for the maintenance procedure. |
| Aspect | Detail |
|---|---|
| Status in SAP | Not the standard pricing engine. Standard SAP pricing uses the condition technique. BRFplus is an option for custom calculations. The SAP Press BRFplus book includes a tutorial that creates a pricing application in the workbench. |
| What BRFplus does | A function takes order data (customer group, quantity, delivery distance) and returns a surcharge percentage through a decision table or formula. |
| Mini-example | Context: CUST_GROUP, DELIVERY_ZONE, ORDER_VALUE. Decision table returns SURCHARGE_PCT: Zone A = 0, Zone B = 2.5, Zone C = 5, and orders above 100000 are exempt (exclusive row on top). A formula expression multiplies the order value by SURCHARGE_PCT. |
| Use this only where the standard pricing procedure cannot express the rule. Call the BRFplus function from an enhancement/user exit, and keep pricing in SAP's condition technique wherever possible. |
| Aspect | Detail |
|---|---|
| Status in SAP | Commonly used option. Rules decide who approves what. |
| What BRFplus does | The function returns a user, role or organizational unit depending on document amount, company code and document type. |
| Mini-example | Context: DOC_TYPE, AMOUNT, COMPANY_CODE. Decision table: AMOUNT up to 5000 -> role MANAGER; 5001 to 50000 -> role DIRECTOR; above 50000 -> role CFO_OFFICE. The workflow step reads the result and creates the work item for that role. |
| The way BRFplus is attached to workflow differs between classic Business Workflow and flexible workflow. Check the documentation for your release. [VARIES BY RELEASE] |
| Aspect | Detail |
|---|---|
| Status in SAP | Available option. BOPF (Business Object Processing Framework) objects can hold validations and determinations written in ABAP; rule-heavy ones are candidates for BRFplus. |
| What BRFplus does | A validation rejects a save when business conditions are not met; a determination fills fields automatically. Business users can then change thresholds without code. |
| Mini-example | Rule on a custom Fiori order app: if PAYMENT_TERMS is "immediate" and ORDER_VALUE exceeds the credit limit table value for the customer group, return an error message "Credit limit exceeded for this group". The decision table holds the limit per group. |
| Because BRFplus runs inside the save transaction, keep functions small and avoid heavy database lookups to protect response time. |
| Aspect | Detail |
|---|---|
| Status in SAP | Standard in SAP Master Data Governance (MDG). An IBsolution tutorial describes a BRFplus function wired into the Business Data Toolset (BDT) so that when the user saves master data the rules run and validated data is returned. |
| What BRFplus does | Rules such as "entry date must not be in the future", mandatory fields per country, allowed value combinations. |
| Mini-example | Rule: if ENTRY_DATE is later than the current date, return error "Entry date is in the future". A second decision table lists required tax-number formats per country; the function returns an error message if the format check fails. |
| The same IBsolution article notes that BRFplus is not bound to a single SAP system type; it runs in S/4HANA, ERP and MDG. |
| Aspect | Detail |
|---|---|
| Status in SAP | Custom option. Standard SAP uses its own procedures: tax procedures (tax codes), account determination tables for materials (OBYC) and for sales revenue (VKOA). |
| What BRFplus does | BRFplus can hold company-specific logic that the standard tables cannot express, for example choosing a clearing account depending on several attributes at once. |
| Mini-example | Context: GL_ACCOUNT_TYPE, COST_CENTER_GROUP, PROFIT_CENTER, DOC_TYPE. Decision table returns POSTING_KEY and TARGET_GL_ACCOUNT. A BAdI during posting calls the function and replaces the default account. |
| Posting logic has audit implications. Version everything, document test cases and involve finance before use. |
| Aspect | Detail |
|---|---|
| Status in SAP | Custom option. Standard SAP uses a dunning procedure (with levels), credit management (FSCM) and the availability check (checking group/rule). |
| What BRFplus does | Decision tables can add business rules around these, for example choose a dunning letter variant by customer segment and overdue days, or choose an ATP scope by product group. |
| Mini-example | Context: CUSTOMER_SEGMENT, DAYS_OVERDUE, AMOUNT_OVERDUE. Decision table: SEGMENT=KEY and DAYS 1-15 -> Reminder email; SEGMENT=KEY and DAYS above 45 -> Account manager call task; other segments and DAYS above 30 -> Legal notice template. |
| Never use BRFplus to bypass a standard control (for example credit blocks) without explicit sign-off from the process owner. |
| # | Area | Check | Done? |
|---|---|---|---|
| 1 | Application | Storage type is Customizing (or System for SAP content); package is transportable | [ ] |
| 2 | Application | Default versioning mode set (Enforced if Lean Trace is wanted) | [ ] |
| 3 | Data objects | All active; DDIC bindings set where value help is needed | [ ] |
| 4 | Decision tables | Rows ordered most-specific first; catch-all row present if intended | [ ] |
| 5 | Decision tables | Blank-cell behaviour proven in simulation | [ ] |
| 6 | Rule set | Assigned to the function; priority sensible; active | [ ] |
| 7 | Function | Signature matches what the caller supplies and expects | [ ] |
| 8 | Testing | All paper test cases simulated and signed off by the process owner | [ ] |
| 9 | Testing | Negative cases tested (no match, wrong case, empty input) | [ ] |
| 10 | Transport | "Transport Objects" ticked at every save; request released | [ ] |
| 11 | Target system | Objects activated; simulation repeated in QA with the same cases | [ ] |
| 12 | OPD / Output Mgmt | Output management active for the application object; OPD rows activated | [ ] |
| 13 | Authorizations | Business key users have only the roles they need; admin role restricted | [ ] |
| 14 | Documentation | Rule owner, change process and test cases recorded | [ ] |
| 15 | Rollback | Previous version known (versioning) or XML backup exported | [ ] |
| Symptom | Likely cause | What to do |
|---|---|---|
| Transaction BRFPLUS not found | Older ECC below NetWeaver 7.02, or wrong tcode spelling | Try BRF+; on NW 7.01 use FDT_WORKBENCH; otherwise plan an enhancement-package upgrade |
| Workbench opens blank or error | Web Dynpro services inactive, or missing authorization | Basis activates services; add SAP_BC_FDT_ADMINISTRATOR |
| Wrong row selected | Row order or operator | Reorder rows; check operators; use technical trace |
| No result returned | No row matched and no default row | Add a catch-all row |
| Function result empty but table works in isolation | Rule action does not write to result | Check the action in the rule |
| Trace missing | Objects not versioned | Set versioning to Enforced; re-save objects |
| Check in OPD: "form template not valid for output type" | Combination not allowed (SAP KBA 2843926) | Choose a valid template or remove the rule |
| Check in OPD: channel not supported (Cloud) | Application does not support the channel | Remove the rule; add channels only through supported configuration |
| Output not created in the business document | New output management not active for the application, or no matching OPD row | Check activation path; test with simulation; debug according to the SAP Community troubleshooting blog |
| Object type not offered in OPD | Business object not supported (for example quality notification) | See SAP KBA 3535356; use another output mechanism |
| Changes not in QA | Objects not on a transport request | Re-save with "Transport Objects" ticked |
| Import fails with missing dependency | Dependent objects not transported | Add them to the request or import first |
| Term | Meaning |
|---|---|
| Action | A task BRFplus performs outside its own logic, such as sending a message or calling a method. |
| Application | The container for BRFplus objects; carries package, storage type and default settings. |
| ATP | Available-to-Promise: the availability check on sales orders. |
| BAdI | Business Add-In: an SAP enhancement point in ABAP code. |
| BOPF | Business Object Processing Framework: ABAP framework for business objects with validations and determinations. |
| BRFplus | Business Rule Framework plus: SAP's rules framework in NetWeaver ABAP. |
| CDS | Core Data Services: view technology in S/4HANA used for data models and extensions. |
| Catalog | Optional grouping of BRFplus objects for navigation; never versioned. |
| Context | Input data passed to a function. |
| Data object | Element, structure or table carrying values in BRFplus. |
| DDIC | ABAP Dictionary: the system's data definition repository. |
| Decision table | Expression holding rows of conditions and results. |
| ECC | SAP ERP Central Component: the generation of SAP ERP before S/4HANA. |
| EhP | Enhancement Package: ECC upgrade package. |
| Expert Mode | Workbench mode unlocking advanced features such as XML export/import. |
| Exclusive indicator | In OPD tables: stops evaluation at this row. |
| Expression | Computational unit returning a value (decision table, formula, lookup, etc.). |
| FDT | Functional Data Types: technical prefix for the BRFplus repository. |
| Function | Interface between calling code and rules; defines context and result. |
| IDoc | Intermediate Document: SAP's standard electronic message format. |
| IMG / SPRO | Implementation Guide: SAP customizing menu, opened with transaction SPRO. |
| Lean trace | Trace that logs only steps contributing to the result; needs versioned objects. |
| MDG | SAP Master Data Governance. |
| NAST | Table of the classic condition-based output control. |
| NetWeaver | SAP's technical platform for ABAP applications. |
| OPD | Output Parameter Determination: transaction and app for maintaining output rules. |
| Result | Output data returned by a function. |
| Rule | Condition plus actions inside a rule set. |
| Rule set | Collection of rules, executed by priority. |
| Simulation | Workbench test of a function, expression or action with typed inputs. |
| Storage type | Application property: Customizing, System or Local; decides transportability. |
| Technical trace | Trace that logs every step regardless of contribution. |
| Transport | Moving objects between SAP systems (development to production). |
| Versioning | Keeping older states of objects, based on timestamps. |
| Web Dynpro ABAP | UI technology in which the workbench is built. |
Do these on paper first, then repeat them later in a real or training system.
Task. Add a new rule: for DOC_TYPE = RE (returns) in plant 1000, output type RETURN_SLIP, channel PRINT, language EN, copies 1. Where must the new row sit, and why? Which test case would prove that other rows are not affected?
| Answer key. Insert the row above the catch-all row 5. Placing it before row 1 or 2 is fine because DOC_TYPE = RE differs from OR; placing it after row 5 would make it unreachable, because row 5 matches everything. Test with DOC_TYPE = RE, PLANT = 1000, CUST_COUNTRY = IN. Expected: RETURN_SLIP, PRINT, EN, 1. Then re-run T1 to T6 to check that nothing else changed. |
Task. The table has rows in this order: (1) DOC_TYPE blank, PLANT blank, CUST_COUNTRY blank -> PRINT; (2) DOC_TYPE OR, PLANT 1000 -> EMAIL. A tester says orders from plant 1000 always print. Why, and what is the fix?
| Answer key. Row 1 matches everything and the first match wins, so row 2 is never reached. Fix: move the catch-all row to the bottom. A technical trace would show row 1 as the matched row. |
Task. Management wants the channel to depend on the customer's preferred contact method (EMAIL or PRINT) and on the order value (above 50000 requires PRINT with 2 copies regardless). List the context elements, the result elements and the first two rows of the table.
Answer key. Context: PREF_CONTACT, ORDER_VALUE (plus any existing ones). Result: OUTPUT_TYPE, CHANNEL, LANGUAGE, COPIES. Row 1 (exclusive or first): ORDER_VALUE above 50000 -> CHANNEL = PRINT, COPIES = 2 (any PREF_CONTACT). Row 2: PREF_CONTACT = EMAIL -> CHANNEL = EMAIL, COPIES = 1. Then a catch-all PRINT row. The big-order row must be first so that it overrides the customer preference. |
Task. In OPD you add a row for Sales Document Type = ZOR with channel EMAIL and tick the exclusive indicator. A lower row says Sales Organization = 1000 -> channel PRINT. A ZOR order from sales organization 1000 is created. Which channel results, and why?
| Answer key. EMAIL. The exclusive indicator stops the determination at the ZOR row, so the lower PRINT row is not applied. |
Task. You built ZOUT_DET_APP in a local package ($TMP) and now want to move it to QA. What is the problem and what are your two options?
| Answer key. Local objects (and a Local storage type) cannot be recorded on a transport request. Option 1: recreate or assign the application to a transportable package with Customizing storage type, then save with "Transport Objects" ticked. Option 2: in Expert Mode, export the application as XML and import it in QA with a Customizing request and Test Run first. |
Task. For each requirement say whether BRFplus is the standard tool, an option, or the wrong choice: (1) which output form to print for a sales order, (2) the base price of a material, (3) validating a vendor tax number format in MDG, (4) the posting account for goods receipt.
| Answer key. (1) Standard: S/4HANA output management through OPD. (2) Wrong choice for the base price: the standard condition technique handles it; BRFplus only for custom surcharges. (3) Standard in MDG validations. (4) Standard account determination (OBYC); BRFplus only as a custom enhancement if the standard table cannot express the rule. |
Verified by web search on 29 October 2026. Several pages are older SAP documentation; always confirm against the documentation of your own release.
BRFplus workbench (start, role, simulation, transport analysis) - https://help.sap.com/erp_mdg_addon70/helpdata/en/87/bd5c5b6ab34a4f93c134a5fa153db1/content.htm
BRFplus - Versioning - https://help.sap.com/saphelp_ewm900/helpdata/en/b8/6d3a3f7871432d9692758ad85466c4/content.htm
BRFplus - Trace (lean and technical trace) - https://help.sap.com/saphelp_ewm900/helpdata/en/e8/5a3734b501435dba895d2c1337a505/content.htm
BRFplus - Export and import of XML data - https://help.sap.com/saphelp_ewm900/helpdata/en/7b/8087ebdefb48ccb1aa50854c7f4b20/content.htm
SAP Learning - Determining Output Parameters (S/4HANA Sales output control) - https://learning.sap.com/courses/customizing-output-control-in-sap-s-4-hana-sales/determining-output-parameters
KBA 3535356 - BRFplus does not support quality notification and inspection lot - https://userapps.support.sap.com/sap/support/knowledge/en/3535356
KBA 2843926 - Output Parameter Determination app check errors (Cloud) - https://userapps.support.sap.com/sap/support/knowledge/en/2843926
SAP Note 2248229 - SAP S/4HANA output management, BRFplus files for output parameter determination - referenced in the community sources below; search the SAP Notes service
BRF+ and output management (ERPQNA) - https://www.erpqna.com/?p=38737
BRF+ output management (SAP Community blog) - https://answers.sap.com:443/t5/enterprise-resource-planning-blogs-by-members/brf-output-management/ba-p/13425910
Troubleshooting the new output management in Inventory Management - https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/troubleshooting-the-new-output-management-in-inventory-management/ba-p/13579200
Output management in Manage Purchase Orders Centrally - https://groups.community.sap.com/t5/spend-management-blogs-by-sap/output-management-in-central-procurement-manage-purchase-orders-centrally/bc-p/13493227
How to launch BRFPLUS workbench in SAP ECC 6.0 (SAP Community Q&A) - https://community.sap.com/t5/technology-q-a/how-to-launch-brfplus-workbench-in-sap-ecc6-0/qaq-p/7630776
A Step-by-Step Guide to Business Rules Framework plus (SAPinsider) - https://sapinsider.org/a-step-by-step-guide-to-business-rules-framework-plus/
Validating data with BRFplus - technical implementation (IBsolution) - https://www.ibsolution.com/academy/blog_en/master-data-management/validating-data-with-brfplus-technical-implementation
BRFplus - Business Rule Management for ABAP Applications, table of contents (SAP Press) - https://www.sap-press.com/brfplus-business-rule-management-for-abap-applications_2106/toc/251
| What could not be verified. Exact button labels, tab names, determination step names and the precise wording of dialogs differ between S/4HANA releases and could not be confirmed against a live system. These are flagged as [VARIES BY RELEASE] throughout, and every screen is an illustrative reconstruction, not an SAP screenshot. All names such as ZOUT_DET_APP, ORDER_CONF and PROFORMA are invented for this exercise. |