Show Menu
SUJETS×

Variables dans les workflows AEM Forms

Une variable dans un modèle de processus est un moyen de stocker une valeur en fonction de son type de données. Vous pouvez ensuite utiliser le nom de la variable dans n’importe quelle étape du processus pour récupérer la valeur stockée dans la variable. Vous pouvez également utiliser des noms de variable pour définir des expressions pour prendre des décisions routages.
Dans les modèles de processus AEM, vous pouvez :
  • Créez une variable d’un type de données en fonction du type d’informations que vous souhaitez y stocker.
  • Définissez une valeur pour la variable à l’aide de l’étape de flux de travail Définir la variable.
  • Utilisez la variable dans toutes les étapes du flux de travail AEM Forms pour récupérer la valeur stockée et dans OU Fractionner et atteindre les étapes pour définir une expression de routage.
La vidéo suivante montre comment créer, définir et utiliser des variables dans les modèles de processus AEM :
Les variables sont une extension de l'interface existante de MetaDataMap . Vous pouvez utiliser MetaDataMap dans ECMAScript pour accéder aux métadonnées enregistrées à l’aide de variables.

Création d’une variable

Vous pouvez créer des variables à l’aide de la section Variables disponible dans le panneau latéral du modèle de flux de travail. Les variables de processus AEM prennent en charge les types de données suivants :
  • Types de données primitifs : Long, Doublon, Boolean, Date et String
  • Types de données complexes : Document , instance XML , JSON et modèle de données de formulaire.
Les Workflows ne prennent en charge que le format ISO8601 pour les variables de type Date.
Vous avez besoin d’un package de module complémentaire AEM Forms pour les types de données Document et Modèle de données de formulaire. Utilisez le type de données ArrayList pour 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, procédez comme suit :
  1. Sur une instance AEM, accédez à Outils > Processus > Modèles.
  2. 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 .
  3. Appuyez sur l’icône de variables disponible dans le panneau latéral du modèle de processus et appuyez sur Ajouter la variable .
  4. Dans la boîte de dialogue Ajouter une variable, spécifiez le nom et sélectionnez le type de la variable.
  5. Sélectionnez le type de données dans la liste déroulante Type et spécifiez les valeurs suivantes :
    • Type de données primitif : indiquez une valeur par défaut facultative pour la variable.
    • JSON ou XML - Spécifiez un chemin d’accès facultatif au schéma JSON ou XML. Le système valide le chemin d’accès au schéma lors du mappage et du stockage des propriétés disponibles dans ce schéma sur une autre variable.
    • Modèle de données de formulaire : indiquez un chemin d’accès au modèle de données de formulaire.
    • ArrayList : spécifiez un sous-type pour la collection.
  6. Spécifiez une description facultative pour la variable et appuyez sur 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 :
  • Créez autant de variables qu’un flux de travail le requiert. Toutefois, pour conserver les ressources de base de données, utilisez le nombre minimum de variables requises et réutilisez les variables dès que possible.
  • Les variables sont sensibles à la casse. Assurez-vous de référencer des variables en utilisant le même cas dans votre flux de travail.
  • Evitez d’utiliser des caractères spéciaux dans le nom de la variable

Définition d’une variable

Vous pouvez utiliser l’étape Définir la variable pour définir la valeur d’une variable et définir l’ordre dans lequel les valeurs sont définies. La variable est définie dans l’ordre dans lequel les mappages de variables sont répertoriés à l’étape set variable.
Les modifications apportées aux valeurs de variable affectent uniquement l’instance du processus dans lequel la modification se produit. Par exemple, lorsqu’un processus est lancé et que des données variables sont modifiées, les modifications affectent uniquement cette instance du processus. Les modifications n’affectent pas les autres instances du processus qui ont été lancées précédemment ou qui sont lancées ultérieurement.
En fonction du type de données de la variable, vous pouvez utiliser les options suivantes pour définir la valeur d’une variable :
  • Littéral : utilisez cette option lorsque vous connaissez la valeur exacte à spécifier.
  • Expression : Utilisez l’option lorsque la valeur à utiliser est calculée en fonction d’une expression. L’expression est créée dans l’éditeur d’expressions fourni.
  • Notation de point JSON : Utilisez l’option pour récupérer une valeur d’une variable de type JSON ou FDM.
  • XPATH : Utilisez l’option pour récupérer une valeur d’une variable de type XML.
  • Par rapport à la charge utile : Utilisez l’option lorsque la valeur à enregistrer dans la variable est disponible à un chemin d’accès relatif à la charge utile.
  • Chemin absolu : Utilisez cette option lorsque la valeur à enregistrer dans la variable est disponible à un chemin absolu.
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.

Ajouter le mappage entre les variables

Exécutez les étapes suivantes pour ajouter un mappage entre les variables :
  1. Sur la page de modification du processus, appuyez sur l’icône Etapes disponible dans le panneau latéral du modèle de processus.
  2. Faites glisser l’étape Définir la variable vers l’éditeur de flux de travaux, appuyez sur l’étape et sélectionnez (Configurer).
  3. Dans la boîte de dialogue Définir la variable, choisissez Mappage > Mappage des Ajoutes .
  4. Dans la section Variable de mappage, sélectionnez la variable à stocker, sélectionnez le mode de mappage et spécifiez une valeur à stocker dans la variable. Les modes de mappage varient en fonction du type de variable.
  5. Faites correspondre davantage de variables pour créer une expression significative. Tap to save the changes.

Exemple 1 : Requête d’une variable XML pour définir la valeur d’une variable de chaîne

Sélectionnez une variable de type XML pour stocker un fichier XML. Requête la variable XML pour définir la valeur d’une variable de chaîne pour la propriété disponible dans le fichier XML. Utilisez Spécifier XPATH pour le champ de variable XML pour 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 . Requête de la variable formdata pour définir la valeur de la variable de chaîne email afin de stocker la valeur de la propriété emailAddress disponible dans le fichier cc-app.xml.

Exemple 2 : Utiliser une expression pour stocker la valeur en fonction d’autres variables

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 de coût des actifs et de solde et de stocker le résultat dans une variable de valeur totale.

Utilisation de l’éditeur d’expressions

Vous utilisez également les expressions pour calculer la valeur d’une variable au moment de l’exécution. Les variables fournissent un éditeur d’expressions pour définir les expressions.
Utilisez l’éditeur d’expressions pour :
  • Définissez la valeur des variables à l’aide d’autres variables de processus, nombres ou expressions mathématiques.
  • Utiliser des variables de processus, une chaîne, un nombre ou une expression dans une expression mathématique
  • Ajoutez des conditions pour définir les valeurs des variables.
  • Ajoutez des opérateurs entre les conditions.
Il est basé sur l’éditeur de règles de formulaires adaptatifs avec les modifications suivantes. Éditeur de règles dans les variables :
  • Ne prend pas en charge les fonctions.
  • Ne fournit pas d’interface utilisateur au résumé des règles de vue
  • N'a pas d'éditeur de code.
  • Ne prend pas en charge l’activation et la désactivation de la valeur d’un objet.
  • Ne prend pas en charge la définition de la propriété d’un objet.
  • Ne prend pas en charge l’appel d’un service Web.
For more information, see adaptive forms rule editor .

Use a variable

Vous pouvez utiliser des variables pour récupérer les entrées et les sorties ou enregistrer le résultat d’une étape. L’éditeur de flux de travaux fournit deux types d’étapes de flux de travaux :
  • Procédure de flux de travaux avec prise en charge des variables
  • Procédure de flux de travaux sans prise en charge des variables

Procédure de flux de travaux avec prise en charge des variables

L’étape Atteindre, OU Scinder, et toutes les étapes de processus AEM Forms prennent en charge les variables.

OU Étape de fractionnement

La Division OU divise le processus et une seule branche est active par la suite. Cette étape vous permet d’ajouter des chemins de traitement conditionnels dans le workflow. Vous ajoutez des étapes de workflow à chaque branche selon vos besoins.
Vous pouvez définir l'expression d'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 d’routage à l’aide de l’éditeur d’expressions. Pour plus d’informations sur l’utilisation des expressions d’routage pour l’étape de fractionnement OU, voir OU fractionner l’étape .
Dans cet exemple, avant de définir l’expression d’routage, utilisez l’exemple 2 pour définir la valeur de la variable de valeur ​totale. La branche 1 est active si la valeur de la variable de valeur ​totale est supérieure à 50000. De même, vous pouvez définir une règle pour activer la branche 2 si la valeur de la variable de valeur ​totale 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 d’routage afin d’évaluer la branche active. Appuyez sur Renommer la branche pour spécifier un autre nom pour la branche.
Pour plus d’exemples, voir Création d’un modèle de processus.

Atteindre l’étape

The Goto Step allows you to specify the next step in the workflow model to execute, dependent on the result of a routing expression.
Tout comme l’étape de fractionnement OU, vous pouvez définir l’expression d’routage de l’étape Goto à 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 d’routage à l’aide de l’éditeur d’expressions. Pour plus d’informations sur l’utilisation des expressions d’routage pour l’étape de visite, voir Étape de visite.
Dans cet exemple, l’étape Atteindre indique la demande de carte de crédit Revoir comme étape suivante si la valeur de la variable Action est égale à Besoin de plus d’informations .
Pour plus d’exemples sur l’utilisation de la définition de règle dans l’étape Goto, voir Simulation d’une boucle For.

Procédure de flux de travaux orientée processus des formulaires

Toutes les étapes de processus AEM Forms prennent en charge les variables. For more information, see Forms-centric workflow on OSGi .

Procédure de flux de travaux sans prise en charge des variables

Vous pouvez utiliser l'interface MetaDataMap pour accéder à des variables dans les étapes de processus qui ne prennent pas en charge les variables.

Récupérer la valeur de la variable

Utilisez les API suivantes dans le script ECMA pour récupérer les valeurs des variables existantes en fonction du type de données :
Type de données variable
API
Primitif (long, Doublon, booléen, date et chaîne)
workItem.getWorkflowData().getMetaDataMap().get(variableName, type)
Document
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);
Modèle de données de formulaire
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);
Vous avez besoin d’un package de module complémentaire AEM Forms pour les types de données de variable Document et Modèle de données de formulaire.
Exemple
Récupérez 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)

Mettre à jour la valeur de la variable

Utilisez l’API suivante dans le script ECMA pour mettre à jour la valeur d’une variable :
workItem.getWorkflowData().getMetaDataMap().put(variableName, value)

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

met à jour la valeur de la variable de salaire sur 50 000.

Définir des variables pour appeler des workflows

Vous pouvez utiliser une API pour définir des variables et les transmettre pour appeler des instances de processus.
workflowSession.startWorkflow utilise model, 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 valeur à 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);

Exemple
Initialisez l’objet de document doc à un chemin d’accès ("a/b/c") et définissez la valeur de la variable docVar sur le chemin d’accès stocké dans l’objet document.
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);

Modification d’une variable

  1. Sur la page Modifier le processus, appuyez sur l’icône Variables disponible dans le panneau latéral du modèle de processus. La section Variables du volet gauche affiche toutes les variables existantes.
  2. Appuyez sur l’icône (Modifier) située en regard du nom de variable que vous souhaitez modifier.
  3. Modifiez les informations de la variable et appuyez sur pour enregistrer les modifications. Vous ne pouvez pas modifier les champs Nom et Type d’une variable.

Suppression d’une variable

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, procédez comme suit :
  1. Sur la page Modifier le processus, appuyez sur l’icône Variables disponible dans le panneau latéral du modèle de processus. La section Variables du volet gauche affiche toutes les variables existantes.
  2. Appuyez sur l’icône Supprimer en regard du nom de variable que vous souhaitez supprimer.
  3. Appuyez sur pour confirmer et supprimer la variable.

Références

Pour plus d’exemples sur l’utilisation des variables dans les étapes du flux de travail en AEM Forms, reportez-vous à la section Variables dans les workflows AEM.