En variabel i en arbetsflödesmodell är ett sätt att lagra ett värde baserat på dess datatyp. Du kan sedan använda namnet på variabeln i vilket arbetsflödessteg som helst för att hämta värdet som lagras i variabeln. Du kan också använda variabelnamn för att definiera uttryck för att fatta beslut om routning.
I AEM arbetsflödesmodeller kan du:
I följande video visas hur du kan skapa, ange och använda variabler i AEM arbetsflödesmodeller:
Variabler är ett tillägg till MetaDataMap gränssnitt. Du kan använda MetaDataMap i ECMAScript för att komma åt metadata som sparats med variabler.
Du skapar variabler med hjälp av avsnittet Variabler som är tillgängliga i arbetsflödesmodellens sidospak. AEM arbetsflödesvariabler har stöd för följande datatyper:
Arbetsflöden har endast stöd för ISO8601-format för datatypsvariabler.
Ytterligare komplexa datatyper som är tillgängliga i AEM Forms-arbetsflöden finns på Variabler i AEM Forms arbetsflöden. Använd datatypen ArrayList för att skapa variabelsamlingar. Du kan skapa en ArrayList-variabel för alla primitiva och komplexa datatyper. Skapa till exempel en ArrayList-variabel och välj String som undertyp för att lagra flera strängvärden med variabeln.
Om du vill skapa en variabel
I en AEM går du till Verktyg > Arbetsflöde > Modeller.
Tryck Create och ange arbetsflödesmodellens titel och valfria namn. Markera modellen och tryck på Edit.
Tryck på variabelikonen som är tillgänglig i sidokanten av arbetsflödesmodellen och tryck på Add Variable.
I dialogrutan Lägg till variabel anger du namnet och väljer variabeltyp.
Välj datatyp från Type och ange följande värden:
Ange en valfri beskrivning för variabeln och tryck på för att spara ändringarna. Variabeln visas i listan som är tillgänglig i den vänstra rutan.
Tänk på följande när du skapar variabler:
Du kan använda steget Ange variabel för att ange värdet för en variabel och definiera i vilken ordning värdena ska anges. Variabeln ställs in i den ordning som variabelmappningarna listas i steget för att ange variabel.
Ändringar av variabelvärden påverkar bara instansen av den process i vilken ändringen sker. När ett arbetsflöde initieras och variabeldata ändras påverkar ändringarna bara den instansen av arbetsflödet. Ändringarna påverkar inte andra instanser av arbetsflödet som har initierats tidigare eller som har initierats senare.
Beroende på variabelns datatyp kan du använda följande alternativ för att ange värdet för en variabel:
Du kan också uppdatera specifika element i en JSON- eller XML-typvariabel med JSON DOT Notation eller XPATH.
Så här lägger du till mappning mellan variabler:
Välj en variabel av XML-typ som du vill lagra en XML-fil i. Fråga XML-variabeln för att ange värdet för en strängvariabel för egenskapen som är tillgänglig i XML-filen. Använd Ange XPATH för XML-variabeln fält för att definiera egenskapen som ska lagras i strängvariabeln.
I det här exemplet väljer du formdata XML-variabel som lagrar cc-app.xml -fil. Fråga formdata så att du kan ange värdet för e-postadress strängvariabel som lagrar värdet för emailAddress egenskapen finns i cc-app.xml -fil.
Använd ett uttryck för att beräkna summan av variablerna och lagra resultatet i en variabel.
I det här exemplet använder du uttrycksredigeraren för att definiera ett uttryck för att beräkna summan av tillgångskostnad och saldobelopp variabler och lagra resultatet i totalvärde variabel.
Du använder också uttryck för att beräkna värdet för en variabel i körningsmiljön. Variabler tillhandahåller en uttrycksredigerare för att definiera uttryck.
Använd uttrycksredigeraren för att:
Det baseras på redigering av adaptiva formulärregler med följande ändringar. Regelredigerare i variabler:
Mer information finns i regelredigerare för anpassningsbara formulär.
Du kan använda variabler för att hämta indata och utdata eller spara resultatet av ett steg. Arbetsflödesredigeraren innehåller två typer av arbetsflödessteg:
Steget Gå till, eller Dela, och alla AEM Forms Workflow-steg har stöd för variabler.
Med ELLER-delning skapas en delning i arbetsflödet, varefter endast en gren är aktiv. I det här steget kan du lägga in sökvägar för villkorlig bearbetning i arbetsflödet. Du kan lägga till arbetsflödessteg i varje gren efter behov.
Du kan definiera routningsuttryck för en gren med hjälp av en regeldefinition, ett ECMA-skript eller ett externt skript.
Du kan använda variabler för att definiera routningsuttrycket med hjälp av uttrycksredigeraren. Mer information om hur du använder routningsuttryck för steget ELLER Dela finns i ELLER Dela upp steg.
I det här exemplet ska du använda exempel 2 för att ange värdet för totalvärde variabel. Gren 1 är aktiv om värdet för totalvärde variabeln är större än 50000. På samma sätt kan du definiera en regel som gör grenen 2 aktiv om värdet för totalvärde variabeln är mindre än 50000.
Välj på liknande sätt en extern skriptsökväg eller ange ECMA-skriptet för routningsuttryck för att utvärdera den aktiva grenen. Tryck Rename Branch om du vill ange ett alternativt namn för grenen.
Fler exempel finns i Skapa en arbetsflödesmodell.
The Gå till steg I kan du ange nästa steg som ska köras i arbetsflödesmodellen, beroende på resultatet av ett routningsuttryck.
Ungefär som i steget ELLER Dela kan du definiera routningsuttryck för Gå till med hjälp av en regeldefinition, ett ECMA-skript eller ett externt skript.
Du kan använda variabler för att definiera routningsuttrycket med hjälp av uttrycksredigeraren. Mer information om hur du använder routningsuttryck för steget Gå till finns i Gå till steg.
I det här exemplet anger steget Gå till att visa kreditkortsansökan som nästa steg om värdet för actiontaken variabeln är lika med Behöver mer information.
Fler exempel på hur du använder regeldefinition i steget Gå till finns i Simulera en for-slinga.
Alla AEM Forms Workflow-steg har stöd för variabler. Mer information finns i Forms-centrerat arbetsflöde i OSGi.
Du kan använda MetaDataMap gränssnitt för att komma åt variabler i arbetsflödessteg som inte stöder variabler.
Om du vill hämta värden för befintliga variabler baserat på datatypen använder du följande API:er i ECMA-skriptet.
Variabeldatatyp | API |
---|---|
Primitiv (long, Double, Boolean, Date och String) | workItem.getWorkflowData().getMetaDataMap().get(variableName, type) |
XML | Packages.org.w3c.dom.Document xmlObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.org.w3c.dom.Document.class); |
JSON | Packages.com.google.gson.JsonObject jsonObject = workItem.getWorkflowData().getMetaDataMap().get(variableName, Packages.com.google.gson.JsonObject.class); |
Mer information om API:er för ytterligare komplexa variabeldatatyper som är tillgängliga i AEM Forms-arbetsflöden finns i Variabler i AEM Forms arbetsflöden.
Exempel
Hämta värdet för strängdatatypen med följande API:
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
Om du vill uppdatera värdet för en variabel använder du följande API i ECMA-skriptet.
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)
Exempel
workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)
Uppdaterar värdet för lön variabel till 50000.
Du kan använda ett API för att ange variabler och skicka dem för att anropa arbetsflödesinstanser.
workflowSession.startWorkflow I används model, wfData och metaData som argument. Använd MetaDataMap för att ange värdet för variabeln.
I det här API:t variableName variabeln är inställd på value med metaData.put(variableName, value);
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);
Ta bort alla referenser till variabeln från arbetsflödet innan du tar bort variabeln. Kontrollera att variabeln inte används i arbetsflödet.
Om du vill ta bort en variabel