Business Rule Management mit ABAP

52
27 Kapitel 1 Geschäftsregeln sind ein essenzieller Bestandteil der Prozesse eines Unternehmens. In diesem Kapitel führen wir Sie kurz in das Thema Geschäftsregeln ein und skizzieren dessen Bedeu- tung im Kontext von SAP-Lösungen. 1 Einführung in das Business Rule Management mit SAP Dieses Kapitel gibt Ihnen einen Überblick über Geschäftsregeln (Business Rules) und das Management dieser Geschäftsregeln (Busi- ness Rule Management, BRM) mithilfe von Geschäftsregelmanage- mentsystemen (Business Rule Management Systems, BRMS). Wir stel- len Ihnen die beiden Lösungen SAP Decision Service Management und BRFplus (Business Rule Framework plus) vor, die SAP für diese Aufgabe anbietet und erläutern die Architekturen dieser Lösungs- varianten. Zum Abschluss des Kapitels machen wir Sie mit einem Demoszena- rio bekannt. Dieses Demoszenario beschreibt den Prozess eines Dar- lehensantrags im SAP-System und wird in den folgenden Kapiteln dieses Buches zur Erläuterung der jeweiligen Themen verwendet. Damit Sie alle Beispiele in diesem Buch nachvollziehen können, erläutern wir hier die Schritte, die zur Installation des Demoszena- rios auf Ihrem System erforderlich sind. 1.1 Geschäftsregelmanagement – ein Überblick Geschäftsregeln Bevor wir auf die Geschäftsregelmanagementsysteme von SAP und deren Lösungsarchitektur eingehen, wollen wir definieren, was Ge- schäftsregeln eigentlich sind. Laut der Business Rule Group, einer nichtgewerblichen Gruppe von IT-Fachexperten, enthält eine Geschäftsregel Aussagen, die bestimmte betriebswirtschaftliche Aspekte definieren oder beschränken. Der Zweck einer solchen Re- gel ist die Festlegung einer betriebswirtschaftlichen Struktur oder die

Transcript of Business Rule Management mit ABAP

Page 1: Business Rule Management mit ABAP

27

Kapitel 1

Geschäftsregeln sind ein essenzieller Bestandteil der Prozesse eines Unternehmens. In diesem Kapitel führen wir Sie kurz in das Thema Geschäftsregeln ein und skizzieren dessen Bedeu-tung im Kontext von SAP-Lösungen.

1 Einführung in das Business Rule Management mit SAP

Dieses Kapitel gibt Ihnen einen Überblick über Geschäftsregeln(Business Rules) und das Management dieser Geschäftsregeln (Busi-ness Rule Management, BRM) mithilfe von Geschäftsregelmanage-mentsystemen (Business Rule Management Systems, BRMS). Wir stel-len Ihnen die beiden Lösungen SAP Decision Service Managementund BRFplus (Business Rule Framework plus) vor, die SAP für dieseAufgabe anbietet und erläutern die Architekturen dieser Lösungs-varianten.

Zum Abschluss des Kapitels machen wir Sie mit einem Demoszena-rio bekannt. Dieses Demoszenario beschreibt den Prozess eines Dar-lehensantrags im SAP-System und wird in den folgenden Kapitelndieses Buches zur Erläuterung der jeweiligen Themen verwendet.Damit Sie alle Beispiele in diesem Buch nachvollziehen können,erläutern wir hier die Schritte, die zur Installation des Demoszena-rios auf Ihrem System erforderlich sind.

1.1 Geschäftsregelmanagement – ein Überblick

GeschäftsregelnBevor wir auf die Geschäftsregelmanagementsysteme von SAP undderen Lösungsarchitektur eingehen, wollen wir definieren, was Ge-schäftsregeln eigentlich sind. Laut der Business Rule Group, einernichtgewerblichen Gruppe von IT-Fachexperten, enthält eineGeschäftsregel Aussagen, die bestimmte betriebswirtschaftlicheAspekte definieren oder beschränken. Der Zweck einer solchen Re-gel ist die Festlegung einer betriebswirtschaftlichen Struktur oder die

Page 2: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

28

Kontrolle bzw. Regelung eines betriebswirtschaftlichen Ablaufs. AufBasis der Geschäftsregeln werden in einem Unternehmen Entschei-dungen (Decisions) getroffen.

Ziele bei derEntscheidungs-

findung

Wie man anhand dieser sehr allgemeinen Definition schon erahnenkann, sind Geschäftsregeln in Unternehmen in verschiedensten Aus-prägungen und in einer sehr großen Anzahl vorhanden. Unterstütztdurch die Geschäftsregeln will ein Unternehmen folgende Ziele beider Entscheidungsfindung erreichen:

� TransparenzDie Grundlage der Entscheidung soll transparent und nachvoll-ziehbar sein.

� Ermächtigung der GeschäftsexpertenDie Hoheit über den Inhalt der Geschäftsregeln soll bei denzuständigen Geschäftsexperten liegen, d. h. Key Usern, die dieGeschäftsprozesse gut kennen.

� ComplianceDie Entscheidungen und die Regeln sollen der Corporate Com-pliance entsprechen, d. h. konform zu den unternehmensinternenVorgaben zur Einhaltung von Gesetzen und Richtlinien sein.

� AutomatisierungWenn möglich, sollten die Regeln bzw. die Entscheidungsfindungautomatisiert werden.

� QualitätDie Qualität der Regelevaluierung und der daraus erfolgendenEntscheidungsfindung soll konstant sein.

� AgilitätDie Regeln sollen möglichst schnell auf sich ändernde betriebs-wirtschaftliche Bedürfnisse angepasst werden können.

� Kosten Die Kosten der Implementierung und der Anpassung von Regelnsollen minimiert werden.

� KomplexitätDie Komplexität der betriebswirtschaftlichen Prozesse soll mini-miert werden.

BRMS Geschäftsregelmanagementsysteme (BRMS) können Unternehmen da-bei unterstützen, diese Ziele zu erreichen. BRMS sind laut Wikipedia

Geschäftsregelmanagement – ein Überblick 1.1

29

»Softwaresysteme, die benutzt werden, um die Vielfalt und Komple-xität der Entscheidungslogik, die von operativen Systemen in einerOrganisation oder einem Unternehmen verwendet wird, zu definie-ren, zu verteilen, auszuführen, zu überwachen und instand zu hal-ten«. Ein BRMS besteht aus folgenden Komponenten:

� Entwicklungs- bzw. ModellierungsumgebungGeschäftsexperten sollen durch die Entwicklungs- bzw. Modellie-rungsumgebung in die Lage versetzt werden, Geschäftsregeln zufinden, zu ändern und zu testen.

� Regel-RepositoryGeschäftsregeln und Entscheidungen sollen vom Geschäftsprozessund dessen Code separiert werden. Änderungen an Geschäftsre-geln sollen ohne Anpassungen am Prozess vorgenommen werdenkönnen. Im Regel-Repository erfolgt die Speicherung von Regelndaher separat zur Speicherung des Anwendungscodes.

� Regel-Engine Die Ausführung der Regeln zur Laufzeit erfolgt, indem der Prozessbzw. die Anwendung die Regel-Engine aufruft.

Operative Ent-scheidungen

Allerdings sind nicht alle Regeln und Entscheidungen in einem Un-ternehmen dazu geeignet, in einem BRMS verwaltet zu werden. Wieaus der zitierten Definition hervorgeht, zielt ein solches System aufoperative Anwendungen ab. Die Entscheidungen bzw. Regeln, die ineinem BRMS verwaltet werden, sind daher operative Entscheidungen.Nach Taylor (Decision Management Systems, 2011, Kapitel 5) zeich-nen sich operative Entscheidungen durch folgende Eigenschaftenaus:

� Die Entscheidungen und Regeln gehören in den Verantwortungs-bereich der Geschäftsexperten der jeweiligen Domäne.

� Die Entscheidungen werden entweder wiederholt getroffen und/oder die Entscheidungen haben sehr große betriebswirtschaftlicheKonsequenzen.

� Die Entscheidungen sind häufigen Änderungen unterworfen.

� Der betriebswirtschaftliche Einfluss der Entscheidungen auf dasUnternehmen ist messbar.

Page 3: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

30

Beispiele füroperative

Entscheidungen

In diesem Buch fokussieren wir uns daher auf diesen Typ von Ent-scheidungen bzw. Regeln. Beispiele für operative Entscheidungensind:

� Ermittlung, ob ein Versicherungsnehmer einen berechtigten Scha-densanspruch hat

� Auswahl der Bedingungen für Darlehen

� Berechnung von Steuern

� Festlegung von Gebühren für eine Transaktion

� Abschätzung eines Risikos, z. B. bei einer Gesundheitsprüfung

Durch die Einführung eines BRMS können die operativen Entschei-dungen und deren Regeln vom eigentlichen Geschäftsprozess sepa-riert und der Prozess entsprechend verschlankt werden. Als Konse-quenz können die Regeln flexibler angepasst werden, da es möglichist, diese Anpassungen unabhängig von Änderungen im Prozessvorzunehmen.

BRFplus-Funktion/Entscheidungs-

service

Die für den Prozess notwendige Entscheidung wird vom Prozess inForm einer BRFplus-Funktion bzw. eines Entscheidungsservices (Deci-sion Service) im Kontext von SAP Decision Service Management auf-gerufen. Den Ablauf dieses Aufrufs verdeutlicht Abbildung 1.1.

Abbildung 1.1 Aufrufhierarchie einer BRFplus-Funktion bzw. eines Entscheidungsservices

Die BRFplus-Funktion bzw. der Entscheidungsservice hat einen kla-ren Zweck und eine definierte Schnittstelle mit Eingabeparametern und

Entscheidungsservice/BRFplus-Funktion

SAP-Applikation

eigeneApplikation

Geschäftsregeln/Regelsätze

Code-Exit/BAdI

ruft

nutzt

Lösungsarchitektur 1.2

31

einem Ergebnis. Sie kapselt die eigentlichen Geschäftsregeln bzw.deren Gruppierung in Regelsätzen und versteckt sie so vor demGeschäftsprozess. Sie stellt die einzige Schnittstelle zur Entschei-dungsfindung dar. Die Regeln als eigentlicher Inhalt der BRFplus-Funktion werden über unterschiedliche Artefakte im BRMS reprä-sentiert.

Modellierung von Prozessen und Entscheidungen

Die Modellierung von Prozessen ist durch die Notation Business ProcessModel and Notation (BPMN) in der Version 2.0 standardisiert. In dieserVersion existiert ein eigenes Objekt, ein sogenannter Aufgabentyp, zurDarstellung des Aufrufs von Geschäftsregeln. Für die Modellierung vonEntscheidungen gibt es bisher noch keine anerkannte standardisierteNotation. Allerdings befindet sich ein solcher Standard in Form der Deci-sion Model and Notation (DMN) durch das Gremium Object ManagementGroup (http://www.omg.org) in der Abstimmungsphase. Die aktuelle Spe-zifikation der Notation finden Sie unter dem Link http://www.omg.org/spec/DMN/. Wir empfehlen Ihnen, Entscheidungen mit DMN zu model-lieren.

1.2 Lösungsarchitektur

SAP bietet mit Business Rules Rule Framework plus (BRFplus) und SAPDecision Service Management ein einfaches und ein erweitertes BRMSfür ABAP-basierte Anwendungen an. Beide Varianten basieren aufeinem gemeinsamen BRMS-Kern. In diesem Abschnitt stellen wir dieLösungsarchitektur der beiden Varianten vor und beleuchten diewesentlichen Unterschiede zwischen diesen Lösungen.

1.2.1 BRFplus

In der Geschichte der SAP-Anwendungen und -Werkzeuge gab eseine Vielfalt von Produkten, die einige Aspekte eines BRMS abdeck-ten, wie z. B. das Business Rule Framework (BRF), das Derivation Toolund den Formula Builder. Allerdings erfüllte keines dieser Tools dieAnforderungen an ein BRMS in vollem Umfang. Daher machte sichSAP eine Konsolidierung dieser Tools zur Aufgabe und entwickelteBRFplus. BRFplus ist offizieller Bestandteil des SAP NetWeaver App-lication Servers (AS) ABAP ab Version 7.02 und daher jedem Kundendieses NetWeaver-Releases lizenzfrei zugänglich.

Page 4: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

32

BRFplus und SAP NetWeaver AS ABAP 7.01

BRFplus ist technisch bereits im SAP NetWeaver AS ABAP 7.01 enthalten.Allerdings ist die Lösung in dieser frühen Version nur sehr eingeschränktnutzbar, und wir raten von einer Verwendung in dieser Version des SAPNetWeaver AS ABAP ab. Wenn Sie in diesem Release des AS ABAPGeschäftsregeln verwenden wollen, empfehlen wir Ihnen den Einsatz vonSAP Decision Service Management, das wir im folgenden Abschnitt vor-stellen. Sie können die Regeln mit diesem Werkzeug ohne Einschränkun-gen modellieren und eine Verteilung der Regeln im SAP NetWeaver ASABAP 7.01 vornehmen.

Komponentenvon BRFplus

BRFplus besteht aus den folgenden Komponenten:

� BRFplus WorkbenchDie BRFplus Workbench ist eine Anwendung auf Basis von WebDynpro ABAP und stellt dem Anwender eine Modellierungs- undAdministrationsumgebung für BRFplus-Funktionen und die darinenthaltenen Regeln zur Verfügung. Die BRFplus Workbench istmit dem Backend verbunden und ermöglicht so den Zugriff z. B.auf das ABAP Dictionary (DDIC). Wir stellen sie in Kapitel 2, »Ge-schäftsregeln mit BRFplus modellieren«, umfassend vor.

� BRFplus Rules EngineDie Engine sorgt für die Ausführung der BRFplus-Funktion undder darin enthaltenen Regeln. Der Aufruf erfolgt mit wenigenZeilen ABAP-Code. Die Engine ermöglicht auch die Generierungvon RFC-Funktionsbausteinen (Remote Function Call) und Web-services, damit auch der Aufruf von BRFplus-Funktionen ausNicht-ABAP-Systemen möglich wird. Wir erläutern diesen Auf-ruf ausführlicher in Kapitel 3, »BRFplus-Geschäftsregeln in derAnwendung«.

� BRFplus Rules Repository Das Repository dient der Ablage der BRFplus-Objekte. Die Ob-jekte können in verschiedenen Versionen abgelegt werden, unddas Repository ist an das Change and Transport System (CTS) ange-schlossen. Außerdem ist ein Austausch der Repository-Objekteüber XML möglich. Die Verwaltung der BRFplus-Objekte folgteinem im Vergleich zu klassischen Entwicklungsobjekten erwei-terten Lebenszyklusmodell.

Codegenerierungin BRFplus

Eine herausragende Eigenschaft von BRFplus ist die Art der Regel-ausführung. Da die BRFplus Rules Engine ein Framework zur Code-

Lösungsarchitektur 1.2

33

generierung umfasst, werden die Regeln bei der Ausführung nichtinterpretiert, sondern in Form von ABAP-Code umgesetzt. Auf dieseWeise kann eine optimale Performance bei der Regelausführungerreicht werden. Die Generierung des ABAP-Codes erfolgt automa-tisch beim erstmaligen Aufruf einer BRFplus-Funktion ohne zusätzli-chen administrativen Aufwand. Darüber hinaus bietet BRFplus dieMöglichkeit, die Regelausführungen und die dabei durchlaufenenSchritte in Form von Traces zu speichern und so zu einem späterenZeitpunkt nachzuvollziehen, z. B. bei einem Audit.

Systemlandschaft mit BRFplus

Eine typische Systemlandschaft zur Entwicklung und Verteilung vonBRFplus-Funktionen bzw. Entscheidungsservices ist in Abbildung1.2 dargestellt. Wie Sie in der Abbildung erkennen können, unter-scheidet sich die Systemlandschaft nicht von einer regulären ABAP-Entwicklungslandschaft.

Abbildung 1.2 Systemlandschaft mit BRFplus

Die Modellierung der Regeln erfolgt üblicherweise im Entwicklungs-system. Über BRFplus haben Sie Zugriff auf die Daten im Backend-system, z. B. auf das ABAP Dictionary oder auf Funktionsbausteine,und können diese verwenden.

Transport der BRFplus-Objekte

Nach Fertigstellung der Regeln werden die zugehörigen BRFplus-Objekte per CTS in die nachfolgenden Systeme der Landschaft trans-portiert. Dies erfolgt über den regulären Transportweg mithilfe vonWorkbench- oder Customizingaufträgen. Um die Regeln in einerAnwendung aufzurufen, muss in dieser Anwendung der Aufruf derBRFplus-Funktion implementiert und transportiert werden. Sobaldder Aufruf transportiert ist und die Schnittstelle der BRFplus-Funk-tion stabil bleibt, können Sie Anpassungen an den Regeln vorneh-men, ohne den aufrufenden Prozess ändern zu müssen. Entspre-chend dem üblichen Vorgehen bei Tests und der Qualitätssicherungwerden die Regeln im Test- und Qualitätssicherungssystem anhandder dort vorhandenen Datenbasis validiert, bevor sie im Produktiv-system ausgerollt werden.

Entwicklung Test Qualitäts-sicherung

ProduktionCTS CTS CTS

XML

Page 5: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

34

XML-Export/-Import von

BRFplus-Objekten

Die Pflege bestehender Regeln direkt im Produktivsystem ist norma-lerweise nicht möglich, sondern die Pflege muss auf dem regulärenTransportweg erfolgen, analog zur ABAP-Entwicklung oder demCustomizing. Eine Belieferung des Produktivsystems außerhalb desCTS ist mit den BRFplus-Werkzeugen über einen XML-Export vomEntwicklungssystem und einen XML-Import in das Produktivsystemmöglich, aber diese Option sollte nur für sehr dringende Korrektu-ren verwendet werden.

Regelpflege imProduktivsystem

BRFplus bietet darüber hinaus die Möglichkeit der Regelpflege imProduktivsystem über einen Anwendungs-Exit. Dies hat aber erhöh-ten organisatorischen Aufwand bei Transporten in das Produktiv-system zur Folge, da die Anpassungen im Produktivsystem auch imEntwicklungssystem vorgenommen werden müssen, um Schief-stände nach dem Transport zu vermeiden. Auch dieser Weg ist inder Praxis nicht empfehlenswert.

Mit BRFplus können Sie die Regeln auch in Form von Stammdatenspeichern. Auf diese Weise sind sie direkt im Produktivsystemänderbar. Allerdings müssen Regeln dann entweder über den Trans-port von Kopien transportiert werden, oder man verwendet einengenerativen Ansatz über die BRFplus-API (Application ProgrammingInterface), um die BRFplus-Objekte auf dem jeweiligen System zugenerieren. Dies erfordert aber eine ABAP-Implementierung.

Vorteile desBRFplus

Zusammenfassend ist festzuhalten, dass BRFplus alle wesentlichenKomponenten eines BRMS beinhaltet. Durch den Einsatz von BRFplusprofitieren Anwendungen massiv, insbesondere durch die Trennungvon Prozess- und Regellogik und die Möglichkeit, die Regeln vomGeschäftsexperten modellieren zu lassen. Auf diese Weise kann imRahmen von Partner- oder Kundenentwicklungen sowohl Code alsauch Customizing reduziert oder vermieden werden (siehe dazu denArtikel von Carsten Ziegler, How to Kill Custom Code and Z-Tables, imSAP Community Network (SCN) unter http://scn.sap.com/community/brm/blog/2013/08/31/how-to-kill-custom-code-and-z-tables).

FunktionaleLücken in BRFplus

Allerdings weist BRFplus einige Lücken auf, wenn es darum geht, diezu Beginn des Kapitels formulierten Ziele der Entscheidungsfindungvollumfänglich zu erreichen. Die wesentlichen Schwachstellen sind:

� Prozess- und Regellogik sind durch BRFplus zwar klar voneinandergetrennt, die unterschiedlichen Lebenszyklen von Prozessen und

Lösungsarchitektur 1.2

35

Geschäftsregeln können aber über BRFplus nicht abgebildet wer-den. Diese Lebenszyklen verlaufen typischerweise unterschied-lich, da Regeln sehr häufig geändert werden, während ein Ge-schäftsprozess relativ stabil bleibt. Wie bereits diskutiert, gibt es inBRFplus keine optimale Lösung, um das Produktivsystem außer-halb des CTS zu beliefern.

� Die Testbasis der Regeln in BRFplus entspricht im Wesentlichender Testbasis für regulären ABAP-Code und für das Customizingvon Anwendungen. Im Regelfall erfolgt ein Test mit einer Kopieproduktiver Daten im Qualitätssicherungssystem. Typischerweisewird auch erst zu einem relativ späten Zeitpunkt im Qualitäts-sicherungsprozess getestet, d. h. kurz vor dem Transport in dasProduktivsystem. Aufgrund der hohen Änderungshäufigkeit derRegeln und zur Steigerung der Agilität wäre es aber wünschens-wert, den Test auf Basis aktueller produktiver Daten ausführen zukönnen.

� BRFplus ist immer an einen Systemtrack (d. h. den Weg vom Ent-wicklungssystem über das Testsystem und Qualitätssicherungs-system ins Produktivsystem) und die damit verbundene Trans-portlandschaft gekoppelt. In den Systemlandschaften vieler SAP-Kunden, die zum Teil mehrere produktive ERP-Systeme enthal-ten, kann dies dazu führen, dass kein zentrales Regel-Repositoryaufgebaut werden kann, sondern ein Repository pro Systemtrackexistiert. Dies erschwert die Erfüllung der zu Beginn des Kapitelsformulierten Ziele.

Im folgenden Abschnitt stellen wir SAP Decision Service Manage-ment vor, mit dem es möglich ist, diese Lücken zu schließen.

1.2.2 SAP Decision Service Management

SAP Decision Service Management ist eine eigenständige lizenz-pflichtige Komponente mit der technischen Komponentenbezeich-nung DECSERMG. SAP Decision Service Management wurde technischals Add-on für BRFplus entwickelt und ist inzwischen die strategischbedeutungsvolle BRMS-Lösung von SAP. Die Lösung gliedert sich indie in Abbildung 1.3 dargestellten Komponenten.

Page 6: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

36

Abbildung 1.3 Komponenten von SAP Decision Service Management

Komponenten Ein System, das dieses Add-on beinhaltet, wird als DSM-System(Decision-Service-Management-System) bezeichnet. Die Komponen-ten von SAP Decision Service Management umfassen die folgendenFunktionen:

� Decision-Service-ModellierungDiese Komponente umfasst die Modellierungsumgebung für dieEntscheidungsservices und die darin enthaltenen Regeln. Sie greiftdazu auf die BRFplus Workbench zurück, erweitert diese aber umzusätzliche Funktionen und Ausdrücke.

� Decision Service RepositoryDiese Komponente beinhaltet die Speicherung der Geschäftsre-geln im DSM-System. Auch hierfür wird das BRFplus Repositorywiederverwendet. Im Unterschied zu BRFplus ermöglicht SAPDecision Service Management aber ein zentrales Regel-Repositoryfür alle vom DSM-System versorgten Systeme.

� Decision Service Control CenterDiese Komponente ist die technische Verwaltungskomponenteder Entscheidungsservices. Sie umfasst u. a. die Verteilungsfunktio-nalität für die Entscheidungsservices.

� Decision Service IntelligenceDiese Komponente umfasst die Funktionen zur Versionierung derverwalteten Entscheidungsservices sowie Funktionen für dasReporting. Die Trace-Funktion von BRFplus wird durch SAP Deci-sion Service Management erweitert.

Decision Service Repository

Decision Service Intelligence

Decision-Service-Modellierung

Decision Service Control Center

SAP Decision Service Management

SAP ERP 1

SAP ERP 2

SAPCRM

… Nicht-SAP-System

Lösungsarchitektur 1.2

37

Systemlandschaft Die Systemlandschaft bei Einsatz von SAP Decision ServiceManagement als BRMS sieht aufgrund der neuen und erweitertenFunktionen deutlich anders aus als mit BRFplus. Ein Beispiel füreine typische Systemlandschaft skizziert Abbildung 1.4.

Abbildung 1.4 Systemlandschaft mit SAP Decision Service Management

Wie Sie in Abbildung 1.4 erkennen können, ist SAP Decision ServiceManagement bzw. das DSM-System als zentrales BRMS in der Sys-temlandschaft installiert. Die vom DSM-System mit Entscheidungs-services versorgten Systeme sind sogenannte verwaltete Systeme(Managed Systems). Sie werden über eine RFC-Verbindung mit demDSM-System verbunden. Über diese Verbindung erfolgt die Vertei-lung der Entscheidungsservices aus dem DSM-System in die verwal-teten Systeme. Die Anzahl der vom DSM-System verwalteten Sys-teme ist nicht beschränkt. Durch die zentrale Verwaltung ist eineWiederverwendung von Entscheidungsservices oder Teilen von Ent-scheidungsservices möglich, wie z. B. einzelner Regeln in verschie-denen Systemen. Nicht-SAP-Systeme können über Webservices oderTools von Drittanbietern angebunden werden.

Technische Rahmen-bedingungen

Die technischen Systemvoraussetzungen für den Einsatz von SAPDecision Service Management sind im Vergleich zu BRFplus höher,da SAP NetWeaver AS ABAP 7.31 SP04 vorausgesetzt wird. Aller-dings ermöglicht SAP Decision Service Management die Verteilungvon Entscheidungsservices schon in Systeme ab SAP NetWeaver ASABAP 6.40, was mit BRFplus nicht möglich ist.

Connector

Connector

Connector

Connector

SAP ERP

SAP Decision Service Management

SAP CRM

SAP SRMkundenspezifische Anwendung

Nicht-SAP-SystemWebservice

Page 7: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

38

Wie unsere Beschreibung der Komponenten andeutet, verwendetSAP Decision Service Management die BRFplus Workbench zurModellierung der Regeln. Mit der RFC-Verbindung kann über dieBRFplus Workbench auf alle Daten des verwalteten Systems zuge-griffen werden, z. B. auf Stammdaten, Customizing-Daten oder dasABAP Dictionary.

Nach erfolgter Modellierung der Regeln können Sie die Entschei-dungsservices in den verwalteten Systemen testen, ohne dort Datenzu manipulieren und bestehende Prozesse zu beeinflussen. SAP Deci-sion Service Management bietet Ihnen die Möglichkeit, die model-lierten Services ohne Transport oder Datenreplikation direkt mitproduktiven Daten zu testen.

Verteilung durchDSM-System

Nach dem erfolgreichen Testen können Sie die Entscheidungsser-vices aus dem DSM-System direkt in die verwalteten Systeme vertei-len. Diese Funktionalität umfasst sowohl eine sofortige Verteilung(Hot Deployment) als auch eine zeitversetzte Verteilung (As-offDeployment). Die in BRFplus existierenden Hürden, bedingt durchden Transport der Objekte, existieren hier also nicht. Bei der Vertei-lung werden die Entscheidungsservices als generierter Code unterWiederverwendung des Generierungsframeworks von BRFplus inden verwalteten Systemen persistiert. Dies hat zur Folge, dass dieEntscheidungsservices nach der Verteilung lokal ausgeführt werdenund keine Verbindung mehr zum DSM-System bestehen muss. DerAufruf des Entscheidungsservices im verwalteten System muss ana-log zum Aufruf des Entscheidungsservices in BRFplus in ABAPimplementiert und gegebenenfalls transportiert werden.

Im DSM-System stehen Ihnen über die RFC-Verbindung auch dieTraces der Entscheidungsservices zur Auswertung zur Verfügung.SAP Decision Service Management erweitert an dieser Stelle dieTrace-Funktionalität aus BRFplus, z. B. um einen OData-Service zurVisualisierung der Traces.

Von BRFplus zu SAP Decision Service Management

Sollten Sie bisher BRFplus als BRMS in Ihrem Unternehmen im Einsatzhaben und sich zu einem späteren Zeitpunkt für die Verwendung von SAPDecision Service Management entscheiden, können Sie die bereits exis-tierenden BRFplus-Funktionen nach einem Import ohne aufwendigeMigration in SAP Decision Service Management wiederverwenden.

Demoszenario »Darlehensantrag« 1.3

39

Zusammenfassend ist festzuhalten, dass SAP Decision ServiceManagement die Anforderungen an ein BRMS vollumfänglich erfülltund die Lücken von BRFplus schließt, u. a. im Hinblick auf die Ver-teilung der Entscheidungsservices. Auf diese Weise werden die fürGeschäftsregeln entscheidenden Anforderungen der Agilität und derUnabhängigkeit der Lebenszyklen der Entscheidungsservices undRegeln vom Lebenszyklus des aufrufenden Prozesses erfüllt.

1.3 Demoszenario »Darlehensantrag«

In den folgenden Kapiteln dieses Buches erläutern wir das Geschäfts-regelmanagement so weit wie möglich anhand eines durchgängigenDemoszenarios. Dieses Demoszenario steht auf der Internetseite vonSAP PRESS unter www.sap-press.de/3838 zum Download bereit. Siefinden es dort im Abschnitt Materialien zum Buch. In den folgen-den Abschnitten stellen wir zuerst den fachlichen Use Case unseresSzenarios dar und demonstrieren dann die Installation der bereitge-stellten BRFplus-Anwendung.

Wir möchten darauf hinweisen, dass das Demoszenario ausschließ-lich dazu dient, die Themen dieses Buches anhand eines anschauli-chen und nachvollziehbaren Beispiels zu erläutern, das Sie leichtselbst implementieren können. Der dem Demoszenario zugrundelie-gende betriebswirtschaftliche Prozess wurde stark vereinfacht, d. h.das Demoszenario hat nicht den Anspruch, einen Darlehensprozessfachlich korrekt und vollständig zu repräsentieren.

1.3.1 Betriebswirtschaftliches Szenario

Überblick über Darlehensprozess

Das Demoszenario baut auf einem Antragsprozess für ein Darlehenauf. Im Zuge dieses Prozesses müssen verschiedene Entscheidungengetroffen werden. Zuerst muss entschieden werden, ob der Antrag-steller berechtigt ist, ein Darlehen in der gewünschten Höhe zuerhalten. Auf Basis dieser Entscheidung muss die Bank ermitteln, wiehoch der Zinssatz des Darlehens ist (siehe Abbildung 1.5).

Page 8: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

40

Abbildung 1.5 Entscheidungen innerhalb des Darlehensprozesses

Datengrundlagefür Entscheidung

In unserem Demoszenario werden wir diese beiden Entscheidungenimplementieren. Generell werden im Zuge des Antragsprozesses diefolgenden Daten des Antragsstellers erfasst und an die BRFplus-Funktion übergeben:

� ID des Geschäftspartners

� Vorname des Geschäftspartners

� Nachname des Geschäftspartners

� Geburtsdatum des Geschäftspartners

� monatliches Einkommen des Geschäftspartners

� Höhe des beantragten Darlehens

� Antragsdatum des Darlehens

� monatliche Rückzahlungsrate des Darlehens

Regeln zurEntscheidungs-

findung

Die Entscheidung darüber, ob ein Antragsteller berechtigt ist, einDarlehen zu erhalten, basiert in unserem Szenario auf drei Regelnbzw. nacheinander durchlaufenen Prüfungen:

1. Prüfung der LimitsDie erste Prüfung evaluiert die Parameter »Geburtsdatum« bzw.das daraus berechnete Alter und »Einkommen« des Antragstellersund gleicht die Höhe des beantragten Darlehens mit definiertenLimits ab. Ist der Antragsteller zum Zeitpunkt des Antrags jüngerals 21 Jahre oder unterschreitet das monatliche Einkommen

Darlehensantrag wird eingereicht.

Ist der Antragsteller berechtigt, das Darlehen

zu erhalten?

ja nein

Wie hoch ist der Darlehenszinssatz?

Demoszenario »Darlehensantrag« 1.3

41

1.200 EUR und ist die Höhe des beantragten Darlehens größeroder gleich 100.000 EUR, muss der Antrag abgelehnt werden.

2. Prüfung der Bonität über die RisikoinformationMit dieser Regel wird geprüft, zu welcher Risikostufe der Antrag-steller gehört. Die Daten zur Risikostufe sind für den jeweiligenGeschäftspartner in einer Datenbanktabelle abgelegt. Wenn dieRisikostufe den Grenzwert eines zufriedenstellenden bis erhöhtenRisikos übersteigt, muss der Antrag abgelehnt werden.

3. Prüfung auf bestehende Darlehen und deren HöheMit dieser Regel wird geprüft, ob der Antragsteller bereits ein Dar-lehen bei der Bank bezieht und welche Höhe dieses Darlehen hat.Wenn ein Darlehen existiert und es den Grenzwert von 100.000 €überschreitet, muss der Antrag abgelehnt werden.

Wenn der Antragsteller einem der Prüfkriterien nicht entspricht,wird der Darlehensantrag mit einem Verweis auf die nicht erfüllteBedingung abgelehnt. Wenn der Antragsteller alle Prüfkriterien er-füllt, wird das Darlehen genehmigt. Dies soll als Meldung im Systemfestgehalten werden. Die Meldung soll den Vor- und Nachnamen desAntragstellers enthalten.

Entscheidung über Zinssatz

Im Fall eines genehmigten Darlehensantrags muss als Nächstes dieEntscheidung getroffen werden, zu welchem Zinssatz das Darlehenzugeteilt wird. Die Höhe des Zinssatzes hängt von den folgendenParametern ab:

� Alter des Geschäftspartners zum Antragsdatum in Jahren

� monatliches Einkommen des Geschäftspartners

� Höhe des beantragten Darlehens

� monatliche Rückzahlungsrate des Darlehens

Die Details zu den möglichen Kombinationen dieser Parameter undden sich daraus ergebenden Zinsraten sind in der Excel-Datei DETER-MINE_LOAN_INTEREST_RATE.xlsx aufgeführt, die Ihnen im Down-loadpaket zur Verfügung steht.

In Kapitel 5, »Anwendungsentwicklung«, wird das Szenario um eineweitere Anforderung erweitert: Der Antragsteller soll das Ergebnisder Entscheidung per E-Mail übermittelt bekommen. Falls dies auf-grund fehlender Daten nicht möglich ist, soll ein Workflow in Ganggesetzt werden, nach dem ein Sachbearbeiter die Weitergabe der

Page 9: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

42

Information übernimmt. Einen Überblick über die beschriebene Ent-scheidung gibt Abbildung 1.6 in Form eines DMN-Diagramms.

Abbildung 1.6 DMN-Diagramm des Beispielszenarios

In den folgenden Kapiteln beschreiben wir Schritt für Schritt, wieSie dieses Beispielszenario implementieren können. Die Grundlagefür die Implementierung wird in Kapitel 2, »Geschäftsregeln mitBRFplus modellieren«, und Kapitel 3, »BRFplus-Geschäftsregeln inder Anwendung«, gelegt. In den darauffolgenden Kapiteln erweiternwir das Szenario oder diskutieren Varianten. Damit Sie die Imple-mentierung praktisch nachvollziehen können, sind einige techni-sche Voraussetzungen zu erfüllen, die wir Ihnen im nächsten Ab-schnitt vorstellen.

1.3.2 Beispielanwendung installieren

Systemvoraus-setzungen

Um das Beispielszenario implementieren zu können, benötigen Sieein SAP-System mit SAP NetWeaver 7.31 (SP10 oder höher) oderalternativ SAP NetWeaver 7.40 (SP05 oder höher). Sollten Sie beiIhrer On-Premise-Lösung nicht über einen entsprechenden System-zugriff verfügen, können Sie die aktuelle Developer Edition des SAPNetWeaver Application Servers ABAP in der SAP Cloud ApplianceLibrary verwenden (https://cal.sap.com). Diese wird von SAP kosten-los in der Cloud zur Verfügung gestellt. Für die Nutzung des CloudProviders (Amazon Web Services oder Azure) fallen jedoch Gebüh-ren an.

Für einige Beispiele aus den folgenden Kapiteln sind weitere Voraus-setzungen zu erfüllen:

Ermittleden

Darlehensanspruch

Bank

Antragsdaten

Ermittle den Darlehenszinssatz

Risikoinformation

Höhe bestehender Darlehen

ZinssatztabelleRegeln für

DarlehensanspruchBasisprüflogik

Risikobewertung

Regel für bestehende

Darlehen

Demoszenario »Darlehensantrag« 1.3

43

� Für die Anwendung des Business Objekt Processing Frameworks(BOPF) muss die Komponente SAP Business Suite Foundation(SAP_BS_FND) vorhanden sein.

� Für die Arbeit mit SAP Decision Service Management muss dieKomponente SAP Decision Service Management (DECSERMG) vor-handen sein.

Um das Beispielszenario zu implementieren, benötigen Sie außerdemverschiedene ABAP-Entwicklungsobjekte. Diese stehen im Down-loadbereich des Buches unter www.sap-press.de/3838 im AbschnittMaterialien zum Buch bereit, und Sie müssen diese installieren.

SAPlinkDie Entwicklungsobjekte installieren Sie mithilfe des ProgrammsSAPlink. Dieses Programm ist frei verfügbar und ermöglicht den Aus-tausch von ABAP-Entwicklungsobjekten zwischen Systemen ohneeine Transportanbindung. Informationen zu diesem Programmerhalten Sie auf der SCN-Seite http://wiki.scn.sap.com/wiki/x/sgc. Aufdieser Seite finden Sie auch die Links zur Downloadseite des SAP-link-Programms sowie zu den zugehörigen Plug-ins. Installieren Siesowohl das Programm als auch die Plug-ins gemäß der Beschreibungauf der Downloadseite.

Installation mit SAPlink

Wenn diese Voraussetzung erfüllt ist, können Sie mit der Installationder Entwicklungsobjekte beginnen. Starten Sie dazu das ProgrammZSAPLINK (siehe Abbildung 1.7) und öffnen Sie die RegisterkarteNugget.

Abbildung 1.7 Objekte für das Demoszenario über SAPlink importieren

Page 10: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

44

Fügen Sie im Abschnitt Optionen im Feld Nugget Dateiname denNamen der SAPlink-Datei NUGG_BRFPLUS_DEMOSZENARIO.nugginklusive des Dateipfades ein, die Sie im Download-Bereich desBuches heruntergeladen haben. Das Feld verfügt über eine F4-Hilfe,über die Sie die Datei anhand des Pfades auswählen können. DasFeld Paket Name ist optional und standardmäßig mit dem Wert $TMPbelegt. Wir empfehlen Ihnen, die Objekte für dieses Beispiel ineinem dezidierten Paket abzulegen. Nehmen Sie ansonsten keineweiteren Änderungen an den Einstellungen vor und starten Sie dasProgramm.

Nach dem Import der Objekte müssen Sie diese aktivieren. Anschlie-ßend sehen Sie die importierten ABAP-Entwicklungsobjekte inIhrem spezifizierten Paket, ähnlich wie in Abbildung 1.8.

Abbildung 1.8 Importierte Objekte des Demoszenarios

InstallierteABAP-Objekte

Die meisten der importierten Datenelemente stehen zur direktenoder indirekten Verwendung in BRFplus zur Verfügung. Die Daten-elemente, Domänen und Strukturen sind selbsterklärend und reprä-sentieren die Dictionary-Objekte, die zur Abbildung der Antrags-daten in ABAP notwendig sind. Beachten Sie, dass die folgendendrei Domänen Domänenfestwerte beinhalten, die auch beim Werte-vergleich in BRFplus verwendet werden:

Demoszenario »Darlehensantrag« 1.3

45

� ZDO_LOANAPPL_STATUS_CD Diese Domäne bildet den Status eines Darlehensantrags ab. Sieumfasst daher folgende Festwerte:

– 1: Darlehensantrag angenommen

– 2: Darlehensantrag abgelehnt

� ZDO_LOAN_REJECT_REASON_CD Diese Domäne bildet den Ablehnungsgrund eines Darlehensan-trags ab. Sie umfasst entsprechend der obigen Beschreibung desSzenarios folgende Festwerte:

– 1: Alter/Einkommen zu gering für Darlehenshöhe

– 2: maximal erlaubte Risikostufe überschritten

– 3: Betrag der bestehenden Darlehen zu hoch

� ZDO_PARTNER_RISKSCORE_CD Diese Domäne bildet die Risikostufe eines Antragstellers ab. Sieumfasst folgende Festwerte:

– 1: sehr geringes Risiko

– 2: geringes bis überschaubares Risiko

– 3: zufriedenstellendes bis erhöhtes Risiko

– 4: deutlich erhöhtes bis hohes Risiko

– 5: sehr hohes Risiko

– 6: sehr kritisches Risiko

Die beiden Datenbanktabellen ZDB_RISKSC_INFO und ZDB_EXISTLOANdienen zur Ablage der Risikoinformationen des Antragstellers undbereits existierender Darlehen zum Geschäftspartner.

Die ABAP-Quellcode-Dateien beinhalten die folgenden zwei Ob-jekte, die für die BRFplus-Anwendung relevant sind:

� ZCL_GET_EXIST_LOAN_DATA Diese Klasse bzw. die statische Methode GET_EXIST_LOAN_BY_PARTNER liest die Daten existierender Darlehen zu einem Ge-schäftspartner aus der Datenbanktabelle ZDB_EXISTLOAN aus undgibt das Ergebnis an den Aufrufer zurück. Der Aufruf der Klasseüber BRFplus wird in Abschnitt 2.3.4, »Ausdrücke«, beim Aus-druckstyp »Prozeduraufruf« erläutert.

Page 11: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

46

� ZREPORT_CALL_BRFPLUSLOAN Dieser Report beinhaltet den Aufruf der BRFplus-Funktion ausdem AS ABAP. Der Code wird in Kapitel 3, »BRFplus-Geschäftsre-geln in der Anwendung«, erläutert.

Datenbank-tabellen füllen

Nach der Installation müssen Sie in den importierten Datenbankta-bellen noch die Datenbasis schaffen. Führen Sie dazu die folgendenReports aus:

� ZREPORT_FILL_RISKSCORE_DATA

Dieser Report fügt Einträge in die Datenbanktabelle ZDB_RISKSC_INFO ein, damit Basisdaten für die Prüfung der Bonität anhand derRisikoinformationen zur Verfügung stehen.

� ZREPORT_FILL_LOAN_DATA Dieser Report fügt Einträge in die Datenbanktabelle ZDB_EXIST-LOAN ein, damit Basisdaten für die Suche nach bestehenden Darle-hen und deren Höhen zur Verfügung stehen.

Eigene Beispieldaten verwenden

Sie können die Datenbanktabellen auch mit eigenen Daten füllen. Be-achten Sie, dass die aufgeführten Reports vor der Eintragung neuer Da-ten alle bestehenden Daten aus der Datenbanktabelle löschen.

Nach Ausführung der Reports haben Sie die infrastrukturellen Vor-aussetzungen geschaffen, um das Demoszenario zu implementieren.

Import alsXML-Datei

Zusätzlich zu den ABAP-Entwicklungsobjekten stellen wir Ihnen dievollständige BRFplus-Anwendung zum Download zur Verfügung.Diese können Sie in Ihr System importieren und als »Musterlösung«für die Implementierung verwenden. Der Import der BRFplus-Anwen-dung erfolgt in der BRFplus Workbench (Transaktion BRFPLUS).Klicken Sie, wie in Abbildung 1.9 zu sehen, auf die Schaltfläche Werk-

zeuge, und wählen Sie hier den Menüeintrag XML-Import. Sollten Sieden Menüeintrag nicht finden, stellen Sie über die Personalisierungs-option in BRFplus sicher, dass Sie sich im Benutzermodus Experte

befinden. Details zur Personalisierung erläutern wir in Abschnitt 2.2,»BRFplus Workbench personalisieren«.

Wir stellen zwei Versionen der XML-Datei zur Verfügung:

� Die Datei ZLOANAPPL_CHECK_V110.xml ist mit der XML-Version1.10 in der BRFplus Workbench erstellt worden und kann auf Sys-temen mit SAP NetWeaver AS ABAP 7.31 eingespielt werden.

Demoszenario »Darlehensantrag« 1.3

47

� Die Datei ZLOANAPPL_CHECK_V111.xml ist mit der XML-Version1.11 in der BRFplus Workbench erstellt worden und kann aus-schließlich auf Systemen mit SAP NetWeaver AS ABAP 7.40 einge-spielt werden.

Abbildung 1.9 XML-Import in BRFplus

Im Importdialog wählen Sie im Feld XML-Datei die für Ihr Systempassende Datei aus den heruntergeladenen Dateien auf Ihrem Datei-system aus. Nehmen Sie keine weiteren Anpassungen an den Einstel-lungen des Imports vor. Starten Sie den Import über die SchaltflächeXML-Datei hochladen, wie in Abbildung 1.10 dargestellt.

Abbildung 1.10 Dateiauswahl für den XML-Import

Page 12: Business Rule Management mit ABAP

Einführung in das Business Rule Management mit SAP1

48

Der Import wird mit einer Erfolgsmeldung abgeschlossen (sieheAbbildung 1.11). Bei dem in der Meldung angegebenen Transport-auftrag handelt es sich um einen Transportauftrag für die BRFplus-interne Verwaltung der importierten Anwendung und nicht umeinen im CTS vorhandenen Transportauftrag, da die Anwendungeine lokale Anwendung ist.

Abbildung 1.11 Erfolgreicher Import der XML-Datei

Wenn Sie in die BRFplus Workbench zurücknavigieren, finden Siedie Anwendung in der Liste Ihrer BRFplus-Anwendungen im Reposi-tory (siehe Abbildung 1.12).

Abbildung 1.12 Importierte Beispielanwendung in der BRFplus Workbench

Screenshots im Buch

Die Screenshots in diesem Buch sind auf Basis von SAP NetWeaver 7.40SP09 bzw. SAP NetWeaver 7.31 SP14 entstanden. Die Releases sind imHinblick auf die verfügbaren Funktionen und die Benutzeroberflächepraktisch identisch. Gibt es Unterschiede, weisen wir darauf explizit imText hin.

Demoszenario »Darlehensantrag« 1.3

49

Beachten Sie darüber hinaus, dass auf den Systemen, mit denen dieScreenshots erstellt wurden, SAP Decision Service Management 1.0 SP03installiert ist. Daher sind in einigen Screenshots Funktionen sichtbar, dieohne SAP Decision Service Management nicht zur Verfügung stehen. Diesbetrifft z. B. den Debugger, benutzerdefinierte Attribute und die Testfall-verwaltung. Eine vollständige Liste der durch SAP Decision ServiceManagement zusätzlich verfügbaren Funktionen finden Sie in dem SCN-Artikel SAP NetWeaver Decision Service Management – Let’s Talk Featuresvon Carsten Ziegler unter http://scn.sap.com/community/brm/blog/2013/09/27/sap-netweaver-decision-service-management-let-s-talk-features.

Page 13: Business Rule Management mit ABAP

51

Kapitel 2

Die Grundlage für das Management von Geschäftsregeln bildet deren Modellierung. In diesem Kapitel demonstrieren wir Ihnen anhand unseres Beispielszenarios, wie Sie bei der Modellierung in BRFplus vorgehen.

2 Geschäftsregeln mit BRFplus modellieren

In diesem Kapitel erläutern wir Ihnen die Modellierung von Ge-schäftsregeln in BRFplus. Die Modellierungsumgebung ist hier dieBRFplus Workbench. Wir machen Sie in den folgenden Abschnittenzunächst mit dem Aufbau und den Personalisierungsmöglichkeitender BRFplus Workbench vertraut. Anschließend stellen wir die zen-tralen Objekte der Regelmodellierung in BRFplus dar und implemen-tieren das Demoszenario.

2.1 Aufbau der BRFplus Workbench

Die BRFplus Workbench ist das Werkzeug zur Regelmodellierung inBRFplus. Neben dem Editor zur Modellierung umfasst die BRFplusWorkbench noch eine Vielzahl weiterer Werkzeuge, z. B. zur Anwen-dungsverwaltung, zur simulativen Ausführung von Funktionen, Re-geln, BRFplus-Ausdrücken und Aktionen, zur Transportanalyse undzum Ex- und Import von XML-Dateien für den Austausch von Regeln.

Infrastrukturelle Voraussetzungen

Damit Sie die BRFplus Workbench starten können, müssen Sie zuersteinige Voraussetzungen sicherstellen. Zum einen müssen Sie die Be-rechtigung zur Ausführung der BRFplus Workbench besitzen. SAPliefert die Standardrolle SAP_BC_FDT_ADMINISTRATOR aus, die alle Be-rechtigungen eines BRFplus-Administrators beinhaltet. Sie müssendiese Rolle Ihrem Benutzerprofil in der Transaktion SU01 zuordnen.

Page 14: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

52

Berechtigungen in BRFplus

Die Rolle SAP_BC_FDT_ADMINISTRATOR umfasst eine exemplarische Aus-prägung der Berechtigungen für die Arbeit mit BRFplus. Für den Einsatz inIhrem Unternehmen werden Sie je nach Anforderungen und Aufgabender Benutzer eigene Rollen mit entsprechenden Berechtigungen definie-ren. Dafür stehen Ihnen folgende Berechtigungsobjekte zur Verfügung:

� FDT_WORKB (BRFplus: Berechtigungsprüfung für BRFplus Workbench): Dieses Berechtigungsobjekt regelt die Berechtigung zur Verwendungder BRFplus Workbench und ihrer Werkzeuge.

� FDT_OBJECT (BRFplus: Berechtigungsprüfung auf Objektebene): Dieses Berechtigungsobjekt regelt die Berechtigung für die Anzeige,Anlage oder Löschung von BRFplus-Objekttypen.

� FDT_ADMN (BRFplus: Verwaltung und Monitoring): Dieses Berechtigungsobjekt regelt die Berechtigung für die Verwen-dung der Administrations- und Überwachungswerkzeuge in BRFplus.

� FDT_TRACE (BRFplus: Berechtigungsprüfung auf Lean Trace): Dieses Berechtigungsobjekt regelt die Berechtigung für die Anzeige,Anlage oder Löschung von BRFplus-Traces.

Die einzelnen Berechtigungsobjekte, ihre Berechtigungsfelder und diezugehörige Dokumentation finden Sie im SAP-System über die Trans-aktion SU21 in der Objektklasse FDT – Business Rule Framework.

Servicepfadeaktivieren

Da es sich bei der BRFplus Workbench um eine Web-Dynpro-ABAP-Anwendung handelt, müssen Sie zusätzlich die zugeordneten Ser-vicepfade im Internet Communication Framework (ICF) des SAP-Sys-tems aktivieren. Starten Sie dazu die Transaktion SICF und prüfenbzw. aktivieren Sie die folgenden Servicepfade:

� /SAP/BC/WEBDYNPRO/SAP/FDT_WD_WORKBENCH

� /SAP/BC/WEBDYNPRO/SAP/FDT_WD_OBJECT_MANAGER

� /SAP/BC/WEBDYNPRO/SAP/FDT_CATALOG_BROWSER

Abbildung 2.1 zeigt exemplarisch den aktiven Service FDT_WD_WORK-BENCH im ICF-Pflegedialog.

Wenn diese Voraussetzungen erfüllt sind, können Sie die BRFplusWorkbench mit dem Transaktionscode BRFPLUS oder BRF+ starten.Die BRFplus Workbench wird in einem Browserfenster geöffnet. Ab-bildung 2.2 zeigt die BRFplus Workbench nach dem ersten Start.

Aufbau der BRFplus Workbench 2.1

53

Abbildung 2.1 ICF-Servicepflege – Web-Dynpro-Service der BRFplus Workbench

Abbildung 2.2 BRFplus Workbench – Einstiegsbildschirm

Struktur der Workbench

Die BRFplus Workbench gliedert sich in die Menüleiste 1 im oberenBereich, den Navigationsbereich 2 auf der linken Seite und den Ar-beitsbereich 3 auf der rechten Seite. Die Menüleiste beinhaltet zweiMenüs links und drei Icons rechts. Das Menü Workbench umfasstalle allgemeinen Funktionen der BRFplus Workbench, z. B. die zurAnlage einer Anwendung (siehe Abbildung 2.3).

Das Menü Werkzeuge ist eine Sammlung von BRFplus-Administra-tionswerkzeugen und beinhaltet u. a. Funktionen zur Massenände-rung, Transportkontrolle und Generierung von Webservices (sieheAbbildung 2.4).

Page 15: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

54

Abbildung 2.3 Menüleiste – Menü Workbench

Abbildung 2.4 Menüleiste – Menü Werkzeuge

Die drei Schaltflächen auf der rechten Seite der Menüleiste stellenanwendungsunabhängige Funktionen zur Verfügung. Über einenKlick auf das linke Icon ( ) erhalten Sie eine Vollbildansicht. DerArbeitsbereich der BRFplus Workbench wird dabei maximiert, undder Navigationsbaum sowie die beiden Schaltflächen Workbench

und Werkzeug werden ausgeblendet. Damit haben Sie eine bessereÜbersicht bei der Arbeit mit umfangreichen BRFplus-Objekten. Diemittlere Schaltfläche Personalisieren ( ) dient der individuellenKonfiguration der BRFplus Workbench, die wir im folgenden Ab-

Aufbau der BRFplus Workbench 2.1

55

schnitt besprechen. Die rechte Schaltfläche ( ) öffnet das Hilfe-Menü. Dies umfasst u. a. das zentrale Help Center sowie Informa-tionen zum System.

Navigations- und Arbeitsbereich

Um den Aufbau des Navigations- und Arbeitsbereichs zu veranschau-lichen, zeigen wir in Abbildung 2.5 eine geöffnete Anwendung.

Abbildung 2.5 BRFplus Workbench – Navigations- und Arbeitsbereich

Auf der linken Seite sehen Sie den Navigationsbereich. Dieser um-fasst die abgebildete Repository-Ansicht sowie die Katalog-An-sicht. Während die Repository-Ansicht über einen Hierarchiebaumden Zugriff auf alle BRFplus-Objekte erlaubt, ist in der Katalog-An-sicht nur der Zugriff auf Kataloge möglich. Ein Katalog ist einBRFplus-Objekt zur Gruppierung und Verwaltung der Bestandteilevon BRFplus-Anwendungen. Kataloge ermöglichen eine fachlicheGliederung der BRFplus-Anwendung und einen schnellen und ge-zielten Zugriff auf die für den Geschäftsexperten relevanten Objek-te. In der Repository-Ansicht können Sie über die Schaltfläche Su-

chen mit fast beliebigen Suchkriterien nach BRFplus-Objektensuchen (siehe Abbildung 2.6)

Page 16: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

56

Abbildung 2.6 BRFplus Workbench – Suchdialog

Anzeigeoptionen Des Weiteren können Sie die Anzeige im Repository-Baum nach fol-genden Kriterien filtern (siehe Abbildung 2.7):

� Meine Anwendungen

Diese Anzeigeoption zeigt die von Ihnen erstellten BRFplus-An-wendungen im Repository-Baum an.

� Suchergebnis

Diese Anzeigeoption wird nach Ausführung einer Suche vom Sys-tem verwendet, um die Suchergebnisse anzuzeigen.

� Favoriten

Diese Anzeigeoption zeigt alle von Ihnen als Favoriten gekenn-zeichneten BRFplus-Objekte im Repository-Baum an.

� Zuletzt verwendet

Diese Anzeigeoption zeigt Ihre zuletzt benutzten BRFplus-Objekteim Repository-Baum an. Die Anzahl ist über die Personalisierungkonfigurierbar.

Abbildung 2.7 BRFplus Workbench – Anzeigeoptionen

Aufbau der BRFplus Workbench 2.1

57

Werkzeugleiste im Editor

In Abbildung 2.5 sehen Sie im rechten Bereich der BRFplus Work-bench den Editor, mit dem Sie die BRFplus-Objekte bearbeiten kön-nen. Die Anzeige hängt vom konkreten BRFplus-Objekt bzw. Objekt-typ ab. Allen Objekten gemeinsam ist die in Abbildung 2.8 gezeigteWerkzeugleiste. Sie beinhaltet übergreifende Bearbeitungsfunktio-nen für BRFplus-Objekte, z. B. die Schaltflächen zum Prüfen, Si-

chern und Aktivieren eines BRFplus-Objekts.

Abbildung 2.8 BRFplus Workbench – Werkzeugleiste

Hilfetexte anzeigenDamit Ihnen der Einstieg in die BRFplus Workbench nicht schwer-fällt, haben Sie die Möglichkeit, für bestimmte Elemente der BRFplusWorkbench eine Soforthilfe anzuzeigen. Klicken Sie dazu mit derrechten Maustaste auf eine beliebige Stelle in der BRFplus Work-bench, um das Kontextmenü anzuzeigen, und wählen Sie hier denEintrag Soforthilfe anzeigen (siehe Abbildung 2.9).

Abbildung 2.9 BRFplus Workbench – Kontextmenü

Nun wird Ihnen, entweder direkt unter einem Textfeld 1 oder wennSie mit dem Mauszeiger über ein unterstrichenes Textfeld fahren 2,eine erklärende Beschreibung zu dem Textfeld bzw. dem zugehöri-gen Eingabefeld angezeigt (siehe Abbildung 2.10).

Abbildung 2.10 Beispiele für Texte der Soforthilfe

Page 17: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

58

Neben der Soforthilfe steht Ihnen bei Textfeldern, die an das ABAPDictionary gebunden sind, auch die zugehörige F1-Hilfe zur Verfü-gung. Diese rufen Sie über den Eintrag Mehr Feldhilfe … im Kon-textmenü eines Feldes auf (siehe Abbildung 2.11).

Abbildung 2.11 Zugriff auf F1-Hilfetext über das Kontextmenü

2.2 BRFplus Workbench personalisieren

Eine große Stärke von BRFplus ist die Möglichkeit, die BRFplusWorkbench mittels Personalisierung individuell zu konfigurieren.Wenn Sie die Konfiguration der BRFplus Workbench über die Schalt-fläche Personalisierung starten, erscheint der in Abbildung 2.12dargestellte Dialog.

Abbildung 2.12 Personalisierung – Konfigurationsdialog

BRFplus Workbench personalisieren 2.2

59

Benutzermodi in BRFplus

Auf oberster Ebene haben Sie im Feld Benutzermodus die Möglich-keit, einen der vordefinierten Benutzermodi auszuwählen. Der Be-nutzermodus bildet die Basis für die Personalisierung. Er definiertStandardeinstellungen, die individuell angepasst werden können. Esexistieren zwei Benutzermodi:

� Einfach

Dieser Modus zielt auf die Anwendergruppe der Geschäftsexper-ten ab. Er verbirgt technische Details in der BRFplus Workbenchund ermöglicht so die optimale Lesbarkeit der Geschäftsregeln, dadie Texte bzw. Kurztexte der Objekte angezeigt werden.

� Experte

Dieser Modus zielt auf die Anwendergruppe der Entwickler undAdministratoren ab. Er zeigt die technischen Details und bietet Zu-griff auf alle administrativen Funktionen der BRFplus Workbench.

Wenn Sie die BRFplus Workbench das erste Mal starten, befinden Siesich im Benutzermodus Einfach. Auf den einzelnen Registerkartenkönnen Sie die Anzeige der BRFplus Workbench nach unterschiedli-chen Aspekten steuern und so die vordefinierten Einstellungen indi-viduell anpassen.

Workbench individuell konfigurieren

Auf der Registerkarte Allgemein können Sie generelle Einstellungenfür die BRFplus Workbench vornehmen. Eine zentrale Option aufder Registerkarte ist der Anzeigemodus, über den Sie steuern kön-nen, ob BRFplus-Objekte im Anzeige- oder Bearbeitungsmodus ge-öffnet werden. Eine weitere wichtige Einstellung auf dieser Register-karte ist die Auswahl der Optionen Technische Namen anzeigen,Technische Details anzeigen und Technische Aspekte anzeigen.Diese sind im Expertenmodus aktiviert und können Sie bei der Ad-ministration der BRFplus-Objekte unterstützen.

Empfohlene Einstellung der BRFplus Workbench

Wir empfehlen Ihnen, für die Bearbeitung des Beispielszenarios denBenutzermodus Experte zu verwenden. Zusätzlich empfehlen wir Ihnen,die Checkbox Technische Namen anzeigen auf der Registerkarte Allge-mein nicht zu markieren. Mit dieser individuellen Einstellung sind alletechnischen Funktionen inklusive des Änderungsmodus beim Öffneneines BRFplus-Objekts verfügbar, und gleichzeitig erfolgt die Darstellungder Regeln in einer optimal lesbaren Form. Die Screenshots in diesemBuch wurden mit dieser Personalisierungseinstellung erstellt.

Page 18: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

60

Über die Registerkarte Navigations-Panel (siehe Abbildung 2.13)können Sie die Anzeige des Navigationsbereichs individuell anpas-sen, z. B. welche Objekte und Anwendungen beim Start der BRFplusWorkbench angezeigt und welche Ansichten (Repository und Kata-

log) verfügbar sein sollen.

Abbildung 2.13 Personalisierung – Navigationsbereich

Auf der Registerkarte Repository (siehe Abbildung 2.14) können Siedefinieren, welche Objekte in der Repository-Ansicht dargestelltwerden. Sie können z. B. veraltete, zum Löschen vorgemerkte undgelöschte Objekte anzeigen oder ausschließen.

Abbildung 2.14 Personalisierung – Repository

BRFplus Workbench personalisieren 2.2

61

Über die Registerkarte Kataloge (siehe Abbildung 2.15) können Siedefinieren, welche Kataloge in der Katalog-Ansicht standardmäßigvorbelegt werden sollen.

Abbildung 2.15 Personalisierung – Kataloge

Über die Registerkarte Ausdruck (siehe Abbildung 2.16) können Siedie Anzeige für die Objekte Entscheidungstabelle und Regelsatz

konfigurieren. Für Entscheidungstabellen können Sie definieren, obdie Pflege der Tabelleneinstellungen verfügbar sein soll, ob eine Zei-lennummer angezeigt werden soll, wie viele Zeilen der Entschei-dungstabelle sichtbar sein sollen und ab wie vielen Spalten eineBlätterleiste eingeblendet werden soll. So können Sie die Bedienbar-keit von Entscheidungstabellen optimieren.

Abbildung 2.16 Personalisierung – Ausdruck

Für das Objekt Regelsatz können Sie festlegen, wie viele Regelnbeim Bearbeiten des Ausdrucks expandiert, also vollständig darge-stellt werden sollen.

Über die Registerkarte Filter (siehe Abbildung 2.17) können Siesogenannte Objektfilter für Anwendungen festlegen. Objektfiltererlauben es Ihnen, die in einer Anwendung verfügbaren Objekt-typen einzuschränken.

Page 19: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

62

Abbildung 2.17 Personalisierung – Filter

Die Registerkarte Tastaturkürzel (siehe Abbildung 2.18) ermöglichtIhnen die Definition individueller Tastaturkürzeln (Shortcuts) für ver-schiedene Aktionen innerhalb der BRFplus Workbench.

Abbildung 2.18 Personalisierung – Tastaturkürzel

Sichern Sie die in der Personalisierung vorgenommen Änderungenüber die Schaltfläche Speichern. Über die Schaltfläche Voreinstel-

lungen wiederherst. können Sie die Konfiguration wieder auf dievordefinierten Einstellungen zurücksetzen.

2.3 Arbeitsschritte der Modellierung

Arbeitsschritte imÜberblick

Die Modellierung von Regelwerken in BRFplus folgt einem definier-ten Ablauf, der in Abbildung 2.19 dargestellt ist. Im ersten Schrittlegen Sie eine Anwendung als Container für die BRFplus-Objekte an.Innerhalb dieser Anwendung legen Sie eine Funktion an, die aufruf-bare Einheit in BRFplus. Die Funktion besitzt eine Schnittstelle, dieSie mittels des Kontexts, d. h. den für die Entscheidung benötigtenDaten, und des Ergebnisses der Entscheidung definieren. Die eigent-

Arbeitsschritte der Modellierung 2.3

63

lichen Geschäftsregeln modellieren Sie in den darauffolgendenSchritten durch die Anlage von Regelsätzen und Regeln. Um Regelnanzulegen, müssen Sie Ausdrücke und Aktionen erstellen.

Abbildung 2.19 Ablauf der Regelmodellierung

Nach der Modellierung aktivieren Sie die erstellten Objekte und füh-ren eine Simulation der Funktion aus, um deren Fehlerfreiheit zuprüfen. Im letzten Schritt implementieren Sie den Funktionsaufrufim Backend. Wir werden Sie in den folgenden Abschnitten anhanddes in Abschnitt 1.3, »Demoszenario ›Darlehensantrag‹«, vorgestell-ten Demoszenarios durch die Schritte der Modellierung führen. InKapitel 3, »BRFplus-Geschäftsregeln in der Anwendung«, zeigen wirIhnen darauf aufbauend die Simulation und den Funktionsaufruf.

2.3.1 Anwendung

Der erste Schritt, um Geschäftsregeln in BRFplus zu definieren, istdie Anlage einer Anwendung. Die Anwendung fungiert als Containerfür die zugehörigen BRFplus-Objekte und strukturiert so die Objek-

Funktion anlegen

Objekte aktivieren

Funktion simulieren

Funktionsaufruf implementieren

Anwendung anlegen

Regelsätze anlegen und zuweisen

Regeln anlegen und zuweisen

Ausdrücke anlegen und zuweisen

Aktionen anlegen und zuweisen

Kontext anlegen und zuweisen

Ergebnis anlegen und zuweisen

Page 20: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

64

te, ähnlich wie die Entwicklungsobjekte einer ABAP-Entwicklung ineinem Paket strukturiert sind. Darüber hinaus ist die Anwendungdas zentrale Verwaltungsobjekt in BRFplus. Sie können hier eineReihe von Einstellungen vornehmen, die über die eines ABAP-Pakets hinausgehen, z. B. Default-Einstellungen für Meldungen imAnwendungsprotokoll oder für Währungen. Die Einstellungen aufAnwendungsebene werden an die zugeordneten BRFplus-Objektevererbt und können dort bei Bedarf übersteuert werden.

Anwendunganlegen

Wir legen nun die Anwendung für unser Demoszenario »Darlehens-antrag« an:

1. Klicken Sie in der BRFplus Workbench auf die Schaltfläche An-

wendung anlegen (siehe Abbildung 2.20).

Abbildung 2.20 Anlage einer Anwendung starten

2. Das System startet den in Abbildung 2.21 gezeigten Dialog, in demSie die Basisdaten der Anwendung angeben. Die Eingabe einestechnischen Namens im Feld Name ist obligatorisch. Der Name ei-ner Anwendung muss eindeutig sein und sollte mit dem Namens-raum der Entwicklung beginnen. Wir wählen das Namensraum-präfix Z* analog zu einer Kundenentwicklung. Hinterlegen Sie imFeld Name daher den Wert ZLOANAPPL_CHECK.

Namensräume in BRFplus

Detaillierte Informationen zu Namenskonventionen und Namensräumenin BRFplus finden Sie in der SAP-Bibliothek im Abschnitt SAP DecisionService Management/BRFplus � Namenskonventionen.

3. Zusätzlich können Sie einen Kurztext und einen Text hinterle-gen. Die Eingabe im Feld Kurztext ist auf 20 Zeichen beschränkt,während das Feld Text die Eingabe von 80 Zeichen erlaubt. Sie

Arbeitsschritte der Modellierung 2.3

65

können daher im Feld Text eine aussagekräftigere Beschreibungdes BRFplus-Objekts erfassen, in diesem Fall der Anwendung.

Abbildung 2.21 Dialog zur Anlage einer Anwendung (Basisdaten)

Anzeige von Kurztext und Text

Die BRFplus Workbench zeigt z. B. im Benutzermodus Einfach nicht-technische Objektnamen nach folgender Logik an: Sind die Felder Kurz-text und Text für ein BRFplus-Objekt gefüllt, wird immer die Beschrei-bung im Feld Kurztext angezeigt. Die Beschreibung im Feld Text wird nurangezeigt, wenn kein Kurztext vorhanden ist. Wir empfehlen daher gene-rell, das Feld Kurztext leer zu lassen.

AblagetypenIn den anwendungsspezifischen Daten müssen Sie einen Ablagetypdefinieren. Der Ablagetyp legt die Art der Datenablage auf der Da-tenbank und damit implizit die Änderungs- und Transporteigen-schaften der Anwendung und der enthaltenen Objekte fest. Wie einObjekt eines Ablagetyps auf ein Objekt eines anderen Ablagetyps zu-greifen kann, ist je nach Ablagetyp eingeschränkt. BRFplus bietetdrei Ablagetypen:

� System

Diese Objekte werden in mandantenunabhängigen S-Tabellen (Sys-temtabellen) gespeichert. Der Transport erfolgt in Workbench-

Page 21: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

66

Aufträgen. Objekte dieses Ablagetyps können nur auf Objekte desgleichen Ablagetyps zugreifen. Objekte der anderen Ablagetypenkönnen aber auf System-Objekte zugreifen. Typischerweise wer-den in S-Anwendungen für andere Anwendungen wiederver-wendbare Objekte oder Funktionen abgelegt, die direkt aus demBackend gerufen werden.

� Customizing

Diese Objekte werden in mandantenabhängigen C-Tabellen (Custo-mizing-Tabellen) gespeichert. Der Transport erfolgt in Customi-zing-Aufträgen. Objekte dieses Ablagetyps können auf Objekte desgleichen Ablagetyps oder auf Objekte in S-Anwendungen zugrei-fen. Auch Objekte vom Ablagetyp Stammdaten können auf Cus-tomizing-Objekte zugreifen.

� Stammdaten

Die Objekte werden in mandantenabhängigen A-Tabellen (Anwen-dungstabellen) abgelegt. Sie sind lokal und nicht transportierbar.Stammdaten-Objekte können von Objekten der anderen Ablage-typen nicht angesprochen werden. Sie können aber Objekte alleranderen Ablagetypen aufrufen.

Für die Beispielanwendung verwenden wir den Ablagetyp Customi-

zing. Darüber hinaus können Sie festlegen, ob es sich um eine lokaleAnwendung handelt und zu welchem Entwicklungspaket und wel-cher Softwarekomponente die Anwendung zugeordnet werden soll.Bestätigen Sie, dass es sich um eine lokale Anwendung handeln sollund übernehmen Sie die Vorgaben für das Entwicklungspaket unddie Softwarekomponente. Schließen Sie die Dateneingabe über dieSchaltfläche Anlegen und Zu Objekt navigieren ab.

Nach der Anlage haben Sie die Möglichkeit, weitere Eigenschaftender Anwendung zu konfigurieren. Sie befinden sich nun in der Bear-beitungsansicht (siehe Abbildung 2.22).

AllgemeineEigenschaften

Das Formular zur Definition der allgemeinen Eigenschaften ist für al-le Objekte in BRFplus identisch. Auf der Registerkarte Allgemein

werden hier die Basisdaten des Objekts angezeigt, z. B. der Univer-sally Unique Identifier (UUID) und der technische Name. Hier habenSie auch die Möglichkeit, die Zugriffsebene für das Objekt festzule-gen. Auf diese Weise können Sie die Sichtbarkeit des Objekts für an-dere BRFplus-Objekte zusätzlich zu den Einschränkungen, basierend

Arbeitsschritte der Modellierung 2.3

67

auf dem Ablagetyp, konfigurieren. Standardmäßig ist die restriktivs-te Ebene Anwendung voreingestellt. Ändern Sie die Einstellung aufden Wert Global, um die Anwendung für andere Anwendungensichtbar zu machen.

Abbildung 2.22 Bearbeitungsansicht der Anwendung

Auf der Registerkarte Texte können Sie Kurztexte und Texte hinter-legen bzw. anpassen und deren Abhängigkeiten in Hinsicht auf Spra-che und Version festlegen.

Auf der Registerkarte Dokumentation können Sie eine Dokumenta-tion zum Objekt hinterlegen: als Freitext, über ein SAPScript-Objektoder über eine zu implementierende Exit-Klasse. Wir empfehlen Ih-nen, die Dokumentationsfunktion zu nutzen, da so nützliche zusätz-liche Informationen direkt für das Objekt hinterlegt werden könnenund bei Änderungen am Objekt verfügbar sind, ohne in eine separa-te Dokumentation wechseln zu müssen.

Auf der Registerkarte Versionierung werden Ihnen Informationenzu den unterschiedlichen Versionen des Objekts angezeigt. Hier kön-nen Sie Versionen auch vergleichen. Diese Funktion ist vergleichbarmit der Versionshistorie von ABAP-Objekten.

Nehmen Sie für die Beispielanwendung keine weiteren Einstellun-gen vor.

Page 22: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

68

Detaileigen-schaften

Im Abschnitt Details stehen Ihnen je nach Objekt unterschiedlicheKonfigurations- und Bearbeitungsmöglichkeiten zur Verfügung. Fürdie Anwendung können Sie auf der Registerkarte Eigenschaften diebei der Anlage definierten Eigenschaften anpassen. Zusätzlich habenSie die Möglichkeit, eine Klasse für Anwendungs-Exits zu hinter-legen. Diese Funktionalität wird in Abschnitt 6.2, »Anwendungs-Exits«, beschrieben.

Auf der Registerkarte Standardeinstellungen stehen Ihnen zahlrei-che Einstellungsmöglichkeiten zur Verfügung, wie in Abbildung 2.23dargestellt.

Abbildung 2.23 Standardeinstellungen der Anwendung – Teil 1

Hier können Sie die Protokollierungsoptionen von Meldungen imAnwendungsprotokoll konfigurieren, z. B. welches Anwendungs-

Arbeitsschritte der Modellierung 2.3

69

protokollobjekt und -unterobjekt standardmäßig verwendet werdensoll. Zusätzlich können Sie Vorbelegungen für Sprache, Währungund Versionierung einstellen sowie numerische Vergleiche vonNUMC-Feldern konfigurieren.

Auf der Registerkarte Enthaltene Objekte können Sie sich einenÜberblick über die in der Anwendung enthaltenen Objekte verschaf-fen. Sie haben hier auch die Möglichkeit, die entsprechendenObjekttypen anzulegen.

Benutzerdefinierte Attribute

Falls in Ihrem System SAP Decision Service Management verfügbar ist,steht Ihnen außerdem die Registerkarte Benutzerdefinierte Attribute

zur Verfügung. Diese Funktion beschreiben wir in Kapitel 4, »SAP De-cision Service Management«.

Die Registerkarte Sonstiges umfasst die Aktivierung der Wiederauf-nahme von Regelsätzen sowie die Hinterlegung einer Datenbankver-bindung.

Detailinformationen für die sonstigen Anwendungseinstellungen

Detaillierte Informationen zur Wiederaufnahme von Regelsätzen und dennotwendigen Implementierungen in ABAP finden Sie in der SAP-Biblio-thek im Abschnitt SAP Decision Service Management/BRFplus � Ruleset.Informationen zur Hinterlegung von Datenbankverbindungen stehen dortim Abschnitt SAP Decision Service Management/BRFplus � Anwendung.

Nehmen Sie für die Implementierung der Musteranwendung keineAnpassungen an den Eigenschaften der Anwendung vor. Sichernund aktivieren Sie die Anwendung über die Schaltflächen Sichern

und Aktivieren, ohne weitere Objekte anzulegen. Wir empfehlendieses Vorgehen generell, da alle Objekte in der Anwendung eine ak-tive Anwendung voraussetzen.

2.3.2 Funktion

Funktion anlegenDer nächste Schritt der Modellierung ist die Anlage einer Funktion inder BRFplus-Anwendung. Im Kontext von SAP Decision Service Ma-nagement repräsentiert diese Funktion den Entscheidungsservice.Sie stellt das Bindeglied zwischen dem ABAP Backend und dem Re-gelwerk in BRFplus dar.

Page 23: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

70

1. Zur Anlage der Funktion wechseln Sie in der Bearbeitungssicht derAnwendung in den Abschnitt Details auf der Registerkarte Ent-

haltene Objekte. Wählen Sie als Typ Funktion aus und klickenSie auf die Schaltfläche Objekt anlegen (siehe Abbildung 2.24).

Abbildung 2.24 Anlage einer Funktion starten

Anlage von Objekten in BRFplus

Generell können Sie alle BRFplus-Objekte über das Kontextmenü desNavigationsbaums in der Repository-Ansicht anlegen. Dies ist in derRegel der schnellste Weg zur Anlage der BRFplus-Objekte. Der Vollstän-digkeit halber werden wir Ihnen in den folgenden Beispielen jedoch nochweitere Optionen zur Anlage von Objekten zeigen.

2. Das System startet einen Dialog, in den Sie die Basisdaten derFunktion eingeben. Der Name unserer Funktion lautet »LOAN_APPL_CHECK« und der Text »Entscheidungsservice: Prüfung Dar-lehensantrag« (siehe Abbildung 2.25).

Abbildung 2.25 Dialog zur Anlage einer Funktion (Basisdaten)

3. Schließen Sie die Anlage über die Schaltfläche Anlegen und zu

Objekt navigieren ab. Das System leitet Sie zur Bearbeitungsan-sicht der Funktion weiter (siehe Abbildung 2.26).

Arbeitsschritte der Modellierung 2.3

71

Abbildung 2.26 Bearbeitungsansicht einer Funktion

FunktionsmodiIm Abschnitt Details können Sie einen Modus der Funktion angeben.Folgende Modi stehen zur Verfügung:

� Ereignismodus

Dieser Modus ermöglicht die Ausführung einer oder mehrerer Re-gelsätze, die für diese Funktion registriert sind. Das bedeutet, dassnicht die Funktion die auszuführenden Regeln festlegt, sonderndie für die Funktion registrierten Regelsätze.

Durch den Mechanismus der Registrierung erlaubt dieser Modusdie Erweiterung der Funktion bzw. der enthaltenen Logik. DieAusführungsreihenfolge der Regelsätze wird über deren Prioritätgesteuert. Details zu den Regelsätzen erfahren Sie im folgendenAbschnitt. Der Ereignismodus ermöglicht die größte Flexibilitätbei der Regelmodellierung.

� Funktionsmodus

Dieser Modus ermöglicht die Ausführung eines einzelnen Aus-drucks. Er kann in erster Linie als Verschalung eines BRFplus-Ausdrucks interpretiert werden. Der Modus ist für sehr einfacheSzenarien geeignet. Durch die Schachtelung von Ausdrücken istaber auch die Modellierung komplexer Logik möglich.

� Funktions- und Ereignismodus

Dieser Modus ist eine Mischung aus Funktions- und Ereignismo-dus und existiert nur noch aus Gründen der Kompatibilität zu frü-heren BRFplus-Releases. Er sollte in aktuellen Implementierungen

Page 24: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

72

nicht mehr eingesetzt werden. Stattdessen sollten Sie den Ereig-nismodus verwenden.

Um eine optimale Flexibilität und Erweiterbarkeit der Funktion zugewährleisten, setzen wir den Modus in unserem Beispiel auf denWert Ereignismodus.

Signatur derFunktion

Die BRFplus-Funktion bzw. der Entscheidungsservice ermöglichenes, Parameter an die enthaltenen Regeln weiterzugeben und ein Er-gebnis der Entscheidung an den Aufrufer zurückzugeben. In BRFpluserfolgt diese Zuordnung über die Signatur der Funktion, die auf derRegisterkarte Signatur im Abschnitt Details der Funktion definiertwird. Die an die Funktion übergebenen Parameter werden als Kon-text bezeichnet. Sie entsprechen den Eingabe- bzw. Änderungspara-metern einer Methode in einer ABAP-Klasse. Die Verwendung desKontexts an sich sowie die Befüllung der einzelnen Komponentendes Kontexts beim Aufruf der BRFplus-Funktion sind optional, d. h.Sie können die für die Regeldurchführung relevanten Daten auch in-nerhalb von BRFplus aus dem Backend nachlesen. Auf den Kontextkann im Rahmen der Regeldurchführung sowohl lesend als auchschreibend zugegriffen werden.

Das Ergebnis der Entscheidung wird als Ergebnisdatenobjekt bezeich-net und entspricht dem Rückgabeparameter einer Methode. Auch aufdieses Objekt haben Sie bei der Regelbearbeitung lesenden undschreibenden Zugriff.

Für den Kontext und das Ergebnisdatenobjekt stehen die in Tabelle2.1 aufgelisteten Datenobjekttypen zur Verfügung. Zur Einordnungvergleichen wir die Datenobjekttypen jeweils mit einem Datentypaus dem ABAP Dictionary, es ist jedoch nicht notwendig, ein Daten-objekt in BRFplus einem existierenden Dictionary-Datentyp zuzu-ordnen. Strukturen und Tabellen können eine tiefe innere Strukturaufweisen.

BRFplus-Datenobjekttyp Dictionary-Datentyp

Element Datenelement

Struktur Struktur

Tabelle Tabellentyp

Tabelle 2.1 BRFplus-Datenobjekttypen und vergleichbare Dictionary-Datentypen

Arbeitsschritte der Modellierung 2.3

73

Datenelemente zur Signatur hinzufügen

Über die Schaltfläche Vorhandenes Datenelement hinzufügen

können Sie ein bereits existierendes Datenobjekt einfügen (siehe Ab-bildung 2.26) oder über die Schaltfläche Neues Datenobjekt hinzu-

fügen ein neues Datenelement erzeugen und dem Kontext zuwei-sen. Im letzteren Fall können Sie über den Menüeintrag Mehrere

Elemente hinzufügen, den Sie über die Schaltfläche Neues Daten-

objekt hinzufügen aufrufen, auch mehrere Datenelemente in einemSchritt anlegen.

Die Typisierung der Datenobjekte in BRFplus kann auf zwei ver-schiedenen Wegen erfolgen. Zum einen können Sie die Datenobjek-te direkt in BRFplus definieren. Hierzu stehen Ihnen die in Tabelle2.2 aufgeführten elementaren Typen zur Verfügung.

Mapping der Datentypen

Das Mapping der elementaren Datentypen aus BRFplus mit Datentypendes ABAP Dictionarys können Sie über die entsprechenden Typen amInterface IF_FDT_TYPES nachvollziehen.

Dictionary-Bindung

Die zweite Option ist die Datenbindung, bei der BRFplus-Datenob-jekte mit existierenden Datentypen aus dem ABAP Dictionary ver-knüpft werden. In diesem Fall werden die Einstellungen wie Domä-nenfestwerte und die Texte aus dem ABAP Dictionary übernom-men, und es wird ein Datenobjekt in BRFplus angelegt. Bei derVerwendung der Datenbindung sollten Sie Folgendes beachten:

� Durch die Bindung von Strukturen oder Tabellen werden auch dieKomponenten dieser Elemente als BRFplus-Datenobjekte ange-legt. Dies kann zu einer großen Anzahl von automatisch erzeugten

Elementarer Typ in BRFplus Beschreibung

Text Zeichenkette mit maximal 255 Zeichen

Zahl Zahl mit Dezimalstellen

Boolesch boolescher Wert (wahr oder falsch)

Betrag Zahl mit Währung

Menge Zahl mit Mengeneinheit

Zeitpunkt Datum, Zeit, Datum und Zeit oder Zeit-stempel

Tabelle 2.2 Elementare Datentypen in BRFplus

Page 25: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

74

Datenobjekten führen. Sie sollten sich daher bei der Verwendungvon Strukturen und Tabellen davon überzeugen, dass auch alleElemente verwendet werden und gegebenenfalls eine dedizierteDictionary-Struktur oder -Tabelle für die Verwendung in BRFplusanlegen.

� Da die Namen aus den Dictionary-Informationen übernommenwerden, kann es zu einer Vielzahl identisch benannter Datenob-jekte kommen. BRFplus verwendet intern die UUIDs der Objekteund kann sie daher unterscheiden. Für den Anwender kann diegleichartige Benennung aber zu Problemen bei der Handhabungder Datenobjekte führen. Sie haben jedoch die Möglichkeit, dieTexte der Objekte nachträglich zu ändern und sie so unterscheid-bar zu machen.

� Eine Änderung bzw. Erweiterung von Elementen im ABAP Dictio-nary führt nicht automatisch zu einer Anpassung der entsprechen-den Datenobjekte in BRFplus. Sie müssen die Übertragung der Än-derung auf die BRFplus-Datenobjekte explizit anstoßen. Dafürbieten die BRFplus-Datenobjekte die Funktion Bindung aktuali-

sieren. Damit werden alle in BRFplus verwendeten Eigenschaftenauf Basis der Daten des ABAP Dictionarys aktualisiert. Im Fall vonTabellen und Strukturen führt dies bei einer Erweiterung zur An-lage neuer Datenobjekte.

Kontext erstellen Im Rahmen des Demoszenarios nutzen wir die Dictionary-Bindung,um die Datenelemente des Kontexts zu definieren:

1. Klicken Sie auf die Schaltfläche Neues Datenobjekt hinzufügen

und wählen Sie den Menüpunkt Neues Datenelement hinzufü-

gen aus.

2. Im sich öffnenden Dialog wählen Sie als Typ den Wert Element

aus. Wir wollen zuerst das Datenelement für die ID des Geschäfts-partners anlegen und vergeben den Namen »PARTNER_ID«.

3. Auf der Registerkarte Eigenschaften wählen Sie den Anbindungs-typ An ABAP-Dictionary-Element binden aus und binden dasElement an das Dictionary-Datenelement BU_PARTNER. Alle weite-ren Eigenschaften des Elements werden, wie in Abbildung 2.27 zuerkennen, vom System abgeleitet.

4. Löschen Sie den abgeleiteten Kurztext, ändern Sie den Langtext in»ID des Geschäftspartners« und erzeugen Sie das Datenelementüber die Schaltfläche Anlegen.

Arbeitsschritte der Modellierung 2.3

75

Abbildung 2.27 Dialog zur Anlage eines Datenelements (Basisdaten)

Datenelemente des Kontextes anlegen

Legen Sie nun die Datenelemente des Kontexts aus Tabelle 2.3 wie inAbbildung 2.28 dargestellt an, indem Sie auf den Menüeintrag Meh-

rere Elemente hinzufügen klicken. Da beim Referenzieren des Dic-tionary-Typs auch der Kurztext übernommen wird, löschen Sie die-sen in den Datenobjekten und passen die Langtexte wie in Tabelle2.4 an. Speichern Sie dann die Änderungen.

Abbildung 2.28 Mehrere Datenelemente anlegen

Page 26: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

76

Ergebnisdaten-objekt erstellen

Um die Signatur der Funktion zu vervollständigen, legen Sie ein Er-gebnisdatenobjekt über die Schaltfläche an (siehe Abbildung 2.29).

Abbildung 2.29 Anlage eines Ergebnisdatenobjekts starten

Wählen Sie im Dialog zur Objektanlage den Typ Struktur aus, ver-geben Sie den Namen »LOANDESC_RESULT« und ordnen Sie dieDictionary-Struktur ZST_LOANDESC_RESULT zu. Schließen Sie die An-lage mit einem Klick auf die Schaltfläche Anlegen ab. Wie bei denKontextdatenelementen löschen Sie auch für das Ergebnisdaten-

Name des Datenobjekts Dictionary-Referenz

PARTNER_FIRSTNAME ZDA_PARTNER_FIRSTNAME_TT

PARTNER_LASTNAME ZDA_PARTNER_LASTNAME_TT

PARTNER_BIRTDATE ZDA_PARTNER_BIRTHDATE_DT

PARTNER_INCOME ZDA_PARTNER_MONTHINCOME_VL

APPLOAN_DATE ZDA_LOAN_APPLDATE_DT

APPLOAN_AMOUNT ZDA_APPLLOAN_AMOUNT_VL

LOANRATE_VL ZDA_LOANRATE_VL

Tabelle 2.3 Datenelemente des Kontexts

Name des Datenobjekts Text

PARTNER_FIRSTNAME Vorname des Geschäftspartners

PARTNER_LASTNAME Nachname des Geschäftspartners

PARTNER_BIRTHDATE Geburtsdatum des Geschäftspartners

PARTNER_INCOME monatliches Einkommen des Geschäfts-partners

APPLOAN_DATE Antragsdatum des Darlehens

APPLOAN_AMOUNT Höhe des beantragten Darlehens

LOANRATE_VL monatliche Rückzahlungsrate des Darlehens

Tabelle 2.4 Langtexte zu Datenobjekten des Kontextes

Arbeitsschritte der Modellierung 2.3

77

objekt bzw. dessen Komponenten den Kurztext in den BRFplus-Da-tenobjekten.

Sichern und aktivieren Sie die Funktion. Bei der Aktivierung derFunktion werden auch die neu angelegten Datenelemente aktiviert(siehe Abbildung 2.30). Sie haben nun die BRFplus-Funktion bzw.den Entscheidungsservice als Schnittstelle zwischen BRFplus und derABAP-Anwendung fertiggestellt.

Abbildung 2.30 Dialog zur Aktivierung der Funktion und der referenzierten Objekte

Drag & Drop in der BRFplus Workbench

BRFplus bietet seit SAP NetWeaver 7.31 SP10 die Möglichkeit, BRFplus-Objekte per Drag & Drop aus dem Navigationsbaum zu den Platzhalternin anderen BRFplus-Objekten zuzuweisen. Auf diese Weise können Siez. B. bestehende Datenobjekte dem Kontext einer Funktion zuweisen,ohne über die entsprechende Schaltfläche navigieren zu müssen. Dasermöglicht Ihnen eine sehr komfortable und effiziente Zuweisung vonexistierenden Objekten.

2.3.3 Regelsätze und Regeln

Die Verbindung des Entscheidungsservices bzw. der BRFplus-Funkti-on mit den Regeln erfolgt über das Objekt Regelsatz. Der Regelsatzregistriert sich bei der Funktion, woraufhin die Funktion zur Laufzeitdie Ausführung der zugeordneten Regelsätze anstößt. Auf diese Wei-se haben Sie die Möglichkeit, von SAP oder Partnern ausgelieferteBRFplus-Funktionen durch eigene Regelsätze zu erweitern.

Page 27: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

78

Erweiterung bestehender Funktionen

Die Registrierung von Regelsätzen für Funktionen unterliegt den inAbschnitt 2.3.1, »Anwendung«, beschriebenen Einschränkungen bezüg-lich des Ablagetyps. Sie können z. B. Regelsätze aus einer Anwendung mitAblagetyp Customizing für eine Funktion vom Ablagetyp System regis-trieren, aber nicht umgekehrt.

Regelsatz anlegen Legen Sie nun einen Regelsatz in der im vorangehenden Abschnitterstellten Funktion an:

1. Wechseln Sie dazu im Abschnitt Details der Funktion zur Regis-terkarte Zugeordnete Regelsätze und starten Sie die Anlage überdie Schaltfläche Regelsatz anlegen (siehe Abbildung 2.31).

Abbildung 2.31 Anlage eines Regelsatzes starten

2. Im Dialog zur Anlage des Regelsatzes hinterlegen Sie als Namendes Regelsatzes »LOAN_APPL_CHECK_RULES« und als Text »Prü-fungsrahmen eines Darlehensantrags« (siehe Abbildung 2.32).

Abbildung 2.32 Dialog zur Anlage eines Regelsatzes (Basisdaten)

3. Klicken Sie auf die Schaltfläche Anlegen und zu Objekt navigie-

ren. Das System führt Sie zur Bearbeitungsansicht des Regelsatzes.

Arbeitsschritte der Modellierung 2.3

79

Detail-eigenschaften

Abbildung 2.33 zeigt den Abschnitt Details des erstellten Regelsat-zes. Im oberen Bereich, dem sogenannten Regelsatz-Kopf, sind dieKonfigurationsdaten des Regelsatzes abgelegt.

Abbildung 2.33 Abschnitt »Details« des Regelsatzes

Sie sehen an der Checkbox Eingeschaltet, dass der Regelsatz stan-dardmäßig aktiv ist. Das Ausschalten des Regelsatzes führt dazu, dassder Regelsatz zur Laufzeit nicht ausgeführt wird. Diese Einstellunghat keinen Einfluss auf die Designumgebung, d. h. auch abgeschalte-te Regelsätze können bearbeitet werden.

Da Sie den Regelsatz in der Funktion anlegen, erfolgt die Registrie-rung in der Funktion automatisch. Sie haben aber die Möglichkeit,die Registrierung über das Feld Funktion zu ändern.

Vorbedingung eines Regelsatzes

Der Regelsatz ist eine logische Klammer um eine oder mehrere Re-geln, daher besteht die Möglichkeit, eine Vorbedingung zu definie-ren, unter der die Regeln verarbeitet werden sollen. Die Vorbedin-gung kann entweder ein einfacher Wertevergleich mit einem Daten-objekt des Kontexts oder ein Ausdruck mit einem booleschenErgebnis sein. Eine Vorbedingung wählen Sie über das Feld Vorbe-

dingung im Regelsatz-Kopf aus.

Priorität eines Regelsatzes

Sie können mehrere Regelsätze zu einer Funktion zuordnen. DieAusführungsreihenfolge der Regelsätze legen Sie über die Priorität

im Regelsatz-Kopf fest. Standardmäßig wird einem Regelsatz die

Page 28: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

80

Priorität 00 zugeordnet (siehe Abbildung 2.33); sie können die Prio-rität auf einen Wert zwischen 01 und 99 ändern. Die Verarbeitungder Regelsätze einer Funktion erfolgt mit aufsteigender Priorität, wo-bei die Priorität 00 undefiniert ist. BRFplus legt in diesem Fall dieReihenfolge nach eigenem Ermessen fest, was etwa einer Prioritätvon 50 entspricht.

Lokale Variableneines Regelsatzes

Zusätzlich können Sie im Abschnitt Variablen sogenannte lokale Va-riablen definieren, die den Kontext erweitern. Die Variablen stehennur innerhalb des Regelsatzes zur Verfügung, in dem sie definiertsind. Sie können die Variablen zu Beginn der Regelsatzausführungüber Ausdrücke einmalig initialisieren.

Regelsatzvariableanlegen

Wie in Abschnitt 1.3, »Demoszenario ›Darlehensantrag‹«, beschrie-ben, wird für einige Regeln das Alter des Antragstellers benötigt. DieBRFplus-Funktion stellt über den Kontext das Geburtsdatum und dasAntragsdatum zur Verfügung. Um nicht in jeder Regel das Alter neuberechnen zu müssen, nutzen wir eine Variable, in der wir das Alterspeichern. Legen Sie dazu im Abschnitt Variablen des Regelsatz-Kopfes eine neue Variable über das Kontextmenü an (siehe Abbil-dung 2.34).

Abbildung 2.34 Anlage einer Regelsatz-Variablen starten

Es erscheint der bereits bekannte Dialog der Datenobjektanlage. Hierlegen Sie ein Element mit dem Namen »PARTNER_AGE« und demText »Alter des Geschäftspartners« an. Da wir in diesem Fall keineDictionary-Bindung benötigen, wählen Sie als Anbindungstyp Keine

Bindung und als Typ des Elements Nummer mit einer Länge 3 ohneDezimalstellen und mit ausschließlich positiven Werten (siehe Abbil-dung 2.35). Klicken Sie dann auf Anlegen und sichern Sie den Regel-satz. Die Initialisierung der Variablen erfolgt über einen Formelaus-druck. Die Anlage des Ausdrucks beschreiben wir im folgenden Ab-schnitt.

Arbeitsschritte der Modellierung 2.3

81

Abbildung 2.35 Datenobjekt für die Regelsatzvariable anlegen

Regelobjekte darstellen

Innerhalb des Regelsatzes wird die betriebswirtschaftliche Logik inForm von Regeln abgebildet. Sie stellen die zentrale Einheit vonBRFplus dar und werden, wie Listing 2.1 zeigt, in der für Regelwer-ke typischen textlichen Form über eine Prämisse und eine Konklu-sion modelliert.

WENN

Bedingung(en) erfüllt

DANN

führe Operation(en) aus

SONST

führe Operation(en) aus

Listing 2.1 Regel modellieren

Bedingungen abbilden

Wenn eine Regel ausgeführt wird, evaluiert das System zuerst die op-tionale(n) Bedingung(en). Mehrere Bedingungen können Sie überein logisches UND oder ein logisches ODER verknüpfen. Das Ergebnisder Auswertung muss ein boolescher Wert sein. Die Bedingungenkönnen in BRFplus auf folgende Arten abgebildet werden:

� Direkter Vergleich mit einem Datenobjekt aus dem Kontext oder ei-nem Ausdruck. Voraussetzung ist, dass das Datenobjekt bzw. dasErgebnis des Ausdrucks vom Typ boolesch ist.

Page 29: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

82

� Verwendung des Wertebereichs unter Nutzung eines Datenobjektsaus dem Kontext des Regelsatzes, eines Standardobjekts (z. B. ak-tuelles Datum oder aktueller Benutzer) oder eines Ausdrucks.

Verwendung des Wertebereichs und von Ausdrücken

Alternativ zur unmittelbaren Verwendung des Wertebereichs können Sieauch direkt Ausdrücke in der Bedingung hinterlegen und diese bzw. derenErgebnisse implizit vergleichen. Auf diese Weise können Sie sehr elegantdie Bedingungen in Regeln definieren, ohne Zwischenergebnisse zu ver-wenden.

Hat das Evaluierungsergebnis des WENN-Blocks den Wert »wahr« oderwurde keine Bedingung spezifiziert, führt das System die Operatio-nen des DANN-Blocks aus. Hat das Evaluierungsergebnis den Wert»falsch«, führt es die Operationen des SONST-Blocks aus. Die mögli-chen Operationen in diesen Blöcken umfassen:

� direkte Wertzuweisungen zu Datenobjekten des Kontexts oder dem Ergebnisdatenobjekt inklusive Einfügen von Werten in eine Tabelle

� Wertzuweisungen zu Datenobjekten des Kontexts oder dem Ergebnisdatenobjekt über Ausdrücke

� Ausführung von Aktionen

� Ausführung von weiteren Regeln

� Ausführen von Ausdrücken ohne Verwendung des Ausdrucks-ergebnisses für eine Wertezuweisung

Die textuelle Darstellung einer Regel in der Bearbeitungsansicht inBRFplus ist in Abbildung 2.36 dargestellt.

Abbildung 2.36 Bearbeitungsansicht einer Regel in BRFplus

Arbeitsschritte der Modellierung 2.3

83

Regelkopf einer Regel

In dieser Abbildung können Sie erkennen, dass die Regel analogzum Regelsatz einen Regelkopf besitzt. Wie beim Regelsatz haben Siedie Möglichkeit, eine Regel über die Schaltfläche Regel einschalten

bzw. Regel ausschalten zu aktivieren bzw. zu deaktivieren. Ausge-schaltete Regeln werden zur Laufzeit nicht ausgeführt, sind aberanalog zu den Regelsätzen änderbar. Außerdem können Sie eine op-tionale Gültigkeitsdauer sowie eine Beschreibung für die Regel hin-terlegen. Wie bei Regelsätzen haben Sie die Möglichkeit, eine Vor-bedingung für eine Regel zu definieren.

Anwendungsweite Regeln

Alternativ zur Anlage von Regeln innerhalb eines Regelsatzes können SieRegeln direkt in der Anwendung anlegen. Diese Regeln müssen einenNamen besitzen. Der wesentliche Unterschied zwischen beiden Regel-arten ist, dass die im Regelsatz angelegten Regeln nur innerhalb desRegelsatzes verfügbar sind, während die in der Anwendung angelegtenRegeln für alle Regelsätze entsprechend der gewählten Zugriffsebene zurVerfügung stehen und wiederverwendet werden können. Im letzterenFall ist zu beachten, dass die in den Regeln verwendeten Kontexte imRegelsatz verfügbar sein müssen.

Exit-BedingungenDes Weiteren haben Sie die Möglichkeit, die Verarbeitung der Re-geln in einem Regelsatz über eine Exit-Bedingung zu unterbrechen. Ineiner Exit-Bedingung können Sie Bedingungen mit den gleichen Ver-gleichsoperationen wie in einer Regel definieren. Wird die Bedin-gung erfüllt, endet die Verarbeitung des Regelsatzes bei der Bedin-gung, d. h. alle nachfolgenden Regeln werden nicht ausgeführt.

Wiederaufnahme von Regelsätzen

Die Exit-Bedingungen unterbrechen die Verarbeitung des Regelsatzesvollständig. BRFplus bietet zusätzlich die Möglichkeit, die Verarbeitungan der Abbruchstelle wiederaufzunehmen. Voraussetzung für diese Wie-deraufnahme von Regelsätzen ist die Pflege der entsprechenden Einstel-lung auf Anwendungsebene. Details zur Implementierung dieser Funktio-nalität finden Sie in der SAP-Bibliothek im Abschnitt SAP Decision ServiceManagement/BRFplus � Ruleset.

Diese Funktionalität steigert die Komplexität der BRFplus-Funktion überden kompletten Lebenszyklus hinweg. Ihre Verwendung sollten Sie dahersehr sorgfältig prüfen und wenn möglich Alternativen nutzen.

Da ein wesentlicher Bestandteil der Regelmodellierung die Imple-mentierung von Ausdrücken ist, werden wir die für das Demoszena-

Page 30: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

84

rio relevanten Regeln und Exit-Bedingungen in Verbindung mit denBRFplus-Ausdrücken im folgenden Abschnitt implementieren.

2.3.4 Ausdrücke

Ausdrücke sind neben Aktionen die elementaren Bausteine der Re-geln in BRFplus. Sie spiegeln die eigentliche Logik der Regelmodel-lierung wider. BRFplus stellt in der Standardausprägung 16 Aus-druckstypen zur Verfügung. Jeder Ausdruckstyp stellt einen in sichabgeschlossenen Baustein mit einer definierten Aufgabe dar. DieAusdruckstypen besitzen individuelle Benutzeroberflächen zur Bear-beitung des Ausdrucks. Die in Tabelle 2.5 aufgeführten Ausdrucksty-pen stehen in BRFplus bereit.

Ausdruckstyp Beschreibung

boolescher Wert Test von logischen Bedingungen entsprechend den Regeln der booleschen Logik

Datenbankabfrage lesender Zugriff auf die Einträge einer Daten-banktabelle des ABAP Dictionarys

dynamischer Ausdruck Dynamischer Aufruf eines BRFplus-Ausdrucks. Die Zuordnung des aufzurufenden Ausdrucks erfolgt zur Laufzeit und nicht zur Designzeit.

Entscheidungsbaum Iteration eines binären Baums, bestehend aus Bedingungs-Knoten mit einem booleschen Ergebnis und Ergebnis-Knoten

Entscheidungstabelle Vergleich von Eingabeparametern mit einer Liste vordefinierter Kombinationen von Bedingungen

Fall Vergleich eines Werts mit einer vordefinierten Liste diskreter Werte

Formel Ausführung von Berechnungen. Dies umfasst neben mathematischen Berechnungen z. B. auch die Behandlung von Strings oder Konversionen.

Funktionsaufruf Aufruf einer BRFplus-Funktion

GRMS-Konnektor Anbindung externer Regel-Engines, z. B. SAP Business Rule Management (SAP BRM)

Konstante Anlage eines konstanten Werts

Prozeduraufruf Ausführung von Funktionsbausteinen oder stati-schen Klassenmethoden im Backend

Tabelle 2.5 Ausdruckstypen in BRFplus

Arbeitsschritte der Modellierung 2.3

85

In den folgenden Abschnitten besprechen wir einige zentrale Aus-druckstypen im Rahmen der Implementierung des Demoszenarios.Eine detaillierte Beschreibung aller verfügbaren Ausdrücke und de-ren Eigenschaften finden Sie in der SAP-Bibliothek im Abschnitt SAP

Decision Service Management/BRFplus � Ausdrücke.

Eigene Ausdruckstypen anlegen

Eine herausragende Eigenschaft von BRFplus ist die Erweiterbarkeit.Möchten Sie einen eigenen Ausdruckstyp in BRFplus anlegen, ist diesmodifikationsfrei möglich. Das Vorgehen wird auch im Rahmen einigerSAP-Komponenten (z. B. FI-CA) genutzt. Diese Erweiterungsmöglichkeitwird im Artikel Custom Expression Types and Action Types von WolfgangSchaper im SAP Community Network (http://scn.sap.com/docs/DOC-48050) beschrieben.

Die zentrale Aufgabe aller Ausdrücke ist die Ermittlung eines Ergeb-nisses. Dazu benutzt der Ausdruck üblicherweise Eingabeparameter,die über die Kontextdatenobjekte der BRFplus-Funktion und gegebe-nenfalls über Variablen des Regelsatzes zur Verfügung stehen.

Optionen bei Ausdrucksanlage

Ausdrücke können Sie in BRFplus auf zwei Wegen anlegen:

� Anlage auf Ebene der AnwendungSie können Ausdrücke über das Kontextmenü des Navigations-baums auf Ebene der Anwendung anlegen. Die so erzeugten Aus-drücke müssen einen Namen besitzen und können in mehreren

Schleife Mehrfache Ausführung einer oder mehrerer Regeln. Die Anzahl der Ausführungen kann unterschiedlich festgelegt werden, z. B. über die Anzahl von Zeilen einer Tabelle.

Suchbaum Iteration eines nichtbinären Baums, bestehend aus Bedingungs- und Ergebnis-Knoten

Tabellenoperation Zugriff auf und Manipulation von Daten in BRFplus-Objekten vom Typ Tabelle

Wertebereich Vergleich eines Parameters mit einem definierten Wertebereich

Zufallszahl Erzeugung einer Zufallszahl auf Basis des ABAP-Zufallszahlengenerators

Ausdruckstyp Beschreibung

Tabelle 2.5 Ausdruckstypen in BRFplus (Forts.)

Page 31: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

86

Funktionen bzw. Regelsätzen eingesetzt werden. Dies hat Konse-quenzen auf die im Ausdruck verwendbaren Kontextwerte. Wennein Ausdruck in mehreren Funktionen verwendet wird, stehen beider Bearbeitung des Ausdrucks nur die Kontextwerte zur Verfü-gung, die in allen Funktionen verfügbar sind. Ein Beispiel für dieseArt der Anlage zeigen wir im Abschnitt »Boolescher Wert«.

� Anlage an der VerwendungsstelleAn verschiedenen Stellen in BRFplus, z. B. in Regeln, haben Sie dieMöglichkeit, Ausdrücke über das dort verfügbare Kontextmenüanzulegen. In diesem Fall können Sie den Ausdruck als wiederver-wendbar oder nicht wiederverwendbar kennzeichnen. Im erstenFall entsprechen die Eigenschaften des Ausdrucks denen einesAusdrucks, der auf Ebene der Anwendung erzeugt wurde. Imzweiten Fall ist der Ausdruck nur lokal an der Verwendungsstelleverfügbar, an der er erzeugt wurde. Er besitzt keinen Namen underscheint nicht im Navigationsbaum. Im Unterschied zum erstenFall hat ein so erzeugter Ausdruck immer alle an der Verwen-dungsstelle verfügbaren Kontextwerte zur Verfügung. Ein Beispielfür diese Art der Anlage zeigen wir im folgenden Abschnitt.

Formel

Wie bereits in Abschnitt 2.3.3, »Regelsätze und Regeln«, angespro-chen, benötigen wir für das Demoszenario das Alter des Antragsstel-lers zum Zeitpunkt des Darlehensantrags. Für das Alter haben Siebereits eine Variable im Regelsatz angelegt. Nun wollen wir dieseVariable mithilfe eines Ausdrucks initialisieren. Dazu verwendenwir den Ausdruckstyp Formel. Dieser Ausdruckstyp erlaubt die Aus-führung von Berechnungen im weitesten Sinn, d. h. er ermöglichtneben mathematischen Berechnungen von Zahlen, Mengen undWährungen auch Operationen auf Strings, booleschen Werten undTabellen.

Formel-Ausdrucksanlegen

Legen Sie die Formel wie folgt an:

1. Wechseln Sie im Regelsatz-Kopf in den Abschnitt Ausdrücke, die

die Variablen initialisieren und wählen Sie den Eintrag Anlegen

aus dem Kontextmenü (siehe Abbildung 2.37). Damit legen Sieden Ausdruck an der Verwendungsstelle an.

Arbeitsschritte der Modellierung 2.3

87

Abbildung 2.37 Anlage eines Ausdrucks zur Variableninitialisierung starten

2. Das System führt Sie zum Objektanlage-Dialog (siehe Abbildung2.38). Geben Sie dort als Typ den Wert Formel an, als Namen derFormel »CALCULATE_AGE« und als Text »Berechnung des Altersdes Geschäftspartners«.

3. Wie im vorangehenden Abschnitt beschrieben, können Sie überdie Checkbox Ist wiederverwendbar steuern, ob der Ausdrucknur lokal zur Verfügung stehen soll. Entfernen Sie das Häkchen inder Checkbox, wird das Eingabefeld Name ausgeblendet, und derAusdruck steht nur an der Anlagestelle zur Verfügung. Lassen Siedie Checkbox in unserem Beispiel markiert, und legen Sie die For-mel über die Schaltfläche Anlegen und zu Objekt navigieren an.

Abbildung 2.38 Dialog zur Anlage eines Formelausdrucks (Basisdaten)

Aufbau der Bearbeitungssicht

Im Anschluss befinden Sie sich in der Bearbeitungsansicht des For-melausdrucks (siehe Abbildung 2.39). Im oberen Teil des AbschnittsDetails steht das Eingabefeld für die Formel und ihre Variablen. Imunteren Bereich finden Sie von links nach rechts die Übersicht überdie verfügbaren Kontextdatenobjekte, die Schaltflächen für verschie-dene mathematische Operationen und Variableneingaben sowie eineÜbersicht über die verfügbaren Formelfunktionen. BRFplus bieteteine Vielzahl an Formelfunktionen in unterschiedlichen Kategorien,

Page 32: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

88

wie z. B. Mathematische Funktionen oder Funktionen für Zei-

chenfolgen. Alle Funktionen sind dokumentiert. Die Dokumen-tation ist bei der Formelfunktion hinterlegt und über den Anzeigen-Link in der Spalte Dokumentation aufrufbar.

Abbildung 2.39 Bearbeitungsansicht des Formelausdrucks

Erweiterung von Formelfunktionen

Der Formelausdruck erlaubt außerdem die Erweiterung der Bibliothek derFormelfunktionen. Das Vorgehen wird in Abschnitt 6.2.4, »Formelfunk-tionen«, beschrieben.

In der Formelnavigieren

Innerhalb des Eingabefeldes für die Formel können Sie den Cursorüber die Schaltfläche Cursor bewegen nach links oder rechts bewe-gen. Alternativ ist es möglich, den Cursor per Mausklick an die ge-wünschte Stelle zu positionieren. Eingegebene Werte oder Variablenkönnen Sie über die Schaltfläche Token verschieben nach links oderrechts verschieben bzw. über die Schaltfläche Token löschen lö-schen.

Ergebnisdaten-objekt der Formel

zuweisen

Legen Sie zuerst das Ergebnisdatenobjekt der Formel fest:

1. Dazu nutzen Sie das Kontextmenü zum Ergebnisdatenobjekt, wiein Abbildung 2.40 dargestellt. Da bereits eine Variable im Regel-satz deklariert wurde, wählen Sie den Menüpunkt Auswählen.

Arbeitsschritte der Modellierung 2.3

89

Abbildung 2.40 Ergebnisdatenobjekt auswählen

2. Das System führt Sie zur generischen Objektabfrage von BRFplus. Indiesem Dialog können Sie die Variable »Alter des Geschäftspartners«des Regelsatzes suchen und auswählen (siehe Abbildung 2.41).

Abbildung 2.41 Objektabfrage für das Ergebnisdatenobjekt

3. Nachdem Sie die Auswahl über die Schalfläche OK bestätigt haben,führt Sie das System zurück in die Bearbeitungsansicht der Formel.

Eine Formel-funktion verwenden

Im nächsten Schritt wählen Sie eine für die Altersberechnung geeig-nete Formelfunktion aus. Für das Demoszenario benötigen wir eineDatumsberechnung. Schränken Sie daher, wie in Abbildung 2.42 zusehen, die Formelfunktion über die Dropdown-Liste Nach Katego-

rie Filtern auf den Wert Datums- und Zeitfunktion ein. Zur Be-

Page 33: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

90

rechnung des Alters sind wir an einer Differenz in Jahren zwischendem Antrags- und dem Geburtsdatum interessiert. Wählen Sie daherdie Formelfunktion Berechnet den Unterschied in Monaten und

konvertiert das Ergebnis in Jahre (Integer) (Bezeichnung: DT_DURATION_DIFF_INT_YEARS) aus, um die Differenz zu berechnen. DieFormelfunktion wird in das Eingabefeld übernommen und der Cur-sor automatisch auf das Feld der ersten Variablen positioniert.

Abbildung 2.42 Formelfunktion auswählen

Wählen Sie nun die zur Berechnung der Differenz relevanten Kon-textdatenobjekte aus. Benutzen Sie dazu die Übersicht Kontext imunteren linken Teil der Bearbeitungsansicht (siehe Abbildung 2.39).In der Übersicht werden alle verfügbaren Datenobjekte des Kontextsangezeigt. Über das Eingabefeld Filter haben Sie die Möglichkeit,die Anzeigemenge zu reduzieren. Die erste Variable ist das Antrags-datum des Darlehens. Wählen Sie daher das Datenobjekt APPLOAN_DATE (Antragsdatum des Darlehens) aus der Übersicht aus. Das Da-tenobjekt wird nun in die Formel übernommen. Bewegen Sie nunden Cursor auf die Position der zweiten Variablen in der Formel-funktion. Wählen Sie dann aus dem Kontext das Datenobjekt PART-NER_BIRTHDATE (Geburtsdatum des Geschäftspartners) aus. Damit ha-ben Sie die Formel zur Berechnung des Alters fertiggestellt. Die voll-ständige Formel sollte der Formel in Abbildung 2.43 entsprechen.

Speichern Sie die Formel und navigieren Sie über die SchaltflächeZurück zum Regelsatz. Dort sehen Sie, dass die Formel zur Initiali-sierung der Variablen zugeordnet ist (siehe Abbildung 2.44).

Arbeitsschritte der Modellierung 2.3

91

Abbildung 2.43 Formel zur Altersberechnung

Abbildung 2.44 Variable mittels Formel initialisieren

Expertenmodus

Der Ausdruckstyp Formel wurde in dieser Beschreibung im Normalmodusbearbeitet, der keine direkte Bearbeitung der Formel innerhalb des For-mel-Eingabefeldes erlaubt. Dieser Ausdruckstyp ermöglicht zusätzlich dieNutzung des Expertenmodus, den Sie über die Schaltfläche In Experten-modus wechseln aktivieren können (Abbildung 2.39).

In diesem Modus können Sie die Formel direkt im Eingabefeld editieren.Außerdem werden in diesem Modus UUIDs der Datenobjekte angezeigt.Die Eingabe von Strings muss in diesem Modus innerhalb von Hochkom-mata erfolgen, und bei der Eingabe von Zahlen mit Währungen und Ein-heiten muss die Währung bzw. die Einheit mit den Zeichen $ bzw. & vonder Zahl abgegrenzt werden. Sie können jederzeit über die Schaltfläche InNormalmodus wechseln in den ursprünglichen Modus zurückwechseln.

Nachdem wir den Regelsatzkopf durch die Initialisierung der Varia-blen mithilfe des Formelausdrucks komplettiert haben, können wirmit der Modellierung der Regeln unseres Demoszenarios beginnen.

Boolescher Wert

LimitprüfungDie erste Prüfung des Darlehensantrags ist eine Prüfung der Limitsanhand der Wertebereiche einiger Datenobjekte des Kontexts. Wie

Page 34: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

92

in Abschnitt 1.3.1, »Betriebswirtschaftliches Szenario«, erläutert,muss der Darlehensantrag mit der Begründung »Alter/Einkommenzu gering für Darlehenshöhe« abgelehnt werden, falls der Partnerjünger als 21 Jahre oder das monatliche Einkommen geringer als1.200,00 EUR und das beantragte Darlehen gleichzeitig größer odergleich 100.000,00 EUR ist.

Diese Regel bilden wir über den Ausdruckstyp boolescher Wert ab.Dieser Ausdruckstyp ermöglicht die logische Verknüpfung von boo-leschen Werten und Bedingungen und hat auch als Ergebnis einenbooleschen Wert.

Vorlagen desbooleschen Werts

Der Ausdruck ist sehr flexibel und basiert auf Vorlagen, die die Struk-tur der logischen Verknüpfungen definieren. Eine Vorlage besteht aus:

� Platzhaltern für die Operanden des Vergleichs. Die Platzhalterwerden in der Form <#> in der Vorlage hinterlegt, wobei # eineNummer zwischen 1 und 99 ist.

� boolesche Operatoren (UND, ODER, NICHT)

� Klammern, um die Reihenfolge der Evaluierung festzulegen

BRFplus beinhaltet einige vordefinierte Vorlagen. Sie können abermithilfe der beschriebenen Syntax und benutzerdefinierten Vor-lagen beliebige weitere Verknüpfungen erstellen.

Booleschen Wertanlegen

Legen Sie zur Umsetzung unserer Anforderungen einen booleschenAusdruck an:

1. Klicken Sie dazu mit der rechten Maustaste auf den Knoten Aus-

druck im Navigationsbaum der BRFplus Workbench und wählenSie den Ausdruck anlegen � Boolescher Wert im Kontextmenü.

2. Geben Sie dann die Basisdaten im Dialog Objekt anlegen ein. Tra-gen Sie den Namen »CHECK_AGE_INCOME_AMOUNT« und denText »Limitprüfung des Alters, Einkommens und der Darlehenshö-he« ein.

3. Navigieren Sie über die Schaltfläche Anlegen und zu Objekt na-

vigieren zum neu angelegten Ausdruck (siehe Abbildung 2.45).

Arbeitsschritte der Modellierung 2.3

93

Abbildung 2.45 Dialog zur Anlage eines booleschen Werts (Basisdaten)

Bearbeitungssicht eines booleschen Werts

Sie befinden sich nun in der in Abbildung 2.46 dargestellten Bear-beitungsansicht des Ausdrucks. In der Menüleiste des AbschnittsDetails haben Sie Schaltflächen zur Auswahl der Vorlage, zum In-vertieren der Bedingungen, zur Kontextübersicht und zur Simulati-on zur Verfügung. Im darunterliegenden Eingabebereich wird dieverwendete boolesche Verknüpfung angezeigt.

Abbildung 2.46 Bearbeitungsansicht des booleschen Werts

Wählen Sie über die Schaltfläche Vorlage die für die Anforderunggeeignete Vorlage aus (siehe Abbildung 2.47).

Page 35: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

94

Abbildung 2.47 Vorlage auswählen

Dateneingabe ineine Vorlage

Der Eingabebereich wird entsprechend Ihrer Auswahl vom Systemaktualisiert. Füllen Sie die Platzhalter mit den Kontextdatenobjektenentsprechend der Anforderung. Nutzen Sie dafür das neben denPlatzhaltern über ein Icon ( ) verfügbare Kontextmenü und wählenSie Direkten Wertebereich verwenden von � Kontextparameter

auswählen. Das System führt Sie zur bereits bekannten Objektsu-che, in der Sie das gewünschte Datenobjekt suchen und auswählenkönnen. Der erste Platzhalter entspricht dem Datenobjekt »Alter desGeschäftspartners«.

Ausdruckstyp»Konstante«

Wählen Sie als Nächstes den gewünschten Vergleichsoperator, hierden Operator ist kleiner als. Sie können nun den Grenzwert von 21Jahren direkt als Vergleichswert im Ausdruck hinterlegen. Dies wür-de einer harten Codierung in der ABAP-Programmierung entspre-chen, was durch die Verwendung von Konstanten vermieden wer-den sollte. Diesem Paradigma der Softwareentwicklung sollten Sieauch in der Regelmodellierung folgen. Daher hinterlegen wir denWert im Ausdruckstyp Konstante. Öffnen Sie dazu das Kontextmenüder Schaltfläche Ändern neben dem Vergleichswert, und wählen Sieden Menüpunkt Ausdruck anlegen aus (siehe Abbildung 2.48).

Abbildung 2.48 Wertvergleich über einen Ausdruck

Arbeitsschritte der Modellierung 2.3

95

Konstante anlegenDer in Abbildung 2.49 dargestellte Dialog zur Anlage eines Aus-drucks vom Typ Konstante öffnet sich.

Geben Sie den Namen »MIN_AGE« und den Text »Untere Grenze fürAlter des Geschäftspartners« ein. Im Abschnitt Konstante hinterle-gen Sie als Elementtyp den Typ Nummer und geben als Wert »21«ein. Klicken Sie dann auf Anlegen.

Abbildung 2.49 Dialog zur Anlage einer Konstante (Basisdaten)

Füllen Sie die verbleibenden Platzhalter entsprechend der Zuord-nung aus Tabelle 2.6 aus.

Für die Vergleichswerte legen Sie wie für das Alter Konstanten wie inTabelle 2.7 beschrieben an. Der finale Ausdruck ist in Abbildung2.50 dargestellt.

Platzhalter Kontextdatenobjekt Vergleichsoperator

<2> monatliches Einkommen des Geschäftspartners

ist kleiner als

<3> Höhe des beantragten Darlehens

ist größer oder gleich

Tabelle 2.6 Platzhalter des booleschen Ausdrucks zuordnen

Page 36: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

96

Abbildung 2.50 Boolescher Wert zur Limitprüfung

Regel anlegen Speichern Sie den Ausdruck und navigieren Sie zum Regelsatz zu-rück. Legen Sie über den Pfad Regel einfügen � Anlegen in derMenüleiste des Abschnitts Regeln eine neue Regel an. Im Dialogzur Regelanlage hinterlegen Sie anschließend eine Beschreibungder Regel mit dem Text »Darlehensantrag Limitprüfung« (siehe Ab-bildung 2.51).

Abbildung 2.51 Bearbeitungsansicht der Regel

Name Text Elementtyp Wert

MIN_INCOME untere Grenze für Einkommen des Geschäftspartners

Betrag 1.200,00 €

MAX_LOAN_AMOUNT obere Grenze für Darlehensbetrag

Betrag 100.000,00 €

Tabelle 2.7 Konstanten für Vergleiche im booleschen Ausdruck

Arbeitsschritte der Modellierung 2.3

97

Daten in die Regel-Zweige eingeben

Fügen Sie im Bereich der textlichen Darstellung der Regel den ebenerstellten booleschen Ausdruck als Bedingung (Wenn-Zweig) ein.Öffnen Sie dazu das Kontextmenü zur Schaltfläche Bedingung zu-

ordnen, und wählen Sie hier Wertebereich verwenden von � Aus-

druck auswählen.

Das System führt Sie zum Dialog der Objektauswahl, in dem Sie denbooleschen Ausdruck Limitprüfung des Alters, Einkommens und

der Darlehenshöhe selektieren und übernehmen. Setzen Sie dannin der Regel den Komparator auf den Wert ist gleich und den Ver-gleichswert auf den Wert Wahr (siehe Abbildung 2.52).

Abbildung 2.52 Wenn-Bedingung der Limitprüfung

Im nächsten Schritt füllen Sie den Dann-Zweig. In diesem Fall mussder Antrag abgelehnt und der Grund für die Ablehnung in das Ergeb-nisdatenobjekt übertragen werden. Dazu wählen Sie im Kontext-menü der Schaltfläche Hinzufügen den Pfad Wert dem Kontext

zuordnen � Kontext � Mehr aus.

Im folgenden Dialog zur Objektauswahl wählen Sie die KomponenteStatus des Darlehensantrags des Ergebnisdatenobjekts Ergebnis

der Antragsprüfung des Darlehens aus und übernehmen sie in dieRegel. Setzen Sie den Wert der Komponente in der Regel auf denüber die zugehörige Wertehilfe verfügbaren Wert »2« (Darlehens-

antrag abgelehnt).

Fügen Sie nun über die Schaltfläche Optionen einen weiteren Kon-textwert in den Dann-Zweig der Regel ein, indem Sie im Kontextme-nü erneut den Pfad Wert dem Kontext zuordnen � Kontext � Mehr

wählen.

Page 37: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

98

Weisen Sie, wie für die erste Operation beschrieben, im Dann-Zweigder Regel der Komponente Ablehnungsgrund des Darlehens desErgebnisdatenobjekts den Wert »1« (Alter/Einkommen zu gering

für Darlehenshöhe) zu. Die Regel hat nun die in Abbildung 2.53gezeigte Form. Übernehmen Sie die Regel über die Schaltfläche OK

in den Regelsatz und speichern Sie den Regelsatz.

Abbildung 2.53 Regel der Limitprüfung des Darlehensantrags

Exit-Bedingunganlegen

Für den Fall, dass der Darlehensantrag abgelehnt wird, wollen wirdie Verarbeitung des Regelsatzes abbrechen. Dazu nutzen wir das be-reits vorgestellte BRFplus-Objekt Exit-Bedingung:

1. Klicken Sie auf die Schaltfläche Optionen der eben angelegten Re-gel und wählen Sie im Menü Nächste Exit-Bedingung einfügen �Anlegen, um eine Exit-Bedingung auf Basis eines Ausdrucks ein-zufügen (siehe Abbildung 2.54).

Abbildung 2.54 Exit-Bedingung einfügen

Arbeitsschritte der Modellierung 2.3

99

2. Als Ausdrucktyp verwenden wir wieder den booleschen Wert. DieAnlage erfolgt genau wie beim zuvor erzeugten Ausdruck. Verge-ben Sie als Name »CHECK_APLSTATUS_REJECT« und als Text»Prüfung auf Antragsablehnung«. Als Vorlage wählen Sie in die-sem Fall Benutzerdefiniert.

3. Im folgenden Dialog zur Definition der Vorlage hinterlegen Sieden Platzhalter <1> (siehe Abbildung 2.55). In dem Dialog könnenSie die manuell erstellte Vorlage über die Schaltfläche Prüfung

vom System auf syntaktische Korrektheit prüfen lassen.

Abbildung 2.55 Benutzerdefinierte Vorlage eines booleschen Werts definieren

4. Bestätigen Sie die benutzerdefinierte Vorlage über die SchaltflächeOK. Hinterlegen Sie dann die Bedingung, dass der Darlehensan-trag abgelehnt wurde, im booleschen Wert. Der vollständige Aus-druck ist in Abbildung 2.56 dargestellt.

5. Speichern Sie die Änderung, und navigieren Sie zum Regelsatz zu-rück.

Abbildung 2.56 Boolescher Wert der Exit-Bedingung

Setzen Sie den Vergleich mit dem booleschen Wert so, dass die Re-gelsatzverarbeitung abgebrochen wird, wenn der boolesche Wert als

Page 38: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

100

Ergebnis Wahr zurückliefert. Abbildung 2.57 zeigt die vollständigeRegel der Limitprüfung inklusive der Exit-Bedingung.

Abbildung 2.57 Limitprüfung mit Exit-Bedingung

Datenbankabfrage

Bonitätsprüfung Die zweite Prüfung des Darlehensantrags soll das Risiko des Darle-hensausfalls anhand der Risikostufe des Antragstellers überprüfen.Die Daten zur Risikostufe sind in einer Datenbanktabelle abgelegt.Wenn die Risikostufe den Wert eines zufriedenstellenden bis er-höhten Risikos überschreitet, muss der Darlehensantrag abgelehntwerden.

In unserem Demoszenario sind diese Daten, wie in Abschnitt 1.3.2,»Beispielanwendung installieren«, beschrieben, in der Datenbankta-belle ZDB_RISKSC_INFO abgelegt. Der Grenzwert ist die Risikostufe 3(zufriedenstellendes bis erhöhtes Risiko).

Ausdruckstyp»Datenbankabfrage«

Die Selektion der Daten aus der Datenbank wird in BRFplus über denAusdruckstyp Datenbankabfrage ermöglicht. Die zu lesenden Datenkönnen über Bedingungen analog zu WHERE-Bedingungen in OpenSQLeingeschränkt werden. Bedingungen, die sich auf die gleiche Tabellen-spalte beziehen, werden über eine ODER-Verknüpfung verbunden, Be-dingungen für unterschiedliche Spalten werden über ein logisches UNDverknüpft.

Arbeitsschritte der Modellierung 2.3

101

Selektionsmodi der Datenbankabfrage

Der Ausdruckstyp Datenbankabfrage ermöglicht drei Selektionsmodi:

� DatenbeschaffungIn diesem Modus werden entweder ein einzelner Datensatz (ana-log zu SELECT SINGLE in Open SQL) oder alle Datensätze (analog zuSELECT * in Open SQL) aus einer Datenbanktabelle gelesen. Es be-steht die Möglichkeit, nur einzelne Spalten aus der Datenbank-tabelle zu selektieren und den Feldern des Ergebnisdatenobjektszuzuweisen.

� AggregationIn diesem Modus können Sie die Werte einer Tabellenspalte mit-tels der Aggregationsfunktionen Minimum, Maximum, Durch-schnitt, Anzahl und Summe zusammenfassen. Sie können ent-weder nur unterschiedliche oder alle Werte der Tabellenspalteaggregieren.

� ExistenzprüfungIn diesem Modus wird überprüft, ob wenigstens eine Zeile der Ta-belle existiert, die die im Ausdruck hinterlegten Bedingungen er-füllt. Das Ergebnis der Prüfung ist immer ein boolescher Datentyp.

Variable für die Risikostufe

Zur Abbildung der Prüfung in BRFplus legen Sie zuerst eine Regel-satz-Variable für die Risikostufe als Ergebnisdatenobjekt für die Da-tenbankabfrage im Regelsatz an. Die Variable ist vom Typ Element

und hat den Namen RISK_SCORE. Binden Sie die Variable an dasABAP-Dictionary-Element ZDA_PARTNER_RISKSCORE_CD, löschen Sieden Kurztext für das Datenobjekt und tragen Sie »Risikostufe des Ge-schäftspartners« als Text ein.

Berechtigungsprüfungen bei Datenzugriff

Im Falle eines Datenbankzugriffs über den Ausdrucktyp Datenbankab-frage sind neben den BRFplus-spezifischen Berechtigungsprüfungen auchdie allgemeinen Berechtigungsprüfungen für den Zugriff auf Datenbankta-bellen im SAP-System relevant. Die zugehörigen Berechtigungsobjekteheißen S_TABU_DIS und S_TABU_NAM. Sie sind sowohl in die BRFplusWorkbench als auch in die BRFplus-Laufzeitumgebung integriert. Wirdder Ausdruck über die BRFplus Workbench ausgeführt oder simuliert,werden die Berechtigungen immer geprüft. Erfolgt die Ausführung desAusdrucks, indem die BRFplus-Funktion über den ABAP-Code aufgerufenwird, kann über eine statische Umgebungsvariable beeinflusst werden, obdie Berechtigungsprüfung erfolgt oder nicht. Details finden Sie in denSAP-Hinweisen 1463193 und 1615245.

Page 39: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

102

Datenbankabfrageanlegen

Legen Sie einen Ausdruck vom Typ Datenbankabfrage an:

1. Wählen Sie dazu, wie im vorangehenden Abschnitt beschrieben,über das Kontextmenü des Knotens Ausdruck im Navigations-baum den Ausdrucktyp Datenbankabfrage.

2. Im folgenden Dialog vergeben Sie als Namen für den Ausdruck»SELECT_RISKSCORE_INFO« und tragen als Text »Auslesen derRisikoinformationen zum Geschäftspartner« ein.

3. Legen Sie das Objekt über die Schaltfläche Anlegen und zu Ob-

jekt navigieren an. Das System führt Sie zur Bearbeitungsansichtdes Ausdruckstyps (siehe Abbildung 2.58).

Abbildung 2.58 Bearbeitungsansicht der Datenbankabfrage

4. Im Abschnitt Details können Sie über die Dropdown-Liste Selek-

tionsmodus den gewünschten Selektionsmodus auswählen. Fürunser Demoszenario verwenden Sie den Modus Datenbeschaf-

fung.

Ergebnisdaten-objekt zuordnen

Bauen Sie dann über den Eingabebereich die SQL-Abfrage auf:

1. Wählen Sie hierzu, wie in Abbildung 2.59 dargestellt, in der ZeileAuswählen die Einzelerfassung aus der Datenbanktabelle ZDB_RISKSC_INFO aus.

2. Weisen Sie dann in der Zeile In die Regelsatz-Variable Risikostufe

des Geschäftspartners als Ziel der Selektion aus.

3. Ordnen Sie im Abschnitt Feldzuordnung das Quellfeld RISK_SCORE der Datenbanktabelle dem bereits vorbelegten Zielfeld

RISK_SCORE zu.

4. Fügen Sie dann über das Kontextmenü der Schaltfläche Ändern inder Zeile Mit Bedingung eine Include-Bedingung ein. Wählen Siedabei die Tabellenspalte PARTNER_ID aus (siehe Abbildung 2.60).

Arbeitsschritte der Modellierung 2.3

103

Abbildung 2.59 Aufbau der SQL-Abfrage

Abbildung 2.60 Include-Bedingung erfassen

5. Weisen Sie den Vergleichswert der Spalte über das Kontextmenüder der Schaltfläche Ändern dem Kontextdatenobjekt ID des Ge-

schäftspartners zu. Wählen Sie dazu den KontextmenüeintragKontextparameter auswählen (siehe Abbildung 2.61).

Abbildung 2.61 Kontextwert für die Bedingung angeben

6. Komplettieren Sie die Include-Bedingung, wie in Abbildung 2.62gezeigt. Das Mapping der Daten ist in Tabelle 2.8 hinterlegt.

Page 40: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

104

Abbildung 2.62 Datenbankabfrage der Risikostufe

Regel für dieDatenbankabfrage

erstellen

Speichern Sie die Änderung, und navigieren Sie zum Regelsatz. Le-gen Sie dort eine neue Regel mit der Bezeichnung »Prüfung derBonität über Risikoinformation« an:

1. Ordnen Sie die Datenbankabfrage im Wenn-Zweig der Regel überden Menüpfad Wertebereich verwenden von … � Ausdruck

auswählen der Schaltfläche Bedingung zuordnen zu.

2. Setzen Sie den Vergleichsoperator auf den Wert ist größer als.Als Vergleichswert nutzen Sie die angebotene Wertehilfe und wäh-len den Wert 3 (zufriedenstellendes bis erhöhtes Risiko) aus.

3. Den Dann-Zweig der Regel füllen Sie wie im vorangehenden Ab-schnitt beschrieben und weisen der Komponente Status des

Darlehensantrags des Ergebnisdatenobjekts den Wert 2 (Dar-

lehensantrag abgelehnt) und der Komponente Ablehnungs-

grund des Darlehens den Wert 2 (Maximal erlaubte Risiko-

stufe überschritten) zu.

Abbildung 2.63 zeigt die fertige Regel. Speichern Sie die Regel undden Regelsatz. Fügen Sie, wie im vorangehenden Abschnitt beschrie-

Datenbankspalte Kontextdatenobjekt

FIRST_NAME Vorname des Geschäftspartners

LAST_NAME Nachname des Geschäftspartners

BIRTH_DATE Geburtsdatum des Geschäftspartners

Tabelle 2.8 Mapping der Datenbankspalten zu den Kontextdatenobjekten

Arbeitsschritte der Modellierung 2.3

105

ben, eine Exit-Bedingung mit dem Ausdruck Prüfung auf Antrags-

ablehnung nach der Regel ein, um die Verarbeitung des Regelsatzesbei Ablehnung des Darlehens abzubrechen.

Abbildung 2.63 Regel zur Prüfung der Risikostufe

Prozeduraufruf

Prüfung auf bestehende Darlehen

Die dritte und letzte Prüfung im Darlehensprozess soll die Existenzund Höhe bestehender Darlehen überprüfen. Wenn bereits Darle-hen für den Antragssteller existieren und diese den Grenzwert von100.000,00 EUR überschreiten, muss der Darlehensantrag abgelehntwerden. Die Ermittlung dieser Information erfolgt über die in Ab-schnitt 1.3.2, »Beispielanwendung installieren«, vorgestellte KlasseZCL_GET_EXIST_LOAN_DATA mit der statischen Methode GET_EXIST_LOAN_BY_PARTNER.

Aufruftypen des Ausdruckstyps »Prozeduraufruf«

Um die Funktionalität nutzen zu können, bietet BRFplus den Aus-druckstyp Prozeduraufruf an. Er ermöglicht den Aufruf von ABAPCode über drei Aufruftypen:

� Funktionsbaustein Typ zum Aufruf von Funktionsbausteinen

� Statische MethodeTyp zum Aufruf von öffentlichen statischen Klassenmethoden.Dies können auch Interface-Methoden oder ABAP Managed Data-base Procedures (AMDPs) sein.

� Datenbankprozedur Typ zum Aufruf von Datenbankprozeduren. Dies sind Proxy-Ob-jekte zum Aufruf von Stored Procedures, d. h. direkt in der Daten-bank abgelegten Funktionen, in SAP HANA.

Page 41: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

106

Datenbankprozedur und AMDP

Das Konstrukt der Datenbankprozeduren wurde ab SAP NetWeaver 7.40SP05 durch das Konzept der ABAP Managed Database Procedures(AMDPs) weitestgehend abgelöst. Wenn möglich, sollten Sie daher inIhren Implementierungen AMDPs zum Aufruf von Stored Proceduresbenutzen.

Parametermapping Im Ausdruck können Sie dem Kontext- und Ergebnisdatenobjekt dieImporting-, Exporting-, Changing- und Returning-Parameter zuord-nen. Standardmäßig erfolgt die Zuordnung über die Namensgleich-heit (analog zu MOVE-CORRESPONDING bei der ABAP-Programmierung).Die Zuordnung kann vom Anwender angepasst werden, um z. B.auch bei abweichenden Objektnamen eine Übertragung der Datenzu ermöglichen.

Unterstützte Parametertypen

Der Ausdruckstyp Prozeduraufruf ist hinsichtlich der unterstützten Para-metertypen eingeschränkt. Eine vollständige Auflistung der unterstütztenund nicht unterstützten Parametertypen finden Sie in der SAP-Bibliothekim Abschnitt SAP Decision Service Management/BRFplus � ProcedureCall Expression.

Ausnahme-behandlung

Für die Ausnahmebehandlung bietet der Ausdruckstyp zwei Optio-nen an:

� Weitergereichte AusnahmenAlle Ausnahmen aus dem gerufenen ABAP Code werden an denAufrufer der BRFplus-Funktion weitergereicht. Dieser muss dieentsprechende Ausnahmebehandlung implementieren.

� Ignorierte AusnahmenAlle Ausnahmen aus dem gerufenen ABAP Code werden ignoriert,und die Regelverarbeitung in BRFplus wird trotz Ausnahme fort-gesetzt.

Die Implementierung der Anforderung erfolgt in zwei Schritten:

1. Daten zu bestehenden Darlehen über den Prozeduraufruf auslesen

2. Daten mit den Grenzwerten abgleichen

Für das Nachlesen der Daten legen Sie eine Regelsatz-Variable für dasErgebnis des Prozeduraufrufs an. Die Variable ist vom Typ Struktur

und hat den Namen EXISTING_LOAN. Binden Sie die Variable an das

Arbeitsschritte der Modellierung 2.3

107

ABAP-Dictionary-Element ZST_EXIST_LOAN_DATA. Löschen Sie nachder Anlage der Struktur den Kurztext der Komponente, und tragenSie »Höhe existierender Darlehen des Geschäftspartners« als Text derKomponente ein.

Regel für den Prozeduraufruf erstellen

Erstellen Sie eine neue Regel im Regelsatz mit der Bezeichnung »Er-mittlung bestehender Darlehen zu Geschäftspartner«. Da wir in derRegel nur die Daten nachlesen, nutzen wir ausschließlich den Dann-Zweig der Regel.

Prozeduraufruf aus der Regel anlegen

Über den Menüpfad Hinzufügen � Ausdruck verarbeiten � Anle-

gen der Schaltfläche legen Sie einen neuen Ausdruck vom Typ Pro-

zeduraufruf an. Der Name des Objekts lautet GET_EXISTINGLOAN_AMOUNT und der Text »Ermittlung bestehender Darlehen zu Ge-schäftspartner«. Wie in Abbildung 2.64 zu erkennen, wählen Sie imAbschnitt Ergebnis als mögliches Ergebnisdatenobjekt die StrukturEXISTING_LOAN (Daten bestehender Darlehen eines Geschäftspart-ners) aus und bestätigen die Anlage über die Schaltfläche Anlegen

und zu Objekt navigieren.

Abbildung 2.64 Dialog zur Anlage des Prozeduraufrufs (Basisdaten)

Page 42: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

108

Methodenaufrufim Prozeduraufruf

hinterlegen

In der darauffolgenden Bearbeitungsansicht geben Sie im AbschnittDetails die Informationen zu der ABAP-Klasse ein, die verwendetwerden soll (siehe Abbildung 2.65):

� Aufruftyp: Statische Methode

� Klassenname: ZCL_GET_EXIST_LOAN_DATA

� Methodenname: GET_EXIST_LOAN_BY_PARTNER

Abbildung 2.65 Bearbeitungsansicht des Prozeduraufrufs

Methoden-parameterzuordnen

Fügen Sie nun im Abschnitt Gemappte Parameter über die Schaltflä-che Parameter hinzufügen alle Parameter der Methode ein. Blen-den Sie dann über den Link Details einblenden die Informationenzum Mapping der Methodenparameter ein, um die Parameter denKontextdatenobjekten zuweisen zu können. In der Spalte Zugeord-

neter Wert hinterlegen Sie die Kontextdatenobjekte entsprechendder Tabelle 2.9.

Methodenparameter Kontextdatenobjekt

IV_PARTNER_ID ID des Geschäftspartners

IV_PARTNER_FIRSTNAME Vorname des Geschäftspartners

IV_PARTNER_LASTNAME Nachname des Geschäftspartners

Tabelle 2.9 Mapping der Methodenparameter zu Kontextdatenobjekten

Arbeitsschritte der Modellierung 2.3

109

Nehmen Sie keine Anpassungen an der vom System vorgeschlage-nen Art der Datenübertragung (Spalte Move-Typ) vor. Im AbschnittAusnahmebehandlung sind keine Eingaben notwendig, da die Me-thode keine Ausnahme erzeugt. Abbildung 2.66 zeigt den finalenAusdruck.

Abbildung 2.66 Prozeduraufruf zur Ermittlung bestehender Darlehen

Speichern Sie den Ausdruck und navigieren Sie zurück zur Regel.Wie Sie in Abbildung 2.67 erkennen können, ist die Regel zur Er-

IV_PARTNER_BIRTHDATE Geburtsdatum des Geschäftspartners

ES_EXIST_LOAN_AMOUNT Daten bestehender Darlehen eines Geschäftspartners

Methodenparameter Kontextdatenobjekt

Tabelle 2.9 Mapping der Methodenparameter zu Kontextdatenobjekten (Forts.)

Page 43: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

110

mittlung der existierenden Darlehen vollständig. Schließen Sie daherdie Bearbeitung der Regel ab und speichern Sie den Regelsatz.

Abbildung 2.67 Regel mit Prozeduraufruf

Regel zur Prüfungbestehender

Darlehen

Legen Sie für die Umsetzung der eigentlichen Prüfung eine weitereRegel mit der Beschreibung »Prüfung der Höhe der bestehendenDarlehen« an. Ordnen Sie in dieser Regel im Wenn-Zweig die Bedin-gung über den Kontextmenüpfad Wertebereich verwenden von �

Kontext zu und wählen Sie die Komponente Höhe existierender

Darlehen des Geschäftspartners des Kontextdatenobjekts Daten

eines existierenden Darlehens aus. Setzen Sie den Vergleichsopera-tor auf den Wert ist größer oder gleich. Wählen Sie dann über Än-

dern � Ausdruck auswählen als Vergleichswert den konstantenAusdruck Obere Grenze für Darlehensbetrag aus.

Füllen Sie den Dann-Zweig der Regel analog zum vorangegangenenAbschnitt und weisen Sie, wie in Abbildung 2.68 gezeigt, der Kom-ponente Status des Darlehensantrags des Ergebnisdatenobjektsden Wert 2 (Darlehensantrag abgelehnt) und der KomponenteAblehnungsgrund des Darlehens den Wert 3 (Betrag der beste-

henden Darlehen zu hoch) zu.

Abbildung 2.68 Regel zur Prüfung der Höhe bestehender Darlehen

Arbeitsschritte der Modellierung 2.3

111

Speichern Sie die Regel und den Regelsatz. Fügen Sie wie im voran-gehenden Abschnitt eine Exit-Bedingung unter Verwendung desAusdrucks Prüfung auf Antragsablehnung nach der Regel ein, umdie Verarbeitung des Regelsatzes nach der Ablehnung des Darlehensabzubrechen.

Entscheidungstabelle

Zinssatz ermittelnDie nächste zu modellierende Anforderung ist die Ermittlung desZinssatzes des Darlehens, falls alle Prüfungen des Darlehensantragserfolgreich waren. Die Ermittlung des Zinssatzes beruht auf einerAuswertung mehrerer zu erfüllender Bedingungen. Die Bedingun-gen basieren auf Vergleichen verschiedener Parameter, wie dem Al-ter des Geschäftspartners und dem monatlichen Einkommen mitdefinierten Grenzwerten.

Ausdruckstyp »Entscheidungs-tabelle«

Um diese Anforderung abzubilden, nutzen wir den AusdruckstypEntscheidungstabelle. Die Entscheidungstabelle ist eine der zentralenObjekte in der Modellierung von Geschäftsregeln. Eine Entschei-dungstabelle besteht aus Bedingungs- und Ergebnisspalten. Die Aus-wertung der Tabelle erfolgt zeilenweise durch einen Vergleich derBedingungen in den Bedingungsspalten mit den zugehörigen Kon-textdatenobjekten. Sind alle Bedingungen einer Zeile erfüllt, werdendie Ergebnisspalten der Zeile ausgewertet. Dies führt entweder zuder Rückgabe eines Ergebnisdatenobjekts oder kann auch die Aus-führung von Aktionen zur Folge haben.

Regel für die Entscheidungs-tabelle

Legen Sie zur Ermittlung des Zinssatzes eine neue Regel mit der Be-schreibung »Ermittlung des Darlehenszinssatzes« an. Da in diesemFall keine explizite Wenn-Bedingung notwendig ist, setzen Sie imDann-Zweig der Regel über den Kontextmenüpfad Hinzufügen �

Wert dem Kontext zuweisen den Wert der Komponente Status des

Darlehensantrags des Ergebnisdatenobjekts auf 1 (Darlehensan-

trag angenommen). Fügen Sie über Optionen � Ausdruck verar-

beiten � Anlegen eine weitere Operation in Form eines Ausdrucksvom Typ Entscheidungstabelle hinzu. Der Name des Ausdrucks ist»DETERMINE_LOAN_INTEREST_RATE« und der Text lautet »Be-stimmung der Zinsrate des Darlehens«. Wählen Sie, wie in Abbil-dung 2.69 gezeigt, die Komponente INTEREST_RATE (Zinssatz desDarlehens) des Datenobjekts LOANDESC_RESULT (Ergebnis der An-tragsprüfung des Darlehens) als Ergebnisdatenobjekt aus und been-

Page 44: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

112

den Sie die Anlage der Entscheidungstabelle über die SchaltflächeAnlegen und zu Objekt navigieren.

Abbildung 2.69 Dialog zur Anlage einer Entscheidungstabelle (Basisdaten)

Bearbeitungs-ansicht

Anschließend befinden Sie sich in der Bearbeitungsansicht der Ent-scheidungstabelle (siehe Abbildung 2.70). Von dort navigieren Sieüber die Schaltfläche Tabelleneinstellungen zu den Konfigurati-onseinstellungen der Entscheidungstabelle.

Abbildung 2.70 Bearbeitungsansicht der Entscheidungstabelle

Arbeitsschritte der Modellierung 2.3

113

EigenschaftenIn dem in Abbildung 2.71 dargestellten Dialog legen Sie die Eigen-schaften der Entscheidungstabelle fest.

Abbildung 2.71 Tabelleneinstellungen der Entscheidungstabelle

VerarbeitungsmodiIm Abschnitt Ergebnisdatenobjekt können Sie neben dem eigent-lichen Ergebnisdatenobjekt auch den Verarbeitungsmodus über denUnterpunkt Einstellungen festlegen. Dies wird über die CheckboxAlle übereinst. Werte zurückgeben gesteuert. Folgende zwei Modiwerden unterschieden:

� Single Match Mode (Die Checkbox Alle übereinst. Werte zurückgeben ist markiert.)Dies ist der Standardmodus bei der Auswertung von Entschei-dungstabellen. In diesem Modus werden, falls alle Bedingungeneiner Reihe erfüllt sind, die Ergebnisspalten ausgewertet und dieVerarbeitung der Tabelle beendet. Wird keine Übereinstimmunggefunden, kann entweder eine Ausnahme erzeugt werden, dievom Aufrufer der BRFplus-Funktion behandelt werden muss, oderes wird ein initiales Ergebnisdatenobjekt zurückgegeben. Dies

Page 45: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

114

steuern Sie über die Checkbox Initialwert zurückgeben, die stan-dardmäßig markiert ist.

� Multiple Match Mode(Die Checkbox Alle übereinst. Werte zurückgeben ist nicht mar-kiert.)In diesem Modus werden immer alle Zeilen der Entscheidungsta-belle geprüft und alle gefundenen Ergebnisse in Form einer Tabel-le zurückgegeben. Wenn keine Übereinstimmung gefunden wird,ist das Ergebnis ein leeres Ergebnisdatenobjekt vom Typ Tabelle.

In unserem Demoszenario erfolgt die Evaluierung der Tabelle imSingle Match Mode.

Teilübereinstimmung

Sie haben über die Checkbox Bei Teilübereinstimmung Ausnahme auslö-sen auch die Möglichkeit, auf partielle Übereinstimmungen bei der Evalu-ierung der Entscheidungstabelle zu reagieren. Die Beschreibung dieserOption und mögliche Anwendungsszenarien finden Sie in der SAP-Biblio-thek im Abschnitt SAP Decision Service Management/BRFplus � DecisionTable Expression.

Prüfungs-einstellungen

Zusätzlich bietet der Ausdruck die Möglichkeit, die Entscheidungs-tabelle auf Überlappung und Vollständigkeit der Bedingungen zuüberprüfen. Das System kann unterschiedlich auf die Ergebnisse derPrüfungen reagieren. Im Abschnitt Tabellenprüfungseinstellun-

gen können Sie die Reaktion konfigurieren. Sie haben dabei folgen-de Optionen:

� die Meldungen aus den Prüfungen nicht anzeigen

� die Meldungen als Warn- oder als Fehlermeldungen darstellen

� die auf Anwendungsebene definierten Einstellungen verwenden

Übernehmen Sie für die beiden Prüfungseinstellungen die OptionAnwendungsstandard.

Bedingungsspalten Im Abschnitt Liste der Spalten können Sie sowohl die Bedingungs-als auch die Ergebnisspalten hinterlegen und deren Eigenschaftenkonfigurieren. Fügen Sie hier die folgenden Kontextdatenobjekte alsBedingungsspalten über den Menüpunkt Aus Kontextdatenobjek-

ten der Schaltfläche Spalten Einfügen ein:

Arbeitsschritte der Modellierung 2.3

115

� PARTNER_INCOME

� APPLOAN_AMOUNT

� LOANRATE_VL

� PARTNER_AGE

Über die Taste (Strg) können Sie auch eine Mehrfachauswahl vor-nehmen. Für jede Spalte können Sie definieren, ob eine Eingabe ob-ligatorisch ist und ob die Spalte geändert, nur angezeigt oder ausge-blendet werden soll. Für das Demoszenario nehmen Sie keine An-passungen an den Standardeinstellungen der Bedingungsspalten vor.

Zusätzlich zu den Kontextdatenobjekten können Sie BRFplus-Aus-drücke in den Bedingungsspalten hinterlegen. Diese müssen als Er-gebnis einen elementaren Typ zurückliefern. Das Ergebnis kann inden Zellen der Entscheidungstabelle über Vergleichsoperationen ge-prüft werden.

ErgebnisspaltenIm Abschnitt Ergebnisspalten können Sie wie bei den Bedingungs-spalten Kontextdatenobjekte hinterlegen. Das Hinterlegen von Aus-drücken ist nicht möglich. Stattdessen haben Sie die Option, eine Ak-tion in der Ergebnisspalte zu hinterlegen. Für das Demoszenarionehmen Sie keine Anpassungen an den Standardeinstellungen derErgebnisspalte vor. Schließen Sie die Bearbeitung der Tabelleneigen-schaften über die Schaltfläche OK ab.

WerteeingabeIn der Bearbeitungsansicht der Entscheidungstabelle müssen Sie nundie Zeilen der Entscheidungstabelle füllen. Fügen Sie dazu eine neueZeile in die Tabelle ein und öffnen Sie das Kontextmenü der Zelle.Tragen Sie über den Menüeintrag Direkte Werteeingabe die Wertefür die einzelnen Spalten der Entscheidungstabelle ein (siehe Abbil-dung 2.72).

Abbildung 2.72 Direkte Dateneingabe in die Entscheidungstabelle

Page 46: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

116

Die Werte, die Sie für unser Beispiel eintragen müssen, sind in derExcel-Datei DETERMINE_LOAN_INTEREST_RATE.xlsx enthalten, dieSie auf der Internetseite von SAP PRESS unter www.sap-press.de/3838 im Abschnitt Materialien zum Buch herunterladen können.

Ausdrücke in Zellen von Entscheidungstabellen

Neben der direkten Werteeingabe bzw. dem Vergleich von Werten in denZellen einer Entscheidungstabelle haben Sie auch die Möglichkeit, direktAusdrücke in einzelnen Zellen zu hinterlegen. In Bedingungszellen mussder Ausdruck als Ergebnis ein Objekt vom Typ boolescher Wert zurück-liefern. In Ergebniszellen muss der Rückgabewert des Ausdrucks in dasDatenobjekt der Ergebnisspalte übertragbar sein.

WeitereFunktionen

Der Ausdruckstyp Entscheidungstabelle bietet noch weitere Funk-tionen. Sie können in der Menüleiste der Entscheidungstabelle überdas Eingabefeld Suchen nach Zelleninhalten suchen. Außerdem kön-nen Sie über die Pfeiltasten Zeilen in der Entscheidungstabelle nachoben oder unten verschieben. Dies ist auch mittels Drag & Dropmöglich. Das in Abbildung 2.73 dargestellte Menü Zusätzliche Ak-

tionen bietet Ihnen folgende Funktionen:

� Vollständigkeit überprüfen

Diese Prüfung stellt die Befüllung der Tabellenspalte in einerlückenlosen Wertefolge sicher. Wenn das System Lücken bei derPrüfung entdeckt, schlägt es Tabellenzeilen vor, um die Lücken zuschließen.

� Überlappung überprüfen

Diese Prüfung stellt sicher, dass die Wertebereiche der Bedin-gungsspalten nicht überlappen.

� Neu anordnen Über diese Funktion können Sie die Zeilen der Entscheidungsta-belle neu anordnen. Ihre Verwendung ist notwendig, wenn Zeilenmit generischen Bedingungen vor Zeilen mit speziellen Bedingun-gen stehen, denn dann sind die Zeilen mit den speziellen Bedin-gungen bei der Evaluierung der Entscheidungstabelle nicht mehrerreichbar. In diesem Fall sortiert die Funktion die Tabelle um, so-dass eine sinnvolle Reihenfolge im Sinne der Erreichbarkeit derZeilen gegeben ist.

� Zeilen zusammenführen

Mit dieser Funktionalität stoßen Sie eine Prüfung mehrerer Zeilen

Arbeitsschritte der Modellierung 2.3

117

mit dem Ziel der Zusammenlegung der Zeilen an. Das System un-tersucht, ob Bedingungen kombiniert werden können und führtbei positiver Prüfung die Zeilen zusammen und kombiniert die Be-dingungen. Voraussetzung für diese Aktion sind identische Wertein den Ergebnisspalten der selektierten Zeilen.

� Aus Excel importieren/Nach Excel exportieren

Mit dieser Funktionalität können Sie den Inhalt der Entschei-dungstabelle in eine Excel-Datei exportieren und aus einer Excel-Datei importieren. Die von BRFplus erzeugte Excel-Datei enthältneben den Daten der Entscheidungstabelle auch Informationenzur Semantik der einzelnen Spalten.

Abbildung 2.73 Zusätzliche Aktionen für eine Entscheidungstabelle

Speichern Sie die Entscheidungstabelle nach der Eingabe der Datenund navigieren Sie zur Regel zurück. Die Regel hat die in Abbildung2.74 dargestellte Form. Schließen Sie die Bearbeitungsansicht der Re-gel über die Schaltfläche OK und speichern Sie den Regelsatz. Die Er-mittlung des Darlehenszinses und die Hinterlegung des ermitteltenZinssatzes im Ergebnisdatenobjekt sind damit abgeschlossen.

Abbildung 2.74 Regel zur Ermittlung des Zinssatzes

Page 47: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

118

Optimierung von Entscheidungstabellen

Entscheidungstabellen enthalten normalerweise eine Vielzahl von Zeilen.Die Evaluierung der Tabelle erfolgt zeilenweise von oben nach unten. Umdie Verarbeitung der Entscheidungstabelle zu optimieren, sollten Sie imSingle Match Mode die Zeilen mit der höheren Trefferwahrscheinlichkeitin den oberen Bereich der Entscheidungstabelle legen, während die Zei-len mit den unspezifischeren Bedingungen im unteren Bereich der Ent-scheidungstabelle abgelegt werden sollten.

Ausdrücke, die als Spalten einer Entscheidungstabelle definiert wurden,werden einmal zu Beginn der Evaluierung der Tabelle ausgeführt und sindaus Sicht der Optimierung nicht weiter zu betrachten. Anders stellt sichdie Situation bei der Verwendung von Ausdrücken in einer Zelle der Ent-scheidungstabelle dar. In diesem Fall werden die Ausdrücke bei jeder Eva-luierung der Zeile neu ausgeführt. Aus Performancesicht kann es dahersinnvoll sein, anstelle von Ausdrücken in Zellen die Ausdrücke einmal vorder Evaluierung der Entscheidungstabelle auszuführen, das Ergebnis inVariablen zu speichern und in der Entscheidungstabelle mit den gespei-cherten Ergebniswerten zu arbeiten.

2.3.5 Aktionen

Meldungsausgabe Eine weitere Anforderung unseres Demoszenarios ist die Ausgabeeiner Nachricht im Anwendungsprotokoll, falls das Darlehen geneh-migt wurde. Die Nachricht soll den Vor- und Nachnamen des An-tragsstellers enthalten.

Diese Art von Anforderung zielt nicht auf eine Manipulation derKontext- und Ergebnisdatenobjekte ab, sondern erfordert eineOperation im Backend außerhalb von BRFplus. Für diese Art vonSzenarien bietet BRFplus das Objekt Aktion an. Analog zum ObjektAusdruck haben Sie in den Aktionen Zugriff auf die Kontext- undErgebnisdatenobjekte.

Aktionstypen inBRFplus

Im Standard liefert SAP die fünf in Tabelle 2.10 aufgelisteten Akti-onstypen.

Aktionstyp Beschreibung

E-Mail senden Versand einer E-Mail

Meldung protokollieren Erzeugung einer Nachricht im Anwendungs-protokoll

Tabelle 2.10 Aktionen in BRFplus

Arbeitsschritte der Modellierung 2.3

119

Aktionen und Datenbank-änderungen

Da die Aktionen Änderungen im Backend durchführen, erfordern ei-nige von ihnen eine Änderung auf Datenbankebene. Ist dies der Fall,wird die Änderung auf der Datenbank innerhalb der Aktion ausge-führt. Das Persistieren der Änderung muss vom Aufrufer durch einCommit sichergestellt werden. Diese Thematik wird in Abschnitt8.3.4, »Tipps für die Arbeit mit Aktionen«, näher erläutert.

Regel und Aktion anlegen

Um die Anforderung der Meldungsausgabe zu erfüllen, verwendenwir die Aktion Meldung protokollieren. Legen Sie dazu eine neueRegel mit der Bezeichnung »Meldung für Annahme des Darlehens«an. Im Dann-Zweig der Regel fügen Sie über den KontextmenüpfadAktion durchführen � Anlegen eine neue Aktion vom Typ Mel-

dung protokollieren (Aktion) an. Der Name der Aktion lautet LOG_APPLICATION_ACCEPTED und der Text »Nachricht für Antragsannahmeerstellen«. Navigieren Sie über die Schaltfläche Anlegen und zu Ob-

jekt navigieren zur Bearbeitungsansicht der Aktion (siehe Abbil-dung 2.75).

Abbildung 2.75 Bearbeitungsansicht der Aktion »Meldung protokollieren«

Prozedur aufrufen Aufruf von Code analog zum gleichnamigen Ausdruck

Workflow starten Start eines Workflows

Workflow-Ereignis Auslösen eines Workflow Events

Aktionstyp Beschreibung

Tabelle 2.10 Aktionen in BRFplus (Forts.)

Page 48: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

120

Aktion »Meldungprotokollieren«

In der Bearbeitungsansicht haben Sie die Möglichkeit, ein Anwen-dungsprotokollobjekt, ein Anwendungsprotokoll-Unterobjekt sowieeine externe Identifikation zu spezifizieren. Die Vorbelegung derFelder erfolgt entsprechend der Konfiguration auf Anwendungsebe-ne. Über die Checkbox Persistieren können Sie das Persistenzver-halten dieser Aktion steuern. Wenn Sie die Checkbox markieren,wird das Anwendungsprotokoll auf die Datenbank in BRFplus ge-schrieben; wenn nicht, werden die Meldungen ausschließlich in dennichtpersistenten Speicher (Memory) des Anwendungsprotokolls ge-schrieben, und der Aufrufer der BRFplus-Funktion muss das Schrei-ben auf die Datenbank selbst sicherstellen. In beiden Fällen muss,wie bereits erwähnt, ein Commit durch den Aufrufer erfolgen, umÄnderungen auf der Datenbank zu persistieren. Nehmen Sie für dieImplementierung des Demoszenarios keine Änderungen an denStandardeinstellungen vor.

Nachrichtenerfassen

Im Abschnitt Protokollnachr. können Sie eine oder mehrere Nach-richten hinterlegen, die in das Anwendungsprotokoll geschriebenwerden sollen. Pro Nachricht können Sie den Nachrichttyp festlegen,wie z. B. Warnung oder Information.

Sie können die Meldung entweder als Freitext oder über eine Nach-richt aus einer Nachrichtenklasse des Backends erzeugen. Die Nach-richtenklassen des Backends und die zugeordneten Meldungen sindin der Tabelle T100 bzw. über die Transaktion SE91 verfügbar. In bei-den Fällen können Sie Platzhalter durch die Zuordnung von Kontext-datenobjekten füllen. Im Fall des Freitextes müssen Sie Platzhaltermit &n (n = 1,...,4) deklarieren.

Freitext Für unser Demoszenario verwenden wir die Freitextoption. Hinter-legen Sie den Nachrichtentext »Der Darlehensantrag von &1 &2 wur-de akzeptiert«. Aktualisieren Sie die Platzhalter über die SchaltflächeMeldungsplatzhalter aktualisieren. Das System blendet dann un-terhalb der Meldung die verfügbaren Platzhalter ein. Ordnen Sie die-se wie in Tabelle 2.11 den Kontextdatenobjekten zu.

Platzhalter Kontextdatenobjekt

&1 Vorname des Geschäftspartners

&2 Nachname des Geschäftspartners

Tabelle 2.11 Platzhalter zu Kontextdatenobjekt zuordnen

Arbeitsschritte der Modellierung 2.3

121

Die Aktion ist mit allen Daten in Abbildung 2.76 dargestellt. Spei-chern Sie die Aktion und navigieren Sie zur Regel zurück.

Abbildung 2.76 Aktion zur Protokollierung der Annahme des Darlehensantrags

Nachfolgeaktionen

Aktionen bieten die Möglichkeit, durch das Auslösen einer Aktion auto-matisch weitere Aktionen anzustoßen. Dazu können Sie auf der Register-karte Nachfolgeaktionen bei der Definition einer Aktion die zugehörigenweiteren Aktionen festlegen. Zur Laufzeit werden diese in der hinterleg-ten Reihenfolge bearbeitet.

Die Regel beinhaltet, wie in Abbildung 2.77 dargestellt, die Aktionzum Protokollieren der Meldung. Schließen Sie die Bearbeitungs-ansicht der Regel und speichern Sie den Regelsatz.

Abbildung 2.77 Regel zum Aufruf der Aktion »Meldung protokollieren«

Page 49: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

122

Sichern und aktivieren Sie nun die Funktion mit allen abhängigenObjekten. Nach der Aktivierung haben Sie die BRFplus-Funktionbzw. den Entscheidungsservice für die Darlehensantragsprüfung er-folgreich erstellt.

2.4 Kataloge

Wie in Abschnitt 2.1, »Aufbau der BRFplus Workbench«, erwähnt,gewährt BRFplus durch Kataloge eine eingeschränkte Sicht auf dasRepository. Auf diese Weise können die für den Geschäftsexpertenrelevanten Objekte zusammengefasst und die Auffindung und Pflegeder Objekte kann vereinfacht werden.

Struktur vonKatalogen

Der Aufbau von Katalogen und die Zuordnung von Objekten zumKatalog sind definiert durch die folgenden Knotentypen:

� Ordner-KnotenDieser Knotentyp ermöglicht die Strukturierung des Katalogin-halts in unterschiedliche Ordner und Unterordner. Auf diese Wei-se können Sie die BRFplus-Objekte z. B. nach unterschiedlichenEinsatzzwecken gruppieren.

� Objekt-KnotenDieser Knotentyp referenziert auf das BRFplus-Objekt im Repo-sitory.

� Katalog-KnotenDieser Knotentyp referenziert auf Knoten bereits existierender Ka-taloge. Auf diese Weise können Sie bestehende Kataloge oder Teiledaraus wiederverwenden.

Kataloge desDemoszenarios

Um die Objekte unseres Demoszenarios anhand der betriebswirt-schaftlichen Kriterien Prüfung, Berechnung und Nachrichtenerzeu-gung zu gruppieren, erstellen wir die in Tabelle 2.12 aufgelistetenKataloge.

Name Text

LOAN_APPL_CHECK Darlehensantrag – Prüfungen

LOAN_APPL_CALC Darlehensantrag – Berechnungen

Tabelle 2.12 Katalognamen und Texte des Demoszenarios

Kataloge 2.4

123

1. Starten Sie die Kataloganlage über den Kontextmenüpfad Anlegen

� Katalog auf Anwendungsebene.

2. Zuerst legen Sie den Katalog LOAN_APPL_CHECK mit dem zugehöri-gen Text an und navigieren zu dem Objekt.

3. In der in Abbildung 2.78 dargestellten Bearbeitungsansicht sehenSie den leeren Katalog. Auf der linken Seite ist im Abschnitt Struk-

tur die Struktur des Ordners zu sehen. Auf der rechten Seite wer-den, abhängig von der Auswahl im Strukturbaum, die spezifischenObjekteigenschaften dargestellt.

Abbildung 2.78 Bearbeitungsansicht eines Katalogs

Eigenschaften eines Katalogs

Der Wurzel-Knoten des Katalogs ist der Katalog selbst, dem verschie-dene Objekteigenschaften zugeordnet werden können, die auf denkompletten Katalog wirken. Sie können hier z. B. über die Register-karte Objekttypen einschränken, welche BRFplus-Objekttypen in-nerhalb des Katalogs referenziert werden dürfen.

Das Einfügen von Objekt-Knoten zu einem Katalog erfolgt über denKontextmenüpfad Objekt-knoten anlegen � Vorhandenes Objekt

auswählen im Strukturbaum des Katalogs oder per Drag & Drop.

LOAN_APPL_MESSAGE Darlehensantrag – Benachrichtigungen

LOAN_APPL_OVW Darlehensantrag

Name Text

Tabelle 2.12 Katalognamen und Texte des Demoszenarios (Forts.)

Page 50: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

124

Ordnen Sie dem Katalog Darlehensantrag – Prüfungen die folgen-den Objekte zu (siehe Abbildung 2.79):

� Untere Grenze für Einkommen des Geschäftspartners

� Untere Grenze für Alter des Geschäftspartners

� Obere Grenze für Darlehensbetrag

� Ermittlung bestehender Darlehen zu Geschäftspartner

� Auslesen der Risikoinformationen zum Geschäftspartner

Abbildung 2.79 Katalog mit Objekt-Knoten

Sichern Sie den Katalog und legen analog die zwei weiteren Katalogean. In Tabelle 2.13 sehen Sie die Zuordnung der BRFplus-Objektezum Katalog.

Zum Abschluss legen Sie den Katalog »Darlehensantrag« an und refe-renzieren dort über den Knotentyp Katalog-Knoten auf die drei bis-

Katalog Zugeordnete Objekte

Darlehensantrag – Berechnungen Berechnung des Alters des Geschäfts-partners

Bestimmung der Zinsrate des Darlehens

Darlehensantrag – Benachrichti-gungen

Nachricht für Antragsannahme erstellen

Tabelle 2.13 Kataloge und zugeordnete Objekte

Lebenszyklus von BRFplus-Objekten 2.5

125

her erstellten Kataloge. Auf diese Weise haben Sie einen Überblicks-katalog für den Gesamtprozess.

In personalisierte Workbench übernehmen

Nachdem Sie alle Kataloge angelegt haben, sichern und aktivieren Siedie Kataloge. Ordnen Sie die erstellten Kataloge über die Personali-sierung der BRFplus Workbench ihren vorselektierten Katalogen zu.Auf diese Weise haben Sie die Kataloge in der Katalogansicht derBRFplus Workbench im Zugriff.

Die Modellierungsaufgaben für unser Demoszenario sind damit fürdieses Kapitel abgeschlossen. Sie kennen nun die technischen Vor-aussetzungen für den Einsatz von BRFplus und die Möglichkeitender Personalisierung der BRFplus Workbench. Darüber hinaus sindSie mit dem typischen Vorgehen bei der Regelmodellierung vertrautund haben einen ersten Einblick in die wesentlichen Objekte vonBRFplus und deren Modellierung gewinnen können. Darauf aufbau-end werden wir im folgenden Kapitel die Themen Simulation undAufruf der BRFplus-Funktion vorstellen.

2.5 Lebenszyklus von BRFplus-Objekten

Schrittweise Löschung

In unserer Beschreibung der BRFplus-Objekte haben wir bis jetztausschließlich die Anlage von Objekten und deren Verwendung inanderen Objekten besprochen. Sie können BRFplus-Objekte auchlöschen. Dieser Prozess umfasst in BRFplus im Unterschied zumLöschen z. B. einer ABAP-Klasse mehrere Schritte. Dieser Prozessermöglicht Ihnen eine sukzessive Bereinigung Ihrer Anwendungohne das Risiko eines unbeabsichtigten Datenverlusts.

Die einzelnen Prozessschritte führen zu einer schrittweisen Verrin-gerung der Verfügbarkeit und Sichtbarkeit des BRFplus-Objekts, be-vor das Objekt endgültig und damit physisch gelöscht werden kann.Durch die Unterteilung des Löschvorgangs in einzelne Schritte habenSie die Möglichkeit, das Objekt vor der physischen Löschung wiederzu reaktivieren. Dies kann u. a. im Falle einer Revision von Bedeu-tung sein. Die einzelnen Schritte vor der physischen Löschung ent-sprechen technisch einem internen Status des Objekts. Sie sind inAbbildung 2.80 schematisch dargestellt.

Page 51: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

126

Abbildung 2.80 Mögliche Statusübergänge einer Löschung

Als veraltetkennzeichnen

Der erste optionale Schritt der Löschung eines BRFplus-Objekts ist es,das Objekt als veraltet zu kennzeichnen. Dieser Status kann vergebenwerden, wenn Sie bei der Analyse Ihres Regelwerks feststellen, dassbestimmte Objekte zwar in der jetzigen Konfiguration korrekt sind,aber bei zukünftig geplanten Anpassungen ersetzt werden müssen.Die Kennzeichnung erfolgt über den Menüpfad Mehr � Als veraltet

kennzeichnen (siehe Abbildung 2.81).

Abbildung 2.81 Objekt als veraltet kennzeichnen

Wenn ein Objekt als veraltet gekennzeichnet wurde, hat dies folgen-de Konsequenzen für die weitere Verwendung des Objekts:

� Das Objekt kann nicht mehr geändert werden.

� Das Objekt kann nicht mehr in neuen Objekten verwendet wer-den. Das System stellt dies sicher, indem das Objekt in den Aus-wahllisten ausgeblendet wird.

Als veraltet kennzeichnen

Zum Löschen vormerken

Löschen (logisch)

Löschen (physisch)

Lebenszyklus von BRFplus-Objekten 2.5

127

� Inaktive Objekte, die das Objekt verwenden, können nicht mehraktiviert werden.

� Alle aktiven Objekte, die das so gekennzeichnete Objekt verwen-den, funktionieren weiterhin.

Das Kennzeichen kann jederzeit wieder entfernt werden, und dasObjekt steht danach ohne die beschriebenen Einschränkungen zurVerfügung.

Zur Löschung vormerken

Der nächste mögliche Status eines BRFplus-Objekts ist die Vormer-kung zur Löschung. Diesen Status können Sie über den Menüpfad Lö-

schen � Zum Löschen Vormerken vergeben (siehe Abbildung 2.82).

Abbildung 2.82 Objekt zum Löschen vormerken

Dieser Status soll den Anwender darauf aufmerksam machen, dassdie gekennzeichneten Objekte so schnell wie möglich ersetzt wer-den müssen, falls sie sich noch in Verwendung befinden. Die Verga-be dieses Status hat technisch die gleichen Auswirkungen auf dasObjekt wie die Kennzeichnung als veraltet. Zusätzlich prüft BRFplusintern zu verschiedenen Zeitpunkten, ob das Objekt mit Lösch-vormerkung noch verwendet wird. Sobald keine Verwendung mehrvorliegt, d. h. keine Referenzen auf das Objekt durch andereBRFplus-Objekte existieren, erfolgt automatisch eine logische Lö-schung des Objekts.

Darüber hinaus besteht in diesem Status die Möglichkeit, die logi-sche Löschung des Objekts manuell anzustoßen. Dies kann entwederüber die Anwendungsverwaltung oder den ABAP-Report FDT_DELETEerfolgen. Bei der manuellen logischen Löschung kann eine Verweil-dauer des Objekts im Status Zum Löschen vorgemerkt berücksichtigtwerden.

Die Vergabe des Status ist ein optionaler Schritt, und der Status kannwieder entfernt werden. Aus organisatorischen Gründen empfehlenwir die Verwendung dieses Status, bevor eine logische Löschungdurchgeführt wird.

Page 52: Business Rule Management mit ABAP

Geschäftsregeln mit BRFplus modellieren2

128

Logische Löschung Als nächster Prozessschritt folgt die logische Löschung des Objekts.Das logische Löschen entspricht im weitesten Sinne dem Löschenaus dem Bereich der ABAP-Entwicklung. Nach der Löschung ist dasObjekt für den Anwender nicht mehr sichtbar. Die Löschung vonObjekten kann auf zwei Arten erfolgen:

� manuell über den Menüpfad Löschen � Löschen (siehe Abbil-dung 2.83)

� automatisch über die Operation Zur Löschung vorgemerkte Ob-

jekte löschen in der Anwendungsverwaltung der BRFplus Work-bench oder über die Operation Logisch löschen – vorgemerkt

des Reports FDT_DELETE im Backend.

Diese Art der Löschung berücksichtigt nur Objekte, die zum Lö-schen vorgemerkt wurden. Wie bereits erwähnt, kann hier eineKarenzzeit berücksichtigt werden.

Abbildung 2.83 Objekt löschen

Voraussetzung für eine erfolgreiche logische Löschung ist, dass daszu löschende Objekt nicht mehr verwendet wird. Hier ist zu be-rücksichtigen, dass dies nicht nur die aktiven Referenzen betrifft,sondern auch Referenzen, die aufgrund der Versionierung in frühe-ren, nicht mehr aktiv verwendeten Versionen von BRFplus-Objek-ten existieren. Diese müssen vor der Löschung aufgelöst werden.BRFplus umfasst keine Werkzeuge, um die logische Löschung rück-gängig zu machen.

Wiederherstellung logisch gelöschter Objekte

Theoretisch hat der Systemadministrator die Möglichkeit, logisch ge-löschte Objekte wiederherzustellen. Aufgrund der automatischen physi-schen Löschung der Objekte durch BRFplus zu verschiedenen Zeitpunk-ten kann eine Wiederherstellbarkeit jedoch nicht garantiert werden. Siesollten daher die als gelöscht gekennzeichneten Objekte bei der Verwen-dung von BRFplus als tatsächlich gelöscht und nicht mehr wiederherstell-bar betrachten.

Lebenszyklus von BRFplus-Objekten 2.5

129

Physische Löschung

Der letzte Schritt der Löschung von Objekten ist die physische Lö-schung. Nach der logischen Löschung steht das Objekt dem Anwen-der in BRFplus zwar nicht mehr zur Verfügung, es befindet sich aberweiterhin für eine begrenzte Zeit im System. Nach der Durchführungder physischen Löschung ist das Objekt irreversibel aus dem Systemgelöscht.

Die physische Löschung der Objekte kann auf zwei Arten erfolgen.Zum einen entfernt BRFplus die als gelöscht gekennzeichneten Ob-jekte nach einer bestimmten Karenzzeit zu verschiedenen Zeitpunk-ten automatisch aus dem System. Zusätzlich haben Sie die folgendenMöglichkeiten, die physische Löschung manuell anzustoßen:

� mit der Operation Datenbank aufräumen in der Anwendungs-verwaltung der BRFplus Workbench

� mit der Operation Physisch löschen – log. gel. des Reports FDT_DELETE im Backend

� über einen automatischen Bereinigungsdurchlauf; der Bereinigungs-durchlauf entfernt automatisch alle seit mindestens 180 Tagen logischgelöschten Objekte aus der Datenbank