Variablen in AEM Forms-Workflows variables-in-aem-forms-workflows

Version
Artikel-Link
AEM as a Cloud Service
Hier klicken
AEM 6.5
Dieser Artikel

Eine Variable in einem Workflow-Modell bietet die Möglichkeit, einen Wert basierend auf seinem Datentyp zu speichern. Sie können den Namen der Variablen in jedem Workflow-Schritt verwenden, um den in der Variablen gespeicherten Wert abzurufen. Sie können auch Variablennamen verwenden, um Ausdrücke für Routing-Entscheidungen zu definieren.

In AEM-Workflow-Modellen haben Sie folgende Möglichkeiten:

Das folgende Video zeigt, wie Sie Variablen in AEM-Workflow-Modellen erstellen, festlegen und verwenden können:

Variablen sind eine Erweiterung der vorhandenen MetaDataMap-Schnittstelle. Sie können MetaDataMap in ECMAScript verwenden, um auf Metadaten zuzugreifen, die mithilfe von Variablen gespeichert wurden.

Erstellen einer Variablen create-a-variable

Variablen erstellen Sie mithilfe des Abschnitts „Variablen“ im Sidekick des Workflow-Modells. AEM-Workflow-Variablen unterstützen die folgenden Datentypen:

  • Primitive Datentypen: Long, Double, Boolesch, Datum und Zeichenfolge
  • Komplexe Datentypen: Dokument-, XML-, JSON- und Formulardatenmodell-Instanz.
NOTE
Workflows unterstützen für Datumsvariablen nur das ISO8601-Format.

Sie benötigen das AEM Forms Add-On-Paket für die Datentypen „Dokument“ und „Formulardatenmodell“. Verwenden Sie den Datentyp „ArrayList“, um Variablenauflistungen zu erstellen. Sie können eine ArrayList-Variable für alle primitiven und komplexen Datentypen erstellen. Beispiel: Erstellen Sie eine ArrayList-Variable und wählen Sie als Untertyp „String“ aus, um mehrere Zeichenfolgenwerte in der Variablen zu speichern.

Führen Sie die folgenden Schritte aus, um eine Variable zu erstellen:

  1. Navigieren Sie in einer AEM-Instanz zu „Tools“ Tools > „Workflow“ > „Modelle“.

  2. Wählen Sie Erstellen aus und geben Sie den Titel und einen optionalen Namen für das Workflow-Modell an. Wählen Sie das Modell und dann Bearbeiten aus.

  3. Wählen Sie das Variablensymbol im Sidekick des Workflow-Modells und dann  Variable hinzufügen aus.

    Variable hinzufügen

  4. Geben Sie im Dialogfeld „Variable hinzufügen“ den Namen an und wählen Sie den Variablentyp aus.

  5. Wählen Sie in der Dropdown-Liste Typ den Datentyp aus und geben Sie die folgenden Werte an:

    • Primitiver Datentyp: Geben Sie einen optionalen Standardwert für die Variable an.
    • JSON oder XML – Geben Sie einen optionalen JSON- oder XML-Schema-Pfad an. Das System überprüft den Schemapfad, während es die in diesem Schema verfügbaren Eigenschaften einer anderen Variablen zuordnet und speichert.
    • Formulardatenmodell – Geben Sie einen Pfad für ein Formulardatenmodell an.
    • ArrayList – Geben Sie einen Untertyp für die Sammlung an.
  6. Geben Sie eine optionale Beschreibung für die Variable ein und wählen Sie done_icon aus, um die Änderungen zu speichern. Die Variable wird in der im linken Bereich verfügbaren Liste angezeigt.

Berücksichtigen Sie beim Erstellen von Variablen die folgenden Punkte:

  • Erstellen Sie so viele Variablen, wie ein Workflow erfordert. Allerdings sollten Sie, um Datenbankressourcen zu sparen, die Anzahl der Variablen auf das erforderliche Minimum beschränken und Variablen nach Möglichkeit wiederverwenden.
  • Bei Variablen wird zwischen Groß- und Kleinbuchstaben unterschieden. Stellen Sie sicher, dass Sie in Ihrem Workflow immer mit identischer Groß- und Kleinschreibung auf Variablen verweisen.
  • Verwenden Sie im Namen der Variablen keine Sonderzeichen.

Festlegen einer Variablen set-a-variable

Mit dem Schritt „Variable festlegen“ können Sie den Wert einer Variablen festlegen und die Reihenfolge definieren, in der die Werte festgelegt werden. Die Variable wird in der Reihenfolge festgelegt, in der die Variablenzuordnungen im Schritt „Variable festlegen“ aufgeführt sind.

Änderungen an Variablenwerten betreffen nur die Instanz des Prozesses, in dem die Änderung erfolgt. Wenn beispielsweise ein Prozess initiiert wird und Variablendaten geändert werden, betreffen die Änderungen nur diese Instanz des Prozesses. Die Änderungen wirken sich nicht auf andere Instanzen des Workflows aus, die vorher initiiert wurden oder danach initiiert werden.

Je nach Datentyp der Variablen können Sie die folgenden Optionen verwenden, um den Wert einer Variablen festzulegen:

  • Literal: Verwenden Sie die Option, wenn Sie den genauen Wert kennen, der angegeben werden soll.

  • Ausdruck: Verwenden Sie die Option, wenn der zu verwendende Wert in einem Ausdruck berechnet wird. Der Ausdruck wird im bereitgestellten Ausdruckseditor erstellt.

  • JSON-Punktnotation: Verwenden Sie die Option, um einen Wert aus einer Variablen vom Typ JSON oder FDM abzurufen.

  • XPATH: Verwenden Sie die Option, um einen Wert aus einer Variablen vom Typ XML abzurufen.

  • Relativ zur Payload: Verwenden Sie die Option, wenn der Wert, der in einer Variablen gespeichert werden soll, unter einem Pfad relativ zur Payload verfügbar ist.

  • Absoluter Pfad: Verwenden Sie die Option, wenn der Wert, der in einer Variablen gespeichert werden soll, unter einem absoluten Pfad verfügbar ist.

Sie können bestimmte Elemente einer JSON- oder XML-Typvariablen auch mittels JSON-Punktnotation oder XPATH-Notation aktualisieren.

Hinzufügen einer Zuordnung zwischen Variablen add-mapping-between-variables

Führen Sie die folgenden Schritte aus, um die Zuordnung zwischen Variablen hinzuzufügen:

  1. Wählen Sie auf der Seite für das Bearbeiten des Workflows das Symbol „Schritte“ aus, das im Sidekick des Workflow-Modells verfügbar ist.
  2. Ziehen Sie den Schritt Variable festlegen in den Workflow-Editor und legen Sie ihn dort ab, wählen Sie den Schritt aus und wählen Sie dann configure_icon (Konfigurieren) aus.
  3. Wählen Sie im Dialogfeld „Variable festlegen“ die Option Zuordnung > Zuordnung hinzufügen aus.
  4. Wählen Sie im Abschnitt Variable zuordnen die Variable aus, in der Daten gespeichert werden sollen, wählen Sie den Zuordnungsmodus aus und geben Sie einen Wert an, der in der Variablen gespeichert werden soll. Die Zuordnungsmodi variieren je nach Variablentyp.
  5. Ordnen Sie weitere Variablen zu, um einen aussagekräftigen Ausdruck zu erstellen. Wählen Sie  done_icon  aus, um die Änderungen zu speichern.

Beispiel 1: Abfragen einer XML-Variablen, um den Wert für eine Zeichenfolgenvariable festzulegen example-query-an-xml-variable-to-set-value-for-a-string-variable

Wählen Sie eine Variable vom Typ „XML“ aus, um eine XML-Datei zu speichern. Fragen Sie die XML-Variable ab, um den Wert für eine Zeichenfolgenvariable für die in der XML-Datei verfügbare Eigenschaft festzulegen. Verwenden Sie das Feld XPATH für die XML-Variable angeben, um die Eigenschaft zu definieren, die in der Zeichenfolgenvariablen gespeichert werden soll.

In diesem Beispiel wählen Sie eine XML-Variable formdata aus, um die Datei cc-app.xml zu speichern. Fragen Sie die Variable formdata ab, um den Wert für die Zeichenfolgenvariable emailaddress festzulegen, um den Wert für die Eigenschaft emailAddress zu speichern, die in der Datei cc-app.xml verfügbar ist.

Beispiel 2: Verwenden eines Ausdrucks, um einen Wert basierend auf anderen Variablen zu speichern example2

Verwenden Sie einen Ausdruck, um die Summe der Variablen zu berechnen und das Ergebnis in einer Variablen zu speichern.

In diesem Beispiel verwenden Sie den Ausdruckseditor, um einen Ausdruck zu definieren, mit dem die Summe der Variablen assetscost und balanceamount zu berechnet und das Ergebnis in der Variablen totalvalue gespeichert wird.

Verwenden des Ausdruckseditors use-expression-editor

Sie können Ausdrücke auch dazu verwenden, den Wert einer Variablen zur Laufzeit zu berechnen. Variablen verfügen über einen Ausdruckseditor für das Definieren von Ausdrücken.

Den Ausdruckseditor verwenden Sie, um:

  • den Wert von Variablen mithilfe anderer Workflow-Variablen, Zahlen oder mathematischer Ausdrücke festzulegen.
  • Workflow-Variablen, Zeichenfolgen, Zahlen oder einen Ausdruck in einem mathematischen Ausdruck zu verwenden.
  • Bedingungen zum Festlegen von Variablenwerten hinzuzufügen.
  • Operatoren zwischen Bedingungen hinzuzufügen.

Ausdruckseditor

Sie basiert auf dem Regeleditor für adaptive Formulare, mit den folgenden Änderungen. Regeleditor in Variablen:

  • Unterstützt Funktionen nicht.
  • Stellt keine Benutzeroberfläche zum Anzeigen einer Regelzusammenfassung bereit.
  • Verfügt über keinen Code-Editor.
  • Unterstützt nicht das Aktivieren und Deaktivieren des Wertes eines Objekts.
  • Unterstützt nicht das Festlegen einer Eigenschaft eines Objekts.
  • Unterstützt nicht das Aufrufen eines Webservice.

Weitere Informationen finden Sie unter Regeleditor für adaptive Formulare.

Verwenden einer Variablen use-a-variable

Sie können Variablen verwenden, um Eingaben und Ausgaben abzurufen oder um das Ergebnis eines Schritts zu speichern. Der Workflow-Editor bietet zwei Arten von Workflow-Schritten:

  • Workflow-Schritte mit Unterstützung für Variablen
  • Workflow-Schritte ohne Unterstützung für Variablen

Workflow-Schritte mit Unterstützung für Variablen workflow-steps-with-support-for-variables

Die Schritte „Goto“ und „ODER-Teilung“ sowie alle AEM Forms Workflow-Schritte unterstützen Variablen.

ODER-Teilungs-Schritt or-split-step

Die ODER-Teilung erstellt eine Verzweigung im Workflow, nach der nur einer der beiden Zweige aktiv bleibt. Mit diesem Schritt können Sie bedingte Verarbeitungspfade in einem Workflow einrichten. Sie fügen jeder Verzweigung nach Bedarf Workflow-Schritte hinzu.

Sie können Routing-Ausdrücke für eine Verzweigung mithilfe einer Regeldefinition, eines ECMA-Skripts oder eines externen Skripts definieren.

Sie können Variablen verwenden, um den Routing-Ausdruck mit dem Ausdruckseditor zu definieren. Weitere Informationen zur Verwendung von Routing-Ausdrücken für den Schritt „ODER-Teilung“ finden Sie unter ODER-Teilungs-Schritt.

In diesem Beispiel verwenden Sie vor dem Definieren des Routing-Ausdrucks das Beispiel 2, um den Wert für die Variable totalvalue festzulegen. Zweig 1 ist aktiv, wenn der Wert der Variablen totalvalue größer als 50000 ist. Auf ähnliche Weise können Sie eine Regel definieren, die den Zweig 2 aktivieren soll, wenn der Wert der Variablen totalvalue kleiner als 50000 ist.

Wählen Sie auf ähnliche Weise einen externen Skriptpfad aus oder geben Sie das ECMA-Skript an, damit Routing-Ausdrücke die aktive Verzweigung auswerten können. Wählen Sie Verzweigung umbenennen aus, um einen alternativen Namen für die Verzweigung anzugeben.

Weitere Beispiele finden Sie unter Erstellen eines Workflow-Modells.

Zum Schritt wechseln go-to-step

Mit Zum Schritt wechseln können Sie den nächsten Schritt im Workflow-Modell angeben, der je nach dem Ergebnis eines Routing-Ausdrucks ausgeführt werden soll.

Ähnlich wie beim ODER-Teilungs-Schritt können Sie Routing-Ausdrücke für einen GOTO-Schritt (Wechseln zu Schritt) mithilfe einer Regeldefinition, eines ECMA-Skripts oder eines externen Skripts definieren.

Sie können Variablen verwenden, um den Routing-Ausdruck mit dem Ausdruckseditor zu definieren. Weitere Informationen zur Verwendung von Routing-Ausdrücken für den GOTO-Schritt finden Sie unter GOTO-Schritt (Wechseln zu Schritt).

GOTO-Regel

In diesem Beispiel gibt der GOTO-Schritt (Wechseln zu Schritt) als nächsten Schritt den Schritt „Kreditkartenantrag prüfen“ an, wenn der Wert für die Variable actiontaken gleich Need more info (Weitere Informationen erforderlich) ist.

Weitere Beispiele zur Verwendung der Regeldefinition im GOTO-Schritt (Wechseln zu Schritt) finden Sie unter Simulieren einer For-Schleife.

Forms-Workflow-zentrierte Arbeitsschritte forms-workflow-centric-workflow-steps

Alle AEM Forms-Workflow-Schritte unterstützen Variablen. Weitere Informationen finden Sie unter Formularzentrierte Workflows in OSGi.

Workflow-Schritte ohne Unterstützung für Variablen workflow-steps-without-support-for-variables

Sie können die Schnittstelle MetaDataMap verwenden, um auf Variablen in Workflow-Schritten zuzugreifen, die keine Variablen unterstützen.

Abrufen des Variablenwerts retrieve-the-variable-value

Verwenden Sie die folgenden APIs im ECMA-Skript, um Werte für vorhandene Variablen basierend auf dem Datentyp abzurufen:

Datentyp der Variablen
API
Primitive (Long, Double, Boolesch, Datum und Zeichenfolge)
workItem.getWorkflowData().getMetaDataMap().get(variableName, type)
Dokument
Packages.com.adobe.aemfd.docmanager.Document doc = workItem.getWorkflowData().getMetaDataMap().get("docVar", Packages.com.adobe.aemfd.docmanager.Document.class);
XML
Packages.org.w3c.dom.Document xmlObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.org.w3c.dom.Document.class);
Formulardatenmodell
Packages.com.adobe.aem.dermis.api.FormDataModelInstance fdmObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.com.adobe.aem.dermis.api.FormDataModelInstance.class);
JSON
Packages.com.google.gson.JsonObject jsonObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.com.google.gson.JsonObject.class);

Sie benötigen das AEM Forms Add-On-Paket für die Variablentypen „Dokument“ und „Formulardatenmodell“.

Beispiel

Rufen Sie den Wert vom Datentyp „String“ (Zeichenfolge) über die folgende API ab:

workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)

Aktualisieren des Variablenwertes update-the-variable-value

Verwenden Sie die folgende API im ECMA-Skript, um den Wert einer Variablen zu aktualisieren:

workItem.getWorkflowData().getMetaDataMap().put(variableName, value)

Beispiel

workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)

Aktualisiert den Wert der Variablen salary (Gehalt) auf 50000.

Festlegen von Variablen zum Aufrufen von Workflows apiinvokeworkflow

Sie können eine API verwenden, um Variablen festzulegen und sie dann zu übergeben, um Workflow-Instanzen aufzurufen.

workflowSession.startWorkflow verwendet „model“, „wfData“ und „metaData“ als Argumente. Verwenden Sie MetaDataMap, um einen Wert für die Variable festzulegen.

In dieser API wird die Variable variableName mithilfe von metaData.put(variableName, value) auf value festgelegt.

import com.adobe.granite.workflow.model.WorkflowModel;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import com.adobe.aemfd.docmanager.Document;

/*Assume that you already have a workflowSession and modelId along with the payloadType and payload*/
WorkflowData wfData = workflowSession.newWorkflowData(payloadType, payload);
MetaDataMap metaData = wfData.getMetaDataMap();
metaData.put(variableName, value); //Create a variable "variableName" in your workflow model
WorkflowModel model = workflowSession.getModel(modelId);
workflowSession.startWorkflow(model, wfData, metaData);

Beispiel

Initialisieren Sie das Dokumentobjekt doc auf einen Pfad („a/b/c“) und legen Sie den Wert der Variablen docVar auf den Pfad fest, der in dem Dokumentobjekt gespeichert ist.

import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.WorkflowData;
import com.adobe.granite.workflow.model.WorkflowModel;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import com.adobe.aemfd.docmanager.Document;

/*This example assumes that you already have a workflowSession and modelId along with the payloadType and payload */
WorkflowData wfData = workflowSession.newWorkflowData(payloadType, payload);
MetaDataMap metaData = wfData.getMetaDataMap();
Document doc = new Document("/a/b/c");// initialize a document object
metaData.put("docVar",doc); //Assuming that you have created a variable "docVar" of type Document in your workflow model
WorkflowModel model = workflowSession.getModel(modelId);
workflowSession.startWorkflow(model, wfData, metaData);

Speichern sensibler Benutzerdaten außerhalb von JCR mit Hilfe von Workflow-Variablen jcr-independent-persistance

Daten, die mithilfe von Forms-Workflows verarbeitet werden, können sensible Benutzerdaten enthalten, wie z. B. persönlich identifizierbare Informationen und sensible persönliche Informationen. Unternehmen können sich dafür entscheiden, die Daten, die von verschiedenen Workflow-Schritten verarbeitet (und mit Hilfe von Workflow-Variablen übergeben) werden, außerhalb des JCR-Speichers in einem externen Datenspeicher zu speichern, der ihnen gehört und von ihnen verwaltet wird. Weitere Informationen über die Speicherung von Workflow-Daten in einem externen Speicher finden Sie unter Verwendung von Workflow-Variablen für kundeneigene Datenspeicher.
Adobe Experience Manager bietet die Workflow-API UserMetaDataPersistenceProvider, um Workflow-Variablen in externen Azure-Blob-Speichern zu speichern. Für Details zur Verwendung der API siehe Verwenden von Workflow-Variablen zum Parametrisieren sensibler Daten und Speichern in externen Datenspeichern.

Bearbeiten einer Variablen edit-a-variable

  1. Wählen Sie auf der Seite „Workflow bearbeiten“ das Symbol „Variablen“ im Sidekick des Workflow-Modells aus. Im Abschnitt „Variablen“ im linken Bereich werden alle vorhandenen Variablen angezeigt.
  2. Wählen Sie das Symbol edit (Bearbeiten) neben dem Namen der Variablen aus, die Sie bearbeiten möchten.
  3. Bearbeiten Sie die Variableninformationen und wählen Sie das Symbol done_icon (Fertig) aus, um die Änderungen zu speichern. Die Felder Name und Typ für eine Variable können Sie nicht bearbeiten.

Löschen einer Variablen delete-a-variable

Bevor Sie eine Variable löschen, müssen Sie alle Verweise der Variablen aus dem Workflow entfernen. Stellen Sie sicher, dass die Variable im Workflow nicht verwendet wird.

Führen Sie die folgenden Schritte aus, um eine Variable zu löschen:

  1. Wählen Sie auf der Seite „Workflow bearbeiten“ das Symbol „Variablen“ im Sidekick des Workflow-Modells aus. Im Abschnitt „Variablen“ im linken Bereich werden alle vorhandenen Variablen angezeigt.
  2. Wählen Sie das Symbol „Löschen“ neben dem Namen der Variablen aus, die Sie löschen möchten.
  3. Wählen Sie das Symbol done_icon (Fertig) aus, um zu bestätigen, dass die Variable gelöscht werden soll; somit wird sie gelöscht.

Verweise references

Weitere Beispiele zur Verwendung von Variablen in Schritten eines AEM Forms-Workflows finden Sie unter Variablen in AEM-Workflows.

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2