{{:bk_cab_rh3software.png?200|}} \\ **Workflow Studio \ Fluxo** \\ =====Objetos de diagrama===== ---- {{ :manual_usuario:studio:fluxo:designer:designer_objetosdiagrama.png?300 |}} ### 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. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:bloco_inicio.png|}} | | Possíveis entradas | 0 | | Possíveis saídas | 1 | | Restrições | Apenas um bloco INICIO pode existir no diagrama de fluxo. | ====Bloco FIM==== ---- Indica onde o processo finaliza. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:bloco_fim.png|}} | | Possíveis entradas | várias | | Possíveis saídas | 0 | | Restrições | Apenas um bloco FIM pode existir no diagrama de fluxo. | ====Bloco ERRO==== ---- O bloco ERRO é executado quando um erro ocorre ao executar o fluxo. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:bloco_erro.png|}} | | 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. ### ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_origem.png|}} | | Possíveis entradas | várias | | Possíveis saídas | 0 | ### 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. ### ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_destino.png|}} | | Possíveis entradas | 0 | | Possíveis saídas | 1 | ### 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. ### ^ Tipo ^ Representação gráfica ^ | Direta | {{:manual_usuario:studio:fluxo:designer:transicao_direta.png|}} | | Lateral (ortogonal) | {{:manual_usuario:studio:fluxo:designer:transicao_lateral.png|}} | | Arco | {{:manual_usuario:studio:fluxo:designer:transicao_arco.png|}} | ### 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. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_divisao.png|}} | | Possíveis entradas | várias | | Possíveis saídas | várias | ### 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. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_juncao.png|}} | | Possíveis entradas | várias | | Possíveis saídas | 1 | ### 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. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:bloco_decisao.png|}} | | Possíveis entradas | várias | | Possíveis saídas | 2 ("SIM" e "NÃO") | ### 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 | {{:manual_usuario:studio:fluxo:designer:bloco_tarefa.png|}} | | 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: ### * [[Manual_Usuario:Studio:Fluxo:Designer:Campos | Campos de formulário;]] * [[Manual_Usuario:Studio:Fluxo:Designer:Definicao_Tarefa | Definição de tarefas.]] **Nota:** As abas e campos de bloco são os mesmos do bloco "Aprovação". ====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 | {{:manual_usuario:studio:fluxo:designer:bloco_aprovacao.png|}} | | 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 | Para o email ser enviado, além deste campo estar marcado, é necessário que nas configurações haja um email padrão definido no campo "Atribuição de tarefa". para maiores informações, [[manual_usuario:studio:studio_configuracoes#notificacoes_por_e-mail | clique aqui]]. | | 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 | {{:manual_usuario:studio:fluxo:designer:bloco_script.png|}} | | 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 [[Manual_Usuario:Studio:Fluxo:Designer:Scripts | Linguagem de script]]. ### ^ Campo ^ Uso ^ Informações ^ | Script source | Obrigatório | | | {{ :manual_usuario:studio:botao_validar_script.png?130 |}} | Facultativo | | | {{ :manual_usuario:studio:botao_ok.png?100 |}} | Obrigatório | | ====Bloco EXECUTAR FLUXO==== ---- Permite executar outra definição de fluxo. ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:bloco_executarfluxo.png|}} | | Possíveis entradas | várias | | Possíveis saídas | 1 | ### 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. ### {{:manual_usuario:studio:fluxo:designer:definicao_bloco_executarfluxo.png?600|}} Seguem abaixo os campos a serem informados: ^ Campo ^ Uso ^ Informações ^ | Definição de workflow | Obrigatório | Informa o nome do workflow que irá ser criado a partir do workflow corrente que o chamou | | Associação | Obrigatório | Informar o nome do responsável pelo novo fluxo a ser criado | | Mapeamento de variáveis | Facultativo | Associa os campos da coluna da esquerda que são no workflow corrente aos campos da coluna da direita e que pertencem ao workflow a ser gerado. \\ \\ Estes campos associados estarão sincronizados e sempre tendo o mesmo valor nos 2 fluxos. \\ \\ **Exemplo:** Se o valor altera no fluxo corrente, ao gerar o novo fluxo esta variável é criada com este valor. Se o valor for alterado no novo fluxo, quando voltar para o fluxo corrente, esta variável estará com o valor atualizado. | | Aguardar execução | Facultativo | A forma de utilização deste campo está descrita abaixo | 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. ### ====Bloco PISCINA==== ---- ### O conceito de PISCINA e RAIA (próximo componente) são de agrupadores de processo. O componente "Piscina" pode ser utilizado sem a obrigatoriedade do componente "Raia". ### ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_piscina.png|}} | | Possíveis entradas | Não se aplica | | Possíveis saídas | Não se aplica | | Restrições | Não se aplica | //Visualização// {{ :manual_usuario:studio:fluxo:designer:exemplo_piscina.png?500 |}} ====Bloco RAIA==== ---- ### O conceito de PISCINA (componente anterior) e RAIA são de agrupadores de processo. O componente "Raia" só pode ser utilizado dentro do componente "Piscina". ### ^ Propriedades ^ ^ | Representação gráfica | {{:manual_usuario:studio:fluxo:designer:conector_raia.png|}} | | Possíveis entradas | Não se aplica | | Possíveis saídas | Não se aplica | | Restrições | Este componente tem que ser colocado obrigatoriamente dentro de um componente Piscina | //Visualização - Piscina com 1 raia// {{ :manual_usuario:studio:fluxo:designer:exemplo_raia_1.png?500 |}} //Visualização - Piscina com 2 raia// {{ :manual_usuario:studio:fluxo:designer:exemplo_raia_2.png?500 |}}