Scrapbook bearbeiten
LF‑ET hat eine C#-Klasse erzeugt mit Abschnitten für jeden einzelnen Sourcecode der Entscheidungstabelle, die jeweils durch Kommentare eindeutig identifiziert werden, wie z.B.:
// Prolog Decision Table ---→ // Prolog Decision Table ←--- |
Diese Kommentare dürfen bei der Bearbeitung nicht verändert werden, denn sie dienen sowohl dem Entwickler als auch LF‑ET zum Erkennen, wo ein bestimmtes Source-Fragment beginnt und wo es endet.
Wenn ein zwingend notwendiger Sourcecode in der Entscheidungstabelle leer ist, dann wird ein vordefiniertes Generat verwendet und TODO-Kommentare geben Hinweise auf durchzuführende Aktivitäten.
In VisualStudio werden TODO-Kommentare automatisch ausgewertet…

…und können z.B. in der Aufgabenliste angezeigt werden. In unserem Beispiel müssen noch 8TODO’s abgearbeitet werden:

Hinweis: Der bei der Generierung verwendete String "TODO" kann bei Bedarf über den Cs/C#-Generierungsparameter $$TodoTag beliebig geändert werden, z.B. auf "LFET-TODO".
Die Programmierung ist dieselbe wie mit dem in LF‑ET integrierten Editor, nur dass man jetzt die volle Unterstützung der gewohnten Entwicklungsumgebung nutzen kann. Im ersten Schritt passen wir den Entscheidungstabellen-Prolog an:
Der Editor hat ein Problem erkannt: Die Methode muss noch einen String als Ergebnis zurückliefern. Wir passen deshalb gleich im nächsten Schritt den Epilog an und blättern vorwärts bis zum Ende der Datei.
Der vordefinierte Entscheidungstabellen-Epilog beendet nur Namespace, Methode und Klasse…

…wir fügen am Ende der Methode noch die Rückgabe des Ergebnis-Strings hinzu, damit ist auch gleichzeitig der im Prolog erkannte Fehler behoben:
Mit Prolog und Epilog ist nun der Kontext des Regelwerks programmiert: Eine Klasse 'Compare' im Namespace 'LfetDemo' mit einer Methode 'CompareStrings' die zwei Strings als Argumente erhält und das Ergebnis des Vergleichs in Textform als String zurückliefert.
Um die Programmierung abzuschließen müssen jetzt nur noch die logischen Argumente für die beiden Bedingungen und Statements für die drei Aktionen programmiert werden. Durch Klicken auf eine der noch übrig gebliebenen 5 TODO-Marken in der Aufgabenliste können die einzelnen Source-Fragmente direkt 'angesprungen' werden:

Beginnen wir mit der ersten Bedingung B01. Die einzelnen Source-Abschnitte für jede Bedingung und Aktion sind deutlich durch horizontale Kommentar-Linien getrennt.
Der optionale Prolog für diese Bedingung ist leer, hier können, falls nötig, beliebige Statements ausgeführt werden, wie z.B. Deklaration und Initialisierung von Variablen oder Objekten, Datenbankzugriffe, Methodenaufrufe, etc.
Durch die äußeren geschweiften Klammern ist sichergestellt, dass alle Programmierungen, die hier vorgenommen werden, rein privat für diese Bedingungen sind.

Wir ersetzen 'true' und den TODO-Kommentar durch das logische Argument für die erste Bedingung: 'String 1 kleiner als String 2?'. Einen Prolog benötigen wir hier nicht, dieser bleibt einfach leer:
Weiter geht es mit der Anpassung der zweiten Bedingung B02:

Wir ersetzen wieder 'true' und den TODO-Kommentar durch das logische Argument für diese Bedingung: 'String 1 größer als String 2?'. Der Prolog wird nicht benötigt und bleibt auch hier wieder einfach leer:
Bei erweiterten Bedingungen muss für den letzten Wert (der 'Sonst-Wert') kein logisches Argument definiert werden – genau wie beim 'Nein-Wert' einer begrenzten Bedingung. Fehlt für den letzten Wert das logische Argument, dann generiert LF‑ET automatisch ein ELSE-Statement. Aus diesem Grunde werden für die letzten Werte von Bedingungen ohne Sourcecode keine Einträge im Scrapbook generiert.
Die Programmierung der einzelnen Aktionen erfolgt auf dieselbe Weise, die TODO-Kommentare werden jeweils durch passende Statements ersetzt. Insgesamt sind jetzt noch 3 TODO’s abzuarbeiten:



Damit ist die Programmierung für diese Entscheidungstabelle abgeschlossen und der Sourcecode wird gespeichert. Die geänderten Source-Fragmente müssen jetzt nur noch in die Entscheidungstabelle zurück übertragen werden.