Process Types
There are two kinds of Processes available in Frends:
Regular Processes
Subprocesses
A regular Process is used to create the integration flow functionality and active visual documentation of what that integration flow does and a Subprocess can be used to wrap smaller parts of Processes to create reusable microservices across other Processes.
This enables a Process hierarchy where you can create a Frends Process which executes a Subprocess, which executes a Subprocess and so on which can be used to create an orchestration layer and where you can isolate for example access to a specific system inside a Subprocess.
Main Process
Subprocess
Subprocess
Subprocess
Subprocess
Subprocess
Main Process
Remote Subprocess
A Subprocess can be executed on any other Agent Group in the same Environment as the parent Process. This functionality can for example be used to call a Subprocess on an Self-Hosted Agent from a PaaS Agent in a secure and simple way.
Note: You should only use remote Subprocesses when necessary to access remote resources. They add overhead and an additional point of failure (Service Bus is used to request and reply remote Subprocess executions) when used. See more at here.
When designing a Subprocess call you define in which Agent Group the Subprocess should be executed when it is run in that Environment. This is done from under the Advanced settings on the Call Subprocess shape properties:
Subprocess as an error handler
You can configure a Subprocess to be called if an error is thrown in the Process and left unhandled. See Subprocess to call on unhandled error.
Subprocess as a Trigger
Subprocess can act as a Conditional Trigger.
Process Functionality
A Process always has a starting point, some functionality and an ending point. The flow of the execution is then dictated by arrows connecting different Elements
Starting Point
Functionality
End Point
These three parts of a Process combined create a functional integration Process which executes a desired integration flow.
Process Instance
The Process Instances are stored in the Frends Logstore database and can be viewed through the Control Panel.
A Process Instance is the single execution of a Process created in Frends. The Process Instance is used for monitoring and auditing purposes since the Process Instance stores all the information relating to the execution of that specific Process in that specific Instance.
As an example when a Process is being built the view looks like this:
And when it's finished the Process Instance shows the data and the execution path the Process took during that execution:
Finding Process Instances
When you have built your Process and need to find a specific Process Instance tied to that Process, you can use the Process Instance List View in the Control Panel to search and filter your Process executions to find the Instance you were looking for.
A good example of this would be to for example search for specific data in the Process execution such as name of the city being processed:
Information about Process execution
Dynamic information about the execution of the Process can be obtained in the Process with #process Reference.
#process.agent
The name of Agent that runs the Process.#process.agentGroup
The name of Agent Group where the Process was run.#process.environment
The name of Environment where the Process was run.#process.executionid
The execution ID (GUID) of the Process Instance. You can again query for a specific process execution Instance by the execution GUID, to e.g., generate links to the Process in error emails. The link would be in the format
https://<website>/ProcessInstance/Instance/<execution guid>
#process.id
The ID (GUID) of the Process.#process.name
The name of the Process.#process.uri
The URI of the Process.#process.version
The version number of the Process.