# Flow Node Editor

Every ProcessMIX flow is made of nodes, and every node has its own unique logic and behavior.&#x20;

Available node types are shown in the left-hand side palette in the flow builder. When expanded, it shows both the node icons and their names.

You can drag nodes from the palette and drop on the flow diagram, which makes a new copy. You can also clone existing nodes, or copy/cut/paste them in the flow to move them around.

Input of one node is connected to the output of another one with a help of connecting arrows, that can be dragged on a node to make new connection. If nodes are dropped in the middle of a existing connecting arrow, they are automatically inserted as a middle step into it.

Node settings depend on the node type and are available by clicking on the node.

<figure><img src="https://3477030876-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYK40zKr4ZyVfqCRAUI9t%2Fuploads%2F2vb0hK7C9PRLdivejaC5%2FNodes_general.png?alt=media&#x26;token=7180ed04-ca13-4659-834f-dfb689574802" alt=""><figcaption></figcaption></figure>

## Available Node Types and Their Parameters <a href="#how-to-use-node-settings-to-build-flow" id="how-to-use-node-settings-to-build-flow"></a>

{% hint style="warning" %}
The name of each node must be unique within its flow.
{% endhint %}

The following sections provide information about all existing node types.

## Core Nodes

These nodes form a backbone of flow's logic, performing standard operations such as value assignments and condition checks.

### Assign

A container that is used to pass values to variables.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Assign.png" alt="" data-size="original">

**Name** — default name – Assign. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Variable** — add a variable that has already been created before. To select the necessary variable, the Variable selector is used. In this, the created local variables, incoming and outgoing data, and node variables are available.\
**Assign** — assign a specific value to the added variable. The Expression Editor is used to add and edit values. It can be either a specific value or an expression of any complexity using existing variables, as well as outgoing node data (node variables). There can be any number of variable-assign blocks, depending on the requirements.

### IF

Logic branching block. Accepts a condition and returns a boolean value.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1If.png" alt="" data-size="original">

**Name** — default name – If. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Condition** — add a condition that will determine the further progress of the flow. The Expression Editor is used to add and edit conditions. If the condition is met, then further execution will go along the "YES" branch.

### Switch

Branch block. Accepts a condition and returns a boolean value. Unlimited number of ways. Execute the first “true”.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Switch.png" alt="" data-size="original">

**Name** — default name – Switch. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Label** — name of the condition.\
**Condition** — add a condition that will determine the further progress of the flow. Unlike IF, there can be several branches here, further execution will follow the first branch that meets the specified condition. The Expression Editor is used to add and edit conditions. There can be any number of label-condition blocks, depending on the requirements.

### Iterator

Loop block. Iterates over an array and performs some operations on each element, which is done by other nodes connected to its outgoing "cycle" connection.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Iterator.png" alt="" data-size="original">

**Name** — default name – Iterator. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**List** — add the list of entities that the Iterator should iterate over. The Expression Editor is used to add and edit a list. By connecting the outgoing arrow of the Iterator to the target node, where certain conditions will be checked, or certain values will be collected into a new structure for subsequent manipulations. There are no restrictions on the use of subsequent nodes or on the group of nodes involved in the iterator logic. An array is expected as input to the iterator. An iterator node must be cyclically connected to another node or group of nodes. In the node following the iterator, it becomes possible to work with the current element of the array.

### Function Call

A call block for a built-in or user-created function.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Function_Call.png" alt="" data-size="original">

**Name** — default name – FunctionCall. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Function** — add the function to be called. The set of required parameters depends on the selected function. To learn about the operation of the function and the set of required parameters and types of variables that the function takes as input, use the Function selector. To get to the Function Selector, click on **See All** in the drop-down list of the Function field. Outgoing data also depends on the selected function. Depending on the selected function, a new variable may appear, or the same object with a modified value may be returned. To learn more about all available functions see the Expression Editor section.

### Subflow

An entry point to an additional flow. Returns the result of an additional flow.

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Subflow.png" alt="" data-size="original">

**Name** — default name – SubFlow. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Flow** — add a flow that you will use. The set of required inputs depends on the selected flow as an output.

### IN

Starting point of the flow. Only one is allowed.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1In.png)

**Name** — default name – IN. Available for editing.\
\
The structures for the IN node are defined in the settings of the flow itself as input parameters. One or more input parameters can be specified, depending on the requirements.

### OUT

The ending point of the flow. There can be one or more OUTs.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Out.png)

**Name** — default name – OUT. Available for editing.\
\
The structure for the OUT node is defined in the settings of the flow itself as an Output structure. Only one output structure can be specified, but it can be of any complexity, pre-created as a custom structure through the structure builder.

## Connectors Nodes

These nodes allow calling Connectors from within the flow, which in turn call external services and data sources.

## REST

Get data from external systems and services using REST connectors. It is possible to add cookies and headers if required.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Connector_REST.png)

**Name** — default name – RestConnector. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Service** — connect the REST service to a node for execution in a flow. Services are available from the drop down menu or through the Service selector. To get to the Service Selector, click on **See All** in the drop-down menu of the Service field. The Service Selector displays the services of the REST connectors.\
The set of required request and path parameters depends on the selected service. It is necessary to define certain variables according to the logic and the corresponding type.\
Outgoing data depends on the method and on the established output structure in the corresponding connector service.\
**Cookies** and **Headers** are not required parameters in the connector.\
**Cookies** — If cookies are required to connect to the required remote service, you can set them here. The Expression Editor is used to add and edit cookies. It expects an array of cookies, the easiest way to pass values to it is to send it as input to the flow itself or assign values to the elements of the array using an iterator and the Assign node. To create an array of cookies, you must use the Structure Builder in the Structure Selector when assigning a type to a variable or property.\
**Headers** — If headers are required to connect to the required remote service, you can set them here. The Expression Editor is used to add and edit headers. It expects an array of headers. Use the same approach as for cookies. To read more, please review the Structure selector.

### SOAP

Get data from external systems and services using SOAP connectors. It is possible to add cookies and headers, if required.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Connector_SOAP.png)

**Name** — default name – SoapConnector. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Service** — connect the SOAP service to a node for execution in a flow. Services are available from the drop down menu or through the Service selector. To get to the Service Selector, click on **See All** in the drop-down menu of the Service field. The Service Selector displays the services of the SOAP connectors.\
The set of required request and path parameters depends on the selected service. It is necessary to define certain variables according to the logic and the corresponding type.\
**Cookies** and **Headers** are not required parameters in the connector.\
**Cookies** — If cookies are required to connect to the required remote service, you can set them here. The Expression Editor is used to add and edit cookies. It expects an array of cookies, the easiest way to pass values to it is to send it as input to the flow itself or assign values to the elements of the array using an iterator and the Assign node. To create an array of cookies, you must use the Structure Builder in the Structure Selector when assigning a type to a variable or property.\
**Headers** — If headers are required to connect to the required remote service, you can set them here. The Expression Editor is used to add and edit headers. It expects an array of headers. Use the same approach as for cookies. To read more, please review the Structure selector.

### S3

Get data from Simple Storage Service (S3) using the S3 connector.

![](https://processmix.com/wp-content/uploads/2023/01/Node-S3.png)

**Name** — default name – S3. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Connector** — add a S3 Connector that has been already created before in the S3 Connector builder.\
**Function** — select a function from the list.

### DB

Get data from external databases. Support PostgreSQL or MS SQL databases. Each node executes a selected query.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Connector_DB.png)

**Name** — default name – DbConnector. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Query** — connect DB query to a node for execution in a flow. Query are available from the drop-down menu or through the Query selector. To get to the Query Selector, click on **See All** in the drop-down menu of the Query field. The Query Selector displays the queries of the DB connectors.\
The set of required parameters depends on the selected query. It is necessary to define certain variables according to the logic and the corresponding type.\
Outgoing data depends on the established output structure in the corresponding connector query.

## Database Transaction Support Nodes

These nodes allow to execute multiple calls to a database as one atomic unit of work, so that either all of them are successful, or all are undone to return the database into the last stable state and avoid the corruption of its data.

### Begin

Combines operations into one atomic package – a transaction. Opens a transaction and generates a transaction structure.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Transaction_Create.png)

**Name** — default name – dbTransaction. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**DB Сonnector** — add a DB сonnector that has already been created before.

### Commit

Сonfirms all changes made inside the transaction. Used to apply changes to the database, to the exact same database where the transaction was opened.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Transaction_Commit.png)

**Name** — default name – commitTransaction. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Transaction** - select the variable which was created by node “Begin transaction”. It is necessary to choose exactly the structure that corresponds to the opening of the transaction (Begin transaction node).

### Rollback

Сancel all changes made by the transaction. Used to cancel each operation included in the transaction to the database selected to open this transaction.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Transaction_Rallback.png)

**Name** — default name – rollbackTransaction. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Transaction** - select the variable which was created by the node “Begin transaction“. It is necessary to choose exactly the structure that corresponds to the opening of the (transaction Begin transaction).

## EVM Blockchain Nodes

These nodes perform operations on the Ethereum blockchain network.

### Services

Get data from the Ethereum blockchain network using EVM blockchain connector.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Blockchain-1.png)

**Name** — default name – BlockchainEvm. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Connector** — add a Blockchain EVM connector that has been already created before in the Blockchain EVM Connector builder.\
**Function** — select from a list of existing functions.

### Contract

Get data from the Ethereum blockchain network according to the chosen smart contract function.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Blockchain_service-1-1.png)

**Name** — default name – BlockchainEvmContract. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Smart contract function** — select from a list of existing smart contract's structure functions (automatically created from an uploaded ABI contract file during the EVM Blockchain connector creation process).\
**request** - add a request to the selected smart contract function using the Expression Editor window that opens.

## Asset Nodes

These nodes allow to make use of project's Assets from within the flow.

### PMML

A way to describe predictive models generated by data mining and machine learning algorithms.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1PMML.png)

**Name** — default name – PMML. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**PMML** — add a specific PMML to the node that was created within the project for use in the current flow.\
The set of required inputs depends on the selected PMML model as an output.

### Dictionary

Structured ordered data storage. It is used both in scorecards and independently in flows.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Dictionary.png)

**Name** — default name – Dictionary. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Dictionary** — add a specific dictionary to the node that was created within the project for use in the current flow.\
The set of required inputs depends on the selected dictionary model as an output.

### Decision Table

Model views with complex logic. Establishes a relationship between conditions and actions.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Design_Table.png)

**Name** — default name – DecisionTable. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Decision Table** — add a specific decision table to the node that was created within the project for use in the current flow.\
The set of required inputs depends on the selected decision table model as an output.

### Scorecard

A graphical representation of a mathematical formula that is used to predict the future behavior of a customer or prospect based on what is known about them.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Score_Card.png)

**Name** — default name – Scorecard. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Scorecard** — select a specific scorecard to the node that was created within the project for use in the current flow.\
The set of required inputs depends on the selected scorecard model as an output.

## Exception Handling Nodes

These nodes are used to throw exceptions to indicate abnormal processing situations, as well as to handle the exceptions in an organized systematic fashion.

### Exception Handler

Process an alternative flow to handle exceptional situations. Added along with the OUT node where the result is passed.

![](https://processmix.com/wp-content/uploads/2023/01/Property-1Exeption_Hendler.png)

**Name** — default name – ExceptionHandler. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Exception** — select the required Exception. Depending on the selected structure, a certain Raise Exception will be processed. Each Exception Handler matches only one exception used in the Raise Exception node. Unlike Raise Exception, where values are passed to exception parameters, it forms an object containing all exception parameters and their values.

### Raise Exception

Raises a specific exception. Flow can contain more than one Raise Exception node.

![](https://processmix.com/wp-content/uploads/2023/02/eb3f6608-43a8-4f04-808f-4451a7240f18.png)

**Name** — default name – RaiseException. Available for editing.\
\
&#xNAN;_&#x50;arameters:_\
**Exception** — select the required Exception, if necessary, it is possible to create a structure by inheriting the Exception superclass and adding additional properties to it.\
**Message** — add the message you want to send. It is possible to use a text message in combination with passed variable values using the concat() function. Any functions of the Expression Editor are also available for use.Can be used without an Exception Handler.
