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

 Portuguese Spanish English


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. On the right side, where the component settings are displayed, click on Usage Guide – located at the bottom.

03. View the presentation of the highlighted feature.

04. Click Next to proceed to the presentation of the next feature.

When there are previous features, you can click Back to review them

05. Upon finishing the guided tour, click Finish.

If you wish, you can click Back to review the previous features before finishing.


Configure Subprocess component


01. In the process diagram, click on the Subprocess component  you want to configure.

The available settings are displayed on the right side.

02. In the General tab, define the general information for the component that represents another process within the main process.

Title
Name of the step that represents the beginning of another process within the main process. The name can also be changed directly on the component by clicking on its current name and then on Edit– located on the right side.


In an Asset Purchase process for a company, the component could be named Financial Approval, which are specific approval steps from the finance area.

Activity Instructions
Instructions aimed at facilitating the understanding of what happens in this step, which is a subprocess, such as data that will be sent to the subprocess or data that will be received from the subprocess. The instructions are displayed in the Request Information tab.

When preparing the instructions for a step, it is common to need to search for information from other documents or websites. The platform has the concept of hyperlink, which allows you to include an instruction document as well as Internet addresses through external documents, both stored in the Documents, resource, avoiding information replication and facilitating navigation. To do this, simply use the format [WD:doccode], replacing doccode with the numeric code of the document.

Process
Process that will be included within the main process as a subprocess. Any existing process on the platform can be used as a subprocess within another process. However, it is necessary that it has at least one published version.

Transfer Attachments
When enabled, it determines that all attachments added in the main process request will be copied to the request created in the subprocess in question. However, the opposite does not occur, meaning that attachments added in the subprocess request are not copied to the main process request. This option is only enabled when the main process already has a linked form and a process that has at least one published version has been selected in the Process field.

Joint cancellation
When activated, it determines that if the main process request is canceled, the subprocess request will also be canceled. However, the opposite does not occur, meaning that if the subprocess request is canceled, the main process request will not be. This option is only enabled when the main process already has a linked form and a process that has at least one published version has been selected in the Process field.

Move Activity
When activated, it determines that as soon as the request reaches the step that is the subprocess, it will be initiated immediately, without the need to access the Task Center for that. In other words, when sending the main request to the subprocess, the first step of the subprocess – or the first ones, if the subprocess flow is alternative – will be displayed for selection and definition of the responsible party when the assignment type allows. This option is only enabled when the main process already has a linked form and a process that has at least one published version has been selected in the Process field.

03. Click on Configure Fields to define the data sharing between the forms of the main process and the subprocess.

This option is only enabled when the main process already has a linked form and a process that has at least one published version has been selected in the Process field.

The field configuration allows you to define which values should be shared between the forms of the two processes and the direction of each. It is possible to send data from the main process form to the subprocess form and vice versa. More details can be obtained in Data Sending between the Process and the Subprocess.

04. Click on Add .

05. In the Process Fields column, select the field from the main process form that will send or receive the value from the subprocess form – according to what is defined in the Direction column.

06. In the Direction column, define the direction of the value sharing for that field, that is, whether the field value should be sent to the subprocess or received from the subprocess.

To change the direction, simply click on the arrow until the desired direction is displayed.

The direction options are:

  • Send the value: the value contained in the selected field of the main process will be sent to the field of the subprocess selected in the Subprocess Fields column.
  • Receive the value: the selected field of the main process will receive the value from the field of the subprocess selected in the Subprocess Fields column.
  • Send and receive the value: the value contained in the selected field of the main process will be sent to the field of the subprocess selected in the Subprocess Fields column and, subsequently, the selected field of the main process will receive back the value contained in the field of the subprocess selected in the Subprocess Fields column.

07. In the Subprocess Fields column, select the field of the subprocess form that will send or receive – according to what was defined in the Direction column – the value from the field of the main process form that was selected in the Main Process Fields column.

08. Click on Save  – located on the right side.

To cancel adding the value transfer between the fields, simply click on Cancel – located on the right side – instead of Save .

In the Status column, the situation of the value sharing relationship between the fields of the main process form and the subprocess is displayed. The indicators are:

  • → indicates that the sharing between the fields is correct and functional;
  • → indicates that there is some inconsistency in the sharing between the fields, such as a field being changed or no longer existing in one of the forms.

It is possible to edit the relationship between the fields by clicking on Edit – located on the right side – and changing the desired items. To remove the added relationship between the fields, simply click on Remove  – also located on the right side.

09. Once you have completed the configuration of all desired sharing relationships between the fields, click on Save.

10. Click on the Assignment tab to see who will be responsible for the request that will be created in the subprocess.

The displayed assignment is the one configured in the first step of the subprocess, that is, the request that will be opened in the subprocess will be sent to the responsible party according to the type of assignment defined in the subprocess.

11. Click on Save draft – located on the right side of the top bar – to save the settings made in the Subprocess component.

12. In the displayed message, click on Ok, I understand.


Configure data sharing between processes


01. In the process diagram, click on the Subprocess component  for which you want to configure data sharing between the main process and subprocess forms.

02. In the General tab, click on Configure fields.

This option is only enabled when the main process already has a linked form and a process with at least one published version has been selected in the Process field.

The field configuration allows you to define which values should be shared between the forms of the two processes and the direction of each. It is possible to send data from the main process form to the subprocess form and vice versa. More details can be found in Sending data between the process and the subprocess.

03. Click on Add .

04. In the Process fields column, select the field from the main process form that will send or receive the value from the subprocess form – according to what is defined in the Direction column.

05. In the Direction column, define the direction of the value sharing for that field, that is, whether the field value should be sent to the subprocess or received from the subprocess.

To change the direction, simply click on the arrow until the desired direction is displayed.

The direction options are:

  • Send the value: the value contained in the selected field of the main process will be sent to the field of the subprocess selected in the Subprocess fields column.
  • Receive the value: the selected field of the main process will receive the value from the field of the subprocess selected in the Subprocess fields column.
  • Send and receive the value: the value contained in the selected field of the main process will be sent to the field of the subprocess selected in the Subprocess fields column and, subsequently, the selected field of the main process will receive back the value contained in the field of the subprocess selected in the Subprocess fields column.

06. In the Subprocess Fields column, select the form field of the subprocess that will send or receive – according to what was defined in the Direction column – the value of the form field of the main process that was selected in the Main Process Fields column.

07. Click on Save  – located on the right side.

To cancel adding the relationship between the fields, simply click on Cancel – located on the right side – instead of Save.

In the Status column, the situation of the value sharing relationship between the form fields of the main process and the subprocess is displayed. The indicators are:

  • → indicates that the sharing between the fields is correct and functional;
  • → indicates that there is some inconsistency in the sharing between the fields, such as a field being changed or no longer existing in one of the forms.

It is possible to edit the relationship between the fields by clicking on Edit – located on the right side – and changing the desired items. To remove the added relationship between the fields, simply click on Remove  – also located on the right side.

08. Once you have completed the configuration of all desired sharing relationships between the fields, click on Save.

09. Click on Save draft – located on the right side of the top bar – to save the changes made to the Subprocess component.

10. In the displayed message, click on Ok, I understand.


Editing data submission between processes


01. In the process diagram, click on the Subprocess component  for which you want to edit the data sharing between the main process and subprocess forms.

02. In the General tab, click on Configure fields.

03. Locate the field relationship you wish to edit.

04. Click on Edit – located on the right side.

05. Change the desired items.

06. Click on Save  – located on the right side.

07. Once you have completed all desired changes, click on Save – located in the bottom right corner.

08. Click on Save draft – located on the right side of the top bar – to save the changes made to the Subprocess component.

09. In the displayed message, click on Ok, I understand.


Remove data sharing between processes


01. In the process diagram, click on the Subprocess component  from which you want to remove the data sharing between the main process forms and the subprocess.

02. In the General tab, click on Configure fields.

03. Locate the list of fields you want to remove.

04. Click on Remove– located on the right side.

05. In the confirmation message displayed, click on Confirm to confirm the removal of the sharing relationship between the fields.

06. Once you have completed all desired removals, click on Save – located in the lower right corner.

07. Click on Save draft – located on the right side of the top bar – to save the changes made to the Subprocess component.

08. In the displayed message, click on Ok, I understand.


Frequently asked questions


Check here some frequently asked questions about the Subprocess component.

<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">Open/close all questions</a>

Can the Subprocess component impact the performance of the process?


In general terms, the use of the Subprocess component does not significantly impact the performance or execution of a process.

What can impact it is the use of many subprocesses in a single process, very complex subprocesses, and those with many automated activities or external interactions – such as API calls.

Therefore, it is ideal to ensure that subprocesses are not excessively overloaded with complex activities.

Is it possible to reuse a subprocess in different parts of the same process or in other processes?


Yes. The purpose of the Subprocess component is precisely this: to allow processes to be reused at various points within the same process or across different processes, making modeling more efficient and avoiding the duplication of activities that are common in several processes.

What happens if a subprocess fails or returns a rejection?


If no alternative path has been configured, it is possible that the main process may get stuck if the subprocess encounters a failure or a rejection.

Therefore, it is extremely important to configure error capture events to handle exceptions within the subprocess – which will redirect the process to a correction or notification step – and exception flows with conditional decisions – which will redirect the process along another path or finalize the request with a notification about the failure.

Ensuring that the subprocess has well-defined exception flows will prevent the main process from being impacted by a failure or rejection.

Can the subprocess have different assignments and responsible parties from the main process?


Yes. The subprocess is nothing more than a process that has been included within the main process and has its own set of participants – such as users, groups, and roles – which can be different – or the same – as those in the main process.

This allows responsibilities to be delegated according to what makes sense for the subprocess, facilitating task distribution and monitoring within a broader process, which is the main process.

What happens if a field in one of the forms configured to share data is changed or deleted?


An alert informing that there is an inconsistency in the relationship of the fields will be displayed in the Status column of the Field Configuration. In this case, just adjust the field in question in the form so that the data sharing works correctly again.

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>