Aktueller-Arbeitsstatus-Regel

Regeltyp - Kurzfassung

Zweck: Gilt als "bestanden", wenn für das Bezugsobjekt ein bestimmter Arbeitsstatus-Wert als "aktuell" gilt.

images/download/attachments/201665047/image-2025-3-26_10-50-1-version-1-modificationdate-1742982600960-api-v2.png

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.).

images/download/attachments/201665047/image-2025-3-26_10-51-26-version-1-modificationdate-1742982685963-api-v2.png

Ü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".

images/download/attachments/201665047/image-2025-3-26_10-53-0-version-1-modificationdate-1742982779405-api-v2.png

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:

  • Im ersten Schritt stellt eine Typprüfung für das als Eingabewert anliegende Bezugsobjekt sicher, dass eine "Entität" als Eingabewert vorliegt. Dieser Typ fasst "Entitäten" unterschiedlicher Typen zusammen, die "Arbeitsstatusbesitzer" sein können oder auch nicht.

  • Im zweiten Schritt soll festgestellt werden, ob das Bezugsobjekt über einen "Aktuellen Arbeitsstatus" verfügt. Dazu wird innerhalb einer Mit-Regel auf das Objekt-Feld currentWorkingState zugegriffen, um den Rückgabewert einer weiteren Typprüfung zu unterziehen. Getestet wird dabei auf den Typ "Arbeitsstatus-Eintrag". Dieser Typ fasst die spezifischen Typen von "Arbeitsstatus-Einträgen" für verschiedene "Arbeitsstatusbesitzer" zusammen. Die Regel wird also bestanden, wenn das ursprüngliche Bezugsobjekt im Eingabewert dem Typ nach ein "Arbeitsstatusbesitzer" ist UND bereits einen "Aktuellen Arbeitsstatus" besitzt.
    ANMERKUNG◄ Eine Objekt-Feld-Regel, die das Feld currentWorkingState auf "nicht leer" prüft, wäre weniger präzise, da das Bezugsobjekt ein Feld mit demselben Namen für einen beliebigen anderen Inhalt verwenden könnte.

  • Nachdem durch die ersten beiden Regeln sichergestellt ist, dass das Bezugsobjekt überhaupt einen "Aktuellen Arbeitsstatus" besitzt, folgt im dritten Schritt Aktueller-Arbeitsstatus-Regel, die gegen den Arbeitsstatus-Wert "Neu" prüft und das Ergebnis negiert (s. Nicht-Regel).

images/download/attachments/201665047/image-2025-3-26_10-57-58-version-1-modificationdate-1742983077710-api-v2.png

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:

  • Eingangs erfolgt eine Typprüfung, die sicherstellt, dass als Bezugsobjekt ein "Account" vorliegt.

  • Unterhalb (links in der ODER-Verknüpfung) prüft eine Aktueller-Arbeitsstatus-Regel, ob der "Aktuelle Arbeitstatus" des Accounts auf den Arbeitsstatus-Wert "Neu" verweist.

  • Unterhalb (rechts in der ODER-Verknüpfung) wird der Fall geprüft, dass der Account noch nicht gespeichert wurde. Dazu wird das Feld "Erstelldatum" (created) einem Ist leer-Vergleich unterzogen. Da das "Erstelldatum" beim Speichern einer Entität automatisch gesetzt wird, ist das Feld im Regelfall bis zum "Erstellen" des Accounts (per "Speichern") leer. Alternativ könnte man auch das Feld currentWorkingState per Ist leer prüfen, da nach dem erstmaligen Speichern eines Accounts ebenfalls automatisch ein "Aktueller Arbeitsstatus" zugeordnet wird.

images/download/attachments/201665047/image-2025-3-26_11-1-7-version-1-modificationdate-1742983266229-api-v2.png