Ausführen mit


Ereignisaktion - Kurzfassung

Zweck: Ermöglicht das Ausführen von Ereignisaktionen mit einem abweichenden Bezugsobjekt (entity).

Die Ereignisaktion Ausführen mit ermöglicht innerhalb einer Ereignisbehandlung den vorübergehenden Wechsel des Bezugsobjekts, um mit dem abweichenden Bezugsobjekt einen Block von Ereignisaktionen auszuführen.

images/download/attachments/177911205/image-2024-9-12_15-50-15-version-1-modificationdate-1726149015054-api-v2.png

Parameter

Objekt in Variable speichern

Der Parameter Objekt in Variable speichern kann optional verwendet werden, um den Namen einer Variablen anzugeben, über die auf das bisherige Bezugsobjekt zugegriffen werden kann, während das abweichende Bezugsobjekt gilt.

HINWEISE

  • Die Zuweisung des bisherigen Bezugsobjekts als Wert der im Parameter Objekt in Variable speichern benannten Variablen betrifft nur den Ausführungskontext innerhalb des Ausführen mit-Blocks. Nach Abschluss des Blocks wird dieser Variablen wieder der zuvor gültige Wert (ggf. "kein Wert" zugewiesen).

  • Im Allgemeinen gelten Zuweisungen an Variablen dagegen innerhalb und außerhalb des Blocks. Eine weitere Ausnahme bildet allerdings die vom System verwaltete Variable entity die immer auf das jeweils gültige Bezugsobjekt verweist.

  • Die Beschriftung des Parameters spiegelt den Typ des bisherigen Bezugsobjekts. Sofern sich aus dem Kontext der Konfiguration ein spezifischerer Entitätstyp als "Objekt" ergibt, erscheint dessen Name vor "... in Variable speichern" und an der Schnittstelle zu den Ereignisaktionen.

Objekt Resolver

Der Objekt Resolver definiert das innerhalb des Ausführen mit-Blocks gültige abweichende Bezugsobjekt für die Ausführung der dort enthaltenen Ereignisaktionen. Nach deren Abschluss gilt wieder das zuvor gültige Bezugsobjekt.

In Bezug auf die innerhalb des Ausführen mit-Blocks ausgeführten Ereignisaktionen hat das "Bezugsobjekt" folgende Bedeutung:

  • Werden innerhalb des Ausführen mit-Blocks andere Ereignisse ausgelöst, erhalten diese das abweichende Bezugsobjekt als "Eingabewert".

  • Wertauflöser, die sich auf ein Eingangsobjekt beziehen, verarbeiten das abweichenden Bezugsobjekt, soweit keine anderen Festlegungen getroffen werden. So löst ein Objekt-Feld-Wertauflöser ein bestimmtes Feld des abweichenden Bezugsobjekts auf, wenn er nicht innerhalb einer Verkettung eingesetzt wird.

HINWEIS◄Die Ereignisaktion Ausführen mit kann kaskadierend eingesetzt wenn, um das abweichende Bezugsobjekt stufenweise zu übersteuern. In jeder Stufe einer Kaskade besteht dabei Zugriff auf die Bezugsobjekte der übergeordneten Stufen, sofern im Parameter Objekt in Variable speichern jeweils unterschiedliche Variablennamen verwendet werden.

Ereignisaktionen

Im Block unterhalb der Parameter können Ereignisaktionen über das images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg -Symbol hinzugefügt werden, die zur Laufzeit mit dem abweichenden Bezugsobjekt ausgeführt werden.

Beispiele

Benachrichtigung an den Besitzer eines Geschäftsobjekts auslösen

Sobald einem Geschäftsobjekt vom Typ "Bestellung" (s. Bestellungen) der Arbeitsstatus "Freigegeben" zugewiesen wird, soll die Firma, die als Besitzer der Bestellung gilt, ein Avis erhalten.

In welcher Form die Benachrichtigung erfolgt, soll von Einstellungen im Firmenkonto der Besitzer-Firma abhängen. Details soll eine Ereignisbehandlung regeln, die auf ein Eigenes Aktionsevent ("Avis versenden") reagiert und dabei folgenden Datenkontext erwartet:

  • Als Eingabewert (entity) soll das Firmenkonto der Firma übergeben werden, die - in der im Firmenkonto definierten Form - benachrichtigt werden soll.

  • Eine Variable mit dem Namen order soll die Daten der Bestellung enthalten, für die ein Avis versendet werden soll.

Die folgende Konfiguration zeigt nur, wie die Benachrichtigung mit Hilfe der Ausführen mit-Ereignisaktion ausgelöst wird. Auf Details zur Benachrichtigung wird hier verzichtet.

  • Als Auslösendes Ereignis wird hier auf das Zuweisen des Arbeitsstatus "Freigegeben" zu einem beliebigen Geschäftsobjekt reagiert (Arbeitsstatus (Ereignisse)).


  • Die Prüfende Regel beinhaltet eine Typprüfung, die sicherstellen soll, dass die Ereignisbehandlung nur für Bestellungen aktiv wird.


  • Unter Aktionen bei bestandener Regel wird hier eine Ereignisaktion vom Typ Ausführen mit verwendet, die im Wesentlichen dazu dient, das Firmenkonto der Firma als Bezugsobjekt zu definieren, die die gerade freigegebene Bestellung besitzt.

  • Über den Parameter Bestellung in Variable speichern wird zunächst die freigegebene Bestellung in der Variablen order gespeichert.

  • Der Objekt Resolver liest per Objekt-Feld-Wertauflöser das Feld "Besitzer"(ownerId) aus der Bestellung und übergibt dessen Wert an den verketteten Eingabeobjekt (Typsicher)-Wertauflöser, der das betreffende Firmenkonto zurückgibt.

  • Das Firmenkonto gilt damit als Bezugsobjekt für den nachfolgenden Block von Ereignisaktionen. Hier wird nur eine Eigenes Aktionsevent auslösen (Aktion) benötigt, die das als Eigenes Aktionsevent ausgewählte Ereignis "Xf Reg Receipt" auslöst.

  • Dabei muss kein Wertauflöser für das Datenobjekt spezifiziert werden, da das als Bezugsobjekt definierte Firmenkonto als Eingabewert des Ereignisses dienen soll.

HINWEIS◄ Eine Ereignisbehandlung, die auf das Ereignis "Avis versenden" reagiert, erhält zusammen mit dem Eingabewert (Firmenkonto) auch Zugriff auf die Variable order mit den Details der Bestellung, die damit als Inhalt einer Nachricht oder auch in Verbindung mit einem Druckdokument verwendet werden können.

images/download/attachments/177911205/image-2024-9-16_8-49-48-version-1-modificationdate-1726469387485-api-v2.png

images/download/attachments/177911205/image-2024-9-16_8-47-15-version-1-modificationdate-1726469235243-api-v2.png

Wertzuweisungen für mehrere Felder desselben Objekts

Detaildaten für einen neu anzulegenden Flugfahen werden vom über ein modales Portal (s. folgender Screenshot) abgefragt, das als Pflichtangaben den IATA-Code und den ICAO-Code vorsieht:

images/download/attachments/177911205/image2021-2-5_11-4-22-version-1-modificationdate-1726149008323-api-v2.png

Beim Klick auf den Button "Anlegen" wird ein Eigenes Aktionsevent ausgelöst, in dessen Datenkontext die unten dargestellten Formulardaten als Wert der Variablen formData übergeben werden:

Formulardaten (formData)
{
"codes": {
"IATA": "BER",
"ICAO": "EDDB"
}
}

Für die weitere Verarbeitung soll aus den Eingaben im Formular in die folgende Struktur überführt werden:

Zielstruktur (newAirportObject)
{
"iataCode": "BER",
"icaoCode": "EDDB"
}

Konfiguration:

Die Transformation der gegebenen Formulardaten in die Zielstruktur soll innerhalb der Ereignisbehandlung erfolgen, die auf das Ereignis reagiert, das der Button "Anlegen" im Portal auslöst.

Aus der Quellstruktur in der Variablen formData müssen mehrere Felder in die Felder einer Zielstruktur übertragen werden, die zu diesem Zweck vorab neu angelegt und in der Variablen newAirportObject gespeichert werden soll.

Der gesamte Ablauf kann wie rechts gezeigt in einer Ausführen mit-Aktion umgesetzt werden:

  • Im Objekt Resolver wird zunächst ein Wertauflöser vom Typ Erzeuge Instanz verwendet, um ein neues "Client Objekt" anzulegen. Dieses neue Datenobjekt wird über einen verketteten Wertauflöser vom Typ Wert als Variable speichern der Variablen newAirportObject zugeordnet.


  • Mit dem neuen "Client Objekt" erfolgen anschließend per Setze Wert-Ereignisaktion mehre Wertzuweisungen. Dabei werden die Quellfelder (rechts) über einen Objekt-Feld-Wertauflöser gelesen, der per Verkettung auf die Variable formData zugreift.


  • Das Zielfeld kann per Objekt-Feld-Wertauflöser ohne Verkettung adressiert werden, da das Datenobjekt als abweichendes Bezugsobjekt innerhalb des Ausführen mit-Blocks gilt.

ANMERKUNG◄ Der Parameter Objekt in Variable speichern (ganz oben) wird hier nicht verwendet, da das Portal ohnehin kein eigenständiges Bezugsobjekt bereitstellt, sondern nur die Formulardaten in der Variablen formData.

images/download/attachments/177911205/image2021-2-5_10-59-52-version-1-modificationdate-1726149008325-api-v2.png

Kaskadierende Verwendung von "Ausführen mit"

Der kaskadierende Gebrauch der Ausführen mit-Ereignisaktion wird hier an einem einfachen Beispiel demonstriert. Die Praxis ergibt der "verschachtelte" Gebrauch der Ereignisaktion oft wesentlich komplexere Strukturen.

Angelehnt an das vorige Beispiel soll hier angedeutet werden, wie eine Ereignisbehandlung aussehen könnte, die die Benachrichtigung einer Firma veranlasst, wenn ein Eigenes Aktionsevent vom Typ "Avis versenden" ausgelöst wird.

Die folgende Konfiguration geht davon aus, dass dieses Ereignis wie oben beschrieben ein Firmenkonto als "Eingabewert" und das Datenobjekt einer Bestellung in der Variable order übergeben bekommt.

  • Aufgrund einer Typprüfung in der hier nicht abgebildeten Prüfenden Regel" sollten die Ereignisaktionen nur ausgeführt werden, wenn ein Firmenkonto als Bezugsobjekt übergeben wurde.


  • Dieses Firmenkonto wird durch die erste Stufe der Ausführen mit-Kaskade in die Variable company übergeben, bevor als abweichendes Bezugsobjekt die "Adresse" (Feld address) der Firma definiert wird.

  • Im zugehörigen Ausführen mit-Block beginnt hier schon die nächste Stufe der Ausführen mit-Kaskade, indem die Adresse der Variablen address zugeordnet wird, um das Bezugsobjekt erneut zu wechseln. Innerhalb der Adresse soll dabei ein bestimmtes Element innerhalb der "Kommunikationsinformationen" (Plurales Attribut) "gesucht" werden.

  • Dazu wird der Regel-Listen Resolver eingesetzt, der hier den ersten Treffer für die enthaltene Objekt-Feld-Regel als neues Bezugsobjekt liefern soll. Diese sucht einen Wert mit dem "Kontext" (communicationContext) "AVIS".

  • Wird eine Kommunikationsinformation mit dem Kontext "AVIS" gefunden, sollen mit dieser als Bezugsobjekt weitere Ereignisaktionen ausgeführt werden. Wie hier angedeutet ist dabei als Einstieg in konkretere "Maßnahmen" zunächst eine Fallunterscheidung nach dem Kommunikationstyp (E-Mail, Fax, usw.) vorgesehen.

ANMERKUNG◄ Vorkehrungen für den Fall, dass überhaupt keine Kommunikationsinformation mit dem Kontext "AVIS" gefunden wird, wären zusätzlich zu empfehlen. Der Ausführen mit-Block wird in diesem Fall mit dem Wert "kein Wert" (null) trotzdem ausgeführt.

images/download/attachments/177911205/image2021-2-5_15-18-27-version-1-modificationdate-1726149008313-api-v2.png