Toutes les données d’un composant sont enregistrées en tant que <context> variable. Les variables peuvent être déclarées et initialisées dans l’étendue du workflow ou de l’étape du composant, en fonction de l’endroit où vous en avez besoin :

<context> 
    <param name="Titre » type="chaîne">Veuillez en choisir une</param><
/context>

Types de données disponibles : stringbool,double et . long  object

Remarque : Il est toujours recommandé de spécifier le type de données.

Exemple de composant

Utilisez l’action pour manipuler des setvar données. Cette action peut également être utilisée pour déclarer et définir des variables non déclarées.

<setvar id="next_step">
    <context_of>workflow</context_of>       
<!-- valeurs possibles : step, workflow, root, user_session,global -->
    <context_update>
        <param name="current_step_index » type="long">#{current_step} + 1</param>
        <param name="string_concat » type="string">Étape #{step_name} avec description :  #{step_description}</param>
    </context_update>
</setvar>
  • L’élément <context_of> vous permet de définir la portée dans laquelle la variable est stockée. Cette action est utilisée chaque fois que vous souhaitez stocker des données dans la portée « racine », « user_session » ou « globale ». Lorsque vous utilisez ces oscilloscopes, faites attention à la dénomination de vos variables. Assurez-vous que d’autres composants/workflows utilisant les mêmes noms de variables ne provoquent pas d’effets secondaires (en particulier si vous réutilisez des composants accédant à ces étendues)

Trucs et astuces : Lorsque vous transmettez des données entre des composants, vous devez normalement utiliser un paramètre de sortie dans votre finish_workflow action. Dans ce cas, la sortie sera disponible dans la portée de l’étape de début de votre composant suivant. N’utilisez la portée racine que si cela ne vous suffit pas et que la gestion des paramètres de sortie devient trop compliquée.

L’exemple ci-dessus montre également comment accéder aux variables de données :

Dans la context_update balise, deux variables sont définies avec la même action setvar.

  • Le premier paramètre current_step_index est défini en accédant à la variable de contexte, #{current_step} et en l’incrémentant de 1.
  • La deuxième variable string_concatmontre un exemple de concaténation de chaînes avec des variables de contexte existantes.

L’accès aux variables de données fonctionne en entourant leur nom, commençant par '#{' et se terminant par '}'.

  • Enfin, l’étendue user_session spéciale enregistrera la valeur globalement jusqu’à ce que l’utilisateur se déconnecte. Il est accessible même après que l’utilisateur a quitté le flux de travail et est entré dans le même flux de travail ou dans un autre. Il est accessible à l’aide de #{user_session::my_value}.

📌Mission

Devoir 1 : Testons le fonctionnement du contexte racine :

  • Utilisez l’action setvar pour enregistrer le choix de l’utilisateur dans une variable choiceracine .
  • Insérez un composant « Comparaison de code » dans votre flux de travail.
  • Entrez #{choice} dans le champ de saisie de la configuration du composant « Étiquettes -> Titre du composant ». Si vous exécutez le workflow, la valeur que vous avez choisie doit être affichée dans l’en-tête du composant de comparaison de code.
  • Essayez-le et assurez-vous que le choix est correctement affiché dans le composant « Comparaison de code ».

Affectation 2 : Comme décrit, le contexte racine doit être utilisé avec parcimonie et englobe les risques, en particulier lors de la réutilisation du composant dans le même flux de travail. Annulez les modifications que vous avez apportées précédemment (vous pouvez sélectionner une version antérieure dans le panneau de workflow, à côté de l’option de workflow de publication) ou modifiez le code existant.

  • Enregistrez plutôt le choix dans l’étendue du workflow.
  • Transmettez le contenu de cette variable en tant que paramètre de sortie de l’action finish_workflow .
  • Placez votre paramètre de sortie dans le panneau de configuration du composant « Comparaison de code » et testez s’il fonctionne.

Télécharger le composant (pré-affectation)

Aide et ressources

Solution Notes

Comme vous l’avez vu, vous pouvez même utiliser des variables contextuelles dans le panneau de configuration. Cela peut vous aider à configurer les composants en fonction des actions précédentes de l’utilisateur.

 Télécharger le flux de travail avec la variable racine (affectation de poste) 

 Télécharger le flux de travail avec paramètre de sortie (post-affectation)

FAQ

Question : J’ai essayé d’insérer un composant différent de « Comparaison de code », mais le titre s’affiche #{initialChoice} maintenant (ou un autre nom de variable) au lieu du contenu réel de la variable. Pourquoi?

Réponse : Tous nos composants standard ne sont pas écrits de manière à prendre en charge l’évaluation immédiate de la variable dans la mise en page. Vous pouvez modifier n’importe quel composant pour qu’il fonctionne, mais cela touche à la connaissance de l’interface utilisateur et de la configuration des composants, dont nous parlerons dans les leçons suivantes. La différence entre le composant « Comparaison de code » et d’autres est que le composant de comparaison de code insère la valeur de configuration directement dans le mappage, tandis que les autres composants initialisent une variable de contexte avec la configuration. Un moyen simple de faire en sorte que cela fonctionne pour d’autres composants est de mettre la valeur de configuration directement dans le mappage ou la mise en page, par exemple :

<mapping>
    <ui_element name="Sujet">
        <param name="content">§{configuration.labels.value.title.value}§</param>
    </ui_element>
</mapping>

Vous avez maintenant terminé la troisième leçon. La leçon suivante vous permettra d’approfondir les expressions de règles.