Eine Variable in einem Workflow-Modell ist eine Methode, einen Wert basierend auf seinem Datentyp zu speichern. Anschließend können Sie den Namen der Variablen in jedem Workflow-Schritt verwenden, um den in der Variablen gespeicherten Wert abzurufen. Sie können auch Variablennamen verwenden, um Ausdruck 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 mit Variablen gespeicherte Metadaten aufzurufen.
Sie erstellen Variablen mithilfe des Abschnitts "Variablen"im Sidekick des Workflow-Modells. AEM Workflow-Variablen unterstützen die folgenden Datentypen:
Workflows unterstützt nur das ISO8601-Format für Datumsvariablen.
Für Dokument- und Formulardatenmodelldatentypen ist das AEM Forms-Add-On-Paket](https://helpx.adobe.com/de/aem-forms/kb/aem-forms-releases.html) erforderlich. [ Verwenden Sie den ArrayList-Datentyp, um variable Sammlungen zu erstellen. Sie können die ArrayList-Variable für alle primitiven und komplexen Datentypen erstellen. Erstellen Sie beispielsweise eine ArrayList-Variable und wählen Sie String als Untertyp aus, um mehrere Zeichenfolgenwerte mit der Variablen zu speichern.
Führen Sie die folgenden Schritte aus, um eine Variable zu erstellen:
Navigieren Sie in einer AEM zu Tools > Workflow > Modelle.
Tippen Sie auf Erstellen und geben Sie den Titel und einen optionalen Namen für das Workflow-Modell an. Wählen Sie das Modell aus und tippen Sie auf Bearbeiten.
Tippen Sie auf das Variablensymbol im Sidekick des Workflow-Modells und dann auf Hinzufügen Variable.
Geben Sie im Dialogfeld Hinzufügen Variable den Namen an und wählen Sie den Variablentyp aus.
Wählen Sie den Datentyp aus der Dropdown-Liste Typ und geben Sie die folgenden Werte an:
Geben Sie eine optionale Beschreibung für die Variable ein und tippen Sie auf , 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 Vorgehensweisen:
Mit dem Schritt "Variable festlegen"können Sie den Wert einer Variablen festlegen und die Reihenfolge festlegen, in der die Werte festgelegt werden. Die Variable wird in der Reihenfolge festgelegt, in der die Variablenzuordnungen im Schritt der set-Variablen aufgeführt werden.
Änderungen an Variablenwerten betreffen nur die Instanz des Prozesses, in der die Änderung erfolgt. Wenn beispielsweise ein Workflow initiiert wird und sich die Variablendaten ändern, wirken sich die Änderungen nur auf diese Instanz des Workflows aus. Die Änderungen wirken sich nicht auf andere Instanzen des Workflows aus, die zuvor initiiert wurden oder später 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, zu spezifizierenden Wert kennen.
Ausdruck: Verwenden Sie die Option, wenn der zu verwendende Wert auf einem Ausdruck berechnet wird. Der Ausdruck wird im bereitgestellten Ausdruck-Editor erstellt.
JSON-Punktnotiz: Verwenden Sie die Option, um einen Wert aus einer JSON- oder FDM-Typvariablen abzurufen.
XPATH: Verwenden Sie die Option, um einen Wert aus einer XML-Typvariablen abzurufen.
Relativ zur Nutzlast: Verwenden Sie die Option, wenn der in einer Variablen zu speichernde Wert unter einem Pfad relativ zur Nutzlast verfügbar ist.
Absoluter Pfad: Verwenden Sie die Option, wenn der in einer Variablen zu speichernde Wert unter einem absoluten Pfad verfügbar ist.
Sie können auch bestimmte Elemente einer JSON- oder XML-Typvariablen mithilfe der JSON-DOT-Notation oder XPATH-Notation aktualisieren.
Führen Sie die folgenden Schritte aus, um die Zuordnung zwischen Variablen hinzuzufügen:
Wählen Sie eine Variable des XML-Typs aus, um eine XML-Datei zu speichern. Abfrage der XML-Variablen, um den Wert für eine Zeichenfolgenvariable für die in der XML-Datei verfügbare Eigenschaft festzulegen. Verwenden Sie Geben Sie XPATH für das Feld "XML-Variable"an, um die Eigenschaft zu definieren, die in der Zeichenfolgenvariablen gespeichert werden soll.
Wählen Sie in diesem Beispiel eine XML-Variable formdata aus, um die Datei cc-app.xml zu speichern. Abfrage der Variablen formdata, um den Wert für die Zeichenfolgenvariable emailaddress festzulegen, um den Wert für die emailAddress-Eigenschaft zu speichern, die in der Datei cc-app.xml verfügbar ist.
Verwenden Sie einen Ausdruck, um die Summe der Variablen zu berechnen und das Ergebnis in einer Variablen zu speichern.
Verwenden Sie in diesem Beispiel den Ausdruck-Editor, um einen Ausdruck zu definieren, um die Summe der Variablen assetsCost und balance zu berechnen und das Ergebnis in der Variablen totalvalue zu speichern.
Sie können Ausdruck auch verwenden, um den Wert einer Variablen zur Laufzeit zu berechnen. Variablen bieten einen Ausdruck-Editor zum Definieren von Ausdrücken.
Verwenden Sie den Ausdruck-Editor, um:
Er basiert auf dem Regeleditor für adaptive Formulare mit folgenden Änderungen. Regeleditor in Variablen:
Weitere Informationen finden Sie unter Regeleditor für adaptive Formulare.
Sie können Variablen verwenden, um Eingaben und Ausgaben abzurufen oder das Ergebnis eines Schritts zu speichern. Der Workflow-Editor bietet zwei Arten von Workflow-Schritten:
Der Schritt "Gehe zu"oder "Aufteilen"und alle AEM Forms-Arbeitsablaufschritte unterstützen Variablen.
Die ODER-Teilung erstellt eine Verzweigung im Workflow, nach nur einer der beiden Zweige aktiv bleibt. Mit diesem Schritt können Sie bedingte Prozesspfade in einem Workflow einrichten. Sie fügen jeder Verzweigung nach Bedarf Workflow-Schritte hinzu.
Sie können Routing-Ausdruck für eine Verzweigung mit einer Regeldefinition, einem ECMA-Skript oder einem externen Skript definieren.
Sie können Variablen verwenden, um den Routing-Ausdruck mit dem Ausdruck-Editor zu definieren. Weitere Informationen zur Verwendung von Routing-Ausdrücken für den Schritt "OR-Teilung"finden Sie unter OR Split step.
In diesem Beispiel verwenden Sie vor dem Definieren des Routing-Ausdrucks example 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 oder geben Sie das ECMA-Skript an, damit Routing-Ausdruck die aktive Verzweigung auswerten können. Tippen Sie auf Verzweigung umbenennen, um einen alternativen Namen für die Verzweigung anzugeben.
Weitere Beispiele finden Sie unter Workflow-Modell erstellen.
Mit dem Befehl Gehe zu Schritt können Sie den nächsten auszuführenden Schritt im Workflow-Modell angeben, abhängig vom Ergebnis eines Routing-Ausdrucks.
Ähnlich wie beim Schritt "OR-Teilung"können Sie Routing-Ausdruck für "Goto"mithilfe einer Regeldefinition, eines ECMA-Skripts oder eines externen Skripts definieren.
Sie können Variablen verwenden, um den Routing-Ausdruck mit dem Ausdruck-Editor zu definieren. Weitere Informationen zur Verwendung von Routing-Ausdrücken für den Goto-Schritt finden Sie unter Gehe zu Schritt.
In diesem Beispiel gibt der Schritt "Weiter"den Kreditkartenantrag als nächsten Schritt an, wenn der Wert für die Variable action Need more info gleich ist.
Weitere Beispiele zur Verwendung der Regeldefinition im Schritt "Weiter"finden Sie unter Simulieren einer For-Schleife.
Alle Arbeitsablaufschritte von AEM Forms unterstützen Variablen. Weitere Informationen finden Sie unter Forms-zentrierter Arbeitsablauf unter OSGi.
Sie können die Schnittstelle MetaDataMap verwenden, um auf Variablen in Arbeitsablaufschritten zuzugreifen, die keine Variablen unterstützen.
Verwenden Sie die folgenden APIs im ECMA-Skript, um Werte für vorhandene Variablen basierend auf dem Datentyp abzurufen:
Variablendatentyp | API |
---|---|
Primitive (lang, Dublette, Boolescher Wert, Datum und Zeichenfolge) | workItem.getWorkflowData().getMetaDataMap().get(variableName, type) |
Dokument | Packages.com.adobe.aemfd.docmanager.Dokument doc = workItem.getWorkflowData().getMetaDataMap().get("docVar", Packages.com.adobe.aemfd.docmanager.Dokument.class); |
XML | Packages.org.w3c.dom.Dokument xmlObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.org.w3c.dom.Dokument.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); |
Für die Datentypen "Dokument"und "Formulardatenmodell"ist das AEM Forms-Add-On-Paket](https://helpx.adobe.com/de/aem-forms/kb/aem-forms-releases.html) erforderlich.[
Beispiel
Rufen Sie den Wert des Datentyps string mithilfe der folgenden API ab:
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
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 gehalt auf 50000.
Sie können eine API verwenden, um Variablen festzulegen und sie zum Aufrufen von Workflow-Instanzen zu übergeben.
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 gesetzt.
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 Dokument doc auf einen Pfad ("a/b/c") und legen Sie den Wert der Variablen docVar auf den im Dokument-Objekt gespeicherten Pfad fest.
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);
Entfernen Sie vor dem Löschen der Variablen alle Verweise der Variablen aus dem Workflow. Stellen Sie sicher, dass die Variable nicht im Workflow verwendet wird.
Führen Sie die folgenden Schritte aus, um eine Variable zu löschen:
Weitere Beispiele zur Verwendung von Variablen in AEM Forms Workflow-Schritten finden Sie unter Variablen in AEM.