Integration Advisor – MIG Qualification based on multiple Qualifiers
I would like to share with you the next bigger increment we added for node qualification: the option to define a qualification based on multiple qualifiers. In this blog post I want to give you a short overview of this new feature and how to use it.
Qualification feature for MIGs
Message Implementation Guidelines (in short MIGs) in Integration Advisor allow you to specify in detail the messages that you want to exchange with your Business Partner, or you want to use within your company for A2A integration.
Integration Advisor also offers you the so-called Qualification feature. Qualification means explicitly modeling the precise semantic meaning of a generic node in a message structure. By doing so, you reap the following key benefits:
- More precise specification / documentation (e.g. in communication with your B2B Partner)
- Simplified and extended payload validation at runtime
- Significantly simplified mapping implementation (save up to 30-50% of otherwise required mapping functions)
You can find an excellent introduction to the qualification concept in this blog post: Link
New feature option: use of multiple qualifiers
So far, qualification feature supported the use of one qualifier which is sufficient for the majority of use cases. There can be, however, special situations where a node in the MIG structure semantically depends on 2 or even 3 qualifiers (qualification dimensions). Up till now, you could model this only partially in Integration Advisor by using only the primary qualifier.
With our new feature option, it is now possible to use a combination of (a maximum of three) qualifiers (qualifying nodes) to distinguish between different qualification dimensions.
The semantic meaning would be as follows:
- As before, the qualification condition applies within one qualifier, if one of the qualifier values is present (OR-combination between qualifier values within one qualifier).
- For multiple dimensions, the qualification condition applies if the conditions of all the qualifiers are fulfilled (AND-combination between the qualifiers).
You should use multiple qualifiers if a node in your MIG semantically depends on a combination of qualifiers and you need to distinguish between these dimensions.
The screenshot below shows a MIG for an ASC X12 830 message (Planning Schedule). For each line item (Loop LIN) a variety of product quantities can be provided (Segment QTY).
(To make the examples simple, this MIG has been reduced to show only the QTY segments. A real-time MIG would have many more segments, such as business partner information and so on.)
The MIG qualification is used to distinguish between the different types of quantity. To do so, let us now consider the following two dimensions:
- Type of Quantity (specified by sub-node 673 – Quantity Qualifier) with qualifier values like:
- 72 – Minimum Stock Level
- 73 – Maximum Stock Level
- 17 – Quantity on Hand
- Type of Inventory (specified by sub-node 1018 – Exponent) with qualifier values:
- 1 – Inventory
- 2 – Consignment Inventory
Please note that there will be QTY segments relating to Inventory and other QTY segments relating to Consignment Inventory. Moreover, for both Inventory and Consignment Inventory, there will be QTY segments specifying the Minimum Stock Level and the Maximum Stock Level.
Using the new option in qualification, we can now clearly distinguish between these variants. Using both sub-nodes 673 and 1018 as qualifiers, we can define the following variants of the QTY segment:
- Minimum Stock Level & Inventory (qualifier values 72 & 1)
- Comment: this variant is highlighted in the screenshot above
- Minimum Stock Level & Consignment Inventory (qualifier values 72 & 2)
- Maximum Stock Level & Inventory (qualifier values 73 & 1)
- Maximum Stock Level & Consignment Inventory (qualifier values 73 & 2).
The benefit of this approach can be seen in the screenshot below that depicts a Mapping Guideline (MAG) between the above ASC X12 830 message and a cXML Product Replenishment Message.
The cXML message on the right side distinguishes between sections for Inventory and Consignment Inventory. Within each section, you find the sub-nodes RequiredMinimumQuantity and RequiredMaximumQuantity.
Due to our qualification of the X12 830 message on the left side, we now have a one-to-one correspondence of quantities on the source and target side. As a result, we get a very simple mapping by just drawing the mapping lines between the corresponding quantities.
Without the qualification of the QTY segments on the source, we need to distinguish between different quantities through the mapping, and to do so, we would need to write mapping functions (in form of XSLT snippets).
Option to disable a Qualifier
There can be situations where one of the qualified nodes does not depend on all the qualifiers. In our example, the QTY segment used for “Quantity on Hand” only applies to Inventory and there was no need to distinguish between Inventory and Consignment Inventory.
Therefore, this QTY segment is only qualified via the 673 qualifier (using the qualifier value: 17 – Quantity on Hand), while the 1018 qualifier is disabled in this case. This situation is depicted in the screenshot below.
If you want to use this option, simply set the toggle button of the respective qualifier to Off in the “Create/Change Qualified Node” dialog as shown below.
Uniqueness of Qualifier Value Combinations
The MIG qualification concept works on the assumption that any specific node instance in a payload corresponds to exactly one of the qualified nodes.
When you use multiple qualifiers, you need to pay special attention to define the qualifier values in such a way that there is no overlap and a unique qualified node can be determined.
In case of non-uniqueness, Integration Advisor uses the following strategy to resolve the situation:
The qualified nodes (belonging to one qualification context) are processed in the order as visible in the MIG structure. Once a match is found (that is the qualifier values of a payload instance match the qualifier values of the qualified node in the MIG), the payload node is qualified for this qualified node. The processing stops here, and any further potential matches are ignored.
Please note that this strategy does not apply to the “* – Remaining Value” option which is always considered at the end if no other match was found (independent of the position). For better understandability, it is nevertheless recommended to keep a qualified node for the remaining value option at the end of the list.
Qualification is one of the key features of Integration Advisor that helps to simplify and improve your Message Implementation Guidelines (MIG). With our new feature increment, it is now possible to use multiple qualifiers to distinguish between different qualification dimensions. This allows you to use the qualification feature in a more flexible way.