Scrapbook bearbeiten
Wenn ein zwingend notwendiger Sourcecode in der Entscheidungstabelle leer ist, dann wird für das Scrapbook ein vordefiniertes Generat verwendet und TODO-Kommentare geben Hinweise auf durchzuführende Aktivitäten.
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. In unserem Beispiel müssen nur die logischen Argumente für die beiden Bedingungen und Statements für die drei Aktionen programmiert 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 bleibt leer. Hier können, falls nötig, beliebige Statements ausgeführt werden, wie z.B. Initialisierung von Variablen oder Objekten, Datenbankzugriffe, Methodenaufrufe, etc.
Bedingung B01 vor der Bearbeitung:
* -----------------------------------------------------------------------
*
* B01 "String 1 kleiner String 2 ?"
*
* Prolog Condition B01 ---→
* Prolog Condition B01 ←---
* Condition B01: String 1 kleiner String 2 ?
IF(
1EQ1" TODO replace 1 EQ 1 by the logical argument for B01
__).
ENDIF.
* -----------------------------------------------------------------------
Wir ersetzen '1 EQ 1' und den TODO-Kommentar durch das logische Argument für die erste Bedingung: 'String 1 kleiner als String 2?'.
Bedingung B01 nach der Bearbeitung:
* -----------------------------------------------------------------------
*
* B01 "String 1 kleiner String 2 ?"
*
* Prolog Condition B01 ---→
* Prolog Condition B01 ←---
* Condition B01: String 1 kleiner String 2 ?
IF(id_str1 < id_str2).
ENDIF.
* -----------------------------------------------------------------------
Weiter geht es mit der Anpassung der zweiten Bedingung B02:
* -----------------------------------------------------------------------
*
* B02 "String 1 größer String 2 ?"
*
* Prolog Condition B02 ---→
* Prolog Condition B02 ←---
* Condition B02: String 1 größer String 2 ?
IF(
1EQ1" TODO replace 1 EQ 1 by the logical argument for B02
__).
ENDIF.
* -----------------------------------------------------------------------
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:
* -----------------------------------------------------------------------
*
* B02 "String 1 größer String 2 ?"
*
* Prolog Condition B02 ---→
* Prolog Condition B02 ←---
* Condition B02: String 1 größer String 2 ?
IF(id_str1 > id_str2).
ENDIF.
* -----------------------------------------------------------------------
Hinweis: Bei erweiterten Bedingungen sollte für den letzten Wert (den '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:
Anpassung der ersten Aktion A01:
* -----------------------------------------------------------------------
*
* A01 "Ergebnis: String 1 ist kleiner als String 2"
*
* Action A01: Ergebnis: String 1 ist kleiner als String 2 ---→
* TODO code statement sequence for A01 here
* Action A01 ←---
* -----------------------------------------------------------------------
* -----------------------------------------------------------------------
*
* A01 "Ergebnis: String 1 ist kleiner als String 2"
*
* Action A01: Ergebnis: String 1 ist kleiner als String 2 ---→
rd_result=mc_s1_lt_s2.
* Action A01 ←---
* -----------------------------------------------------------------------
Anpassung der zweiten Aktion A02:
* -----------------------------------------------------------------------
*
* A02 "Ergebnis: String 1 ist größer als String 2"
*
* Action A02: Ergebnis: String 1 ist größer als String 2 ---→
* TODO code statement sequence for A02 here
* Action A02 ←---
* -----------------------------------------------------------------------
* -----------------------------------------------------------------------
*
* A02 "Ergebnis: String 1 ist größer als String 2"
*
* Action A02: Ergebnis: String 1 ist größer als String 2 ---→
rd_result=mc_s1_gt_s2.
* Action A02 ←---
* -----------------------------------------------------------------------
Letzte Anpassung: Aktion A03:
* -----------------------------------------------------------------------
*
* A03 "Ergebnis: String 1 ist gleich String 2"
*
* Action A03: Ergebnis: String 1 ist gleich String 2 ---→
* TODO code statement sequence for A03 here
* Action A03 ←---
* -----------------------------------------------------------------------
* -----------------------------------------------------------------------
*
* A03 "Ergebnis: String 1 ist gleich String 2"
*
* Action A03: Ergebnis: String 1 ist gleich String 2 ---→
rd_result=mc_s1_eq_s2.
* Action A03 ←---
* -----------------------------------------------------------------------
Damit ist die Programmierung für diese Entscheidungstabelle abgeschlossen.
Hier abschließend zur Übersicht das komplette Scrapbook nach der Bearbeitung:
*
* ABAP temporary * S C R A P B O O K *
* This code
* - is not an application code and must not be executed
* - is only created to enable editing of code snippets in any IDE
* - should be deleted or replaced by the generated application code
* when editing has been finished
* Generated by LF‑ET 2.1.4 (130212a), http://www.lohrfink.de/lfet
* From decision table
* "D:/Projekte/LF‑ET-Demo/ABAP/Compare.lfet"
* 18.03.2013 14:08
*
* Prolog Decision Table ---→
* Prolog Decision Table ←---
* -----------------------------------------------------------------------
IF(1EQ1).
MESSAGE’this is just a scrapbook, generated for editing purpose only'
TYPE’A'.
ENDIF.
* -----------------------------------------------------------------------
*
* B01 "String 1 kleiner String 2 ?"
*
* Prolog Condition B01 ---→
* Prolog Condition B01 ←---
* Condition B01: String 1 kleiner String 2 ?
IF(id_str1 < id_str2).
ENDIF.
* -----------------------------------------------------------------------
*
* B02 "String 1 größer String 2 ?"
*
* Prolog Condition B02 ---→
* Prolog Condition B02 ←---
* Condition B02: String 1 größer String 2 ?
IF(id_str1 > id_str2).
ENDIF.
* -----------------------------------------------------------------------
*
* A01 "Ergebnis: String 1 ist kleiner als String 2"
*
* Action A01: Ergebnis: String 1 ist kleiner als String 2 ---→
rd_result=mc_s1_lt_s2.
* Action A01 ←---
* -----------------------------------------------------------------------
*
* A02 "Ergebnis: String 1 ist größer als String 2"
*
* Action A02: Ergebnis: String 1 ist größer als String 2 ---→
rd_result=mc_s1_gt_s2.
* Action A02 ←---
* -----------------------------------------------------------------------
*
* A03 "Ergebnis: String 1 ist gleich String 2"
*
* Action A03: Ergebnis: String 1 ist gleich String 2 ---→
rd_result=mc_s1_eq_s2.
* Action A03 ←---
* -----------------------------------------------------------------------
* Trace ---→
* Trace ←---
* -----------------------------------------------------------------------
* Error ---→
* Error ←---
* -----------------------------------------------------------------------
* Epilog Decision Table ---→
* Epilog Decision Table ←---