Nodes Overview¶
An integration flow consists of multiple nodes connected head-to-tail, where each node processes the input message and relays the output message (either processed or unprocessed input message containing both msg and metadata) to its downstream nodes or other EnOS services.
Each node contains one or more data input entry and output exit (except for Input type nodes who has no input entry and Command node who)You can use the Flow Designer in the EnOS Management Console to drag and drop the nodes into the canvas to form integration flows as per your requirements.
Node Types¶
The nodes in Flow Designer are divided into the following types.
Subflow
An Subflow node is an integration flow that can added in other flows as a node.
Input
An input node can establish connections to servers, obtain instructions issued from EnOS DCM, set scheduled intervals, etc. to trigger integration flows.
Logic
A logic node enables you to set rules and conditions to process and split the flow into different paths for subsequent processing without any programming needed.
Action
An action node initiates an action with its input message, for example, making a query to a server, uploading or downloading files, zipping/unzipping files, etc.
You can choose to save part or all of the content in the msg to the metadata before executing the node to prevent the content from being overwritten. To do this, go to the Metadata tab and enter the values for the Key, Type, and Value. Key is not case sensitive, Value needs to be case sensitive. Expressions such as ${msg.xxx} can be used for both Key and Value. For more information, see Expressions.
Other than the above, the value of the processing results of Action nodes are automatically saved to the metadata for further downstream processing, where you can use, for example, a Switch node to process the results separately.
EnOS
The EnOS node interacts with EnOS DCM, such as getting and processing the data from and uploading data to EnOS DCM.
External
An external node connects to and gets data from external cloud platforms and resources.
Enterprise
An enterprise node connects to and gets data from an enterprise’s database, IoT system, etc.
System
A system node manages various task objects in the integration flow.
Custom
A custom node is a node designed and created by the user according to business needs and usage scenarios.
Expressions ¶
There are two parts to a message: msg and metadata. The msg is the payload and the metadata contains attribute information in JSON format, for example, that are passed down from node to node via the input and output messages. You can use expressions to retrieve certain information from the node’s input msg or metadata, if they are a standard JSON object, for node processing.
The expression ${msg.key} for example, can quickly retrieve a key-value pair, where key is the key of a key-value pair in the JSON. See the below, where a node receives the following JSON object as its input message:
{
"assetId":"Inverter",
"timestamp":24214324324,
"measurepoints":{
"temperature":22.4,
"humidity":78
}
}
Using the following expressions will return these values respectively.
Expression |
Returned Value |
---|---|
${msg.assetId} |
Inverter |
${msg.measurepoints.humidity} |
78 |
Similarly, if a node supports using expressions to refer to a value in its JSON metadata, you can use ${metadata.key} to return the required value, where key is the key of a key-value pair in the metadata. For example, for the Task Manager node, every task object has a unique task ID which is stored in the metadata and can be referred to by the expression ${metadata.taskId}
.
Note
Expressions can only be used for JSON objects, not JSON arrays. You must convert any non-JSON input into JSON objects if you want to use an expression. Use the Script node to help you convert the input.
List of Nodes¶
Subflow¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
× |
Input¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
× |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
Logic¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
Action¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
√ |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
|
√ |
√ |
|
√ |
× |
EnOS¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
× |
External¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
√ |
|
√ |
× |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
|
√ |
× |
|
√ |
√ |
|
√ |
√ |
|
√ |
√ |
|
√ |
× |
|
√ |
× |
|
√ |
× |
Enterprise¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
√ |
|
√ |
× |
System¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
× |
|
√ |
× |
|
× |
√ |
|
× |
√ |
Custom¶
Node |
Cloud Flow |
Remote Flow |
---|---|---|
√ |
√ |