<< Click to Display Table of Contents >> Subprocessos |
![]() ![]() ![]() |
A chamada de subprocesso é um recurso que permite invocar um outro fluxo de processo gerando uma nova Ordem de Serviço. O subprocesso invocado pode ser do mesmo processo ou de outro processo através de Associações. É possível determinar se o fluxo do processo seguirá adiante independente da conclusão ou não desta nova Ordem de Serviço (denominada "chamada assíncrona") ou não permitir avançar a atividade do subprocesso enquanto a nova Ordem de Serviço não estiver concluída. É possível também determinar se a Ordem de Serviço chamadora será cancelada caso a nova Ordem de Serviço seja cancelada (mais informações leia Sincronização de Cancelamentos).
Chamadas de Subprocessos
A figura abaixo ilustra a configuração de dois fluxos utilizando uma chamada de Subprocesso. Observe que no primeiro fluxo da figura existe uma chamada para o subprocesso Mudança. Na segunda figura encontramos o fluxo da ocorrência originada da execução do chamador iniciada a partir de um Link inicial. Como pode ser observado para cada fluxo executado existirá uma Ordem de Serviço e entre as duas ocorrências pode ocorrer troca de dados e diferentes responsabilidades.
Chamadas de fluxos
A principal configuração de uma chamada de Subprocesso é a Associação:
Configuração da chamada de Subprocesso
Uma Associação permite configurar um relacionamento entra processos fontes e processos alvo. Para mais informações sobre interface entre processos leia o Tutorial 4: Interface entre Processos.
Uma outra propriedade muito importante é a Chamada assíncrona. Com ela podemos avançar a Ordem de Serviço chamadora sem necessidade de finalização da Ordem de Serviço invocada.
O parâmetro Sincronizar cancelamento indica que se a Ordem de Serviço chamadora for cancelada, todas as Ordens de Serviço invocadas também serão canceladas e vice-versa. Durante a execução do processo são exibidos alertas no assistente de processos quando ocorrer algum cancelamento. Veja no exemplo abaixo que a Ordem de Serviço 51 foi cancelada em virtude do cancelamento da Ordem de Serviço 52.
Resultado do sincronismo de cancelamento
Para mais informações sobre sincronismo de cancelamento leia o Tutorial 5: Sincronização de Cancelamentos.
A passagem de valores e itens de configuração entre processos é um recurso muito importante para construção de fluxos "parametrizáveis", ou seja, fluxos que podem ter aplicação em diversos processos.
Quando um subprocesso invoca um outro é possível fornecer dados como parâmetros. Estes dados podem ser constituídos de campos da Ordem de Serviço (poderíamos por exemplo fornecer o campo Assunto modificado) ou Itens de Configuração (poderíamos por exemplo passar um documento anexado ou o cadastro de Equipamento). Nas próximas figuras podemos verificar o que deve ser feito para configurar esta passagem de parâmetros.
Configuração de passagem de Itens de Configuração
Passagem e retorno de Itens de Configuração
Podemos passar itens de configuração utilizando o atributo Passar todos os Itens de Configuração, que fornecerá para a ocorrência invocada todos os itens anexados no chamador, ou então podemos relacionar os tipos que devem ser transferidos para o chamado preenchendo a coleção Passagem de Itens de Configuração.
A regra de retorno de itens de configuração possui configuração similar fazendo uso dos parâmetros Retornar todos os Itens de Configuração e Retorno de Itens de Configuração. O retorno de itens ocorre quando finalizamos a ocorrência invocada, quando todos os itens anexados neste registro são anexados também na chamadora.
Passagem e retorno de campos da ocorrência
Nesta situação os dados fornecidos e retornados como parâmetros são campos nativos ou customizados da ocorrência e são configurados no elemento chamador da seguinte forma:
• | Parâmetros de entrada: são valores fornecidos para a ocorrência invocada no instante em que esta é criada. Para configurar estes parâmetros utilize a coleção Parâmetros de entrada. Veja o exemplo abaixo: |
Acessando o editor de parâmetros
Editor de parâmetros
Na figura abaixo podemos visualizar o novo parâmetro configurado.
Configuração do Parâmetro de Entrada
Para especificar um parâmetro foi necessário selecionar uma propriedade nativa ou um campo customizado (é permitida a seleção de apenas uma das opções) e em seguida definimos uma fórmula para recuperação do valor. Clicando no ícone é apresentado o diálogo de edição de fórmulas conforme a figura abaixo:
Parâmetro de entrada montado com texto constante e Assunto do chamador
Quando executamos uma Ordem de Serviço conforme a configuração acima a nova Ordem de Serviço gerada pela chamada recebe o novo conteúdo do assunto conforme a figura abaixo:
Resultado da passagem do parâmetro Assunto
• | Parâmetros de saída: são valores retornados para a ocorrência chamadora no instante em que a invocada é finalizada. Para especificar estes parâmetros precisamos configurar o fluxo que é invocado e nele definir os parâmetros de saída. Veja na figura abaixo a sequência de comandos para realizar esta configuração: |
Fluxo chamador
Acessar o cadastro do Subprocesso
Configuração dos parâmetros de saída
Ainda no exemplo anterior podemos marcar a opção Transição automática no elemento chamador. Desta forma a liberação seria finalizada, o campo Solução retornado para o chamador (a Mudança), que sofreria uma transição para o finalizador que encerraria automaticamente a mudança pois já existe informação da Solução.
Transição automática após finalizar a Liberação
Observação: Há a opção de desativar a geração manual de associadas durante a edição da Ordem de Serviço, através da opção Permitir geração manual.
Propriedade do subprocesso
Caso a propriedade seja definida como False, a opção de abertura não será exibida:
Edição de Ordem de Serviço
Propriedade Chamada assíncrona
Caso contrário, a atividade será avançada independentemente de os subprocessos terem sido finalizados. Neste caso, será habilitada uma nova opção para escolha sobre qual o momento a atividade poderá avançar:
Opções de sincronismo com a atividade
• | Finalização da ocorrência - A ocorrência principal só poderá poderá ser finalizada assim que todas as geradas pela mesma estiverem na mesma situação; |
• | Finalização de tarefa ou evento - Só será possível avançar determinada atividade assim que as Ordens de Serviço geradas estiverem finalizadas; |
• | Nenhuma restrição - Não haverá sincronia entre as duas ocorrências. A ocorrência principal poderá ser finalizada, mesmo que os subprocessos ainda estejam pendentes. |