Zum Inhalt

Verzweigte Bedingungen

Entweder-oder-Logik

Verzweigte Bedingungen erweitern das einfache Bedingungsprinzip einer Regel um eine Entweder-oder-Logik: Eine Regelanweisung wird nicht nur dann ausgeführt, wenn eine Bedingung zutrifft, sondern kann gezielt für den Fall konfiguriert werden, dass eine vorangegangene Bedingung nicht zutrifft. Zusätzlich wird über Steuerfelder entschieden, ob die Auswertung nach einer ausgeführten Anweisung abbricht oder weiterläuft.

Wo konfiguriere ich das in der Software?

PARAMETER - (Auswahl des Regel-Bereichs) - REGELN - NEU / ÄNDERN - Gruppe: "Bedingungen (Wenn)" - (Kennzeichen "Immer ausführen" deaktivieren) - Regelanweisung - Über eine verzweigte Formel definieren (Vergleichswert wird in Regelanweisung definiert)

Mit dem Entfernen des "Immer ausführen"-Kennzeichens stehen die Kennzeichen für die Definierung einer Formel zur Verfügung.

Grundprinzip der Verzweigung

Wenn-Sonst-Struktur innerhalb einer Regel

Eine Regel besteht aus einer oder mehreren Regelanweisungen. Jede Anweisung kann eine eigene Bedingung tragen, die entscheidet, ob sie ausgeführt wird. Beim einfachen Modell werden alle Anweisungen unabhängig voneinander geprüft.

Mit verzweigten Bedingungen entsteht eine abhängige Prüfkette: Eine Anweisung wird explizit als Alternative zu einer vorherigen Anweisung markiert. Dies ermöglicht klassische Wenn-Sonst-Strukturen innerhalb einer einzigen Regel.

Der Vergleichswert für verzweigte Bedingungen

Das Feld Vergleichswert für verzweigte Bedingung verknüpft eine Anweisung mit dem Ergebnis einer vorherigen Anweisung in derselben Regel. Es enthält die Nummer (Position) der Anweisung, auf deren Ausführungsergebnis reagiert werden soll.

Feldinhalt Wirkung
Feld ist leer Die Anweisung hat keine Verzweigung — ihre eigene Bedingung gilt unabhängig
Feld enthält eine Positionsnummer Die Anweisung wird nur dann geprüft, wenn die referenzierte Anweisung nicht ausgeführt wurde

Typischer Einsatz

Sie hinterlegen in Anweisung 2 den Vergleichswert 1. Anweisung 2 wird damit zum "Sonst-Zweig" von Anweisung 1: Sie greift genau dann, wenn Anweisung 1 aufgrund ihrer Bedingung übersprungen wurde.

Beachten Sie

Reihenfolge beachten:

Die Positionsnummer der referenzierten Anweisung muss kleiner als die eigene sein. Eine Vorwärts-Referenz auf eine noch nicht ausgewertete Anweisung ist nicht möglich.

Steuerfelder für den Auswertefluss

Neben dem Vergleichswert gibt es zwei Steuerfelder, die den weiteren Ablauf der Regelauswertung beeinflussen. Beide sind standardmäßig deaktiviert.

Keine weiteren Regelanweisungen auswerten

Ist dieses Kennzeichen an einer Anweisung aktiviert, wird die Auswertung der verbleibenden Anweisungen dieser Regel sofort gestoppt, sobald die aktuelle Anweisung ausgeführt wurde.

Status Wirkung
Inaktiv (Standard) Alle nachfolgenden Anweisungen werden weiterhin geprüft
Aktiv Nach Ausführung dieser Anweisung werden keine weiteren Anweisungen der Regel mehr ausgewertet

Abgrenzung zum nächsten Steuerfeld

Dieses Kennzeichen wirkt nur innerhalb der aktuellen Regel. Weitere Regeln für dieselbe Auswertungsposition werden weiterhin ausgeführt.

Keine weiteren Regeln auswerten

Ist dieses Kennzeichen aktiviert, wird die gesamte Regelauswertung für die aktuelle Auswertungsposition gestoppt — also auch alle nachfolgenden Regeln, nicht nur die verbleibenden Anweisungen der aktuellen Regel.

Status Wirkung
Inaktiv (Standard) Alle weiteren Regeln für diese Auswertungsposition werden geprüft
Aktiv Nach Ausführung dieser Anweisung werden keine weiteren Regeln für diese Auswertungsposition mehr ausgewertet

Beachten Sie

Weitreichende Wirkung: Dieses Kennzeichen stoppt sämtliche nachgelagerten Regeln. Setzen Sie es nur, wenn sicher ist, dass keine andere Regel für diese Auswertungsposition greifen soll.

Nur ausführen, wenn zuvor keine Regelanweisung ausgeführt wurde

Dieses Kennzeichen wirkt als globaler Else-Zweig über alle Anweisungen und Regeln: Die Anweisung wird nur dann ausgeführt, wenn in der gesamten bisherigen Auswertung dieser Auswertungsposition noch keine Anweisung ausgeführt wurde.

Status Wirkung
Inaktiv (Standard) Die eigene Bedingung der Anweisung entscheidet unabhängig über die Ausführung
Aktiv Die Anweisung wird nur ausgeführt, wenn zuvor keine einzige Regelanweisung in dieser Auswertungsrunde aktiv wurde

Einsatz als Fallback

Dieses Kennzeichen eignet sich für eine Auffang-Anweisung, die immer dann greift, wenn keine der spezifischeren Regeln eine Aktion ausgelöst hat — vergleichbar mit einem ELSE-Zweig am Ende einer Fallunterscheidungskette.

Beispiel mit zwei Anweisungen (Theorie)

  • Anweisung 1: WENN Bedingung A zutrifft → Aktion 1
  • Anweisung 2: SONST (wenn A nicht zutraf) → Aktion 2

Beispiel mit zwei Anweisungen (Praxis)

In diesem Beispiel wird eine verzweigte Formel für die Auswertungsposition "Während der Erfassung" definiert.

  • In das Feld "Formel für die Verzweigung" wird «Adr.Status» eingetragen.
  • Die Formel besitzt zwei Anweisungen: "Kunde" und "Lieferant".
  • Als Vergleichswert wird jeweils in den Regelanweisungs-Datensätzen in einfachen Hochkommata die Bezeichnung Kunde bzw. Lieferant eingetragen.
Anweisung "Kunde" Anweisung "Lieferant"
Anweisungsart Feldzuweisungen Feldzuweisungen
Vergleichswert ='Kunde' ='Lieferant'
TextKz1 true false
TextKz2 false true
TextKz3 false false
TextKz4 false false
TextKz5 false false

Die Funktion steuert die Artikelart-Kennzeichen in der Adresse, was in den Vorgang eingeladen wird. Handelt es sich bei der Adressart um einen Kunden, setzt die Regel automatisch das Kennzeichen für Kunde, handelt es sich um einen Lieferanten, wird dieses Textkennzeichen gesetzt.

Beachten Sie

Verzweigte Bedingungen sind kein eigenständiger Regeltyp:

Verzweigte Bedingungen sind keine separate Regelkategorie. Sie sind ein Konfigurationsmerkmal einzelner Regelanweisungen innerhalb einer normalen Regel.

Zusammenspiel der Steuerfelder

Erweitertes Beispiel (mit 2 Regeln)

Die drei Mechanismen lassen sich kombinieren, um komplexe Entscheidungsstrukturen abzubilden:

Regel 1, Anweisung 1:  WENN Kundenstatus = "A"  → Rabatt 10 %
                       [Keine weiteren Regelanweisungen auswerten: aktiv]

Regel 1, Anweisung 2:  WENN Kundenstatus = "B"  → Rabatt 5 %
                       [Keine weiteren Regelanweisungen auswerten: aktiv]

Regel 2, Anweisung 1:  [Nur wenn zuvor keine Anweisung ausgeführt wurde]
                       → Standardrabatt 0 %

In diesem Beispiel liefert immer genau eine Anweisung ein Ergebnis: Entweder greift Anweisung 1 oder Anweisung 2 aus Regel 1, oder — falls keiner der Status zutraf — der Fallback in Regel 2.

Beachten Sie

Auswertungsreihenfolge:

Die Reihenfolge der Anweisungen innerhalb einer Regel sowie die Reihenfolge der Regeln für eine Auswertungsposition sind entscheidend. Planen Sie die Reihenfolge bewusst, bevor Sie Steuerfelder setzen.

Abgrenzung zur einfachen Bedingung

Merkmal Einfache Bedingung Verzweigte Bedingung
Abhängigkeit von anderer Anweisung Nein Ja (über Vergleichswert)
Stoppt weitere Auswertung Nein Optional (Steuerfelder)
Geeignet für Wenn-Sonst-Logik Begrenzt Ja
Konfigurationsaufwand Gering Mittel

Weiterführende Informationen