A submap enables you to use the same piece of mapping function in multiple graphical data maps.


A submap references another map. It calls or invokes a map from the same file or another map file, which can be stored in a library, an application, an integration service, or an Integration project.

When using submaps, consider the following points:
  • A submap can provide callable mapping between global elements or global types from a message model.
  • A submap cannot be used for local anonymous complex types. These must be mapped within the main map, for example, by a local map.
  • You can place a submap in a project or in a library. Submaps must be placed in a project or library that is visible to the main map(s) that they are called from.

For more information, see Creating a submap.


You can connect one or more elements to the Submap transform with a primary connection or with a supplement connection.
  • You can only use elements that are connected with a supplement connection to define conditional expressions.
  • All primary inputs must have a global type.
  • There is no restriction on the type of the elements that are connected with a supplement connection.

If a Submap has a single input that is repeating, the Graphical Data Mapping editor processes each instance that is included according to the Cardinality property.

If one and only one of the inputs to a Submap transform is repeatable, then all instances of the repeating input are processed. If you filter the indexes of the repeating input by configuring the Cardinality property, then only the instances that you configure are processed.

If there are multiple repeating inputs to a Submap transform, then you cannot use a Submap transform.

Define when the transform is applied at run time

You can define multiple connections between input elements and the submap transform. You can then use these input elements in a conditional expression that defines the condition under which the transform is applied. If the condition evaluates to true, the transform is applied.

You can use the inputs connected with a primary connection to the transform. To add more inputs, you can define supplement connections between input elements and the transform.

Alternatively, to define the conditional expression, you can call a static method on an imported Java™ class. You can also create a complex expression comprising XPath, Java and extension functions such as iib:getUserDefinedProperty("propertyname").  

You configure the expression in the Condition tab that is available in the Properties page of the transform.

For more information, see Configuring the properties of a transform, Defining an XPath conditional expression for a transform and Defining a Java conditional expression for a transform.