Aktueller-Arbeitsstatus-Regel
Regeltyp - Kurzfassung
Zweck: Gilt als "bestanden", wenn für das Bezugsobjekt ein bestimmter Arbeitsstatus-Wert als "aktuell" gilt.
Die Aktueller-Arbeitsstatus-Regel gilt als "bestanden" wenn der in der Konfiguration statisch ausgewählte Arbeitsstatus mit dem aktuellen Arbeitsstatus des Bezugsobjekts für die Regel übereinstimmt.
Als Bezugsobjekt kommen nur Entitäten in Frage, deren Typ als "Arbeitsstatusbesitzer" qualifiziert ist. Das betrifft alle Geschäftstransaktionsobjekte (Allgemeines Geschäftsobjekt, Bestellungen, Manifeste, Sendungen und Zeitfensterbuchungen) und Eigene Typdefinitionen mit der Erweiterung Arbeitsstatusbesitzer.
In den Kopfdaten des Bezugsobjekts untersucht die Regel das Feld "Aktueller Arbeitsstatus" (currentWorkingState). Dieses Feld verweist auf den als aktuell eingestuften Eintrag der Arbeitsstatus-Historie der Entität, sofern diese nicht noch komplett leer ist, weil die Entität noch nie gespeichert wurde.
►HINWEIS◄ Als aktueller Arbeitsstatus gilt immer der zuletzt hinzugefügte Arbeitsstatus-Eintrag. Zeitangaben im Feld "Realisierungszeit" (realization) des Arbeitsstatus-Eintrags haben darauf keinen Einfluss.
Innerhalb der Daten für den "Aktuellen Arbeitsstatus"-Eintrag (currentWorkingState) verweist das Feld "Arbeitsstatus" (workingState) auf einen Wert aus der Dynamischen Aufzählung Arbeitsstatus. Diesen Wert vergleicht die Regel mit der Auswahl in der Konfiguration.
Die Aktueller-Arbeitsstatus-Regel gilt als "nicht bestanden", wenn mindestens eine der folgenden Bedingungen zutrifft:
Es existiert kein Bezugsobjekt.
Das Bezugsobjekt kann keinen "Arbeitsstatus" besitzen.
Dem Bezugsobjekt wurde noch kein "Aktueller Arbeitsstatus" zugewiesen.
Der "Aktuelle Arbeitsstatus" (currentWorkingState) des Bezugsobjekts verweist auf einen "Arbeitsstatus" (workingState), der nicht mit dem in der Konfiguration der Regel spezifizierten Arbeitsstatus übereinstimmt.
Konfiguration
Die Aktueller-Arbeitsstatus-Regel erwartet ein Bezugsobjekt eines Typs der als "Arbeitsstatusbesitzer" qualifiziert ist (s. o.).
Über das Auswahlfeld/Combobox für den einzigen Parameter der Konfiguration kann per Einfachauswahl ein Arbeitsstatus aus der betreffenden Dynamischen Aufzählung ausgewählt werden.
Wie im Bild gezeigt, berücksichtigt die integrierte Suchfunktion bei Texteingabe sowohl den internen Namen (name) der Dynamischen Aufzählungswerte als auch die im Kontext der Sitzung anwendbare Lokalisierung.
Wird kein Arbeitsstatus ausgewählt gilt die Regel immer als nicht bestanden. Sie würde nur dann zutreffen, falls das Feld workingState im aktuellen Arbeitsstatus vorhanden aber leer wäre. Da jeder Arbeitsstatus-Wert durch einen Namen gekennzeichnet sein muss, ist dieser Fall für eine Entität mit regulären Daten ausgeschlossen.
►ANMERKUNG◄ Eine Mehrfachauswahl wird nicht unterstützt. Bei Bedarf müssen daher mehrere Instanzen der Aktueller-Arbeitsstatus-Regel in einer ODER-Verknüpfung zusammengefasst werden (s. Beispiel).
►WICHTIG◄ Falls im Kontext einer Sitzung Dynamische Aufzählungsfilter für die Arbeitsstatus-Aufzählung anwendbar sind, schränken diese auch die Auswahl von Arbeitsstatus im Zuge der Konfiguration ein. Für die Auswertung der Aktueller-Arbeitsstatus-Regel zur Laufzeit haben Dynamische Aufzählungsfilter dagegen keinen Einfluss.
Beispiel
Einfaches Beispiel
Ein Zuordnungskriterium soll zutreffen, wenn im Datenkontext eine Entität als Eingabewert vorliegt, deren aktueller Arbeitsstatus "Abgeschlossen" oder "Storniert" ist.
Konfiguration:
Da die Aktueller-Arbeitsstatus-Regel die Auswahl für nur genau einen Arbeitsstatus vorsieht, muss sie zwei Mal konfiguriert werden, um die Anforderung mit zwei akzeptierten Statuswerten abzudecken. Die zweite Instanz der Regel kann nach einem Klick auf das "OR"-Symbol am rechten Rand der bestehenden Regel hinzugefügt werden. ►HINWEIS◄ In dieser Konfiguration ist eine Typprüfung technisch nicht erforderlich. Falls als Eingabewert kein "Attributbesitzer" vorliegt wird die Regel ganz einfach "nicht bestanden". |
|
Komplexeres Beispiel
Ein Zuordnungskriterium soll zutreffen, wenn im Datenkontext eine Entität als Eingabewert vorliegt, für die ein anderer "Aktueller Arbeitsstatus" als "Neu" gilt.
Konfiguration:
Die beschriebene Anforderung kann nicht präzise abgedeckt werden, indem man analog zum obigen Beispiel eine Aktueller-Arbeitsstatus-Regel mit dem Arbeitsstatus "Neu" konfiguriert und diese Regel einfach negiert (s. Nicht-Regel).
Warum? Die vereinfachte Regel ("Aktueller Arbeitsstatus ist nicht 'Neu'") wäre auch dann erfüllt, wenn es sich beim Eingabewert überhaupt nicht um eine Entität handelt, oder eine Entität als Eingabewert anliegt, die nicht (oder noch nicht) über einen "Aktuellen Arbeitsstatus" verfügt. Gemäß der Anforderung sollte in diesen Fällen die Regel aber als "nicht bestanden" gelten. Dies kann nur durch eine etwas aufwändigere Konfiguration erreicht werden.
Das rechts abgebildete Zuordnungskriterium erreicht durch eine UND-Verknüpfung von drei Regeln, die in der Anforderung beschriebene Logik:
|
|
Besonderer Anwendungsfall
Für eine angelegte Entität eines Typs, der als "Arbeitsstatusbesitzer" gilt, wird der "Aktuelle Arbeitsstatus" - per Standard "Neu" (NEW) oder, abhängig von anwendbaren Arbeitsstatus-Transformationen, ein abweichender Standard-Arbeitsstatus) - erstmalig beim "Erstellen" (s. Allgemein (Ereignisse)) zugewiesen. Oft sollen für eine neu angelegte Entität bereits vor dem "Speichern" dieselben Regeln bzw. Zuordnungen gelten, wie für eine Entität mit dem initialen "Aktuellen Arbeitsstatus" (z. B. "Neu"). Dies muss wie im folgenden Beispiel explizit geregelt werden.
Bestimmte Ribbon-Buttons in einer Erfassungsmaske für eine Eigene Entität (s. Eigene Typdefinitionen) "Account" sollen nur angezeigt werden, solange die Maske die Daten eines "neuen" Accounts anzeigt. Ein Account soll als "neu" betrachtet werden, solange der Arbeitsstatus "Neu" aktuell ist ODER wenn der Account noch nicht gespeichert wurde.
Konfiguration:
Die rechts abgebildete Konfiguration für ein Zuordnungskriterium zeigt eine Regel, die einen "neuen" Account qualifiziert:
|
|