ABAP Rules Engine

für eilige Fragen
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

ABAP Rules Engine

Beitrag von SiyarA (ForumUser / 1 / 0 / 0 ) »
Hallo,

ich bin neu in der ABAP Welt und habe ein Problem.
Gibt es in ABAP oder SAP-Umfeld so etwas wie eine Rules Engine?
Also einen Regelinterpreter ganz im Sinne von:
Boolscher-Ausdruck -> Aktion
Boolscher-Ausdruck -> Aktion
...

Vieln Dank.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ABAP Rules Engine

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hallo,

ja gibt es. Das Business Rule Framework (BRF), bzw. das etwas neuere (ab SAP NW 700 Ehp1) und verbesserte Business Rule Framework plus (BRF+). Nachteil beim BRF+ ist für mich, das die Administratiosoberfläche nur in Webdynpro verfügbar ist. Die Rule Engine lässt sich aber wohl auch ohne die Webdynpro-Wokbench ansprechen. Ansonsten bietet es aber einige Detailveresserungen, ist IMHO aber auch wieder deutlich komplexer.

Generell halte ich das BRF mit für die beste Entwicklung der letzten Jahre im Bereich der ABAP-Frameworks. Schade das es hier so wenig Resonanz dazu gibt.
...entwickelnder Berater...beratender Entwickler

Re: ABAP Rules Engine

Beitrag von ewx (Top Expert / 4857 / 314 / 644 ) »
Das hört sich ja mächtig interessant an...!
Ich habe die SAP-Doku dazu gefunden: http://help.sap.com/saphelp_crm50/helpd ... ameset.htm
Allerdings erschliesst sich mir der Sinn noch nicht.
Was kann man damit machen?

Leider funktionieren die Demo-Programme RBRF_DEMO_nnn nicht.
"Ereignis DEMO_002_A in Anwendungsklasse FLIGHT existiert nicht"
Wahrscheinlich muss da noch was initialisiert werden...?

Re: ABAP Rules Engine

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hallo Enno,

die Demos habe ich selbst auch nie zum Laufen bekommen. Ich glaube die sind auch nicht fertig. Ich habe mir aus vielen Informationsschnipseln irgendwann selbst mal eine kleine Anwendung gebastelt und ausprobiert.

Was kann man damit machen? Man kann alle mögliche Berechnungen, Prüfungen, Ableitungen, Aktionen auslösen, etc... damit durchführen.

Das geniale (meiner persönlichen Meinung nach) ist, das man die Bedingungen, Regeln, usw. frei konfigurieren kann, ohne das Anwendungsprogramm zu ändern. Man hat quasi ein "flexibles Customizing" zur Verfügung und der Anwendungsentwickler muss nicht jede mögliche Situation vorausdenken. Vielleicht ein einfaches Beispiel von mir.

In einem CO-PA User-Exit werden häufiger mal irgendwelche Berechnungen vorgenommen um ein bestimmtes Wertfeld zu füllen. Sagen wir mal, es soll der Wert des Skonto vom Umsatz berechnet werden, abhängig von verschiedene Kundengruppen. Kundengruppe Großhandel 3%, Einzelhandel 2% (ich weiss es geht auch anders, soll nur ein Beispiel sein). Im User-Exit würde man jetzt ein Ereignis "Berechne Skonto" aufrufen, das einen Wert zurückgeben soll und man würde dem Ereignis den Quell-Datensatz mit den Infos bzgl. Wertfelder und Merkmale zur Verfügung stellen.

Im BRF würde das Ereignis jetzt aufgerufen. Innerhalb des Ereignisses wird jetzt eine (oder mehrere Regeln) abgearbeitet. Man würde jetzt eine Regel die ganz einfach nur den Skonto berechnen soll definieren, sonst nichts. Man würde jetzt einen Case-Ausdruck definieren der abhängig von der Kundengruppe einen Formel-Ausdruck aufruft, also falls Merkmal Kundengruppe = Großhandel dann berechne 3% von Wertfeld Umsatz. Ändert sich jetzt die Prozentzahl, muss man nicht den Quelltext ändern, sondern nur den Ausdruck im BRF. Man kann somit die Business-Logik an den Anwender "auslagern" und muss sich nicht als Anwendungsentwickler drum kümmern.

In diesem Fall eigentlich nichts besonderes, aber ich habe schon so oft gesehen, daß solche Dinge im Quelltext "hart verdrahtet" sind. Die etwas Fortgeschrittenen werden selbstverständlich Tabellen dafür anlegen. Aber was wenn sich jetzt die Bedingungen ändern, also z.B. Berechnung alleine nicht mehr abhängig von Kundengruppen, sondern innerhalb der Kundengruppe nochmal nach verschiedenen Ketten oder wenn der Skonto jetzt nicht mehr nach Kundengruppe, sondern nach Vertriebslinie berechnet werden soll!?! Schon müsste man wieder den Quelltext und die Tabellen anpassen. Im BRF müsste man nun nur zusätzliche Ausdrücke und Bedingungen definieren, also sprich customizen!, da ja immer noch der gleiche Quell-Datensatz vorhanden ist und das gleiche Ergebnis Skonto an die Anwendung zurückgegeben werden soll.

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Dies ist natürlich nur ein einfaches Beispiel und deren Möglichkeiten gibt es viele... :wink:

Man kann das BRF auch beliebig mit eigenen Ausdrücken und Funktionen modifikationsfrei erweitern, aber das ist was für die OO-Profis (zu denen ich mich nicht zähle).

Das CRM ist nur eine der Anwendung die das BRF nutzt, aber in welcher Ausprägung habe ich mir nicht angeschaut. Ich denke das ist der bessere Link zur Doku.

http://help.sap.com/saphelp_erp60/helpd ... ameset.htm

Allerdings wird das BRF von der SAP nicht mehr weiter entwickelt, aber noch weiter gepflegt. Das BRFplus ist dann die etwas neuere und verbesserte Version.
...entwickelnder Berater...beratender Entwickler

Re: ABAP Rules Engine

Beitrag von ewx (Top Expert / 4857 / 314 / 644 ) »
Danke für deine ausführlichen Erläuterungen!
Ich habe allerdings noch keinen Ansatzpunkt gefunden. Die Beispiele, die in der Doku genannt werden, scheinen mir irgendwie unvollständig. Da steht zwar, rufen Sie den und den Baustein auf, aber was genau der braucht habe ich nicht verstanden.

Bisher scheint mir das noch sehr kompliziert zu sein. Wenn also eine Bedingung umfangreich erweitert werden muss, dann müssen auch hier Strukturen, Schnittstellen etc angepasst werden. Ist die Frage, ob das dann wirklich einfacher ist, als Programmieren, nur weils _größtenteils_ ohne Programmierung geht.

Ich werde mir das in einer ruhigen Minute noch mal anschauen. Wenn du noch ein Codeschnipsel für mich hast, wäre ich dir dankbar 8)

Re: ABAP Rules Engine

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
ewx hat geschrieben:Danke für deine ausführlichen Erläuterungen!
Ich habe allerdings noch keinen Ansatzpunkt gefunden. Die Beispiele, die in der Doku genannt werden, scheinen mir irgendwie unvollständig. Da steht zwar, rufen Sie den und den Baustein auf, aber was genau der braucht habe ich nicht verstanden.

Bisher scheint mir das noch sehr kompliziert zu sein. Wenn also eine Bedingung umfangreich erweitert werden muss, dann müssen auch hier Strukturen, Schnittstellen etc angepasst werden. Ist die Frage, ob das dann wirklich einfacher ist, als Programmieren, nur weils _größtenteils_ ohne Programmierung geht.

Ich werde mir das in einer ruhigen Minute noch mal anschauen. Wenn du noch ein Codeschnipsel für mich hast, wäre ich dir dankbar 8)
Hi,

leider steht mir das System, auf dem ich mein Beispiel entwickelt habe, nicht mehr zur Verfügung. Grundsätzlich kann man die Demo-Programme aber schon als Vorlage nehmen. Die BRF-Applikation ist halt nicht korrekt konfiguriert, bzw. existiert nicht.

Ich habe relativ lange gebraucht, bis ich das zum Laufen bekommen habe. Das muss aber nichts heissen, da ich doch mehr aus der Berater-Ecke komme. Wenn man aber alles mal zusammen hat, sah' es plötzlich gar nicht mehr so komplex aus. Für einen Programmier-Profi sicherlich ohne weiteres machbar.

Wenn bei einer Anwendung sich natürlich grundlegende Dinge ändern, z.B. Statt Prüfung auf Verkaufsbelege, jetzt Prüfung auf Einkaufsbelege (blödes Beispiel), dann muss man natürlich auch eine Anwendung anpassen. Aber es geht ja mehr darum, in einem vorgegeben Rahmen möglichst flexibel zu bleiben. Insbesondere auch in der Wartung und da bin ich schon der Meinung das es große Vorteile hat. Es ist ja nicht Sinn die Anwendungsentwicklung zu ersetzen. Es gibt ja auch Dinge die soll ein Anwender gar nicht ändern können, weil es die Programmlogik so voraussetzt. Aber durch die Trennung Anwendungslogik - Geschäftslogik wird der Entwickler entlastet und er kann sich um die wichtige Dinge kümmern.

Meiner Meinung nach lohnt es sich damit zu beschäfigen. Viele der neueren Entwiclungen bei SAP verwenden das BRF, bzw. das neuere BRFplus schon, z.B. Financial Supply Chain Management (FSCM), Customer Relationhip Management (CRM), Transport Management (TM), Business Intelligence - Business Planning (BI-BP).

Vielleicht mach ich mal einen Thread auf in der Netweaver-Rubrik und sammle ein paar Info's zu.
...entwickelnder Berater...beratender Entwickler

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Bestellte Bestellpositionen
vor 24 Minuten von Manfred K. 1 / 3
MS-Word als Editor
Gestern von tekko 1 / 238
Formulare aus Fiori debuggen
vor 4 Tagen von Manfred K. 1 / 504