Descobri recentemente que é possível e até bastante fácil de criar um fluxo de máquina de estado usando o SharePoint Designer. A necessidade é a mãe da invenção e tudo o que é bom e eu tinha uma necessidade desta semana que olhou para uma invenção. Por coincidência, Me deparei com Este post no fórum MSDN também. Minha experiência pessoal, esta semana e essa confirmação independente"" empresta a força para minha condenação. Eu pretendo escrever sobre isso no maior comprimento com um exemplo completo soprado, Mas aqui está o essencial:
- A abordagem utiliza o fato de que um fluxo de trabalho pode alterar um item da lista, disparando um novo fluxo de trabalho. Normalmente eu considerei isto para ser um incômodo e até mesmo blogou sobre o uso de semáforos para lidar com isso.
- SharePoint permite vários fluxos de trabalho independentes ser ativo contra um item de lista específica.
Para configurá-lo:
- Projetar sua máquina de estado (ou seja, os Estados-Membros e como Estados de transição de um para o outro).
- Implementar cada Estado como separado de fluxo de trabalho.
- Configurar cada um destes fluxos de trabalho do estado para executar em resposta a qualquer mudança no item de lista.
Cada fluxo de trabalho do estado segue este padrão áspero:
- Após a inicialização, determinar se ele deve realmente ser executado inspecionando as informações de estado no item"atual". Abortar se não.
- Fazer o trabalho.
- Atualizar o item atual"" com informações de estado de novo. Isto provoca uma atualização para o item atual e dispara todos os fluxos de trabalho estado.
Além do benefício óbvio que cria um fluxo de máquina de estado declarativa, Tudo o que o informações do estado são ótima para construção de KPIs e interessante views.
Ele tem uma desvantagem substancial — rastreamento do histórico de fluxo de trabalho padrão é ainda mais inútil do que o normal 🙂 que é facilmente remediado, no entanto. Armazenar todas as informações de tipo de auditoria em uma lista personalizada. Isso provavelmente é uma boa idéia mesmo para fluxo de trabalho seqüencial baunilha, mas isso é para outro post 🙂
Chamo a isto um "mea culpa" Porque eu tenho, Infelizmente, disse mais de uma vez em fóruns e em outros lugares que se deve usar visual studio para criar um fluxo de trabalho de máquina de estado. Isso simplesmente não é verdade.
</fim>