Nesta lição, falaremos sobre escopos e referências. Isso ajudará você a tornar as regras e ações reutilizáveis e também a acessar e gerenciar dados em todo o componente.
Há dois escopos nos quais você pode declarar regras, ações e armazenar dados:
Além disso, há três escopos disponíveis para armazenar dados:
<fluxo de trabalho [ATRIBUTOS]> <contexto> [...] </contexto> \ <ações> [...] </ações> -\ <regras> --\ <rule id="menu_button_selection"> ---\ <expressão>[..] </expressão> ----\ <ações> -----|--> Escopo do fluxo de trabalho[...] ----/ </actions> ---/ </rule> --/ </rules> -/ <steps> <step id="stepA" [ATTRIBUTES]> <context> [...] </context> ----\ <rules> [...] </rules> -----|--> Etapa escopo <ações> [...] </actions> ----/ <states> <onevent> <rule ref="menu_button_selection"/> -------> Fazendo referência a uma regra do fluxo de trabalho scope <rule id="show_notification"> --\< expression>[..] </expressão> ---\ <ações> ----\ [...] -----|--> Definição direta (ainda pode fazer referência a uma ação predefinida) </actions> ----/ </rule> ---/ </onevent> </states> </step> <step id="stepB" [ATTRIBUTES]> <states> <onevent> <rule ref="menu_button_selection"/> -------> Referenciando uma regra do escopo do fluxo de trabalho</onevent>< /states>< /step> </passos> </fluxo de trabalho>
Neste exemplo:
id="menu_button_selection"
é definida no escopo do fluxo de trabalho e, em seguida, referenciada em etapa id="stepA"
e etapa id="stepB"
usando o ref
atributo.Nota: A reutilização de regras e ações torna o comportamento do componente consistente, melhora a capacidade de manutenção e minimiza a quantidade de código.
id="menu_button_selection"
for definida diretamente no escopo da etapa, ela será executada em vez de quaisquer regras predefinidas com a mesma ID no escopo do fluxo de trabalho.Observação: os IDs precisam ser exclusivos dentro de um escopo. Se você copiar e colar uma regra ou ação existente como um modelo ao criar uma nova, um erro típico é esquecer de alterar o atributo ID. Crie o hábito de alterar o ID primeiro.
Refatore nosso componente de escolha:
finish_workflow
ação no escopo global e faça referência a ela na regramenu_button_selection
regra no escopo global e faça referência a ela na etapaComponente de Download (Pré-Atribuição)
Aqui estão algumas dicas para tornar o desenvolvimento de fluxos de trabalho e componentes um pouco mais fácil:
Esse modo permite que você teste imediatamente suas alterações sem precisar publicar o fluxo de trabalho. Para obter mais informações, consulte a seção Visualizar fluxo de trabalho.
Você pode acessar o FCC e os logs do dispositivo fazendo login com o usuário sysadmin ou acessando diretamente sua pasta UBIMAX_HOME\logs. Os logs do dispositivo são enviados para o servidor periodicamente, mas você pode solicitar o upload imediato como um usuário sysadmin.
Se você ainda não tinha tudo pronto para o desenvolvimento, essa deveria ter sido a principal tarefa para este primeiro trabalho prático.
Vale ressaltar que, na definição da regra, você agora faz referência a uma ação predefinida definida no mesmo escopo. A ordem das <actions>
tags e <rules>
não importa para que isso funcione. Veja como deve ser a aparência do seu componente:
<?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="Choice component" 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: comando} == 'APPLE' || #{event:command} == 'PEAR'</expression> <actions> <action ref="finish_workflow"/> </actions> </rule>< /rules> <steps> <step id="choose" descriptor="the user selects between two options" uitemplate="ChoiceScreen"> <states> <onevent>< rule ref="menu_button_selection"/> </onevent> </states> </step> </steps> </workflow>
Componente de Download (Pós-Atribuição)
Com isso, você terminou a segunda lição. A próxima lição será sobre variáveis de dados.