Workflow Studio \ Fluxo
O Workflow Studio trabalha com 2 conceitos principais: fluxos e tarefas.
Um fluxo é a representação de um processo de negócio. No WFS, o conceito de fluxo é subdividido em dois conceitos mais específicos: definição do fluxo, que é a especificação abstrata do processo de negócio, e instância do fluxo, que é o fluxo de negócio em execução.
Uma tarefa é um trabalho pendente para um usuário. No WFS, o conceito de tarefa é subdividido em dois conceitos mais específicos: definição da tarefa, que é a especificação abstrata da tarefa, e instância da tarefa, que é uma tarefa que já existe ou existiu para algum usuário.
As definições de fluxos e tarefas são feitas através do Designer de fluxo.
A definição de um fluxo é a representação de um processo de negócios. Ela especifica e representa como um processo de negócios funciona.
Numa definição de fluxo são especificadas quais ações devem ser executadas (enviar e-mail, rodar script, alterar dados de uma tabela, criar uma tarefa) e em qual ordem até que o fim seja atingido.
Num processo de pedido de compra, por exemplo, é possível definir que uma aprovação da diretoria é necessária caso o montante pedido seja maior que 10.000. Caso contrário, apenas a aprovação do gerente é suficiente. Em ambos os casos de aprovação, um e-mail deverá ser enviado ao departamento financeiro.
É possível utilizar o Designer de fluxo para definir visualmente o fluxo de um processo de negócio. Todas as definições do fluxos são guardadas no banco de dados. Cada definição recebe um nome e é inserida dentro de um contexto (sistema, módulo, macroprocesso).
A instância do fluxo é a execução de uma definição. Uma única definição de fluxo poderá gerar um número ilimitado de instâncias.
Uma instância de fluxo pode ser iniciada, estar em execução e ser finalizada. Todas as instâncias já executadas são guardadas no banco de dados.
A definição da tarefa especifica uma tarefa a ser executada por um usuário. Não é a tarefa em si, mas a especificação de quais informações e ações a tarefa irá ter ao ser executada.
Na definição pode-se definir o assunto, a descrição, o usuário (ou papel), os status disponíveis, os campos de formulário e anexos, entre outros. A definição de uma tarefa é sempre feita dentro da definição de um fluxo.
Por exemplo, na definição de fluxo de pedido de compra, pode-se criar uma tarefa para o gerente aprovar a ordem. Neste caso, a definição da tarefa teria algo como:
Assunto: Aprovação do pedido de compra; Descrição: Por favor, aprove o pedido número X; Usuário: Gerente; Status disponíveis: Aguardando, aprovado, rejeitado.
Uma instância da tarefa é criada para um usuário baseada na definição da tarefa. Uma única definição pode gerar várias instâncias.
A instância é criada quando um fluxo é executado e chega no ponto onde uma tarefa precisa ser criada. Neste momento a instância da tarefa é criada e designada para o usuário especificado na definição.
Cada usuário tem uma lista de tarefas pendentes e outra de tarefas finalizadas.