Une variable dans un modèle de processus permet de stocker une valeur en fonction de son type de données. Vous pouvez utiliser le nom de la variable dans n’importe quelle étape de workflow pour récupérer la valeur stockée dans la variable. Vous pouvez également utiliser des noms de variable pour définir des expressions afin de prendre des décisions de routage.
Dans des modèles de workflow AEM, vous pouvez :
La vidéo ci-dessous indique comment créer, définir et utiliser des variables dans des modèles de workflow AEM :
Les variables sont une extension de l’interface MetaDataMap. Vous pouvez utiliser MetaDataMap dans ECMAScript pour accéder aux métadonnées enregistrées à l’aide de variables.
Vous pouvez créer des variables à l’aide de la section Variables disponible dans le sidekick du modèle de processus. Les variables de workflow AEM prennent en charge les types de données suivants :
Les workflows ne prennent en charge que le format ISO8601 pour les variables de type Date.
Pour obtenir des types de données complexes supplémentaires disponibles dans les workflows d’AEM Forms, reportez-vous à la section Variables dans les workflows d’AEM Forms. Le type de données ArrayList permet de créer des collections de variables. Vous pouvez créer une variable ArrayList pour tous les types de données primitifs et complexes. Par exemple, créez une variable ArrayList et sélectionnez String comme sous-type pour stocker plusieurs valeurs de chaîne à l’aide de la variable.
Pour créer une variable,
Sur une instance AEM, accédez à Outils > Workflows > Modèles.
Appuyez sur Créer et spécifiez le titre et un nom facultatif pour le modèle de processus. Sélectionnez le modèle et appuyez sur Modifier.
Appuyez sur l’icône de variables disponible dans le sidekick du modèle de processus et appuyez sur Ajouter une variable.
Dans la boîte de dialogue Ajouter une variable, spécifiez le nom et sélectionnez le type de la variable.
Sélectionnez le type de données dans la liste déroulante Type et spécifiez les valeurs suivantes :
Spécifiez une description facultative pour la variable et appuyez sur l’ pour enregistrer les modifications. La variable s’affiche dans la liste disponible dans le volet de gauche.
Lorsque vous créez des variables, prenez en compte les bonnes pratiques suivantes :
Vous pouvez utiliser l’étape Définir une variable pour définir la valeur d’une variable et l’ordre de définition des valeurs. La variable est définie dans l’ordre dans lequel les mappages de variables sont répertoriés à l’étape Définir une variable.
Les modifications apportées aux valeurs de variable n’affectent que l’instance du processus concernée par la modification. Par exemple, lorsqu’un processus est lancé et que les données de variable sont modifiées, les modifications n’affectent que cette instance du processus. Les modifications n’affectent pas les autres instances du processus lancées précédemment ou ultérieurement.
En fonction du type de données de la variable, vous pouvez définir la valeur d’une variable à l’aide de l’une des options suivantes :
Vous pouvez également mettre à jour des éléments spécifiques d’une variable de type JSON ou XML à l’aide de la notation JSON DOT ou XPATH.
Pour ajouter un mappage entre les variables, procédez comme suit :
Sélectionnez une variable de type XML que vous souhaitez stocker dans un fichier XML. Exécutez une requête dans la variable XML pour définir la valeur d’une variable de chaîne pour la propriété disponible dans le fichier XML. Le champ Spécifier XPATH pour la variable XML permet de définir la propriété à stocker dans la variable de chaîne.
Dans cet exemple, sélectionnez une variable XML formdata pour stocker le fichier cc-app.xml. Exécutez la requête de la variable formdata pour définir la valeur de la variable de chaîne emailaddress afin de stocker la valeur de la propriété emailAddress disponible dans le fichier cc-app.xml.
Utilisez une expression pour calculer la somme des variables et stocker le résultat dans une variable.
Dans cet exemple, utilisez l’éditeur d’expressions pour définir une expression afin de calculer la somme des variables assetcost et balanceamount et de stocker le résultat dans une variable totalvalue.
Vous utilisez également des expressions pour calculer la valeur d’une variable lors de l’exécution. Les variables fournissent un éditeur d’expressions pour définir les expressions.
Utilisez l’éditeur d’expressions pour :
Il repose sur l’éditeur de règles de formulaires adaptatifs avec les modifications suivantes. L’éditeur de règles dans les variables :
Pour en savoir plus, consultez la section Éditeur de règles de formulaires adaptatifs.
Vous pouvez utiliser des variables pour extraire des entrées et des sorties ou enregistrer le résultat d’une étape. L’éditeur de processus fournit deux types d’étapes de processus :
L’étape d’accès, l’étape de Division OU et toutes les étapes de workflow d’AEM Forms prennent en charge les variables.
L’étape de division OU divise le processus et une seule branche est active par la suite. Cette étape permet d’ajouter des chemins de traitement conditionnels dans le processus. Vous ajoutez des étapes de processus à chaque branche selon vos besoins.
Vous pouvez définir l’expression de routage d’une branche à l’aide d’une définition de règle, d’un script ECMA ou d’un script externe.
Vous pouvez utiliser des variables pour définir l’expression de routage à l’aide de l’éditeur d’expressions. Pour plus d’informations sur l’utilisation des expressions de routage pour l’étape de division OU, voir Étape de division OU.
Dans cet exemple, avant de définir l’expression de routage, utilisez exemple 2 pour définir la valeur de la variable totalvalue. La branche 1 est principale si la valeur de la variable totalvalue est supérieure à 50 000. De même, vous pouvez définir une règle pour faire de la branche 2 la branche principale si la valeur de la variable totalvalue est inférieure à 50 000.
De même, sélectionnez un chemin d’accès au script externe ou spécifiez le script ECMA pour les expressions de routage afin d’évaluer la branche principale. Appuyez sur Renommer la branche pour spécifier un autre nom pour la branche.
Pour consulter d’autres exemples, consultez la section Créer un modèle de workflow.
L’étape Goto permet de spécifier la prochaine étape du modèle de workflow à exécuter, selon le résultat d’une expression de routage.
Tout comme l’étape de division OU, vous pouvez définir l’expression de routage de l’étape d’accès à l’aide d’une définition de règle, d’un script ECMA ou d’un script externe.
Vous pouvez utiliser des variables pour définir l’expression de routage à l’aide de l’éditeur d’expressions. Pour plus d’informations sur l’utilisation des expressions de routage pour l’étape d’accès, voir Étape d’accès.
Dans cet exemple, l’étape d’accès spécifie la demande de vérification de la carte de crédit comme étape suivante si la valeur de la variable actiontaken est égale à Informations supplémentaires nécessaires.
Pour plus d’exemples sur l’utilisation de la définition de règle dans l’étape d’accès, voir Simulation d’une boucle For.
Toutes les étapes de processus AEM Forms prennent en charge les variables. Pour plus d’informations, voir Processus orientés formulaire sur OSGi.
Vous pouvez utiliser l’interface MetaDataMap pour accéder à des variables dans des étapes de processus qui ne prennent pas en charge les variables.
Pour récupérer des valeurs pour des variables existantes en fonction du type de données, utilisez les API suivantes dans le script ECMA.
Type de données de la variable | API |
---|---|
Primitif (long, doublon, booléen, date et chaîne) | 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); |
Pour plus d’informations sur les API pour d’autres types de données de variables complexes disponibles dans les workflows AEM Forms, consultez la section Variables dans les workflows AEM Forms.
Exemple
Extrayez la valeur du type de données de chaîne à l’aide de l’API suivante :
workItem.getWorkflowData().getMetaDataMap().get(accname, Packages.java.lang.String)
Pour mettre à jour la valeur d’une variable, utilisez l’API suivante dans le script ECMA.
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)
Exemple
workItem.getWorkflowData().getMetaDataMap().put(salary, 50000)
Met à jour la valeur de la variable salaire sur 50 000.
Vous pouvez utiliser une API pour définir des variables et les transmettre pour appeler des instances de processus.
workflowSession.startWorkflow utilise le modèle, wfData et metaData comme arguments. Utilisez MetaDataMap pour définir la valeur de la variable.
Dans cette API, la variable variableName est définie sur value à l’aide de 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);
Avant de supprimer la variable, supprimez toutes les références de la variable du processus. Assurez-vous que la variable n’est pas utilisée dans le processus.
Pour supprimer une variable :