quickcontaxt
Kontakt
BlogHeaderSAPS4

BRF+ (Business Rule Framework plus)

Was ist das BRF+?

Jedes Unternehmen kann komplett individuelle Geschäftsregeln haben. Diese Regeln müssen in einem System abgebildet werden. Hierfür stellt die SAP das Geschäftsregelmanagementsystem BRF+ zur Verfügung. BRF+ ist ein ABAP-basiertes Framework und Bestandteil von SAP Netweaver (ab Version 7.02). Es bietet eine Modellierungs- und Laufzeitumgebung für Geschäftsregeln.

Mit Hilfe der Modellierungsumgebung ist es möglich, Vorgaben einfach auf einer grafischen Oberfläche (in Form einer Workbench auf Basis eines WebDynpros) zu erstellen und zu bearbeiten. Nach diesen Vorgaben können SAP-Applikationen dann Geschäftsprozesse steuern. Damit bedarf es hier keinerlei Programmierkenntnisse. Die Workbench kann in einem einfachen Modus, der technische Details ausblendet, oder im Expertenmodus bedient werden.

 

Welche Komponenten gibt es?

Innerhalb des Frameworks gibt es mehrere verschiedene Komponenten. Hierzu zählen Anwendungen, Funktionen, Ausdrücke, Datenobjekte und Regelsätze. Im Folgenden werden die einzelnen Komponenten kurz erklärt:

Anwendung: Eine Anwendung kann als eine Art Container für alle weiteren Komponenten gesehen werden. Alle in einer Anwendung enthaltenen Objekte dienen der Lösung einer betriebswirtschaftlichen Aufgabe. Innerhalb einer Anwendung können gewisse Standardwerte definiert werden und Objekte innerhalb dieser Anwendung können daraufhin diese Werte erben.

Funktion: Funktionen dienen als eine Art Schnittstelle zwischen einer mit BRF+ modellierten Geschäftsregel und einer Anwendung. Hierfür nimmt die Funktion Eingabewerte aus der Anwendung entgegen, leitet diese dann an die zugeordneten Regelsätze weiter und liefert am Ende das Ergebnis an die Anwendung.

Ausdruck: Regeln werden als Ausdrücke implementiert und sind einer Funktion zugeordnet. Beispiele für Ausdrücke sind Formeln, Entscheidungsbäume, Entscheidungstabellen, Datenbank-Abfragen, Fallunterscheidungen (Case), Loops und Suchbäume.

Datenobjekt: Unter einem Datenobjekt versteht man ein konkretes Objekt, welches Daten beinhalten kann. Beispiele hierfür sind Zahl, Text, Tabelle, Struktur oder Boolean. Innerhalb von BRF+ ist es möglich Datenobjekte aus dem Data-Dictionary zu referenzieren. Dieses befindet sich im jeweiligen Backend-System.

Regelsatz: Ein Regelsatz dient als Zusammenfassung mehrerer Regeln. Regelsätze können statt eines Ausdruckes mit einer Funktion verbunden werden. Beim Aufruf der Funktion werden dann alle Regelsätze nacheinander abgearbeitet.

 

Wie erstelle ich eine Geschäftsregel?

Wie schon erwähnt ist das Erstellen einer Geschäftsregel mit BRF+ ohne Programmierkenntnisse möglich. Dies wird durch die grafische Benutzeroberfläche ermöglicht. Aus der erstellten Regel generiert das System im Anschluss dann ABAP-Code.

In folgender Grafik sieht man den Ablauf zur Erstellung einer Geschäftsregel.

Zu der Benutzeroberfläche gelangt man über die Transaktion „BRF+“ oder „BRFplus“.

Hauptbestandteil ist die Funktion. Wie oben bereits beschrieben, werden hier Ein- & Ausgabeparameter definiert. Danach kann die Regel modelliert werden (z.B. das Erstellen von Formeln, Entscheidungsbäumen, etc.). Nachdem man die Modellierung abgeschlossen hat, kann man die Regel direkt auf der Oberfläche testen.

In der folgenden Abbildung sieht man eine beispielhafte Oberfläche. Hier handelt es sich um die Konfiguration einer Formel.

 

Anwendungsbeispiel

Geschäftslogik wird in den meisten Fällen direkt im ABAP Code realisiert und wenn sich Parameter ändern, werden diese in Customizing-Tabellen gepflegt. Wird die Logik jedoch erweitert oder reduziert, muss ein Entwickler das Coding anpassen. Über BRF+ kann ein Mitarbeiter ohne Programmierkenntnisse die Logik anpassen und der dazugehörige Code wird neu generiert.

Das nachfolgende Beispiel behandelt die Berechnung der Lohnsteuer und wurde erstellt in Anlehnung an Website „Erlebe Software

Es gelten folgende Bedingungen:

Bedingung Wirkung
Gehalt < 20.000 Steuerbetrag = Gehalt * 0,15
Gehalt >= 20.000 Steuerbetrag = ( 20.000€ * 0,15 ) + (( Gehalt - 20.000€ ) * 0,25 )

Damit die Logik konfigurierbar ist, werden die Konstanten (20.000, 0.15, 0.25) in einer Customizing-Tabelle ausgelagert, damit bei Änderung der Werte keine Entwicklungsarbeit anfällt.

Diese Logik muss nun in ABAP Code abgebildet werden.

ABAP Code

IF lv_salary < 20000.

lv_tax = lv_salary * 0.15.

ELSE.

lv_tax = ( 20000 * 0.15 ) + ( ( lv_salary - 20000 ) * 0.25 ).

ENDIF.

Jetzt muss die oben beschriebene Logik im Nachhinein angepasst werden, da eine dritte Gehaltsstufe eingeführt werden soll.

Bedingung Wirkung
Gehalt < 20.000 Steuerbetrag = Gehalt * 0,15
20.000€ < Gehalt < 150.000€ Steuerbetrag = ( 20.000€ * 0,15 ) + (( Gehalt - 20.000€ ) * 0,25 )
Gehalt >= 150.000€ Steuerbetrag = ( 20.000€ * 0,15 ) + (( Gehalt – 20.000€ ) * 0,25 ) + (( Gehalt – 150.000€ ) * 0,5 )

Durch diese Erweiterung der Logik muss das Coding angepasst werden.

ABAP Code

IF lv_salary < 25000.

lv_tax = lv_salary * 0.15.

ELSEIF lv_salary BETWEEN 20000 and 149999.

lv_tax = ( 20000 * 0.15 ) + ( ( lv_salary - 20000 ) * 0.25 ).

ELSE.

lv_tax = ( 20000 * 0.15 ) + ( ( lv_salary - 20000 ) * 0.25 ) +

( ( lv_salary - 150000 ) * 0.5 ).

ENDIF.

Mit BRF+ kann die Berechnungslogik ohne Entwicklungsaufwand angepasst werden. Das Verhalten der Funktion calculate_tax wird dann in der grafischen Konfigurationsoberfläche des BRF+ gepflegt, ohne dass dafür ABAP oder Programmierkenntnisse nötig sind.

ABAP Code

 lv_tax = me→calculate_tax( lv_salary ).

 

Fazit

BRF+ ist ein umfangreiches und doch simples Tool zur Erstellung von Geschäftsregeln. Für das Erstellen werden keinerlei Programmierkenntnisse benötigt. Dies wird durch die grafische Benutzeroberfläche realisiert. Hiermit können wertvolle Entwicklungsressourcen gespart werden. Zusätzlich bietet es im Bereich der Nachrichtenflusssteuerung viele Vorteile für Unternehmen, da hier durch den Einsatz von BRF+ nicht mehr alle Formulartypen einzeln programmiert werden müssen und das System durch die Reduzierung der Protokolltabellen schneller ist.

Fabian Ott | Head of MM, SD und Stammdatenmanagement
Zur Übersicht