Arbeitsstatus propagieren
Ereignisaktion - Kurzfassung
Zweck: Versucht den einem Manifest gerade hinzugefügten Arbeitsstatus auch den als Manifestpositionen enthaltenen Sendungen hinzuzufügen.
Die Ereignisaktion Arbeitsstatus propagieren dient dazu, den einem Geschäftstransaktionsobjekt vom Typ "Manifest" (s. Manifeste) gerade hinzugefügten Arbeitsstatus auch den als Manifestpositionen enthaltenen Sendungen hinzuzufügen.
►WICHTIG◄ Die "Propagation" funktioniert nur innerhalb einer Ereignisbehandlung, die durch das entsprechende Arbeitsstatus-Ereignis (s. Arbeitsstatus (Ereignisse)) ausgelöst wird. Sofern dieselbe Ereignisbehandlung unterschiedliche Arbeitsstatus propagieren soll, müssen die entsprechenden Ereignisse explizit als Auslöser konfiguriert sein. Es gibt allerdings keine Möglichkeit pauschal "alle" Arbeitsstatus über die Ereignisaktion Arbeitsstatus propagieren an die Sendungen eines Manifests weiterzugeben.
ACHTUNG
Innerhalb eines Arbeitsstatus-Ereignisses (s. Arbeitsstatus (Ereignisse)) ist der gerade hinzugefügte Arbeitsstatus zwar schon im Feld "Aktueller Arbeitsstatus" (currentWorkingstate) des Bezugsobjekts gesetzt. Allerdings wird dieser Eintrag nur gespeichert, wenn die Transaktion erfolgreich abgeschlossen wird. Das Auftreten eines Fehlers oder Ausführen einer Abbrechen bewirkt dagegen einen Rollback. Scheitert die "Propagation" des Arbeitsstatus, weil dieser mindestens einer der im Manifest enthaltenen Sendungen aufgrund von Restriktionen aus anwendbaren Arbeitsstatus-Transformationen nicht hinzugefügt werden kann, scheitert also auch der Arbeitsstatuswechsel für das Manifest und alle anderen enthaltenen Sendungen.
ACHTUNG
Soweit die Ereignisaktion Arbeitsstatus propagieren im Zuge der Propagation lesend oder schreibend auf Sendungen bzw. deren Arbeitsstatus-Einträge zugreifen muss, geschieht dies ohne jegliche Rücksicht auf Berechtigungen bzw. Zugriffsbeschränkungen.
Konfiguration
Die Ereignisaktion kann nur mit einem Manifest (s. Manifeste) als Bezugsobjekt sinnvoll eingesetzt werden. Die Propagation des Arbeitsstatus funktioniert nur mit einem Arbeitsstatus-Ereignis (s. Arbeitsstatus (Ereignisse)) als Auslöser (s. o.).
|
|
Der Parameter Grund sieht per Standard die Direkteingabe (links im Screenshot) eines statischen Texts vor, der im Zuge der Propagation dem Feld "Grund" (reason) im Arbeitsstatus-Objekt erscheint, wenn dieser einer Sendung zugeordnet wird.
Alternativ kann per Klick auf den grauen Pfeil links unten ein Wertauflöser definiert werden, um einen Textwert für dasselbe Feld dynamisch zuzuweisen. Das Beispiel rechts im Screenshot (oben) zeigt, wie über einen Objekt-Feld-Wertauflöser der "Grund" aus dem "Aktuellen Arbeitsstatus" des Manifests (Feld currentWorkingstate.reason) für alle Sendungen übernommen werden kann. Der "Grund" wird nicht automatisch propagiert, wenn kein Text angegeben oder kein Wertauflöser konfiguriert wird!
►HINWEIS◄ Das Arbeitsstatus-Objekt enthält neben dem "Grund" (reason) auch das Feld "Realisierungszeit" (realization), das den Zeitpunkt angeben soll, zu dem der Arbeitsstatus wirksam wurde. Im Zuge der Propagation wird diesem - analog zum interaktiven Hinzufügen eines Arbeitsstatus per Ribbon - automatisch die aktuelle Systemzeit zugewiesen. Die wahlfreie Zuordnung einer Zeitangabe ist hier nicht vorgesehen.
Beispiel
Bei ausgewählten Arbeitsstatus-Wechseln für Manifeste ("Freigegeben", "In Zustellung", "Storniert") soll der hinzugefügte Arbeitsstatus an alle enthaltenen Sendungen propagiert werden, sofern mindestens eine Sendung darunter ist, deren aktueller Arbeitsstatus vom hinzugefügten abweicht.
Als Hinweis auf den "Verursacher" der Statusänderung soll für die im Zuge der Propagation erstellten Arbeitsstatus (für Sendungen) der Name der Rolle aus dem Kontext der Sitzung im Feld "Grund" eingetragen werden.
Konfiguration:
Als Auslösenede Ereignisse werden die gewünschten Arbeitsstatus (Ereignisse) zugeordnet. Die Prüfende Regel stellt per Typprüfung sicher, dass als Bezugsobjekt ein Manifest anliegt. Die Aktionen bei bestandener Regel werden wie rechts gezeigt konfiguriert:
|
|
Die Regel in der Wenn Dann Sonst-Ereignisaktion wird wie rechts abgebildet konfiguriert:
►ANMERKUNG◄ Ein "Sonst"-Zweig wird nicht benötigt, da nichts zu tun ist, falls der Arbeitsstatus aller enthaltenen Sendungen bereits mit dem Arbeitsstatus übereinstimmt, der dem Manifest gerade hinzugefügt wurde. Sofern die Propagation ausgeführt wird, wird der betreffende Arbeitsstatus (inkl. "Grund") allerdings auch den Sendungen erneut zugewiesen, deren workingState schon vorher mit dem Manifest übereinstimmte. |
|