Trackingstatus-zugehöriges-Objekt
Wertauflöser - Kurzfassung
Zweck: Gibt die Entität zurück, auf die sich ein als Eingabewert vorliegender Trackingstatus-Eintrag als Trackingstatus-Besitzer bezieht.
Der Trackingstatus-zugehöriges-Objekt-Wertauflöser gibt die Entität zurück, auf die sich ein als Eingabewert vorliegender Trackingstatus-Eintrag als Trackingstatus-Besitzer bezieht.
Handelt es sich beim Eingabewert nicht um einen Trackingstatus-Eintrag, wird "Kein Wert" ($null) zurückgegeben.
Für den Parameter Typ des zugehörigen Objekts muss eine Klasse ausgewählt werden, die mit dem Typ des Trackingstatus-Besitzers übereinstimmt oder zumindest kompatibel ist.
Ohne oder mit einer unpassenden Auswahl wird "Kein Wert" ($null) zurückgegeben.
►HINWEIS◄ Dieser Wertauflöser wird clientseitig (z. B. in einem Client Workflow) nicht unterstützt, da das "zugehörige Objekt" vom Server abgerufen werden muss.
Konfiguration
Als Eingabewert wird eine Entität des Typs "Trackingstatus-Eintrag" (TrackingStatusEntry) erwartet.
Der Typ des zugehörigen Objekts muss "passend" zum Trackingstatus-Besitzer ausgewählt werden, da von dieser Auswahl u. a. die Auswahloptionen für die weitere Konfiguration (z. B. Zugriff auf Attribute usw.) abhängen kann.
Häufig ist im Einsatzumfeld des Wertauflösers ohnehin klar, von welchem Typ der Trackingstatus-Besitzer ist. Dann deklariert die Auswahl diesen Typ für nachfolgende Konfigurationen, etwa im Kontext einer Ausführen mit-Ereignisaktion.
Wird der Wertauflöser in einem Kontext eingesetzt ist, in dem der Typ des Trackingstatus-Besitzers variabel sein kann, muss eine geeignete übergreifende Klasse (z. B. "Entität" oder "Geschäftstransaktionsobjekt") als Typ des zugehörigen Objekts gewählt werden.
►HINWEIS◄ Die Auswahl einer übergreifenden Klasse als Typ des zugehörigen Objekts kann Einschränkungen für die Konfiguration in Bezug auf spezifische Inhalte für die enthaltenen Klassen bedingen. Allerdings wird zur Laufzeit der Trackingstatus-Besitzer immer komplett zurückgegeben. Sein konkreter Typ kann per Typprüfung oder durch Auswerten der Variable entityClass festgestellt werden.
Beispiel
Einfacher Anwendungsfall
Das Ändern eines bestehenden Trackingstatus-Eintrags (z. B. zum Eintragen eines Kommentars oder Hochladen einer Unterschrift) soll für Bestellungen verhindert werden, wenn es sich nicht um den aktuellen Trackingstatus-Eintrag (für den Standard-Trackingstatustyp "Aktuell" (CURRENT)) des zugehörigen Objekts handelt.
Konfiguration:
Die rechts abgebildete Ereignisbehandlung zielt darauf ab, durch eine Abbrechen das Speichern von Änderungen für bestehende Trackingstatus-Einträge zu verhindern, sofern diese Bestellungen betreffen:
|
|
Komplexerer Anwendungsfall
Ein Anwender soll auf Knopfdruck Benachrichtigungen über "aktuelle" Trackingstatuswechsel in seinem Zuständigkeitsbereich informiert werden.
Als "aktuell" sollen Trackingstatus-Einträge gelten, die seit Anfang des aktuellen Tages erstellt (also einer Entität erfolgreich hinzugefügt) wurden.
Die Abgrenzung für den "Zuständigkeitsbereich" soll durch den Lesezugriff für die Trackingstatuseinträge im Kontext der aktuellen Sitzung gewährleistet sein.
Laufzeitbeispiel:
Nach dem Klick auf einen Ribbon Button soll für jeden "aktuellen" Trackingstatuswechsel eine Benachrichtigung vom Typ "Info" am rechten Bildschirmrand eingeblendet werden, die folgende Informationen enthält: Im Titel:
In der Meldung:
|
|
Konfiguration:
Die folgende Ereignisbehandlung soll über ein eigens eingerichtetes Eigenes Aktionsevent "Was gibt's Neues?" (WHATS_NEW) ausgelöst werden, das Benutzer über Ribbon Buttons in ausgewählten Views auslösen können.
Die für die Anzeige relevanten Trackingstatus-Einträge durch eine Suche (Ereignisaktion) bereitgestellt. Diese liefert eine eine chronologisch sortierte Liste aller im Kontext der Sitzung lesbaren Trackingstatus-Einträge, die seit dem Anfang des heutigen Tags (s. Relatives Datum mit Zeit) erstellt wurden, in einer Variablen whatsNew. Die folgende Für jeden Eintrag wiederholen (Schleife)-Ereignisaktion iteriert über die Trackingstatus-Einträge in der Variablen whatsNew: Für jeden Eintrag wird eine Hinweis anzeigen (Popup)-Ereignisaktion ausgeführt, in der die gewünschten Informationen aufbereitet werden:
►ANMERKUNG◄ Die Felder id und onwerId sind "Entitätsattribute", die jeder Entitätstyp verwendet. Ein Arbeitsstatus wird dagegen nicht von jedem Entitätstyp unterstützt, der einen Trackingstatus "besitzen" kann. Eine Position eines Geschäftstransaktionsobjekts, gilt der Klasse nach zwar als "Entität" aber nicht als "Geschäftstransaktionsobjekt". Sie besitzt keinen Arbeitsstatus, ihr können aber Trackingstatus hinzugefügt werden. Sofern für unterschiedliche Entitätstypen spezifische Detaildaten erscheinen sollen, sind Fallunterscheidungen erforderlich. |
|