Trackingstatus hinzufügen
Ereignisaktion - Kurzfassung
Zweck: Legt einen neuen Trackingstatus-Eintrag an, der der Trackingstatus-Historie eines Bezugsobjekts (Geschäftstransaktionsobjekt oder Position) hinzugefügt werden soll. Der neue Eintrag wird in einer Variablen gespeichert, so dass er durch nachfolgende Ereignisaktionen bearbeitet werden kann.
#
Die Ereignisaktion Trackingstatus hinzufügen legt einen neuen Trackingstatus-Eintrag (baseTS:TrackingStatusEntry) an, der der Trackingstatus-Historie eines Bezugsobjekts hinzugefügt werden soll.
Als Bezugsobjekt zum Hinzufügen von Trackingstatus-Einträgen eignen sich Geschäftstransaktionsobjekte und teilweise auch deren Positionen gemäß folgender Übersicht:
Geschäftstransaktionsobjekt |
Trackingstatus |
Trackingstatus |
|
|
|
|
|
|
|
|
|
|
|
|
Zeitfensterbuchung |
|
|
►HINWEISE◄
Ist das Bezugsobjekt eine Position eines Geschäftstransaktionsobjekts, sind die Einschränkungen in Abschnitt "Hinzufügen von Trackingstatus zu Positionen eines Geschäftstransaktionsobjekts" (s. unten) zu beachten.
Sofern das Hinzufügen des Trackingstatus-Eintrags erfolgreich abgeschlossen werden kann UND dies die Änderung mindestens eines Trackingstatus-Attributs des Bezugsobjekts bedingt (s. Schritt 3 im folgenden Abschnitt bzw. Erläuterungen für Trackingstatus-Übergänge), wird das Bezugsobjekt beim Abschluss der Transaktion gespeichert. Dabei werden auch alle Änderungen berücksichtigt, die bis zum Abschluss der Transaktion an den Daten des Bezugsobjekts vorgenommen werden - unabhängig davon ob diese vor oder nach dem Aufruf von Trackingstatus hinzufügen stattfinden.
►HINWEIS◄ Ist das Bezugsobjekt eine Position eines Geschäftstransaktionsobjekts, wird beim Aktualisieren mindestens eine Trackingstatus-Attributs der Position auch das Geschäftstransaktionsobjekt insgesamt zum Speichern am Ende der Transaktion vorgemerkt. Falls eine entsprechende Ereignisbehandlung ausgelöst wird, während das Geschäftstransaktionsobjekt innerhalb derselben Sitzung in einer Erfassungsmaske geöffnet ist, können dadurch ungespeicherte Änderungen verloren gehen.Für die Auswertung von Zuordnungskriterien für Trackingstatus-Workflows gibt der ggf. veränderte volatile Datenstand des Bezugsobjekts zum Aufrufzeitpunkt der Ereignisaktion Trackingstatus hinzufügen den Ausschlag. Ungespeicherte Änderungen am Bezugsobjekt, die vor Trackingstatus hinzufügen vorgenommen werden, können ggf. die "Zuordnung" von Trackingstatus-Workflows beeinflussen. Das kann entscheidend dafür sein, ob der gewünschte Trackingstatus-Eintrag hinzugefügt und die Transaktion abgeschlossen werden kann.
Abläufe beim Hinzufügen eines Trackingstatus-Eintrags
Schritt 1: Neuen Trackingstatus-Eintrag anlegen und ggf. initialisieren |
Eine neue Instanz für einen Trackingstatus-Eintrag (baseTS:TrackingStatusEntry) angelegt.
►WICHTIG◄ Wird auf die Auswahl eines Trackingstatus in der Konfiguration verzichtet, dann muss diesem Feld im folgenden Abschnitt TS mit <Entitätstyp> anpassen über Ereignisaktionen ein Trackingstatus zugewiesen werden, sonst tritt ein Fehler mit Rollback ("Kein Trackingstatus vorhanden") auf. ►HINWEIS◄ Derselbe Fehler tritt auf, falls der hinzuzufügende Trackingstatus im betreffenden System nicht existiert, z. B. weil die betreffenden Stammdaten gelöscht wurden, nachdem die Ereignisaktion konfiguriert wurde. |
Schritt 2: Trackingstatus-Eintrag anpassen (optional) |
Unterhalb der Konfigurationsparameter ist ein Block von Ereignisaktionen vorgesehen, der typischerweise verwendet wird, um den neu angelegten Trackingstatus-Eintrag - z. B. unter Berücksichtigung von Daten aus dem Bezugsobjekt anzupassen.
|
Schritt 3: Trackingstatus hinzufügen, sofern zulässig |
Abschließend soll der neue Trackingstatus-Eintrag erstellt und damit zur Trackingstatus-Historie des Bezugsobjekts hinzugefügt werden. Sofern für den Datenkontext ein Trackingstatus-Worfklow (Trackingstatus-Workflows) anwendbar ist, regelt dessen Konfiguration, unter welchen Voraussetzungen der hinzuzufügende Trackingstatus vor dem Hintergrund der bestehenden Trackingstatus-Historie für das Bezugsobjekt als zulässig gewertet wird oder nicht (s. Trackingstatus-Workflows). Die Prüfung erfolgt nach folgendem Schema:
|
Hinzufügen von Trackingstatus zu Positionen eines Geschäftstransaktionsobjekts
►HINWEIS◄ Trackingstatus auf Positionsebene werden für Manifeste nicht unterstützt (s. Arbeiten mit Trackingstatus), da es bei diesen per Definition um Sendungen handelt, die selbst über Trackingstatus-Attribute verfügen.
Beim Hinzufügen eines Trackingstatus zu einer Position eines Geschäftstransaktionsobjekts, muss beim Ausführen der Aktion die interne ID des Geschäftstransaktionsobjekts im betreffenden Feld der Position verfügbar sein:
Geschäftstransaktionsobjekt |
Feldname |
Allgemeines Geschäftsobjekt |
commonId |
Bestellung |
orderId |
Sendung |
shipmentId |
Diese Felder werden im Client in der Regel nicht mit Daten versorgt. Stattdessen werden sie vor dem Ausführen von Ereignisaktionen automatisch mit der ID des Geschäftstransaktionsobjekts initialisiert.
Eine automatische Vorbelegung ist daher mit Ausnahme der folgenden Sonderfälle gewährleistet:
Die betreffende Postion wurde erst innerhalb der laufenden Transaktion durch Ereignisaktionen hinzugefügt. Dann existierte sie zu Beginn der Ereignisbehandlung noch nicht, als die Initialisierung stattfand. Dieser Fall kann abgedeckt werden, indem die ID des Geschäftstransaktionsobjekts durch eine zusätzliche Ereignisaktion (Setze Wert) vor dem Aufruf von "Trackingstatus hinzufügen" in das betreffende Feld (laut Tabelle oben) eingetragen wird.
Das Geschäftstransaktionsobjekt wurde noch nicht gespeichert oder die aktuelle Transaktion wurde durch das Ereignis "Erstellen" für das Geschäftstransaktionsobjekt (s. Allgemein (Ereignisse)) ausgelöst. Dann liegt noch keine ID für das Geschäftstransaktionsobjekt vor, die eingetragen werden könnte. Allerdings kann einem noch nicht gespeicherten Geschäftstransaktionsobjekt auch interaktiv kein Trackingstatus hinzugefügt werden.
Konfiguration
Im Parameter Trackingstatus kann optional der Trackingstatus-Code für den hinzuzufügenden Trackingstatus-Eintrag ausgewählt werden. Zur Auswahl stehen dabei alle Trackingstatus-Codes, für die im Anmeldekontext Lesezugriff besteht.
►HINWEIS◄ Wird eine bestehende Ereignisbehandlung bearbeitet, in der kein Lesezugriff für den bereits konfigurierten Trackingstatus-Code besteht, erscheint ggf. die Beschriftung nicht im Label. Die Auswahl bleibt aber unverändert gültig. Sie kann allerdings in der betreffenden Sitzung
nicht erst ab- und dann erneut ausgewählt werden.
Der Parameter Name der TS Variable ist optional, muss aber einen Variablennamen für den neu angelegten Trackingstatus-Eintrag spezifizieren, sofern für die Ereignisaktionen im Block TS mit <Entitätstyp> anpassen Zugriff auf den Trackingstatus-Eintrag benötigt wird. Daher ist per Standard der Variablennamen trackingStatus vorbelegt.
Über das
-Symbol können im Abschnitt TS mit <Entitätstyp> anpassen Ereignisaktionen hinzugefügt werden. Diese werden nach dem Anlegen des neuen Trackingstatus-Eintrags ausgeführt, aber bevor versucht wird, diesen der Trackingstatus-Historie des Bezugsobjekts hinzuzufügen.
►ANMERKUNG◄ Der Entitätstyp des Bezugsobjekts erscheint in der Beschriftung oberhalb des Blocks, um darauf hinzuweisen, dass dieses Bezugsobjekt auch für die hier eingefügten Ereignisaktionen gilt. Sowohl die Daten des Bezugsobjekts als auch die des neuen Trackingstatus-Eintrags können in diesem Block noch angepasst werden, bevor geprüft wird, ob und ggf. mit welchen Konsequenzen der Trackingstatus-Eintrag hinzugefügt werden darf.
Beispiel: Hinzufügen eines Trackingstatus zu einer Sendung
Im folgenden Beispiel wird einer Sendung der Trackingstatus "GO!" zugewiesen und dabei im Feld Kommentar (comment) des neuen Trackingstatus-Eintrags der Wert (textValue) des Textattributs Route (ROUTE) aus der Sendung eingetragen.