Inhaltsverzeichnis

Moduliteration

Was ist eine Moduliteration?

Die Moduliteration ist eine Erweiterung des normalen Entscheidungstabellen-Umfangs. Sie ist nicht zu verwechseln mit der Pseudocode-Iteration:

Pro Modul kann eine Moduliteration definiert werden. Geschachtelte Moduliterationen sind nicht möglich.

Wenn ein Modul eine Moduliteration enthält, wird diese zuoberst in der Entscheidungstabelle angezeigt (in der Gesamtabbildung )gelb unterlegter Bereich , und die Schleifen-Spalte (in der Gesamtabbildung grün umrandeter Bereich) wird bei Bedingungen und Aktionen hinzugefügt. Abb. 1: Moduliteration

Moduliteration einfügen

Um eine Moduliteration einzufügen,

Pro Modul ist nur eine Moduliteration möglich, da die Komplexität bei geschachtelten Iterationen zu groß werden würde.

Standardmäßig benennt KnowlEdge Moduliterationen mit dem Namen „Schleife-1“. Sie können diesen Namen in der Titel-Spalte anpassen.

Der Name der Iteration steht auch als Überschrift über der Schleifenspalte bei Bedingungen und Aktionen.

Moduliteration bearbeiten

Moduliterationen werden immer in Pseudocode formuliert, d.h. die Bearbeitung erfolgt immer im Pseudocode-Editor.

Der Iterationscode kann, ebenso wie bei Bedingungen, auf drei Code-Blöcke verteilt werden, einen vorbereitenden Block O, den eigentlichen Schleifenblock P, und einen nachbereitenden Block C .

Vorbereitung und Nachbereigung (O- und C-Block)

Der Vorbereitende Bedingungsteil wird vor Beginn der Schleife einmalig ausgeführt.

Der Nachbereitende Bedingungsteile wird nach Ende der Schleife einmalig ausgeführt.

Für den Code inVorbereitung(O-Block) und Nachbereitung (C-Block) gilt dasselbe wie bei Bedingungen.

Schleifenbedingung (P-Block)

Der P-Block der Moduliteration muss eine gültige Schleifenbedingung enthalten. Anderer Code (wie Wertzuweisungen oder IF-Abfragen) ist dort nicht erlaubt.

In dem Pseudocode des P-Blocks entfällt der im Pseudocode sonst übliche Schleifen-Befehl (DO… END DO); die Schleifenbedingung steht allein. Auch CASE-Anweisungen sind hier nicht möglich.

Ausführung der Moduliteration

Der Ablauf der Auswertung bei einen Modul mit Moduliteration ist wie folgt:

  1. Es wird einmalig der vorbereitende Codeblock der Iteration ausgeführt.
  2. Es wird für jeden Iterationsdurchlauf die Schleifenbedingung geprüft und abhängig von dem Ergenbis, die Schleife beendet oder die Entscheidungstabelle ausgewertet.
  3. Es wird einmalig der nachbereitende Codeblock der Iteration ausgeführt.

Beispiel:

Beachten Sie in diesem Beispiel, dass das Nachlesen des Objekts nicht im C-Block stattfindet, sondern in der letzten Aktion! Ein Nachlesen Im C-Block der Schleife hätte zur Folge, dass die Iteration als Endlosschleife ausgeführt werden würde!

In einer Aktion kann das vorzeitige Verlassen der Schleife („QUIT“) oder der vorzeitige Sprung zum Beginn des nächsten Schleifendurchlaufs („SKIP“) veranlasst werden.

Optionen für Bedingungen

Wenn das aktuell bearbeitete Modul eine Moduliteration enthält, kann pro Bedingung angegeben werden, wie oft die Bedingung innerhalb der Moduliteration ausgewertet werden soll.

Wenn Sie auf die Schleifenspalte doppelklicken, wird ein Dialog angezeigt, in dem Sie die Einstellung für die betreffende Bedingung anpassen können:

Abb. 2: Iterations-Optionen für Bedingungen

Sie erreichen diesen Dialog auch über Kontextmenü oder Menü Komponenten→Bedingungen→Bedingungsauswertung in der Iteration anpassen.

Die aktuelle Einstellung ist in der Schleifenspalte ablesbar:

Wenn der Cursor über der Schleifenspalte steht, wird ein Tooltip angezeigt, in dem die Einstellung für die aktuelle Bedingung beschrieben ist. Über dem Spaltenkopf wird eine Zusammenfassung der möglichen Angaben angezeigt.

Optionen für Aktionen

Wenn das aktuell bearbeitete Modul eine Moduliteration enthält, kann pro Aktion angegeben werden, für welche Schleifendurchläufe die Aktion ausführt werden soll.

Die aktuelle Einstellung ist in der Schleifenspalte ablesbar, dargestellt durch Schritte, wobei der linke für den ersten, der rechte für den letzten, und der mittlere für einen von mehrfachen Schleifendurchläufen steht:

Die obenstehende Abbildung steht somit für „Wenn die Aktion genau einmal zutrifft, oder wenn die Aktion mehrmals zutrifft, wobei das Ergebnis des letzten Durchlaufs nicht verwendet werden soll“.

Da die Interpretation der Schritt-Symbole dennoch mühsam ist, wird die Bedeutung zusätzlich in einem Tooltip zu der Spalte erklärt, und zwar allgemein über der Spaltenüberschrift, spezifisch für die Aktion in der entsprechenden Zeile.

Wann und wie oft soll die Aktion ausgeführt werden?

Wenn Sie auf die Schleifenspalte doppelklicken, wird ein Dialog angezeigt, in dem Sie die Einstellung für die betreffende Aktion anpassen können: Abb. 3: Iterations-Optionen für Aktionen

Sie erreichen diesen Dialog auch über Kontextmenü oder Menü Komponenten→Aktionen→Aktionsverwendung in der Iteration anpassen.

Im oberen Teil des Dialogs geben Sie an, ob die Aktion jedesmal ausgeführt werden soll, wenn die Regeln der Entscheidungstabelle dafür zutreffen, oder nur in bestimmten Fällen.

Der Default ist: wenn die Regeln mehrmals zutreffen, und dann bei jedem Treffer, sowie wenn die Regeln genau einmal zutreffen. Diese Angabe bewirkt, dass die Aktion jedesmal, wenn die Regeln zutreffen, auch ausgeführt wird.

Für Pseudocode-Aktionen gibt es nur zwei Möglichkeiten: sie werden entweder immer ausgeführt, oder nur beim ersten bzw. einzigen Mal. Alle anderen Einstellungen sind aus technischen Gründen nicht machbar.

Für Bausteinaufruf-Aktionen gibt es sehr viel mehr Möglichkeiten, die sich teilweise kombinieren lassen; hier ein Überblick über die vermutlich wichtigsten:

Wenn Sie möchten, dass die Aktion … …, dann kreuzen Sie an:
…mehrmals ausgeführt wird, und zwar:
immer, wenn die Regeln zutreffen - mehrmals zutreffen, … und dann… alle Ergebnisse verwenden
- genau einmal zutreffen
nur, wenn die Regeln mehrmals zutreffen (also nicht, wenn die Regeln nur einmal zutreffen) - mehrmals zutreffen… und dann… alle Ergebnisse verwenden
beim ersten und beim letzten Mal - mehrmals zutreffen, und dann… nur beim ersten Treffer , nur beim letzten Treffer
immer außer beim letzten Mal - mehrmals zutreffen, und dann… alle Ergebnisse verwenden, Ergebnis vom letzten Durchlauf nicht verwenden
…nur einmalig ausgeführt wird, und zwar:
beim ersten Mal, wenn die Regeln zutreffen, egal ob die Regeln einmal oder mehrmals zutreffen - mehrmals zutreffen, und dann… - nur beim ersten Treffer - genau einmal zutreffen
nur, wenn die Regeln genau ein einziges Mal zutreffen - genau einmal zutreffen
nur, wenn die Regeln mehrmals zutreffen, aber dann nur beim ersten Mal (z.B. Ausgabe einer Kopfzeile) - mehrmals zutreffen, und dann… - nur beim ersten Treffer
nur, wenn die Regeln mehrmals zutreffen, aber dann nur beim letzten Mal (z.B. Ausgabe einer Summenzeile) - mehrmals zutreffen, und dann… - nur beim letzten Treffer
beim letzten Mal, wenn die Regeln zutreffen, oder beim einzigen Mal, wenn sie nur einmal zutreffen - mehrmals zutreffen, und dann… - nur beim letzten Treffer - genau einmal zutreffen

Aktionsergebnisse zusammenhalten

(nur für Aufruf-Aktionen) Normalerweise werden Schriftstücke in der Reihenfolge aneinandergefügt, wie die Aktionen ausgeführt werden. Wenn Sie also in einer Entscheidungstabelle 3 Aktionen haben, die Textbausteine aufrufen, und diese drei Aktionen werden je drei mal ausgeführt, so sieht das Ergebnis so aus:

  Text von Aktion 1
  Text von Aktion 2
  Text von Aktion 3
  Text von Aktion 1
  Text von Aktion 2
  Text von Aktion 3
  Text von Aktion 1
  Text von Aktion 2
  Text von Aktion 3

Sie haben aber auch die Möglichkeit, die Textausgaben einer Aktion zusammen ausgeben zu lassen. Die Texte aus einer Aktion werden dann alle an der Stelle im Dokument ausgegeben, wo der erste Text der Aktion eingefügt wurde. Wenn also in dem obigen Beispiel die Textausgaben von Aktion 2 zusammengehalten werden sollen, die von Aktion 1 und 3 aber nicht, so sähe das Ergebnis so aus:

  Text von Aktion 1
  Text von Aktion 2
  Text von Aktion 2
  Text von Aktion 2
  Text von Aktion 3
  Text von Aktion 1
  Text von Aktion 3
  Text von Aktion 1
  Text von Aktion 3

Für jede Aktion, deren Ergebnisse zusammengehalten werden sollen, kreuzen Sie an: Aktionsergebnisse zusammenhalten.1)

Im Aktions-Knopf in der Entscheidungstabelle erkennen Sie Aktionen, deren Ergebnisse zusammengehalten werden, an der Büroklammer über dem Symbol.

Nach der Aktion: Weitermachen, abbrechen oder nächsten Durchlauf beginnen

Schleifen werden erfahrungsgemäß nicht immer bis zum Ende ausgeführt, sondern es kann vorkommen, dass die Verarbeitung vorzeitig abgebrochen werden soll. Es kommt auch vor, dass unter bestimmten Umständen die restliche Verarbeitung eines Schleifendurchlaufs entfallen soll und der nächste Schleifendurchlauf sofort beginnen soll. Diese Möglichkeiten bestehen auch in der Moduliteration.

Hier werden Abbruch und Sprung zum nächsten Schleifendurchlauf als Bestandteil einer Aktion definiert.

Öffnen Sie dafür den Dialog zur Definition der Aktionsausführung in der Schleife.

Im unteren Bereich finden Sie die Möglichkeiten zum Verlassen der Schleife:

Wenn für eine Aktion Quit oder Skip angegeben ist, werden zuerst die Anweisungen der Aktion ausgeführt (Pseudocode oder Bausteinaufruf), anschließend erfolgt dann der Abbruch oder der Sprung zum nächsten Schleifendurchlauf. Wenn Sie einen Abbruch oder Aussprung veranlassen möchten, ohne dass in der Aktion andere Anweisungen ausgeführt werden, fügen Sie eine leere Pseudocode-Aktion ein.

1)
Diese Angabe ist nur für Bausteinaufruf-Aktionen möglich, die bei jedem Treffer ausgeführt werden sollen.