Domain checking in callable message flows
You can specify the domains that are supported by a callable flow by setting properties on the callable message flow nodes.
The message domains that are supported by a callable flow are determined by properties that are set on the CallableInput and CallableReply nodes. The Supported Domains table on each node shows the message domains that are supported, together with information about the supported message models, message types, and physical message formats. The nodes also contain an option to check messages against the supported domain information.
If the Check messages against supported domains option is selected on the CallableInput node, any incoming messages that are received by the node are checked against the details in the Supported domains table to see if they match. If they do not match, the message is rejected. If this option is not selected, incoming messages are processed without checking against the entries in the table, and the information in the Supported domains table is used only in the registration of the end point to provide extra details of the types of messages that can be sent into the endpoint.
If the Check messages against supported domains option is selected on the CallableReply node, any response messages that are about to be sent by the CallableReply node are checked against the entries in the Supported Domains table to see if they match. If they do not match, an exception is thrown.
For both the CallableInput and CallableReply nodes, if the Check messages against supported domains option is selected, the last folder in the message tree is accessed and is assumed to be the message body. If it is not a message body, but is another part of the message tree such as a properties or header folder, no checks are made. If the body folder is owned by a parser, the external name of the parser is used to check against the domains in the supported domains table. If the message body folder is not owned by a parser, the name of the message body folder is used to check against the domains in the supported domains table. If the message tree has multiple message body folders, only the last one is checked against the supported domains table.
When a match is made to a row in the supported domains table, the other columns are checked. A check is made only if the fields contain a valid character value. If a column does not contain a value, no checks are made for the column. The value of the Properties.MessageSet field is checked against the value in the Message model column, the value of the Properties.MessageType field is checked against the value in the Message column, and the value of the Properties.MessageFormat field is checked against the value in the Physical format column.
Rows can contain any combination of values in the Message Domain, Message Set, Message (type),
and Physical Format columns, which means that you can include minimal information in the rows for
checking (such as JSON
for any JSON message and DFDL
for any DFDL
message). If you include leading or trailing spaces in the message domain, set, type, or format
fields, the message domain might not be matched successfully.
The Supported Domains table can display real message names and message set names, but not aliases or MRM message set IDs. If you want aliases or MRM message set IDs to appear in the table, you can add them manually.
Messages are not validated against schemas as part of the message checking. If you require schema validation, you can configure it as part of the message flow logic.
For more information, see CallableInput node and CallableReply node.