Zu Export-Job hinzufügen

Ereignisaktion - Kurzfassung

Zweck: Eine einzelne Entität eines exportierbaren Typs, die als Bezugsobjekt vorliegt, wird einem vorhandenen oder neu erstellten Export Job hinzugefügt.

images/download/attachments/189439088/image-2024-11-25_13-35-10-version-1-modificationdate-1732538109962-api-v2.png

Die Zu Export-Job hinzufügen-Ereignisaktion versucht, einer als Bezugsobjekt vorliegende Entität einem vorhandenen oder neu erstellten Export Job hinzuzufügen.

Als Bezugsobjekt wird eine exportierbare Entität (s. Meta Exchange Erweiterung) erwartet.

  • Liegt "Kein Wert" ($null) als Bezugsobjekt vor, dann ist die Ereignisaktion wirkungslos.

  • Ist das Bezugsobjekt keine Entität, dann wird beim Ausführen von Zu Export-Job hinzufügen eine Fehlermeldung (und ggf. ein Rollback) ausgelöst.

  • Ist das Bezugsobjekt eine Entität eines Typs, der nicht exportierbar ist, dann ist die Ereignisaktion wirkungslos.

Wenn zur Laufzeit im Kontext der Sitzung bereits ein Export Job existiert, wird diesem das aktuelle Bezugsobjekt (inkl. aller abhängigen Entitäten) hinzugefügt.

HINWEISE


Interaktiver Export vs. Automatisierung

Das Ausführen der Ereignisaktion Zu Export-Job hinzufügen entspricht weitgehend dem Ausführen des Ribbon-Makro-Befehls "Export/Exportieren" (s. Verfügbare Befehle) im Kontext einer Entität.

Ob die im Ausführungskontext anwendbare Rolle der Session über die Berechtigung zum Exportieren (~/Export/Exportieren) für den konkreten Entitätstyp verfügt, dem das Bezugsobjekt angehört wird nicht geprüft.
Die Ereignisaktion kann also auch für Entitäten ausgeführt werden, in deren Kontext der Ribbon-Befehl "Export/Exportieren" nicht verfügbar ist.

Während der interaktive Export im Kontext einer Übersicht für eine Mehrfachauswahl von Entitäten (desselben Typs) ausgeführt werden kann, akzeptiert die Ereignisaktion Zu Export-Job hinzufügen keine Liste von Entitäten als Bezugsobjekt. Um einem Export Job automatisiert mehrere Entitäten hinzuzufügen, müssen also mehrere Instanzen der Zu Export-Job hinzufügen-Ereignisaktion oder eine Für jeden Eintrag wiederholen (Schleife)-Ereignisaktion eingesetzt werden.

Konfiguration

Die Zu Export-Job hinzufügen-Ereignisaktion verwendet keine Parameter.

Beispiele

Einfacher Anwendungsfall

Im Kontext einer Ereignisbehandlung soll das Benutzerkonto, mit dem die Firma der Session erstellt wurde, dem aktuellen Export Job hinzugefügt werden.

Konfiguration:

Innerhalb der rechts abgebildeten Ausführen mit-Ereignisaktion ermittelt die Wert-Konfiguration für den Parameter Objekt-Wertauflöser das zu exportierende Bezugsobjekt über die folgende Wertauflöserkette (s. Verketteter Wertauflöser):

  • Der Firma der Session-Wertauflöser liefert das im anwendbaren Kontext ausgewählte Firmenkonto.

  • Der verkettete Objekt-Feld-Wertauflöser liest den Long-Wert aus dem Feld "Erstellt von" (creatorId) der auf das zu exportierende Benutzerkonto (s. Benutzer) verweist.

  • Der Eingabeobjekt (Typsicher)-Wertauflöser am Ende der Kette liefert das Long-ID referenzierte Benutzerkonto als komplette Entität.

    HINWEIS◄ Da das creatorId-Feld eine schwache Referenz definiert, kann es sein, dass das als Ersteller angegebene Benutzerkonto inzwischen gelöscht wurde. Dann liefert der Wertauflöser "Kein Wert" ($null) als Bezugsobjekt und die Zu Export-Job hinzufügen-Ereignisaktion ist wirkungslos.

Im Aktionsblock der Ausführen mit-Ereignisaktion fügt die Zu Export-Job hinzufügen-Ereignisaktion das ermittelte Benutzerkonto an den Export Job.

images/download/attachments/189439088/image-2024-11-25_18-16-6-version-1-modificationdate-1732554966657-api-v2.png

Komplexerer Anwendungsfall

Im Kontext einer Ereignisbehandlung sollen einem Export Job alle Feiertagsgruppen (s. Feiertagsübersicht) hinzugefügt werden, die mindestens einen Eintrag für das aktuelle Jahr enthalten.

Anschließend soll eine View für den Export Job geöffnet werden, sofern dies nicht bereits der Fall ist.

Konfiguration:

Die zu exportierenden Feiertagsgruppen werden vorab mit der rechts abgebildeten Suche-Ereignisaktion ermittelt:

  • Im Parameter Ergebnis speichern als wird die Variable holidayGroups benannt, der die Ergebnisliste der Suche zur Laufzeit zugewiesen wird.

  • Der Parameter Entität definiert den gesuchten Entitätstyp "Feiertagsgruppe" (HolidayGroup).

  • Der Modus "Ergebnisliste" bestimmt, dass die Liste aller Treffer aus dem Suchergebnis zurückgegeben werden soll.

  • Die Bedingung ist als Feld Einschränkung definiert:

    • Als Prüfwert (links) wir das Feld "Einträge.Datum" (entries.date) per Feldprojektion gelesen. Der Zugriff auf das Listenfeld "Einträge" (entries) der Feiertagsgruppe impliziert dabei, dass eine Feiertagsgruppe als Treffer gilt, wenn die Feld Einschränkung für mindestens einen Eintrag erfüllt ist.

    • Als Vergleichswert (rechts) wird über den Relativer Datumsbereich mit Zeit ein Datumsbereich für den between-Vergleich bereitgestellt. Dabei wird der Typ "Dieses Jahr" (THIS_YEAR) aus der Dynamischen Aufzählung Typ Datumsbereich angegeben.


ANMERKUNG◄ Der Verzicht auf die Auswahl einer Zeitzone impliziert, dass die im Ausführungskontext anwendbare Zeitzone verwendet wird. Dies geschieht hier in der Annahme, dass die Einträge in der Feiertagsgruppe mit Bezug zu derselben Zeitzone gepflegt wurden. Dies kann durchaus Auswirkungen auf das Suchergebnis haben, wie das folgende Beispiel zeigt:

      • Eine Feiertagsgruppe wurde im Kontext einer Sitzung mit Bezug zur Zeitzone Europe/Berlin angelegt. Sie enthält, beginnend mit dem 1. Januar (Neujahr), ausschließlich Feiertage für das nächste Jahr.

      • Diese Feiertagsgruppe würde irrtümlich als "Treffer" in der Ergebnisliste der vorliegenden Suche erscheinen, wenn diese in einem Kontext mit Bezug zu einer "späteren" Zeitzone (z. B. America/New York) ausgeführt wird.

images/download/attachments/189439088/image-2024-11-26_9-24-0-version-1-modificationdate-1732609440121-api-v2.png

Der Screenshot rechts zeigt die oben ausführlich beschriebene Suche-Ereignisaktion (hier: zugeklappt), nach der eine Für jeden Eintrag wiederholen (Schleife)-Ereignisaktion ausgeführt wird:

  • Der Parameter Wertauflöser für Einträge bezieht sich per Variable-Wertauflöser auf die "Ergebnisliste" aus der Suche in der Variablen holidayGroups.

  • Im Aktionsblock der Schleife wird je Iteration die Zu Export-Job hinzufügen-Ereignisaktion ausgeführt, sodass alle Feiertagsgruppen aus der Suche einzeln dem Export Job hinzugefügt werden.


ANMERKUNG◄ Zur Vereinfachung haben wir hier angenommen, dass die Ereignisbehandlung im Kontext einer Sitzung mit der "Super User"-Rolle (oder zumindest entsprechenden Berechtigungen) ausgeführt wird. Wenn ein Export Job ausgeführt werden soll, ist dies grundsätzlich zu empfehlen. Falls die Suche Besitzereinschränkungen berücksichtigen soll, sodass nur Feiertagsgruppen exportiert werden, die die Firma der Session "lesen" darf, muss die Suche im Aktionsblock einer Ausführen als-Ereignisaktion mit einer "beschränkten" Rolle eingesetzt werden.

images/download/attachments/189439088/image-2024-11-26_9-22-18-version-1-modificationdate-1732609338017-api-v2.png

Der Screenshot rechts zeigt die Konfiguration für eine Öffne View (Aktion), die eine View für den Export Job öffnet, sofern noch keine existiert:

  • Der Parameter Zu öffnende View adressiert den Menüknotennamen (administration/system/exportJob) für den Export Job.

  • Es werden keine Formulardaten übergeben.

  • Die Option Darf nur einmal geöffnet sein? ist ausgewählt (Standard), damit keine zusätzliche View für den Export Job geöffnet wird, falls bereits eine existiert.


HINWEIS◄ Der Menüknotenname kann nur verwendet werden, um die Zu öffnende View anzugeben, wenn der Menüpunkt Export Job in der Sitzung verfügbar ist. Das ist nur dann der Fall, wenn für die Rolle der Session die Berechtigung "Verwaltung/System/Import Job" (administration/system/importJob) vorliegt.

Über den Viewnamen kann die Öffne View (Aktion) die View für den Export Job dagegen auch in einer Sitzung anzeigen, in der die Berechtigung "Verwaltung/System/Import Job" nicht vorliegt und in der die Menüpunkte Export Job und Import Job nicht verfügbar sind:

de.lobster.scm.exchange::ExchangeIndex|listDetailsWindow

Bei der Export Job-View handelt es sich um eine kombinierte Ansicht für die Klasse "Exchange-Index" (ExchangeIndex).

images/download/attachments/189439088/image-2024-11-26_11-22-32-version-1-modificationdate-1732616552196-api-v2.png