Open the Message Flow Mapping editor by right-clicking the node
with which you want to work and selecting Open Mappings from
the menu. The name of the mapping files created is of
the form flowname_nodename. For example, if you launch the Message Flow Mapping
editor from a new Mapping node called Mapping in a flow called topflow, the
mapping file's name is topflow_Mapping.mfmap. If there is another Mapping
node in the same flow called Mapping1, launching the editor from this node
opens the file topflow_Mapping1.mfmap, because the root file topflow_Mapping1
is distinct from topflow_Mapping.
The Message Flow Mapping editor is
populated using information from schema files, and shows message or database
structures in the form of a tree. Nesting levels of message structures with
possibly recursive data types can be infinite. Mapping information is stored
in a resource that is separate from the resource containing the message flow
information, and mapping resources are visible in the Resource Navigator view.
Fields
that have been mapped are highlighted with a small arrow to the left of the
field name. If a previously-mapped input or output no longer exists in a message
or database definition, it is described as unresolvable in the task list.
From the Target view you can select Output
Message Properties and choose one of the defined messages as the
output message body along with a wire format. This is useful
when a mapping routine involves multiple messages, because it allows you to
specify the message to be set as the output message body. However, if the
mapping routine contains one output message only, you still need to set the
message to be the output message body if the output message is different from
the input message.
You cannot use the following correlation
names in the expression of any mapping for a Mapping, Extract, Warehouse,
DataInsert, DataUpdate, or DataDelete node:
- Environment
- Root
- Body
- Properties
- DesintationList
- ExceptionList
- LocalEnvironment
- InputRoot
- InputBody
- InputProperties
- InputDestinationList
- InputExceptionList
- InputLocalEnvironment
- OutputRoot
- OutputDestinationList
- OutputExceptionList
- OuputLocalEnvironment.
The order of mapping statements in the resulting
mapping ESQL routine (and consequently, their execution order) is determined
by the order of mapping targets (message elements and database table columns).
In cases where there are multiple message mapping routines on the target side,
one of them can be declared as the resulting message body in the mapping editor.
This means that the other message mapping routines represent the resulting
message headers and ESQL statements corresponding to these message mapping
routines are generated first in the resulting mapping ESQL procedure (see Mapping and ESQL).
If there are multiple
mappings with the same target, an ESQL statement is generated for each mapping.
The order of generated statements in this case is undefined; the target item
value might be overridden and the resulting value will be the one corresponding
to the last mapping.
In mapping objects, mapping editors, and mapping
expression composers, the notation "I#" (including double quotes) is used
as the index for a repeating structure. This index is displayed as I# (without
double quotes) in the debugger variable view and in error or warning messages.
To avoid unexpected results, do not use double quotes in the name of a message
element, message attribute, or a database table.