IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Building mediation flows
Type propagation in mediation flows
Messages in mediation flows are represented as service message objects (SMOs). Service message objects are enhanced business objects that include the business objects which contain the application data or payload, in addition to header and contextual information. When mediation primitives are wired together in a flow, the message is propagated from one primitive to the next. The input and output terminals of mediation primitives in a flow are configured to accept messages of a certain type, based on the validation rules of the mediation flow editor.
When you change the message type (type of the message body, or payload) of a terminal, there are implications to the other terminals of the primitive, depending on the type of primitive:
- Primitives that propagate the input message to the output message without changing the message type. An example of such a primitive is the Message Logger. The message types of the all terminals of the primitive must be the same. If you change the message type of a terminal, all the other terminals are changed to the same type
- Primitives that allow the message type to be changed as part of the primitive's function, for example Mapping, Business Object Map and Database Lookup. For these primitives, the message type of the input terminal may be different from the message type of the output terminal.
- Regardless of the type of primitive, the input and fail terminals must be of the same type. If you change the type of one of these terminals, the other is changed to the same type
When you drop a primitive onto the editor, the terminals have no message type. When the terminal is wired, its message type is deduced by the mediation flow editor. Typically, it takes on the type of the terminal to which it is wired.
You can change a terminal type to Any message type, which means that the terminal will accept all messages regardless of the type. This is useful in a generic error message flow, for example you can wire a number of fail primitives to a Fail primitive or a Message Logger that has an input terminal of Any message type.
In this case, Any refers to any wsdl message, not to xsd:any
You can also configure a terminal to a specific message type.
- Changing the message type of a mediation primitive terminal
The input and output terminals of mediation primitives in a flow are configured to accept messages of a certain type, based on the validation rules of the mediation flow editor. You can change the input or output message type of a mediation primitive.