Essa é uma revisão anterior do documento!
Tabela de conteúdos
<fs x-large>Workflow Studio \ Fluxo</fs>
Objetos de diagrama
### Um objeto de diagrama é um item que é colocado num diagrama de fluxo para desempenhar uma função, como: uma operação, uma transição ou conectores, separadores, tarefas e scripts. ###
Para colocar objetos no diagrama:
- Primeiro clique no objeto desejado para selecioná-lo;
- Depois clique no diagrama no local onde deseja colocá-lo.
Bloco INICIO
Indica onde o processo inicia.
Bloco FIM
Indica onde o processo finaliza.
Bloco ERRO
O bloco ERRO é executado quando um erro ocorre ao executar o fluxo.
| Propriedades | |
|---|---|
| Representação gráfica | |
| Possíveis entradas | 0 |
| Possíveis saídas | 1 |
| Restrições | Apenas um bloco ERRO pode existir no diagrama de fluxo. |
### Sempre que ocorrer um erro durante a execução do diagrama, a execução “pula” automaticamente para o bloco ERRO e daí segue para o fluxo definido após ele. ###
### Dica: É sempre recomendado haver um bloco ERRO para tratamento de erros em cada definição de fluxo. ###
Conector ORIGEM
### O conector origem é usado como um “atalho” no diagrama para melhorar sua legibilidade. Faz a conexão do fluxo de diagrama com um conector destino associado. ###
### Quando um conector origem é encontrado, o fluxo “pula” para o conector destino relacionado a ele criando uma ponte entre dois pontos do diagrama. ###
### A relação entre a origem e o destino é feito pelo texto definido neles (marcação). Quando a marcação é a mesma, uma conexão é estabelecida. ###
Exemplo:
### Quando a execução de um fluxo encontra um conector origem marcado “A”, daí a execução “pula” para o conector destino marcado “A”. Desta forma, podem haver diversos conectores origem-destino num único diagrama. ###
Conector DESTINO
### O conector destino é usado como um “atalho” no diagrama para melhorar sua legibilidade. Recebe o fluxo da execução de um conector origem associado. ###
### A relação entre a origem e o destino é feito pelo texto definido neles (marcação). Quando a marcação é a mesma, uma conexão é estabelecida. ###
Exemplo:
### Quando a execução de um fluxo encontra um conector origem marcado “A”, daí a execução “pula” para o conector destino marcado “A”. Desta forma, podem haver diversos conectores origem-destino num único diagrama. ###
Transição
Conecta um bloco ao outro, indicando o fluxo de execução do diagrama.
### É possível criar 3 tipos de transição: direta, lateral(ortogonal) ou arco. Todas comportam-se da mesma forma, sendo a diferença apenas visual. ###
### Para criar uma transição, clique no ponto de link no bloco de origem, arrastando o mouse e soltando o botão no ponto de link no bloco destino. A seta indica o fluxo a ser seguido durante a execução. ###
A ligação de transições em blocos depende da quantidade e forma de entrada e saída de cada bloco.
Exemplo:
### Não é possível criar uma transição cujo destino é o bloco INICIO ou ERRO. Verifique as informações de possíveis entradas e possíveis saídas em cada bloco para saber como cada um se comporta. ###
### Alguns blocos permitem mais de uma transição. Neste caso, cada transição deve ser “marcada” para que o diagrama identifique qual o fluxo será seguido durante a execução. ###
Exemplo:
### Um bloco DECISÃO necessita de duas transições de saída, uma marcada como SIM e a outra como NÃO. Desta forma o diagrama saberá por qual transição o fluxo seguirá após a avaliação da decisão. Tarefas e seus respectivos status funcionam da mesma forma. ###
### Ao criar transições originadas de tarefas ou decisões, o designer automaticamente abrirá uma janela para definição da marcação da transição. ###
Conector DIVISÃO
Cria caminhos de execução paralela dentro do diagrama.
### O conector DIVISÃO é usado para criar caminhos paralelos de execução do fluxo. Quando uma instância de execução do fluxo é iniciada, existe apenas um único caminho de execução (iniciado pelo bloco INICIO). Quando a execução encontra um conector DIVISÃO, o fluxo é separado em vários caminhos paralelos (dependendo do número de transições da divisão) que são executados simultaneamente. ###
### No final, todos os caminhos de execução precisam terminar conectados ao mesmo conector JUNÇÃO, caso contrário o diagrama será considerado incorreto. Após o termino de todos os caminhos paralelos de execução, o caminho principal é retomado a partir do conector JUNÇÃO final. ###
### Atenção: Caminhos paralelos de fluxo devem ser usados com cautela já que podem aumentar consideravelmente a complexidade do fluxo. ###
Conector JUNÇÃO
Termina uma execução paralela criada por um conector DIVISÃO.
### O conector JUNÇÃO é usado para terminar caminhos paralelos de execução do fluxo. Quando uma instância de execução do fluxo é iniciada, existe apenas um único caminho de execução (iniciado pelo bloco INICIO). Quando a execução encontra um conector DIVISÃO, o fluxo é separado em vários caminhos paralelos (dependendo do número de transições da divisão) que são executados simultaneamente. ###
### No final, todos os caminhos de execução precisam terminar conectados ao mesmo conector JUNÇÃO, caso contrário o diagrama será considerado incorreto. Após o termino de todos os caminhos paralelos de execução, o caminho principal é retomado a partir do conector JUNÇÃO final. ###
### Atenção: Caminhos paralelos de fluxo devem ser usados com cautela já que podem aumentar consideravelmente a complexidade do fluxo. ###
Bloco DECISÃO
Altera a execução do fluxo de acordo com a condição definida.
### O bloco DECISÃO é usado para alterar a execução do fluxo de acordo com uma condição “booleana” (verdadeira ou falsa). Quando a execução chega a um bloco decisão, a condição do bloco é avaliada. Se for verdadeira, a execução do fluxo segue pela transição marcada como “SIM”. Se for falsa, a execução segue pela transição marcada como “NÃO”. ###
Bloco TAREFA
Cria instâncias de tarefas para usuários.
| Propriedades | |
|---|---|
| Representação gráfica | |
| Possíveis entradas | várias |
| Possíveis saídas | várias (definidas pela lista de status da tarefa) |
### O bloco TAREFA é um dos mais importantes objetos num diagrama. Com ele é possível definir tarefas que serão criadas para os usuários do fluxo. Quando a execução chega num bloco tarefa, ele automaticamente cria uma instância de tarefa para cada tarefa definida no bloco. ###
### A execução do fluxo irá parar até que a instância de tarefa seja finalizada pelo usuário. A tarefa é considerada finalizada somente quando seu status é alterado para um status marcado como “finalização”. A partir daí o fluxo segue para a transição que estiver marcada com o status selecionado pelo usuário. ###
Exemplo:
### Caso a tarefa tenha sido finalizada com um status chamado “aprovado”, o fluxo irá seguir pela transição que tiver marcada “aprovado”. ###
### Atenção: É obrigatório definir transições para cada status tipo “finalização” para que o fluxo não fique “preso” num bloco de tarefa sem uma transição de fluxo correspondente. Neste caso o fluxo nunca chegará ao bloco FIM, já que não haverá transição disponível para a continuidade do fluxo. ###
Com o bloco tarefa é possível criar:
- Formulários de entrada de dados;
- Formulários de leitura de dados;
- Formulários de decisão (aprovação/rejeição);
- Formulários com anexos que pode ser lidos, incluídos e excluídos.
### Tarefas utilizam campos de formulários definidos no fluxo para troca de informações e entrada de dados. Para mais detalhes sobre como definir tarefas e formulários acesse: ###
Bloco APROVAÇÃO
É um tipo especial de bloco TAREFA que contem somente uma definição de tarefa de aprovação.
| Propriedades | |
|---|---|
| Representação gráfica | |
| Possíveis entradas | várias |
| Possíveis saídas | várias (definidas pela lista de status da tarefa) |
### O bloco APROVAÇÃO é um bloco TAREFA simplificado para facilitar a criação de tarefas de aprovação/rejeição comuns em definições de processos de negócios. O bloco aprovação já é inicializado com algumas propriedades já preenchidas, como: assunto, descrição e lista de status. Existem 3 status válidos pré-definidos: ###
Aberto; Aprovado (finalização); Rejeitado (finalização).
Todas as propriedades pré-definidas podem ser alteradas de acordo com a necessidade do fluxo.
Aba “Geral”
| Campo | Uso | Informações |
|---|---|---|
| Assunto | Facultativo | |
| Descrição | Facultativo | |
| Associação | Facultativo | |
| Enviar notificação por e-mail | Facultativo | |
| Salvar geolocalização da tarefa | Facultativo | |
| Obrigar geolocalização nesta tarefa | Facultativo |
Aba “Status”
| Campo | Uso | Informações |
|---|---|---|
| Lista de status | Facultativo | |
| Nome | Facultativo | |
| Finalização | Facultativo | |
| Oculto | Facultativo | |
| Ignorar campos obrigatórios | Facultativo |
Aba “Anexos”
| Campo | Uso | Informações |
|---|---|---|
| Mostrar anexos | Facultativo | |
| Permitir remover anexos | Facultativo | |
| Permitir inserir anexos | Facultativo | |
| Permitir editar anexos | Facultativo |
Aba “Campos”
| Campo | Uso | Informações |
|---|---|---|
| Variáveis | Facultativo | |
| Título do texto | Facultativo | |
| Variável do Workflow | Facultativo | |
| Mensagem adicional | Facultativo | |
| Somente leitura | Facultativo | |
| Obrigatório | Facultativo |
Aba “Vencimento”
| Campo | Uso | Informações |
|---|---|---|
| Tarefa não expira | Facultativo | |
| Prazo de vencimento | Facultativo | |
| Data/hora de vencimento | Facultativo | |
| Expressão personalizada (data/hora) | Facultativo | |
| Status de vencimento | Facultativo |
Aba “Prazo”
| Campo | Uso | Informações |
|---|---|---|
| Tarefa não tem prazo | Facultativo | |
| Prazo da tarefa | Facultativo | |
| Data/hora de prazo | Facultativo | |
| Expressão personalizada (data/hora) | Facultativo |
Bloco SCRIPT
Executa um bloco de código.
| Propriedades | |
|---|---|
| Representação gráfica | |
| Possíveis entradas | várias |
| Possíveis saídas | 1 (se o script não retornar nenhum valor) ou várias (dependendo dos valores retornados pelo script) |
### O bloco SCRIPT executa o código-fonte inserido nele. O bloco script pode retornar nenhum, um ou vários resultados dependendo da necessidade. A variável result guarda o valor do retorno do script, que pode ser usado para direcionar o fluxo. ###
### Caso nenhum valor seja retornado na variável result, só poderá existir uma transição de saída, sem nenhuma marcação. ###
### Caso algum valor seja retornado na variável result, terão de haver tantas transições de saída quanto houverem resultados possíveis para o script. Cada transição deverá ser marcada com cada resultado possível. ###
### Dica: Em casos de script complexos (que envolvam manipulações de dados ou webservices) é altamente recomendável usar pelo menos 2 valores para retorno de um script. Um para indicar se o código foi executado com sucesso, e outro para indicar se houve falha e redirecionar o fluxo com algum tratamento de erro apropriado. ###
### Para a referência completa de funções, variáveis e bibliotecas disponíveis para o bloco script, acesse Linguagem de script. ###
Bloco EXECUTAR FLUXO
Permite executar outra definição de fluxo.
### O bloco EXECUTAR FLUXO permite que um fluxo execute outro fluxo (sub-fluxo), de forma síncrona ou assíncrona, numa instância separada da original. Essa funcionalidade adiciona considerável flexibilidade já que é possível haver reutilização de definições de fluxos em grandes processos de negócios. ###
### É possível haver troca de informações entre os fluxos através de um mapeamento de campos e variáveis. Ao incluir um bloco de execução de fluxo, o sistema abrirá uma tela onde o mapeamento poderá definido. ###
Sub-fluxos podem ser executados de duas formas:
- Síncrona;
- Assíncrona.
### Se a opção “aguardar execução” estiver marcada, o sub-fluxo será executado de forma síncrona. O fluxo original irá esperar a finalização do sub-fluxo para continuar. Neste caso, o mapeamento de variáveis será bidirecional, ou seja, as variáveis e campos do fluxo original serão atualizados com os valores que tiverem sido alterados no sub-fluxo quando este terminar sua execução. ###
### Se a opção “aguardar execução” estiver desmarcada, o sub-fluxo será executado de forma assíncrona. O fluxo original irá continuar a execução de forma independente e ambos os fluxos serão executados paralelamente. Neste caso, o mapeamento de variáveis será unidirecional não havendo retorno das variáveis alteradas no sub-fluxo. ###
### Atenção: Cuidado ao utilizar no mesmo diagrama conectores DIVISÃO com blocos EXECUTAR FLUXO. A complexidade do fluxo irá aumentar bastante e vários cuidados com tratamentos de erros, atualizações de variáveis e execuções de scripts terão que ser tomados. ###




















