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.