This documentation refers to the new process editor of the platform. If you are using the current process editor, access Configure activities and flows



Speaking of Subprocess component...


The Subprocess component represents a point in the process where another complete process, which is the subprocess, will be initiated. In other words, this component represents a set of grouped activities – that form a process – within a main or larger process, allowing encapsulation of this set of activities within a single component to facilitate the reading and maintenance of the main process diagram.

With the Subprocess component, it is possible to break down large and complex processes into smaller parts – subprocesses – improving the understanding of the steps, as it prevents the diagrams from becoming confusing, simplifying the modeling and management of the process as a whole.

It is also possible to reuse a workflow in multiple processes or at various points within the same process, which ensures consistency of the steps, minimizes errors, saves modeling time, and reduces the effort of configuring components.


If your company has some approval steps for amounts that are common in several processes, you can group these steps into a Financial Approval process and reuse it from the Subprocess component in all other processes that, at some point, need to go through these same approval steps.

When a request from the main process reaches the subprocess step, it is paused, and a new request for the subprocess is created. When the subprocess request is completed, the main process request can be resumed to continue in the main flow until its completion.

If the main process flow allows for a return, when the request reaches the subprocess step, a new request will be opened in the subprocess, and the main process request will be blocked until the subprocess request is completed. As soon as the subprocess request is completed, the main process request is sent back to the step prior to the subprocess, so it can continue in the main flow until its completion.

When using the Subprocess component, it is also possible to share information between the forms of the main process and the subprocess. More details are described in the topic Sending data between the process and the subprocess.


In an Employee Registration process, the first registration is done by the HR department in the company's people management system. After that, it is necessary to grant access to the internal tools that the employee will use in their daily activities. However, this is a responsibility of the IT department, which also needs the approval of the manager of the new employee to grant the accesses. In this case, the execution steps of the IT department can be a subprocess within the main employee registration process. The main process will send some employee data – such as name, area of expertise, tools they will use – to the subprocess, and the subprocess will return an email. After the IT steps are completed, HR needs to complete the registration with the email sent by IT.


Data Sending Between the Process and the Subprocess


The Subprocess component allows information to be shared between the main process and the subprocess, reducing the need to manually re-enter data. For this, it is necessary that both processes – the main one and the subprocess – have a linked form, thus enabling the flow of information between the processes in a simple and transparent manner.

The sending and receiving of information between the processes are defined based on the configuration of the fields in both forms, allowing you to specify which values should be shared and the direction of each:


  • Send value from the main process form field (source) to the subprocess form field (destination): Name User Name;
  • Send value from the subprocess form field (source) to the main process form field (destination): Name User Name;
  • Send and receive the value from the main process form field and the subprocess form field (both send and receive the value from each other): Name User Name.

Each field can receive the value of only one field, that is, it is not allowed to configure the same field to receive values from more than one field.


This configuration is not allowed:

  • First Name User's First Name
  • Last Name  User's Last Name

The User's First Name field of a subprocess cannot be configured to receive the values from the First Name and Last Name fields of the process, since, if this were allowed, the first value received would be overwritten by the second.


View guided tour of the Subprocess component


01. In the process diagram, click on the Subprocess component .

02. Na lateral direita, onde foram exibidas as configurações do componente, clique em Guia de uso – localizado na parte inferior.

03. Veja a apresentação do recurso destacado.

04. Clique em Próximo para seguir para a apresentação do próximo recurso.

Quando há recursos anteriores, é possível clicar em Voltar para revê-los.

05. Ao finalizar o tour guiado, clique em Concluir.

Se desejar, é possível clicar em Voltar para rever os recursos anteriores antes de concluir.


Configurar componente Subprocesso


01. In the process diagram, click on the Subprocess component  que deseja configurar.

As configurações disponíveis são exibidas na lateral direita.

02. Na aba Geral, defina as informações gerais para o componente que representa outro processo dentro do processo principal.

Título
Nome da etapa que representa o início de outro processo dentro do processo principal. O nome também pode ser alterado diretamente no componente, clicando sobre seu nome atual e depois em Editar– localizado no lado direito.


Em um processo de Compra de ativos para uma empresa, o componente poderia receber o nome Aprovação financeira, que são etapas de aprovação específicas da área financeira.

Instruções para atividade
Instruções que visam facilitar o entendimento sobre o que acontece nessa etapa que é um subprocesso, tais como dados que serão enviados para o subprocesso ou dados que serão recebidos do subprocesso. As instruções são exibidas na aba Informações da solicitação.

Ao preparar as instruções de uma etapa, é comum precisar buscar informações de outros documentos ou sites. A plataforma possui o conceito de hiperlink, que permite incluir um documento de instruções e também endereços da Internet por meio de documentos externos, ambos armazenados no recurso Documentos, evitando a replicação de informações e facilitando a navegação. Para isso, basta utilizar o formato [WD:codigodoc], substituindo codigodoc pelo código numérico do documento.

Processo
Processo que será incluído dentro do processo principal como um subprocesso. Qualquer processo existente na plataforma pode ser utilizado como um subprocesso dentro de outro processo. Porém, é necessário que ele possua, pelo menos, uma versão publicada.

Transferir anexos
Quando ativada, determina que todos os anexos adicionados na solicitação do processo principal serão copiados para a solicitação criada no subprocesso em questão. Porém, o contrário não ocorre, ou seja, anexos adicionados na solicitação do subprocesso não são copiados para a solicitação do processo principal. Essa opção somente é habilitada quando o processo principal já possui um formulário vinculado e já foi selecionado um processo que tenha, pelo menos, uma versão publicada, no campo Processo.

Cancelamento conjunto
Quando ativada, determina que, se a solicitação do processo principal for cancelada, a solicitação do subprocesso também será. Porém, o contrário não ocorre, ou seja, se a solicitação do subprocesso for cancelada, a solicitação do processo principal não será. Essa opção somente é habilitada quando o processo principal já possui um formulário vinculado e já foi selecionado um processo que tenha, pelo menos, uma versão publicada, no campo Processo.

Movimentar atividade
Quando ativada, determina que assim que a solicitação chegar na etapa que é o subprocesso, ele será iniciado imediatamente, sem a necessidade de acessar a Central de tarefas para isso. Ou seja, ao enviar a solicitação principal para o subprocesso, a primeira etapa do subprocesso – ou as primeiras, caso o fluxo do subprocesso seja alternativo – será exibida para seleção e definição do responsável por ela quando o tipo de atribuição permitir. Essa opção somente é habilitada quando o processo principal já possui um formulário vinculado e já foi selecionado um processo que tenha, pelo menos, uma versão publicada, no campo Processo.

03. Clique em Configurar campos para definir o compartilhamento de dados entre os formulários do processo principal e do subprocesso.

Essa opção somente é habilitada quando o processo principal já possui um formulário vinculado e já foi selecionado um processo que tenha, pelo menos, uma versão publicada, no campo Processo.

A configuração de campos permite definir quais valores devem ser compartilhados entre os formulários dos dois processos e qual a direção de cada um. É possível enviar dados do formulário do processo principal para o formulário do subprocesso e vice-versa. Mais detalhes podem ser obtidos em Envio de dados entre o processo e o subprocesso.

04. Clique em Adicionar .

05. Na coluna Campos do processo, selecione o campo do formulário do processo principal que enviará ou receberá o valor do formulário do subprocesso – de acordo com o que for definido na coluna Direção.

06. Na coluna Direção, defina qual a direção do compartilhamento do valor desse campo, ou seja, se o valor do campo deve ser enviado para o subprocesso ou recebido do subprocesso.

Para alterar a direção, basta clicar sobre a flecha até que a direção desejada seja exibida.

As opções de direção são:

  • Enviar o valor: o valor contido no campo selecionado do processo principal será enviado para o campo do subprocesso selecionado na coluna Campos do subprocesso.
  • Receber o valor: o campo selecionado do processo principal receberá o valor do campo do subprocesso selecionado na coluna Campos do subprocesso.
  • Enviar e receber o valor: o valor contido no campo selecionado do processo principal será enviado para o campo do subprocesso selecionado na coluna Campos do subprocesso e, posteriormente, o campo selecionado do processo principal receberá de volta o valor contido no campo do subprocesso selecionado na coluna Campos do subprocesso.

07. Na coluna Campos do subprocesso, selecione o campo do formulário do subprocesso que enviará ou receberá – de acordo com o que foi definido na coluna Direção – o valor do campo do formulário do processo principal que foi selecionado na coluna Campos do processo.

08. Clique em Salvar – localizado no lado direito.

Para desistir de adicionar o envio do valor entre os campos, basta clicar em Cancelar – localizado no lado direito – ao invés de Salvar .

Na coluna Status é exibida a situação da relação de compartilhamento de valor entre os campos do formulário do processo principal e do subprocesso. Os indicativos são:

  • → indica que o compartilhamento entre os campos está correto e funcional;
  • → indica que há alguma inconsistência no compartilhamento entre os campos, como por exemplo, um campo foi alterado ou deixou de existir em um dos formulários.

É possível editar a relação entre os campos clicando em Editar – localizado no lado direito – e alterando os itens desejados. Para remover a relação entre os campos adicionada, basta clicar em Remover – também localizado no lado direito.

09. Ao concluir a configuração de todas as relações de compartilhamento entre os campos desejadas, clique em Salvar.

10. Clique na aba Atribuição para ver quem será o responsável pela solicitação que será criada no subprocesso.

A atribuição exibida é a que foi configurada na primeira etapa do subprocesso, ou seja, a solicitação que será aberta no subprocesso será enviada para o responsável de acordo com o tipo de atribuição definido no subprocesso.

11. Clique em Salvar rascunho – localizado no lado direito da barra superior – para salvar as configurações feitas no componente Subprocesso.

12. Na mensagem exibida, clique em Ok, entendi.


Configurar envio de dados entre os processos


01. In the process diagram, click on the Subprocess component  para o qual deseja configurar o compartilhamento de dados entre os formulários do processo principal e do subprocesso.

02. Na aba Geral, clique em Configurar campos.

Essa opção somente é habilitada quando o processo principal já possui um formulário vinculado e já foi selecionado um processo que tenha, pelo menos, uma versão publicada, no campo Processo.

A configuração de campos permite definir quais valores devem ser compartilhados entre os formulários dos dois processos e qual a direção de cada um. É possível enviar dados do formulário do processo principal para o formulário do subprocesso e vice-versa. Mais detalhes podem ser obtidos em Envio de dados entre o processo e o subprocesso.

03. Clique em Adicionar .

04. Na coluna Campos do processo, selecione o campo do formulário do processo principal que enviará ou receberá o valor do formulário do subprocesso – de acordo com o que for definido na coluna Direção.

05. Na coluna Direção, defina qual a direção do compartilhamento do valor desse campo, ou seja, se o valor do campo deve ser enviado para o subprocesso ou recebido do subprocesso.

Para alterar a direção, basta clicar sobre a flecha até que a direção desejada seja exibida.

As opções de direção são:

  • Enviar o valor: o valor contido no campo selecionado do processo principal será enviado para o campo do subprocesso selecionado na coluna Campos do subprocesso.
  • Receber o valor: o campo selecionado do processo principal receberá o valor do campo do subprocesso selecionado na coluna Campos do subprocesso.
  • Enviar e receber o valor: o valor contido no campo selecionado do processo principal será enviado para o campo do subprocesso selecionado na coluna Campos do subprocesso e, posteriormente, o campo selecionado do processo principal receberá de volta o valor contido no campo do subprocesso selecionado na coluna Campos do subprocesso.

06. Na coluna Campos do subprocesso, selecione o campo do formulário do subprocesso que enviará ou receberá – de acordo com o que foi definido na coluna Direção – o valor do campo do formulário do processo principal que foi selecionado na coluna Campos do processo.

07. Clique em Salvar – localizado no lado direito.

Para desistir de adicionar a relação entre os campos, basta clicar em Cancelar – localizado no lado direito – ao invés de Salvar .

Na coluna Status é exibida a situação da relação de compartilhamento de valor entre os campos do formulário do processo principal e do subprocesso. Os indicativos são:

  • → indica que o compartilhamento entre os campos está correto e funcional;
  • → indica que há alguma inconsistência no compartilhamento entre os campos, como por exemplo, um campo foi alterado ou deixou de existir em um dos formulários.

É possível editar a relação entre os campos clicando em Editar – localizado no lado direito – e alterando os itens desejados. Para remover a relação entre os campos adicionada, basta clicar em Remover – também localizado no lado direito.

08. Ao concluir a configuração de todas as relações de compartilhamento entre os campos desejadas, clique em Salvar.

09. Clique em Salvar rascunho – localizado no lado direito da barra superior – para salvar as alterações feitas no componente Subprocesso.

10. Na mensagem exibida, clique em Ok, entendi.


Editar envio de dados entre os processos


01. In the process diagram, click on the Subprocess component  do qual deseja editar o compartilhamento de dados entre os formulários do processo principal e do subprocesso.

02. Na aba Geral, clique em Configurar campos.

03. Localize a relação de campos que deseja editar.

04. Clique em Editar – localizado no lado direito.

05. Altere os itens desejados.

06. Clique em Salvar – localizado no lado direito.

07. Ao concluir todas as alterações desejadas, clique em Salvar – localizado no canto inferior direito.

08. Clique em Salvar rascunho – localizado no lado direito da barra superior – para salvar as alterações feitas no componente Subprocesso.

09. Na mensagem exibida, clique em Ok, entendi.


Remover envio de dados entre os processos


01. In the process diagram, click on the Subprocess component  do qual deseja remover o compartilhamento de dados entre os formulários do processo principal e do subprocesso.

02. Na aba Geral, clique em Configurar campos.

03. Localize a relação de campos que deseja remover.

04. Clique em Remover – localizado no lado direito.

05. Na mensagem de confirmação exibida, clique em Confirmar para confirmar a remoção da relação de compartilhamento entre os campos.

06. Ao concluir todas as remoções desejadas, clique em Salvar – localizado no canto inferior direito.

07. Clique em Salvar rascunho – localizado no lado direito da barra superior – para salvar as alterações feitas no componente Subprocesso.

08. Na mensagem exibida, clique em Ok, entendi.


Dúvidas frequentes


Confira aqui algumas dúvidas frequentes sobre o componente Subprocesso.

<script>
    (function() {
        function toggleAreas(isExpand, $parent) {
            var $items = $parent.find('.panel');

            $.each($items, function(idx, el) {
                var $arrow = $(el).find('span.cloakToggle').find('span');
                var $content = $(el).find('span.cloak');
                if (isExpand) {
                    $arrow.removeClass('cloakDefaultOpen').addClass('cloakDefaultClose');
                    $content.show();
                } else {
                    $arrow.addClass('cloakDefaultOpen').removeClass('cloakDefaultClose');
                    $content.hide();
                }
            });
        }

        $(document).on('click', '#toggleAll-3', function(ev) {
            ev.preventDefault();
            var isExpand = $(this).data('expand');
            var $parent = $(this).nextAll('.sectionColumnWrapper').first();
            toggleAreas(isExpand, $parent);
            $(this).data('expand', !isExpand);
        });
    })();
</script>
<a id="toggleAll-3" href="#" data-expand="true">Abrir/fechar todas as dúvidas</a>

O componente Subprocesso pode impactar o desempenho do processo?


Em termos gerais, o uso do componente Subprocesso não impacta significativamente o desempenho ou a execução de um processo.

O que pode impactar é o uso de muitos subprocessos em um único processo, subprocessos muito complexos e com muitas atividades automáticas ou interações externas – como chamadas de API.

Portanto, o ideal é garantir que os subprocessos não sejam excessivamente sobrecarregados com atividades complexas.

É possível reutilizar um subprocesso em diferentes partes do mesmo processo ou em outros processos?


Sim. O objetivo do componente Subprocesso é justamente esse: permitir que processos sejam reutilizados em vários pontos de um mesmo processo ou em vários processos diferentes, tornando a modelagem mais eficiente e evitando a duplicação de atividades que sejam comuns em diversos processos.

 O que acontece se um subprocesso falhar ou retornar uma reprovação?


Se nenhum caminho alternativo foi configurado, é possível que o processo principal fique travado se o subprocesso apresentar uma falha ou uma reprovação.

Por isso, é extremamente importante configurar eventos de captura de erros para tratar exceções dentro do subprocesso – que redirecionarão o processo para uma etapa de correção ou notificação – e fluxos de exceção com decisões condicionais – que redirecionarão o processo por um outro caminho ou finalizam a solicitação com uma notificação sobre a falha. 

Certificar-se de que o subprocesso tenha fluxos de exceção bem definidos evitará com que o processo principal seja impactado por uma falha ou recusa.

O subprocesso pode ter atribuições e responsáveis diferentes do processo principal?


Sim. O subprocesso nada mais é do que um processo que foi incluído dentro do processo principal e que possui o seu próprio conjunto de participantes – como usuários, grupos e papéis – que podem ser diferentes – ou os mesmos – do processo principal.

Isso permite que as responsabilidades sejam delegadas de acordo com o que faz sentido para o subprocesso, facilitando a distribuição de tarefas e o acompanhamento dentro de um processo mais amplo que é o processo principal.

O que acontece se um campo de um dos formulários configurado para compartilhar dados for alterado ou excluído?


Um alerta informando que há inconsistência no relacionamento dos campos será exibido na coluna Status da Configuração de campos. Neste caso, basta ajustar o campo em questão no formulário para que o compartilhamento de dados volte a funcionar corretamente.

This documentation is valid from the Voyager update (2.0). If you are using a previous update, it may contain information different from what you see on your platform.



<!-- Hotjar Tracking Code for http://tdn.totvs.com/display/fb -->
<script>
    (function(h,o,t,j,a,r){
        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
        h._hjSettings={hjid:1280165,hjsv:6};
        a=o.getElementsByTagName('head')[0];
        r=o.createElement('script');r.async=1;
        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
        a.appendChild(r);
    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
</script>