Una variabile in un modello di workflow consente di memorizzare un valore in base al tipo di dati. Potete quindi utilizzare il nome della variabile in qualsiasi passaggio del flusso di lavoro per recuperare il valore memorizzato nella variabile. È inoltre possibile utilizzare nomi di variabili per definire le espressioni per l'adozione di decisioni di routing.
AEM modelli di flusso di lavoro potete:
Il seguente video illustra come creare, impostare e utilizzare le variabili in AEM modelli di flusso di lavoro:
Le variabili sono un'estensione dell'interfaccia MetaDataMap esistente. È possibile utilizzare MetaDataMap in ECMAScript per accedere ai metadati salvati utilizzando le variabili.
Per creare le variabili, utilizzate la sezione Variabili disponibile nella barra laterale del modello di workflow. AEM variabili di flusso di lavoro supportano i seguenti tipi di dati:
I flussi di lavoro supportano solo il formato ISO8601 per le variabili di tipo Data.
È necessario pacchetto aggiuntivo AEM Forms per i tipi di dati Document e Form Data Model. Utilizzate il tipo di dati ArrayList per creare raccolte di variabili. È possibile creare una variabile ArrayList per tutti i tipi di dati primitivi e complessi. Ad esempio, creare una variabile ArrayList e selezionare String come sottotipo per memorizzare più valori stringa utilizzando la variabile.
Per creare una variabile, eseguite i seguenti passaggi:
In un'istanza AEM, passare a Strumenti > Flusso di lavoro > Modelli.
Toccate Crea e specificate il titolo e un nome opzionale per il modello di workflow. Selezionare il modello e toccare Modifica.
Toccate l'icona delle variabili disponibile nella barra laterale del modello di workflow e toccate Aggiungi variabile.
Nella finestra di dialogo Aggiungi variabile, specificate il nome e selezionate il tipo di variabile.
Selezionare il tipo di dati dall'elenco a discesa Tipo e specificare i valori seguenti:
Specificate una descrizione facoltativa per la variabile e toccate per salvare le modifiche. La variabile viene visualizzata nell’elenco disponibile nel riquadro a sinistra.
Quando create delle variabili, tenete presenti le seguenti procedure:
È possibile utilizzare il passaggio Imposta variabile per impostare il valore di una variabile e definire l'ordine in cui i valori vengono impostati. La variabile viene impostata nell'ordine in cui le mappature delle variabili sono elencate nel passaggio della variabile set.
Le modifiche ai valori delle variabili interessano solo l’istanza del processo in cui avviene la modifica. Ad esempio, quando un flusso di lavoro viene avviato e i dati variabili cambiano, le modifiche interessano solo l'istanza del flusso di lavoro. Le modifiche non hanno effetto su altre istanze del flusso di lavoro avviate in precedenza o avviate successivamente.
A seconda del tipo di dati della variabile, è possibile utilizzare le seguenti opzioni per impostare il valore di una variabile:
Letterale: utilizzare l'opzione quando si conosce il valore esatto da specificare.
Espressione: utilizzare l'opzione quando il valore da utilizzare viene calcolato in base a un'espressione. L'espressione viene creata nell'editor di espressioni fornito.
Notazione punto JSON: utilizzate l'opzione per recuperare un valore da una variabile di tipo JSON o FDM.
XPATH: utilizzare l'opzione per recuperare un valore da una variabile di tipo XML.
Relativa al payload: utilizzare l'opzione quando il valore da salvare in variabile è disponibile in un percorso relativo al payload.
Percorso assoluto: utilizzate l'opzione quando il valore da salvare in variabile è disponibile in un percorso assoluto.
Potete anche aggiornare elementi specifici di una variabile di tipo JSON o XML utilizzando la notazione JSON DOT o XPATH.
Per aggiungere la mappatura tra le variabili, effettua i seguenti passaggi:
Selezionare una variabile di tipo XML per memorizzare un file XML. Eseguire una query sulla variabile XML per impostare il valore di una variabile stringa per la proprietà disponibile nel file XML. Utilizzare Specificare XPATH per il campo della variabile XML per definire la proprietà da memorizzare nella variabile stringa.
In questo esempio, selezionare una variabile formdata XML per memorizzare il file cc-app.xml. Eseguire una query sulla variabile formdata per impostare il valore per la variabile di stringa email in modo da memorizzare il valore per la proprietà emailAddress disponibile nel file cc-app.xml.
Utilizzare un'espressione per calcolare la somma delle variabili e memorizzare il risultato in una variabile.
In questo esempio, utilizzate l'editor di espressioni per definire un'espressione per calcolare la somma delle variabili assetscost e balanceamount e memorizzare il risultato nella variabile totalvalue.
È inoltre possibile utilizzare le espressioni per calcolare il valore di una variabile in fase di esecuzione. Le variabili forniscono un editor di espressioni per definire le espressioni.
Utilizzate l'editor di espressioni per:
Si basa sull'editor di regole per moduli adattivi con le seguenti modifiche. Editor di regole nelle variabili:
Per ulteriori informazioni, vedere editor di regole per moduli adattivi.
È possibile utilizzare le variabili per recuperare input e output o salvare il risultato di un passaggio. L’editor del flusso di lavoro fornisce due tipi di passaggi per il flusso di lavoro:
Il passaggio Vai a, O Dividi e tutti passaggi del flusso di lavoro AEM Forms supportano le variabili.
La divisione OR crea una divisione nel flusso di lavoro, dopo di che è attivo un solo ramo. Questo passaggio consente di introdurre i percorsi di elaborazione condizionale nel flusso di lavoro. Potete aggiungere i passaggi del flusso di lavoro a ogni ramo, a seconda delle necessità.
È possibile definire l'espressione di routing per un ramo utilizzando una definizione di regola, uno script ECMA o uno script esterno.
È possibile utilizzare le variabili per definire l'espressione di routing utilizzando l'editor di espressioni. Per ulteriori informazioni sull'utilizzo delle espressioni di routing per il passaggio di divisione OR, vedere OR Split step.
In questo esempio, prima di definire l'espressione di routing, utilizzare esempio 2 per impostare il valore per la variabile totalvalue. La diramazione 1 è attiva se il valore della variabile totalvalue è maggiore di 50000. Allo stesso modo, è possibile definire una regola per rendere attivo il ramo 2 se il valore della variabile totalvalue è inferiore a 50000.
Analogamente, selezionare un percorso di script esterno o specificare lo script ECMA per le espressioni di routing per valutare il ramo attivo. Toccate Rinomina ramo per specificare un nome alternativo per il ramo.
Per ulteriori esempi, vedere Creare un modello di workflow.
Il Passaggio di Go consente di specificare il passaggio successivo nel modello di workflow da eseguire, a seconda del risultato di un'espressione di routing.
Analogamente al passaggio di divisione OR, è possibile definire l'espressione di routing per il passaggio Goto utilizzando una definizione di regola, uno script ECMA o uno script esterno.
È possibile utilizzare le variabili per definire l'espressione di routing utilizzando l'editor di espressioni. Per ulteriori informazioni sull'utilizzo delle espressioni di routing per il passaggio Goto, vedere Passaggio di Go.
In questo esempio, il passaggio Goto specifica l'applicazione di revisione della carta di credito come passaggio successivo se il valore per la variabile actionTaka1/> è uguale a Necessità di ulteriori informazioni .
Per ulteriori esempi sull'utilizzo della definizione della regola nel passaggio Goto, vedere Simulazione di un ciclo For.
Tutti passaggi del flusso di lavoro AEM Forms supportano le variabili. Per ulteriori informazioni, consultate Flusso di lavoro Forms-centric su OSGi.
È possibile utilizzare l'interfaccia MetaDataMap per accedere alle variabili nei passaggi del flusso di lavoro che non supportano le variabili.
Utilizzate le seguenti API nello script ECMA per recuperare i valori per le variabili esistenti in base al tipo di dati:
Tipo di dati variabile | API |
---|---|
Primitive (Long, Double, Boolean, Date e String) | workItem.getWorkflowData().getMetaDataMap().get(variableName, type) |
Documento | 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); |
Modello dati modulo | 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); |
È necessario pacchetto aggiuntivo AEM Forms per i tipi di dati variabili Document e Form Data Model.
Esempio
Recuperare il valore del tipo di dati stringa utilizzando la seguente API:
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
Utilizzate la seguente API nello script ECMA per aggiornare il valore di una variabile:
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)
Esempio
workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)
aggiorna il valore della variabile pay a 50000.
Potete utilizzare un'API per impostare le variabili e passarle alle istanze del flusso di lavoro richiamate.
workflowSession. startWorkflows modello, wfData e metaData come argomenti. Utilizzate MetaDataMap per impostare il valore della variabile.
In questa API, la variabile variableName è impostata su value utilizzando 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);
Esempio
Inizializzare l'oggetto documento doc su un percorso ("a/b/c") e impostare il valore della variabile docVar sul percorso memorizzato nell'oggetto documento.
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);
Prima di eliminare la variabile, rimuovete dal flusso di lavoro tutti i riferimenti della variabile. Assicurarsi che la variabile non sia utilizzata nel flusso di lavoro.
Per eliminare una variabile, eseguite i seguenti passaggi:
Per ulteriori esempi sull'uso delle variabili passaggi del flusso di lavoro AEM Forms, vedere Variabili nei flussi di lavoro AEM.