Branch Connectors add a decision shape to the flow, capable of sending a message to one of two defined connectors based on the filename, a header in the message, or a specific value in the file (if it is an XML file).
A Branch Connector functions as a fork in the flow. Files are sent along different paths in the flow depending on whether the condition specified in the connector is true. Branch conditions can check for three different types of values:
- The filename
- A header in the file/message
- A value at a specified xpath in the file (must be an XML file)
The Branch Connector configuration determines which of these values to look for, and the “target” value that it should be compared against. If the actual value matches the target value, then the message will be passed along the solid blue flow path, and if the values do not match, then the message will be passed along the dotted gray path.
Branch Connectors can be chained together in a ‘cascade’ for multi-step conditional processing, similar to a ‘select-case’ statement. More details can be found in the Cascading section.
This section contains all of the configurable connector properties.
Settings related to the core operation of the connector.
- Connector Id The static name of the connector. All connector-specific files are contained in a folder by the same name within the Data Directory.
- Connector Description An optional field to provide free-form description of the connector and its role in the flow.
- Match Type Whether the branch condition will look at the filename, a header in the file, or the value at an xpath in the file.
- Data Type Whether the target value is a string, number, or DateTime.
- Operator How the actual value should be compared to the target value (e.g. equal-to, starts-with, regex-match).
- Match Value The value to compare against the actual value found in the file.
- Match Case Whether the string comparison should be case-sensitive.
- Trim String Whether the string comparison should ignore whitespace.
- DateTime Format How DateTime values will be structured to enable comparison.
Settings not included in the previous categories.
- Ignore Missing Values Whether to treat missing headers or xpaths as the empty string. This avoids errors being thrown when an expected header or xpath is missing, and instead passes the message along the ‘does not match’ Flow path.
- Log Subfolder Scheme Instructs the connector to group files in the Logs folder according to the selected interval. For example, the Weekly option instructs the connector to create a new subfolder each week and store all logs for the week in that folder. The blank setting tells the connector to save all logs directly in the Logs folder. For connectors that process many transactions, using subfolders helps keep logs organized and improves performance.
- Log Messages Whether the log entry for a processed file will include a copy of the file itself.
- Save to Sent Folder Whether files processed by the connector should be copied to the Sent folder for the connector.
Miscellaneous settings are for specific use cases.
- Other Settings Enables you to configure hidden connector settings in a semicolon-separated list (for example,
setting1=value1;setting2=value2). Normal connector use cases and functionality should not require the use of these settings.
Settings related to the automatic processing of files by the connector.
- Send Whether messages arriving at the connector will automatically be processed.
A single Branch Connector determines whether a message will be passed along one of two paths. To create a multi-step conditional, like checking for several different possible header values, Branch Connectors should be chained together in a cascade. The dotted gray path for each Branch Connector should be connected to the next Branch Connector in the Flow.
For example, imagine that an incoming file has a header value indicating how the file should be processed. This header will have one of three different values, and depending on this value, the file needs to be dropped off at a different host/directory on the network.
For this case, the Branch Connector could be used in a cascade like the following:
In this example, each Branch Connector is checking for one of the three possible header values. If the header matches, the file is passed along to a File Connector to be dropped off in the appropriate directory. If it does not match, the file moves along to the next Branch Connector (i.e. moves to the next ‘case’).