Variable ArrayList dans un workflow AEM

Des variables de type ArrayList ont été introduites dans AEM Forms 6.5. Un cas d’utilisation courant de l’utilisation de la variable ArrayList consiste à définir des itinéraires personnalisés à utiliser dans AssignTask.

Pour utiliser la variable ArrayList dans un workflow AEM, vous devez créer un formulaire adaptatif qui génère des éléments répétés dans les données envoyées. Une pratique courante consiste à définir un schéma contenant un élément de tableau. Pour les besoins de cet article, j’ai créé un schéma JSON simple contenant des éléments de tableau. Le cas d’utilisation est celui d’une personne de l’entreprise qui remplit un rapport de dépenses. Dans le rapport de dépenses, nous capturons le nom de la personne responsable de l’émetteur ou de l’émettrice ainsi que celui de la personne responsable de la première personne. Les noms des personnes responsables sont stockés dans un tableau appelé managerchain. La capture d’écran ci-dessous montre le formulaire de rapport de dépenses et les données d’envoi du formulaire adaptatif.

expensereport

Voici les données provenant de l’envoi du formulaire adaptatif. Le formulaire adaptatif était basé sur le schéma JSON. Les données liées à ce schéma sont stockées sous l’élément de données de l’élément afBoundData. La chaîne de gestion « managerchain » est un tableau et nous devons remplir la liste ArrayList avec l’élément « name » de l’objet dans le tableau managerchain.

{
    "afData": {
        "afUnboundData": {
            "data": {
                "numericbox_2762582281554154833426": 700
            }
        },
        "afBoundData": {
            "data": {
                "Employee": {
                    "Name": "Conrad Simms",
                    "Department": "IT",
                    "managerchain": [{
                        "name": "Gloria Rios"
                    }, {
                        "name": "John Jacobs"
                    }]
                },
                "expense": [{
                    "description": "Hotel",
                    "amount": 300
                }, {
                    "description": "Air Fare",
                    "amount": 400
                }]
            }
        },
        "afSubmissionInfo": {
            "computedMetaInfo": {},
            "stateOverrides": {},
            "signers": {},
            "afPath": "/content/dam/formsanddocuments/helpx/travelexpensereport",
            "afSubmissionTime": "20190402102953"
            }
        }
}

Pour initialiser la variable ArrayList de la chaîne de sous-type , vous pouvez utiliser la notation de point JSON ou le mode de mappage XPath. La capture d’écran suivante vous montre comment renseigner une variable ArrayList appelée CustomRoutes à l’aide de la notation de point JSON. Assurez-vous de pointer vers un élément dans un objet tableau, comme illustré dans la capture d’écran ci-dessous. Nous renseignons le tableau CustomRoutes ArrayList avec les noms de l’objet de tableau managerchain.
CustomRoutes ArrayList est ensuite utilisé pour renseigner les itinéraires dans le composant AssignTask
customroutes
Une fois que la variable CustomRoutes ArrayList est initialisée avec les valeurs des données envoyées, les itinéraires du composant AssignTask sont ensuite renseignés à l’aide de la variable CustomRoutes. La capture d’écran ci-dessous montre les itinéraires personnalisés dans une tâche d’affectation
asingtask

Pour tester ce workflow sur votre système, veuillez procéder comme suit :

  • Téléchargez et enregistrez le fichier ArrayListVariable.zip dans votre système de fichiers.
  • Importez le fichier zip à l’aide du gestionnaire de modules AEM.
  • Ouvrez le formulaire TravelExpenseReport.
  • Saisissez quelques dépenses et les deux noms des personnes responsables.
  • Appuyez sur le bouton Envoyer.
  • Ouvrez votre boîte de réception.
  • Une nouvelle tâche intitulée « Assigner à la personne chargée de l’administration des dépenses » devrait s’afficher.
  • Ouvrez le formulaire associé à la tâche.
  • Vous devriez voir deux itinéraires personnalisés avec les noms des personnes responsables.
    Explorer le workflow ReviewExpenseReportWorkflow. Ce workflow utilise la variable ArrayList, la variable de type JSON et l’éditeur de règles dans le composant Division OU
recommendation-more-help
experience-manager-learn-help-forms