Dans cette leçon, nous allons parler des champs d’application et des références. Ceux-ci vous aideront à rendre les règles et les actions réutilisables, ainsi qu’à accéder aux données et à les gérer dans l’ensemble de votre composant.
Il existe deux étendues dans lesquelles vous pouvez déclarer des règles, des actions et stocker des données :
En outre, trois étendues sont disponibles pour stocker les données :
<workflow [ATTRIBUTS]> <context> [...] </context> \ <actions> [...] </actions> -\ <rules> --\ <rule id="menu_button_selection"> ---\ <expression>[..] </expression> ----\ <actions> -----|--> Portée du workflow[...] ----/ </actions> ---/ </rule> --/ </rules> -/ <steps> <step id="stepA » [ATTRIBUTS]> <context> [...] </context> ----\ <rules> [...] </rules> -----|--> Step scope <actions> [...] </actions> ----/ <states> <onevent> <rule ref="menu_button_selection"/> -------> Référencement d’une règle à partir de l’étendue du workflow<rule id="show_notification"> --\ <expression>[..] </expression> ---\ <actions> ----\ [...] -----|--> Définition directe (peut toujours faire référence à une action prédéfinie) </actions> ----/ </rule> ---/ </onevent> </states> </step>< step id="stepB » [ATTRIBUTES]> <states> <onevent> <rule ref="menu_button_selection"/> -------> Référencement d’une règle à partir de l’étendue du workflow </onevent> </states> </step> </steps> </workflow>
Dans cet exemple :
id="menu_button_selection"
est définie dans l’étendue du workflow, puis référencée à la fois dans l’étape id="stepA"
et l’étapeid="stepB"
à l’aide de l’attribut. ref
Remarque : La réutilisation des règles et des actions permet de rendre le comportement de votre composant cohérent, d’améliorer la maintenabilité et de réduire la quantité de code.
id="menu_button_selection"
est directement définie dans la portée de l’étape, elle sera exécutée à la place des règles prédéfinies avec le même ID dans la portée du workflow.Remarque : Les ID doivent être uniques au sein d’une étendue. Si vous copiez et collez une règle ou une action existante en tant que modèle lors de la création d’une nouvelle règle, une erreur typique est d’oublier de modifier l’attribut ID. Prenez l’habitude de changer d’abord l’identifiant.
Refactoriser notre composant de choix :
finish_workflow
dans la portée globale et référencez-la dans la règlemenu_button_selection
règle dans la portée globale et référencez-la dans l’étapeTélécharger le composant (pré-affectation)
Voici quelques conseils pour faciliter le développement de workflows et de composants :
Ce mode vous permet de tester immédiatement vos modifications sans avoir à publier le workflow. Pour plus d’informations, consultez la section Aperçu du flux de travail.
Vous pouvez accéder aux journaux FCC et de l’appareil en vous connectant avec l’utilisateur sysadmin ou en accédant directement à votre dossier UBIMAX_HOME\logs. Les journaux de l’appareil sont envoyés régulièrement au serveur, mais vous pouvez demander un téléchargement immédiat en tant qu’administrateur système.
Si vous n’aviez pas encore tout mis en place pour le développement, cela aurait dû être la tâche principale de cette première mission pratique.
Il peut être intéressant de noter que dans la définition de la règle, vous faites désormais référence à une action prédéfinie définie dans la même étendue. L’ordre des balises et <rules>
n’a pas d’importance <actions>
pour que cela fonctionne. Voici à quoi devrait ressembler votre composant :
< ?xml version="1.0 » encoding="UTF-8 » standalone="no » ?> <workflow xmlns :xsi="http://www.w3.org/2001/XMLSchema-instance » wfd_version="1.0 » reporting="false" id="choice » name="choice » descriptor="Composant de choix » startstep="choose" xsi :noNamespaceSchemaLocation= ».. /.. /.. /configuration/workflow.xsd"> <actions> <finish_workflow id="finish_workflow"> <output> <param name="selected_button » type="string">#{event :command}</param> </output> </finish_workflow> </actions> <rules> <rule id="menu_button_selection"> <expression>#{event : commande} == 'POMME' || #{event :command} == 'PEAR'</expression> <actions> <action ref="finish_workflow"/> </actions> </rule> </rules>< steps> <step id="choose » descriptor="l’utilisateur choisit entre deux options » uitemplate="ChoiceScreen"> <states> <onevent> <rule ref="menu_button_selection"/> </onevent> </states> </step> </steps> </workflow>
Télécharger le composant (post-affectation)
Avec cela, vous avez terminé la deuxième leçon. La prochaine leçon portera sur les variables de données.