GEDOPLAN
Business Process Management (BPM)Jakarta EE (Java EE)

Entscheidungstabellen als dynamische Geschäftslogik

Business Process Management (BPM)Jakarta EE (Java EE)
direction 1015716 1280 jpg

Ich möchte heute eine kleine Serie zum Thema Einsatz von DMN-Engines in Enterprise-Projekten starten, in der ich euch zeigen möchte, wie Entscheidungstabellen sinnvoll in Anwendungen integriert werden können. Starten werde ich mit einem simplen Beispiel, welches die Möglichkeiten dieser Technologie aufzeigen soll.

In der klassischen Enterprise-Entwicklung versucht man die Geschäftslogik möglichst sauber in seinen Service-Klassen vom Rest der Anwendung (Präsentations- bzw. Persistenz-Schicht) zu trennen. Die fachliche Logik befindet sich in einzelnen Methoden und wird durch den Entwickler implementiert.

public boolean jackeMitnehmen(Integer temp, Integer month) {
    ...
}

Soweit nichts weiter ungewöhnlich. Was aber passiert, wenn sich diese Methoden häufig ändern bzw. die fachlichen Parameter sich anpassen müssen? Eine Möglichkeit besteht darin diese Parameter möglichst aus der Anwendung in bspw. die Datenbank auszulagern und die Methode möglichst generisch zu implementieren. Diese Variante bietet zwar mehr Flexibilität, stößt aber meist sehr schnell an ihre Grenzen.

Der Einsatz von Entscheidungstabellen kann hier eine sehr flexible Art der Anpassung ermöglichen ohne die eigentliche Implementierung verändern zu müssen. Der Aufbau ist dabei sehr simpel. Ich habe eine Menge an Eingabeparametern, Fälle in denen auf dieser Basis eine Entscheidung getroffen werden soll und Ausgabeparameter.

Die Entscheidungstabelle eine Jacke mitzunehmen würde wie folgt aussehen:kleidungsauswahl

Diese hier abgebildete Entscheidung basiert auf einer alten Bauernregel, dass Monate mit r im Namen immer kühl sein können und man daher immer eine Jacke dabei haben sollte. Ich denke jeder Entwickler wird sich die klassische Implementierung so einer Methode vorstellen können. Was passiert aber nun, wenn sich diese Parameter ändern. Denken wir nur an die aktuellen Zeiten der Klimaerwärmung. Da ist es im September noch fast wärmer als im Juli. Somit könnten wir diese Regel entsprechend anpassen und den September aus unserer Empfehlung herausnehmen.

Dies ist natürlich ein sehr einfaches Beispiel und man wird denken, dass ich natürlich diese kleine Anpassung im Code sehr schnell erledigen kann. Aber wir versuchen uns diese Dynamik ja für ganz andere fachliche Vorgänge vorzustellen. Was ich an dieser Stelle zeigen möchte ist, dass ich ohne die Anpassung einer einzigen Codezeile diese neue Anforderung umsetzen kann. Ich muss lediglich in der Entscheidungstabelle den Bereich der Monate anpassen.

Das war schon der erste Teil zum Thema DMN. Ich habe mich hier absichtlich nur auf die eigentliche Idee von Entscheidungstabellen beschränkt und nur ein paar Zeilen Code eingefügt. In den nächsten Teilen werde ich viel tiefer hineingehen und sowohl die Erstellung der Entscheidungstabellen, als auch die Einbindung in Enterprise-Anwendungen erläutern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

automobile 8078415 640 jpg
Webprogrammierung

OpenAPI- ein eigenes Model

OpenAPI ist eine fantastische Möglichkeit, die eigenen Schnittstellen technisch zu beschreiben und Anwendungsteile zu generieren. Ein Generator ist allerdings immer…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!