Fluxos de trabalho do computador de estado

Um computador de estado é um paradigma conhecido para programas desenvolvimento. A atividade de StateMachine , juntamente com State, Transition, e outras atividades pode ser usada para criar programas de fluxo de trabalho do computador de estado. Este tópico fornece uma visão geral de criar fluxos de trabalho do computador de estado.

Visão geral de fluxo de trabalho do computador de estado

Fluxos de trabalho do computador de estado fornecem um estilo modelagem com que você pode modelar seu fluxo de trabalho em uma maneira de baseada. Uma atividade de StateMachine contém os estados e as transições que compõem a lógica do computador de estado, e pode ser usada em qualquer lugar uma atividade pode ser usada. Há várias classes no runtime do computador de estado:

Para criar um fluxo de trabalho da máquina de estado, estados são adicionados a uma atividade StateMachine e transições são controladas usado o fluxo entre estados. A captura de tela a seguir, do Tutorial de introdução, da etapa Como criar um fluxo de trabalho da máquina de estado, mostra um fluxo de trabalho da máquina de estado com três estados e três transições. Inicializar Destino é o estado inicial e representa o primeiro estado no fluxo de trabalho. Ele é designado pela linha que resulta nele desde o nó Iniciar. O estado final no fluxo de trabalho é chamado FinalState, e representa o ponto em que o fluxo de trabalho foi concluído.

Illustration that shows the completed state machine workflow.

Um fluxo de trabalho do computador de estado deve ter um e somente um estados iniciais, e pelo menos um estados finais. Cada estado que não é um estado final deve ter pelo menos uma transição. As seções a seguir abordam como criar e configurar de estados e das transições.

Criando e configurando estados

State representa um estado em que um computador de estado pode estar. Para adicionar State a um fluxo de trabalho, arraste o designer de atividade de Estado da seção Máquina de Estado da Caixa de Ferramentas e solte-o em uma atividade StateMachine na superfície do Designer de Fluxo de Trabalho do Windows.

Screenshot of the State Machine section of the Toolbox.

Para configurar um estado como Estado inicial, clique com o botão direito do mouse no estado e selecione Definir como estado inicial. Além disso, se não houver nenhum estado inicial atual, o estado inicial poderá ser designado arrastando uma linha do nó Iniciar na parte superior de fluxo de trabalho até o estado desejado. Quando uma atividade StateMachine é descartada no designer de fluxo de trabalho, ela é pré-configurada com um estado inicial chamado State1. Um fluxo de trabalho do computador de estado deve ter um e somente um estados iniciais.

Um estado que representa um estado de terminação em um computador de estado é chamado um estado final. Um estado final é um estado que tem sua propriedade de IsFinal definida como true, não tem nenhuma atividade de Exit , e nenhuma transição que se origina delas. Para adicionar um estado final a um fluxo de trabalho, arraste o designer de atividade FinalState da seção Máquina de Estado da Caixa de Ferramentas e solte-em uma atividade StateMachine na superfície do Designer de Fluxo de Trabalho do Windows. Um fluxo de trabalho do computador de estado deve ter pelo menos um estado final.

Configurando ações de entrada e de saída

Um estado pode ter Entry e uma ação de Exit . (O estado de configurado como um estado final pode ter apenas uma ação de entrada). Quando uma instância de fluxo de trabalho entra em um estado, todas as atividades em ação de entrada são executadas. Quando a ação de entrada for concluída, os gatilhos para as transições de estado serão agendados. Quando uma transição para outro estado é confirmada, as atividades em ação de saída são executadas, mesmo se o estado faz a transição de volta ao mesmo estado. Depois que a ação de saída for concluída, as atividades na ação da transição serão executadas, será feita a transição para o novo estado e suas ações de entrada serão agendadas.

Observação

Para depurar um fluxo de trabalho do computador de estado, pontos de interrupção podem ser colocados na atividade e os estados do computador de estado da raiz no fluxo de trabalho do computador de estado. Os pontos de interrupção não podem ser colocados diretamente nas transições, mas podem ser colocados em todas as atividades contidas nos estados e as transições.

Criando e configurando as transições

Todos os estados precisam ter pelo menos uma transição, exceto pelo estado final, que não tem nenhuma transição. Transições podem ser adicionadas após um estado é adicionado a um fluxo de trabalho do computador de estado, ou podem ser criadas como o estado são soltas.

Para adicionar um State e criar uma transição em uma etapa, arraste uma atividade de Estado da seção Máquina de Estado da Caixa de Ferramentas e passe o mouse sobre outro estado no designer de fluxo de trabalho. Quando State arrastado está sobre um outro State, quatro triângulos aparecerão em torno do outro State. Se State é solto em um dos quatro triângulos, é adicionado ao computador de estado e uma transição é criada de origem State ao destino solto State. Para obter mais informações, consulte Designer de atividade de transição.

Para criar uma transição após um estado é adicionado, existem duas opções. A primeira opção é arraste o estado da superfície do designer de fluxo de trabalho e focalizar-lo sobre um estado existente e solte-o em um dos pontos da operação. Isso é semelhante ao método descrito na seção anterior. Você pode também passa o mouse sobre o estado desejado de origem, e arraste uma linha para o estado desejado de destino.

Observação

Um único estado em um computador de estado pode ter até 76 transições criadas utilizando o designer de fluxo de trabalho. O limite nas transições para um estado para fluxos de trabalho criados fora de designer é delimitado somente por recursos do sistema.

Uma transição pode ter Trigger, Condition, e Action. O Trigger de uma transição é agendado quando a ação Entry do estado de origem da transição é concluída. Normalmente Trigger é uma atividade que espera qualquer tipo de evento ocorra, mas pode ser qualquer atividade, ou nenhuma atividade de todo. Uma vez que a atividade de Trigger estiver concluída, Condition, se presentes, é avaliada. Se não houver nenhuma atividade Trigger, o Condition será avaliado imediatamente. Se a condição for avaliada como false, a transição será cancelada e a atividade Trigger para todas as transições de estado será reagendada. Se houver outras transições que compartilham o mesmo estado de origem que a transição atual, essas ações Trigger também serão canceladas e reagendadas. Se Condition avalia a true, ou não há nenhuma condição, então a ação de Exit de estado de origem é executada, e Action de transição é executado em seguida. Quando Action for concluído, o controle passará para o estado de Destino

Faz a transição que compartilham um disparador comum é conhecido como o disparador compartilhado transições. Cada transição em um grupo de transições compartilhadas do disparador tem o mesmo disparador, mas Condition e uma ação exclusivos. Para adicionar ações adicionais para uma transição e criar uma transição compartilhada, clique no círculo que indica o início de transição desejada e arraste-o para estado desejado. A nova transição compartilhar um disparador mesmo que a transição inicial, mas terá uma condição e uma ação exclusivos. As transições compartilhadas também podem ser criadas de dentro do designer de transição clicando em Adicionar transição de gatilho compartilhado na parte inferior do designer de transição e selecionando o estado desejado de destino no menu suspenso Estados disponíveis para conexão.

Observação

Observe que se Condition de uma transição for avaliada como False (ou todas as condições de uma transição do gatilho compartilhada for avaliada como False), a transição não ocorrerá e todos os gatilhos para todas as transições de estado serão reprogramados.

Para obter mais informações sobre como criar fluxos de trabalho da máquina de estado, consulte Como criar um fluxo de trabalho da máquina de estado, Designer de atividade de StateMachine, Designer de atividade de estado, Designer de atividade de FinalState e Designer de atividade de transição.

Terminologia do computador de estado

Esta seção define o vocabulário do computador de estado usado em todo este tópico.

Estado
A unidade básica que compõem um computador de estado. Um computador de estado pode estar em um estado em todas as hora.

Ação de entrada
Uma atividade executada ao inserir no estado

Ação de saída
Uma atividade executada quando deixar o estado

Transição
Uma relação direcionada entre dois estados que representa a resposta completa de uma máquina de estado a uma ocorrência de um evento de um tipo específico.

Transição compartilhada
Uma transição que compartilhar um estado de origem e o disparador com um ou mais faz a transição, mas tem uma condição e uma ação exclusivos.

Gatilho
Uma atividade disparando que faz com que uma transição ocorre.

Condição
Uma restrição que deve ser avaliada como true após o gatilho ocorrer para que a transição seja concluída.

Ação de transição
Uma atividade que é executada ao executar uma determinada transição.

Transição condicional
Uma transição com uma condição explícita.

Dica transição
Uma transição que transita de um estado para si mesma.

Estado Inicial
Um estado que representa o ponto de partida da máquina de estado.

Estado final
Um estado que representa a conclusão da máquina de estado.

Confira também