Windows Workflow Foundation x BPMN
Você, que está usando o Windows Workflow Foundation – WWF para desenvolver algumas aplicações orientadas a processos, usando o “Sequential Workflow”, já notou que ao tentar desenhar um fluxo como o abaixo, desenhado usando BPMN, não consegue?
O processo tem uma regra de negócio básica, presente em qualquer processo de empresa: da atividade A, uma condição é avaliada e o processo segue para B ou C. Se for para C, após essa atividade, deve voltar para “A”. O modelo “Sequential Workflow”não permite diretamente esses “loops” para pontos passados do processo, da mesma maneira que processos baseados em BPEL também não deixam. Isso pois o modelo XAML, utilizado pela Microsoft para descrever os processos do WWF, similarmente ao BPEL, é em formato bloco-estruturado, onde cada “perna” do processo deve ser fechada antes de o processo continuar, e onde não é possível referenciar elementos anteriores.
A solução? Vemos algumas:
- Existem alguns métodos na internet que chamarei carinhosamente de “gambiarra” para representar uma volta no “Sequential Workflow”, e que prefiro não citar aqui;
- Posso redesenhar o fluxo acima, tornando-o compliance com o XAML. Isso foi demonstrado no nosso post anterior, onde falamos sobre a diferença entre e o BPMN e BPEL;
- Posso utilizar o outro modelo de workflow do WWF, o “State-Machine”. Apesar de bem mais flexível, esse modelo é muito distante do modo como os processos são mapeados usando BPMN pelos analistas de negócio, fazendo com que o projeto técnico final fique destoante de uma fase de levantamento e mapeamento dentro de um projeto de BPM;
Você conhece outra alternativa? Colabore e faça um post aí.
Por esses e outros motivos, nos projetos em que trabalho, o WWF tem tido maior utilidade em processos de menor complexidade, como workflow básico (aprovações, revisões, etc…) e pequenas integrações. Em processos de colaboração complexa com mais de 50 atividades e uma infinidade de possibilidades, o WWF pode dificultar.
3 comentários 6 de Outubro de 2007 às 16:15 Rafael Bortolini