Variabler i Forms-centrerade AEM variables-in-aem-forms-workflows

Version
Artikellänk
AEM 6.5
Klicka här
AEM as a Cloud Service
Den här artikeln

En variabel i en arbetsflödesmodell är ett sätt att lagra ett värde baserat på dess datatyp. Du kan 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:

  • Skapa en variabel för en datatyp baserat på den informationstyp som du vill lagra i den.
  • Ange ett värde för variabelnmed hjälp av arbetsflödessteget Ange variabel.
  • Använd variabelni alla AEM Forms arbetsflödessteg för att hämta det lagrade värdet och i stegen ELLER Dela och Gå till för att definiera ett routningsuttryck.

I följande video visas hur du kan skapa, ange och använda variabler i AEM arbetsflödesmodeller:

Variabler är ett tillägg till det befintliga MetaDataMap -gränssnittet. Du kan använda MetaDataMap i ECMAScript för att komma åt metadata som sparats med variabler.

Skapa en variabel create-a-variable

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:

  • Primitiva datatyper: Long, Double, Boolean, Date och String
  • Komplexa datatyper: Dokument, XML, JSON och Form Data Model-instans.
NOTE
Arbetsflöden har endast stöd för ISO8601-format för datatypsvariabler.

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.

Skapa en variabel:

  1. I en AEM går du till Verktyg Homerikon > Arbetsflöde > Modeller.

  2. Välj Create och ange titeln och ett valfritt namn för arbetsflödesmodellen. Markera modellen och välj Edit.

  3. Välj variabelikonen som är tillgänglig i sidosparken för arbetsflödesmodellen och välj Add Variable.

    Lägg till variabel

  4. I dialogrutan Lägg till variabel anger du namnet och väljer variabeltyp.

  5. Välj datatypen i listrutan Type och ange följande värden:

    • Primitiv datatyp - Ange ett valfritt standardvärde för variabeln.
    • JSON eller XML - Ange en JSON- eller XML-schemasökväg (tillval). Systemet validerar schemasökvägen när egenskaper som är tillgängliga i schemat mappas och lagras till en annan variabel.
    • Formulärdatamodell (FDM) - Ange en sökväg till en formulärdatamodell.
    • ArrayList - Ange en undertyp för samlingen.
  6. Ange en valfri beskrivning av variabeln och välj made_icon 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:

  • Skapa så många variabler som ett arbetsflöde kräver. Om du vill spara databasresurser bör du dock använda det minsta antalet variabler som krävs och återanvända variabler när det är möjligt.
  • Variabler är skiftlägeskänsliga. Se till att du refererar till variabler med samma skiftläge i arbetsflödet.
  • Undvik att använda specialtecken i namnet på variabeln

Ange en variabel set-a-variable

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 visas 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:

  • Literal: Använd alternativet när du vet exakt vilket värde som ska anges. Du kan också använda alternativet för att ange en JSON i form av en sträng.

  • Uttryck: Använd alternativet när värdet som ska användas beräknas baserat på ett uttryck. Uttrycket skapas i angiven uttrycksredigerare.

  • JSON-punktnotation: Använd alternativet för att hämta ett värde från en JSON- eller FDM-typvariabel.

  • XPATH: Använd alternativet för att hämta ett värde från en XML-typvariabel.

  • Relativt till nyttolast: Använd alternativet när värdet som ska sparas i variabeln är tillgängligt på en sökväg som är relativ till nyttolasten.

  • Absolut sökväg: Använd alternativet när värdet som ska sparas i variabeln är tillgängligt på en absolut sökväg.

Du kan också uppdatera specifika element i en JSON- eller XML-typvariabel med JSON DOT Notation eller XPATH.

Lägg till mappning mellan variabler add-mapping-between-variables

Så här lägger du till mappning mellan variabler:

  1. På arbetsflödets redigeringssida väljer du ikonen Steg som är tillgänglig i arbetsflödesmodellens sidospark.
  2. Dra och släpp Set Variable-steget till arbetsflödesredigeraren, markera steget och välj configure_icon (Konfigurera).
  3. I dialogrutan Ange variabel väljer du Mapping > Add Mapping.
  4. I avsnittet Mappningsvariabel markerar du variabeln som data ska lagras i, väljer mappningsläget och anger ett värde som ska lagras i variabeln. Mappningslägena varierar beroende på variabeltypen.
  5. Mappa fler variabler för att skapa ett meningsfullt uttryck. Välj made_icon om du vill spara ändringarna.

Exempel 1: Fråga en XML-variabel för att ange ett värde för en strängvariabel example-query-an-xml-variable-to-set-value-for-a-string-variable

Välj en variabel av XML-typ för att lagra en XML-fil. 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 fältet XML-variabel för att definiera den egenskap som ska lagras i strängvariabeln.

I det här exemplet väljer du en formdata XML-variabel som ska lagra filen cc-app.xml. Fråga variabeln formdata om du vill ange värdet för strängvariabeln emailaddress för att lagra värdet för egenskapen emailAddress som finns i filen cc-app.xml .

Exempel 2: Använd ett uttryck för att lagra värden baserat på andra variabler example2

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 variablerna assetsCost och balanceamount och lagra resultatet i variabeln totalValue .

Använda uttrycksredigeraren use-expression-editor

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:

  • Ange värdet för variabler med andra arbetsflödesvariabler, siffror eller matematiska uttryck.
  • Använd arbetsflödesvariabler, sträng, tal eller ett uttryck i ett matematiskt uttryck
  • Lägg till villkor för att ange värden för variabler.
  • Lägg till operatorer mellan villkor.

Uttrycksredigeraren

Det bygger på den adaptiva regelredigeraren Forms med följande ändringar. Regelredigerare i variabler:

  • Har inte stöd för funktioner.
  • Inget användargränssnitt för att visa en sammanfattning av regler
  • Har ingen kodredigerare.
  • Stöder inte aktivering och inaktivering av ett objekts värde.
  • Stöder inte inställning av ett objekts egenskap.
  • Stöder inte anrop till en webbtjänst.

Mer information finns i Anpassad regelredigerare för Forms.

Använda en variabel use-a-variable

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:

  • Arbetsflödessteg med stöd för variabler
  • Arbetsflödessteg utan stöd för variabler

Arbetsflödessteg med stöd för variabler workflow-steps-with-support-for-variables

Steget Gå till eller Dela och alla AEM Forms arbetsflödessteg har stöd för variabler.

ELLER Dela upp steg or-split-step

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 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 steg.

I det här exemplet använder du example 2 för att ange värdet för variabeln totalvalue innan du definierar routningsuttrycket. Gren 1 är aktiv om värdet för variabeln totalvalue ä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 variabeln totalvalue ä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. Välj Rename Branch om du vill ange ett alternativt namn för grenen.

Gå till steg go-to-step

Med Gå till steg kan du ange nästa steg i arbetsflödesmodellen som ska köras, 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.

Gå till regel

I det här exemplet anger Gå till-steget Granska kreditkortsansökan som nästa steg om värdet för variabeln actiontaken är lika med Behöver mer information.

Mer exempel på hur du använder regeldefinitionen i steget Gå till finns i Simulera en For-slinga.

Forms-centrerade arbetsflödessteg forms-workflow-centric-workflow-steps

Alla AEM Forms-arbetsflödessteg har stöd för variabler. Mer information finns i Forms-centrerat arbetsflöde i OSGi.

Arbetsflödessteg utan stöd för variabler workflow-steps-without-support-for-variables

Du kan använda gränssnittet MetaDataMap för att komma åt variabler i arbetsflödessteg som inte stöder variabler.

Hämta variabelvärdet retrieve-the-variable-value

Använd följande API:er i ECMA-skriptet för att hämta värden för befintliga variabler baserat på datatypen:

Variabeldatatyp
API
Primitiv (long, Double, Boolean, Date och String)
workItem.getWorkflowData().getMetaDataMap().get(variableName, type)
Dokument
Packages.com.adobe.aemfd.docmanager.Document doc = workItem.getWorkflowData().getMetaDataMap("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);
FDM (Form Data Model)
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);

Exempel

Hämta värdet för strängdatatypen med följande API:

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

Uppdatera variabelvärdet update-the-variable-value

Använd följande API i ECMA-skriptet för att uppdatera värdet för en variabel:

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

Exempel

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

Uppdaterar värdet för variabeln lön till 50000.

Ange variabler för att starta arbetsflöden apiinvokeworkflow

Du kan använda ett API för att ange variabler och skicka dem för att anropa arbetsflödesinstanser.

workflowSession.startWorkflow använder modell, wfData och metaData som argument. Använd MetaDataMap för att ange värdet för variabeln.

I detta API är variabeln variableName 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);

Exempel

Initiera dokumentobjektet doc till en sökväg ("a/b/c") och ange värdet för variabeln docVar till sökvägen som lagras i dokumentobjektet.

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);

Redigera en variabel edit-a-variable

  1. På sidan Redigera arbetsflöde väljer du ikonen Variabler som är tillgänglig i arbetsflödesmodellens sidokikon. I avsnittet Variabler i den vänstra rutan visas alla befintliga variabler.
  2. Markera ikonen redigera (redigera) bredvid variabelnamnet som du vill redigera.
  3. Redigera variabelinformationen och välj made_icon för att spara ändringarna. Du kan inte redigera fälten Name och Type för en variabel.

Ta bort en variabel delete-a-variable

Ta bort alla referenser till variabeln från arbetsflödet innan du tar bort variabeln. Kontrollera att variabeln inte används i arbetsflödet.

Ta bort en variabel:

  1. På sidan Redigera arbetsflöde väljer du ikonen Variabler som är tillgänglig i arbetsflödesmodellens sidokikon. I avsnittet Variabler i den vänstra rutan visas alla befintliga variabler.
  2. Välj ikonen Ta bort bredvid variabelnamnet som du vill ta bort.
  3. Välj made_icon för att bekräfta och ta bort variabeln.

Referenser references

Mer exempel på hur du använder variabler i AEM Forms arbetsflödessteg finns i Variabler i AEM.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab