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 : string
, bool
,double
et . long
object
Remarque : Il est toujours recommandé de spécifier le type de données.
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>
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.
current_step_index
est défini en accédant à la variable de contexte, #{current_step}
et en l’incrémentant de 1.string_concat
montre 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 '}'.
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}
.Devoir 1 : Testons le fonctionnement du contexte racine :
setvar
pour enregistrer le choix de l’utilisateur dans une variable choice
racine .#{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.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.
finish_workflow
.Télécharger le composant (pré-affectation)
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)
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.