Wert als Variable speichern

Wertauflöser - Kurzfassung

Zweck: Weist den Eingabewert der über den Parameter Name der Variable adressierten Variablen im Ausführungskontext zu.

images/download/attachments/177908237/image-2024-8-13_15-55-7-version-1-modificationdate-1723557307334-api-v2.png

Der Wert als Variable speichern-Wertauflöser weist den Eingabewert der über den optionalen Parameter Name der Variable adressierten Variablen im Ausführungskontext zu.

  • Enthält der Parameter Name der Variable keine Angabe, dann wird der Eingabewert nicht gespeichert.

  • Ist die adressierte Variable im Ausführungskontext bereits in Verwendung, wird sie überschrieben.

  • Existiert die adressierte Variable im Ausführungskontext noch nicht, wird sie hinzugefügt.

In jedem Fall wird der Eingabewert unverändert als Rückgabewert geliefert.

Im Kontext einer Wertauflöserkette kann damit ein beliebiges Zwischenergebnis buchstäblich "beiläufig" gespeichert werden, um im weiteren Verlauf darauf zugreifen oder den Wert im Kontexts von Tests untersuchen zu können.

Während in Ereignisbehandlungen oder in einem Client Workflow der Wert einer Variablen alternativ auch durch eine Zuweisung per Ereignisaktion (z. B. per Setze Wert mit einem Variable-Wertauflöser als Ziel) erfolgen können, stellt der Wert als Variable speichern-Wertauflöser z. B. in Zuordnungskriterien die einzige Möglichkeit dar, einen Wert direkt im Ausführungskontext zu speichern.

Konfiguration

Der optionale Parameter Name der Variable definiert durch einen statischen Text den Namen für eine Variable im Ausführungskontext, der der Eingabewert als Wert zugewiesen werden soll.

  • Ohne Angabe für den Parameter Name der Variable tritt kein Fehler auf. Der Wertauflöser ist dann allerdings effektiv wirkungslos.

Im Beispiel rechts wird der Wert als Variable speichern-Wertauflöser innerhalb einer Wertauflöserkette eingesetzt, der das über einen Erzeuge Instanz-Wertauflöser neu angelegte Firmenkonto im Eingabewert der Variablen newCompanyAccount zuweist, mit dessen Feld address im weiteren Verlauf der Kette "gearbeitet" werden soll. Die Variable newCompanyAccount ermöglicht den Zugriff auf das neu angelegte Firmenkonto in Operationen, die nach dem Zugriff auf die Firmenadresse im Kontext der aktuellen Wertauflöserkette ausgeführt werden.

images/download/attachments/177908237/image-2024-8-13_16-0-4-version-1-modificationdate-1723557603546-api-v2.png

HINWEIS◄ Sofern der Name der Variable nicht statisch in der Konfiguration sondern erst zur Laufzeit ermittelt werden soll, kommt nur eine Zuweisung per Ereignisaktion (z. B. mit dem Setze Wert-Wertauflöser) in Frage. Wenn das Ziel der Zuweisung durch den Variable-Wertauflöser bestimmt wird, kann der Name der Variablen über Wertauflöser ermittelt werden.

Beispiel

Einfacher Anwendungsfall: Zwischenergebnis in einer mehrstufigen Berechnung speichern

Ausgehend von Zahlwerten für "Menge" (quantity), "Stückpreis" (unitPrice) und einem in Prozent angegebenen anwendbaren "Steuersatz" (taxRate) soll neben dem resultierenden "Bruttobetrag" (grossAmount) auch der "Nettobetrag" (netAmount) wie folgt berechnet werden:

  • netAmount = quantity * unitPrice

  • grossAmount = netAmount * (1+taxRate/100)

Die folgende Konfiguration demonstriert, wie der "Nettobetrag" über den Wert als Variable speichern-Wertauflöser als Zwischenergebnis in einer Wertzuweisung für den "Bruttobetrag" gespeichert werden kann.

Auf die nachfolgende Verwendung der Variablen netAmount und grossAmount wird dabei nicht eingegangen.

Konfiguration:

Innerhalbe einer Ereignisbehandlung, die beim Speichern eines Geschäftsobjekts ausgelöst wird, wird eine Setze Wert-Ereignisaktion ausgeführt, die den "Bruttobetrag" berechnet und dessen Wert als Gesamtergebnis in die Variable grossAmount schreibt.

  • Auf der linken Seite der Zuweisung verweist ein Variable-Wertauflöser auf die Variable grossAmount als Ziel der Zuweisung.

  • Auf der rechten Seite der Zuweisung definiert eine Wertauflöserkette den Rechengang und das gewünschten Zwischenergebnis:

    • Der erste Berechne Wert-Wertauflöser berechnet das Produkt aus Menge und Einzelpreis. Die im Bild nicht aufgeklappten Konfigurationen für die Variablen quantity und unitPrice "lesen" zur Laufzeit entsprechende Daten des Geschäftsobjekts. Sie gelten nur innerhalb der Berechnung. Das Ergebnis der ersten Berechnung ist das gewünschte Zwischenergebnis "Nettobetrag". Es wird als "Zahl mit Einheit" durch den verketteten Wert als Variable speichern-Wertauflöser in die Variable netAmount geschrieben.

    • Der zweite Berechne Wert-Wertauflöser berechnet ausgehend vom "Nettobetrag" den "Bruttobetrag", der einen über die Variable taxRate definierten prozentualen Aufschlag zum "Nettobetrag" beinhaltet. Die Formel greift auf den Eingabewert des Wertauflösers über die automatisch bereitgestellte Variable input zu. Stattdessen könnte in der gegebenen Konfiguration auch die Variable netAmount für das Zwischenergebnis adressiert werden.

images/download/attachments/177908237/image-2024-8-13_16-13-29-version-1-modificationdate-1723558409193-api-v2.png

ANMERKUNG◄ Das hier demonstrierte Konzept kann in derselben Wertauflöserkette auch mehrstufig angewendet werden, um eine Serie von Zwischenergebnissen in Variablen zu übertragen.

Komplexerer Anwendungsfall: "Prüfende Regel" belegt Variablen für die "Aktionen bei bestandener Regel"

In einer Ereignisbehandlung soll die Prüfende Regel feststellen, ob die Firma, auf die das angemeldete Benutzerkonto (lt. Benutzer der Session) als "Besitzer" (ownerId) verweist, ihr Firmenkonto selbst besitzt oder nicht.

Aktionen sollen nur ausgeführt werden, wenn das nicht der Fall ist. Unter anderem soll dann eine Benachrichtigung auf die Besitzverhältnisse hinweisen.

Laufzeitbeispiel:

Im "Titel" der Benachrichtigung erscheint der "Benutzername" für den Benutzer der Session.

Die "Meldung" unterhalb zeigt im Kontext einer Textverkettung (inkl. Literalen zur Verdeutlichung der Besitzverhältnisse), den Namen der "Besitzer"-Firma dieses Benutzerkontos ("Vortex Inc.") und den Name deren "Besitzer"-Firma ("Xflow AG") an.

images/download/attachments/177908237/image2022-10-4_15-26-14-version-1-modificationdate-1723557295981-api-v2.png

Konfiguration:


images/download/attachments/177908237/image-2024-9-2_11-36-3-version-1-modificationdate-1725269763267-api-v2.png

Die oben abgebildete Prüfende Regel einer Ereignisbehandlung definiert eine Objekt-Feld-Regel, die das Feld "Besitzer" (ownerId) für den Benutzer der Session mit demselben Feld in dem dort als "Besitzer" referenzierten Firmenkonto vergleicht:

  • Auf der linken Seite des Vergleichs wird die ID der Firma ermittelt, die den Benutzer der Session besitzt:

  • Auf der rechten Seite des Vergleichs wird die ID der Firma ermittelt, die das Firmenkonto besitzt, das den Benutzer der Session besitzt.

    • Die Wertauflöserkette startet mit der Variablen myOwnerId, wobei ein Nachschlagen für den Typ "Firmenkonto" (CompanyAccount) ausgeführt wird (s. Variable-Wertauflöser).

    • Der verkettete Wert als Variable speichern-Wertauflöser speichert das über den Variable-Wertauflöser nachgeschlagene Firmenkonto in der Variable myOwner.
      HINWEIS◄ Auf diese Variable bezieht sich die Hinweis anzeigen (Popup)-Ereignisaktion in Konfiguration für die "Meldung".

    • Der verkettete Objekt-Feld-Wertauflöser liest das Feld "Besitzer" (ownerId) des Benutzerkontos, des Firmenkontos, das den Benutzer der Session besitzt.

    • Der verkettete Wert als Variable speichern-Wertauflöser speichert die als "Besitzer" angegebene ID des Firmenkontos in der Variablen myOwnersOwnerId.
      HINWEIS◄ Auf diese Variable bezieht sich die Hinweis anzeigen (Popup)-Ereignisaktion in Konfiguration für die "Meldung".

Da die Prüfende Regel immer verarbeitet wird, bevor Aktionen bei bestandener Regel ausgeführt werden, sind in deren Kontext die über den Wert als Variable speichern-Wertauflöser adressierten Variablen wie folgt befüllt:

Variable

Inhalt

Datentyp

Verwendung in einer Hinweis anzeigen (Popup)-Ereignisaktion

me

Benutzer der Session

"Benutzer"

Lesezugriff auf Feld "Benutzername" (username) im "Titel"

myOwnerId

ID des Firmenkontos, das den Benutzer der Session besitzt

Long

nicht verwendet (nur innerhalb der Prüfenden Regel)

myOwner

Daten des Firmenkontos, das den Benutzer der Session besitzt

"Firmenkonto"

Lesezugriff auf das "Name"-Feld der Adresse (address.name1)

myOwnersOwnerId

ID des Firmenkontos, das das myOwner-Firmenkonto besitzt

Long

Lesezugriff auf das "Name"-Feld der Adresse (address.name1) nach Nachschlagen des betreffenden Firmenkontos per ID über den Variable-Wertauflöser mit Typ "Firmenkonto"

images/download/attachments/177908237/image-2024-9-2_15-9-7-version-1-modificationdate-1725282547745-api-v2.png