Dynamic complex ports are different from dynamic ports. A dynamic complex port represents one hierarchical column of a complex data type, whereas a dynamic port represents one or more columns of any data type.
You create dynamic ports to accommodate changes to columns at run time based on the metadata that passes through the mapping. You create dynamic complex ports to accommodate changes to the schema of the hierarchical column at run time.
You cannot use dynamic complex ports in a mapplet, whereas you can use dynamic ports in a mapplet. For example, you can add a dynamic port to transformations in a mapplet. But you cannot use dynamic ports in the input and output instances of a mapplet.
The following image shows a dynamic port From_Customer_Read:
The dynamic port From_Customer_Read in the Expression_allports transformation includes generated ports of type string, decimal, struct, array, and map. The generated ports can change at run time based on the columns in the upstream transformation.
The following image shows a dynamic complex port d_Address:
The dynamic struct port d_Address in the Expression transformation includes elements of type string and decimal. The elements of a dynamic complex port can change at run time based on the schema changes to the hierarchical column in the upstream transformation.