Map Node

A Map Node invokes an HCL Link map within a flow.

Using the Map node

Once the Map node is deployed to the flow canvas, you can select the map from the list of maps existing in the project. To replace a map in the Map node, use the Replace Node setting and select a different map from the list of maps. To control the map's behavior, use the Settings option. Map settings are explained in the map documentation under Project > Maps.

When the map is executed within the Map node, the transaction scope of adapters invoked from the map rules or from input and output cards that are not wired or are not attached to the flow terminals is set to map. This means that the adapters commit, or rollback transactions based on the Map node's status, not the flow's final status. If the input or output card is attached to the flow terminal, the transaction scope of that card is flow. This means that the transaction will be committed or rolled back based on the flow's status. The map audit is produced in JSON format and is part of the overall flow audit.

Map node Terminals

You can use the Edit Terminals option to show or hide map input or output terminals. If the terminal is shown, it can be wired to other nodes or set as a flow terminal. If the Map node is the first node, multiple map node terminals set as flow terminals. Multiple output map node terminals can also be set as flow terminals. Only one map node input terminal can be wired to the previous node. If multiple map node input terminals are shown, those that are not wired can have the input card input modified. Multiple output terminals can be wired to other nodes.

When the input or output Map node terminal is wired, the adapter originally assigned to the map is overwritten with the internal stream adapter that passes data in memory in or out, depending on the terminal type. To control the maximum size of data being passed on this stream in memory, in megabytes, use the streamSize setting from the config.yaml file.
  • Log terminal: Produces the full map audit in the JSON format.
  • Status terminal: Produces the map status and values of flow variables attached to the Map node in the JSON format, if the map execution is successful. If the map fails, no data is produced on this terminal, and any downstream nodes wired to this terminal are not executed.
  • Error terminal: Produces the map status and values of flow variables attached to the Map node, if the map execution is unsuccessful. If this terminal is shown, the map error code will not be propagated to the flow, and the map failure will not result in the flow's failure. Essentially, the error is captured within the Map node.

Types of Maps

The Map node supports both maps that have map source code and compiled maps. If the Map node uses a map that has the source code, the Open Map option can be used to modify the map. If the map is an existing compiled map, the Open Map option is not available.