Interface-Generierung
LF‑ET bietet für ABAP auch die Möglichkeit, die Steuerlogik der Entscheidungstabelle über ein generiertes Interface von einer konkreten Implementierung zu entkoppeln.
Um die Interface-Generierung zu verwenden, muss im ABAP-Prolog zur Entscheidungstabelle der ABAP-Generierungsparameter $$InterfaceName definiert sein, wie zum Beispiel:
-
$$InterfaceName=ZIF_AMPELSCHALTUNG oder * $$InterfaceName=ZIF_$$etname**.
Zuerst wird das Interface generiert:
-
Zu jedem Bedingungswert wird eine "is-Methode" definiert
-
Zu jedem Aktionswert wird eine "do-Methode definiert
-
Die Methodennamen werden automatisch aus den Titeln und Symbolen der Bedingungs- und Aktionswerte abgeleitet
-
Überlange Methodennamen werden automatisch gekürzt, wobei iterativ das jeweils letzte längste Wort um maximal die Hälfte verkürzt wird. Der Vorgang wird solange wiederholt, bis die zulässige Länge eines ABAP-Methodennamens von derzeit 30 Zeichen nicht mehr überschritten wird.
-
Jede Methode erhält automatisch einen Kommentar, der aus allen verfügbaren Informationen aus der Entscheidungstabelle ntscheidungstabelle (Titel, Symbole, Texte, etc.) zusammengestellt wird
-
Zusätzlich wird noch für den Trace-Code eine Methode definiert
Anschließend wird die Klasse mit der eigentlichen Steuerlogik (Rules-Engine, Regelmodul, IF-ELSE-Regelbaum) generiert:
-
Die Klasse enthält nur eine Methode "execute" mit dem Interface als Parameter
-
Der IF-ELSE-Regelbaum benutzt nur die im generierten Interface definierten Methoden
Der Sinn dieser Generierungsart: Weder die Entscheidungstabelle, noch das generierte Interface, noch das generierte Regelmodul enthalten anwendungsspezifischen Sourcecode!
Das bedeutet:
-
Maximale Entkopplung der Steuerlogik (d.h. Entscheidungstabelle) von einer konkreten Implementierung
-
Mehrere ABAP-Implementierungen derselben Logik sind möglich (z.B. in unterschiedlichen Projekten), Basis für jede Implementierung ist immer das generierte Interface
Weitere Informationen und detaillierte Beispiele zur Interface-Generierung finden Sie hier:
-
ABAP-Generierungsparameter (Abschnitt 'Parameter für die Interface-Generierung')