# BRFplus

BRFplus (Business Rule Framework plus) ist ein Geschäftsregelmanagementsystem (business rules management system, BRMS) der SAP SE. BRFplus ist Bestandteil des ABAP-Stack von SAP NetWeaver und kann daher systemintern von allen SAP-Anwendungen genutzt werden, die auf SAP NetWeaver aufbauen. Aus den mit BRFplus modellierten Regeln lassen sich aber auch Web-Services generieren, die in einer nach dem SOA-Prinzip organisierten Systemlandschaft angeboten werden können, unabhängig von der Softwareplattform auf der Seite des Service-Nutzers.
Die Anfänge der BRFplus-Entwicklung liegen im Umfeld der Mittelstandslösung SAP Business ByDesign (dort anfangs unter dem Namen FDT – Formula and Derivation Tool eingeführt) und wurde später auf jene Codelinien portiert, die auch die Grundlage für die SAP Business Suite liefern. Daraus ergibt sich die Möglichkeit, Geschäftsregeln, die bereits für Business ByDesign entwickelt wurden, in ein voll ausgebautes SAP-System zu übernehmen und dort ohne jede Änderung weiter zu nutzen.

## Überblick

BRFplus verfolgt das Ziel, eine einheitliche Modellierungs- und Laufzeitumgebung für Geschäftsregeln zu bieten, die sich sowohl an technisch orientierte Benutzer wendet (Programmierer, Systemadministratoren) wie auch an Sachbearbeiter, die die operativen Vorgänge in einem Unternehmen oder einer öffentlichen Organisation bearbeiten (z. B. Materialbeschaffung, Angebotserstellung, Prüfung von Kreditanträgen usw.). Die unterschiedlichen Anforderungen und Einsatzszenarios der verschiedenen Benutzergruppen lassen sich dabei mit Hilfe des SAP-Berechtigungssystems und einer individuell anpassbaren Benutzeroberfläche voneinander abgrenzen.
Die Integration von BRFplus in SAP NetWeaver erlaubt es den hierauf aufbauenden Anwendungen, Geschäftsregeln konsequent aus betriebswirtschaftlicher statt aus technischer Perspektive zu betrachten und zu modellieren, da ein direkter Zugriff auf die betriebswirtschaftlichen Objekte des SAP Dictionary möglich ist (z. B. Kunde, Lieferant, Material, Rechnung usw.).
Neben einer umfangreichen Palette vorgefertigter Ausdruckstypen (Entscheidungstabelle, Entscheidungsbaum, Formeln, Datenbankzugriff, Schleifenkonstrukte usw.) und Aktionen (E-Mail versenden, Workflow starten usw.) können kundenspezifische Ausdruckstypen modelliert werden. Außerdem wird der direkte Aufruf von Funktionsbausteinen und ABAP-OO-Klassenmethoden unterstützt, so dass für das Lösen betriebswirtschaftlicher Aufgabenstellungen das gesamte Arsenal der in der Sprache ABAP enthaltenen Funktionen verfügbar ist. BRFplus bietet ein optionales Versionierungssystem, mit dem die Versionierung auf der Ebene einzelner Objekte individuell gesteuert werden kann. Die Arbeit mit versionierten Regelwerken dient dazu, gesetzliche Regelungen zur zeitbezogenen Nachweispflicht von Systemzuständen zu erfüllen und erlaubt es, Regeln exakt so abarbeiten zu lassen, wie es zu einem bestimmten Zeitpunkt in der Vergangenheit geschehen wäre.
Sobald die in BRFplus modellierten Objekte in einem konsistenten Zustand und aktiviert sind, generiert das System automatisch und nach Bedarf ABAP-OO-Klassen, die den Funktionsumfang des jeweiligen Objekts kapseln. Hierdurch lassen sich erhebliche Verbesserungen der Verarbeitungsgeschwindigkeit erzielen.
Sowohl für Funktionen als auch für einzelne Ausdrücke steht eine Simulationsfunktion inklusive Ausführungsprotokoll zur Verfügung, mit deren Hilfe man die Modellierung überprüfen und Problemen auf den Grund gehen kann.
BRFplus-Anwendungen können als XML-Datei exportiert und wieder importiert werden. Hiermit lassen sich auf einfache Weise Datensicherungen durchführen oder Regelwerke im Unternehmen verteilen.

## Zentrale Objekte
### Anwendung

Das Anwendungsobjekt bildet den Container für alle BRFplus-Objekte, die zur Lösung einer bestimmten betriebswirtschaftlichen Aufgabe benötigt werden. Auf Anwendungsebene können bestimmte Standardwerte definiert werden, die dann von allen innerhalb der Anwendung angelegten Objekte geerbt werden.

### Funktion

Eine Funktion stellt die Verbindung her zwischen einer betriebswirtschaftlichen Applikation und der Regelverarbeitung in BRFplus. Die Funktion nimmt aus der aufrufenden Applikation Eingabewerte entgegen, die sie an die der Funktion zugeordneten Ausdrücke und Regelsätze zur Verarbeitung weiterreicht und das Ergebnis schließlich an die aufrufende Applikation zurückliefert.

### Ausdrucks- und Aktionstypen

* Datenbank-Abfrage
* Entscheidungsbaum
* Entscheidungstabelle
* Fallunterscheidung (Case)
* Formel
* Funktionsaufruf
* GRMS-Konnektor
* Logischer Ausdruck
* Loop (verschiedene Schleifenkonstrukte)
* Prozeduraufruf
* Schrittfolge
* Suchbaum
* Wertebereich
* XSL-Transformation
* Zufallszahl

### Regelsatz

Ein Regelsatz ist ein Container für eine beliebige Zahl von Regeln, die ihrerseits mit Hilfe von Ausdrücken und Aktionen die erforderlichen Berechnungen durchführen. Regelsätze können statt eines Ausdrucks mit einer Funktion verbunden werden, so dass beim Aufruf der Funktion nacheinander alle zugeordneten Regelsätze abgearbeitet werden.

### Datenobjekte

BRFplus unterstützt elementare Datenobjekte (Text, Zahl, Boolean, Zeitpunkt, Betrag, Menge) sowie Strukturen und Tabellen. Strukturen können ineinander geschachtelt werden. Für alle Arten von Datenobjekten besteht die Möglichkeit, Datenobjekte aus dem Data Dictionary des Backend-Systems zu referenzieren. Hierdurch erhält das BRFplus-Datenobjekt Zugriff nicht nur auf die Typdefinition des referenzierten Elements, sondern auch auf die hierfür hinterlegten Domänenwerte und die Dokumentation.

### Sonstige Objekte

Kataloge dienen dazu, eine Untermenge der im System vorhandenen Regelobjekte thematisch zu bündeln und dem Benutzer zu präsentieren. Sie sind ein Mittel, um die oft erhebliche Komplexität eines Regelwerks zu verbergen und dadurch die Benutzung zu erleichtern.
Mit einem Objektfilter können Administratoren festlegen, dass systemweit je nach Benutzer nur bestimmte Objekttypen sichtbar sind oder angelegt werden können. Auf diese Weise lassen sich Zugriffsregeln und Modellierungsvorschriften durchsetzen.

## Andere BRM-Lösungen der SAP

BRFplus ist als Nachfolger der älteren Geschäftsregellösung BRF (Business Rule Framework) positioniert. Während einer längeren Übergangsphase existieren beide Lösungen parallel. Die auf BRF basierenden SAP-Anwendungen portieren ihre Regelverarbeitung jedoch zunehmend nach BRFplus.
Neben BRFplus, das Geschäftsregeln für Anwendungen auf dem SAP NetWeaver ABAP-Stack unterstützt, bietet SAP noch das Produkt SAP NetWeaver Business Rules Management (BRM) an. BRM unterstützt die Modellierung von Geschäftsregeln für den SAP NetWeaver Java-Stack. Beide Produkte konkurrieren nicht miteinander, sondern stehen parallel zur Verfügung, um bestimmte Anwendungsfälle adressieren zu können, in denen beide Technologiestacks gleichzeitig zum Einsatz kommen. Hierfür bietet BRFplus einen speziellen Ausdruckstyp, mit dem in BRM modellierte Regeln ausgeführt werden können.

## Verfügbarkeit

BRFplus wurde erstmals mit SAP NetWeaver 7.0 Enhancement Package 2 ausgeliefert (SP6 oder höher empfohlen). Als Bestandteil von SAP NetWeaver ist seine Benutzung mit der Lizenzgebühr für „SAP NetWeaver Foundation for Third-Party Applications“ ohne zusätzliche Kosten abgegolten. Über einen Umweg besteht auch die Möglichkeit, in BRF+ entwickelte Geschäftslogik auf einem SAP WebAS 6.40 zu nutzen.