How the MQGet node implements IBM MQ MQGet API calls
Review how the MQGet node processes the input messages to construct the output messages, based on both the content of the local environment tree and the input parameters that you set.
You can include an MQGet node anywhere in a message flow, including a flow that implements a request-response scenario. The MQGet node receives an input message on its input terminal from the preceding node in the message flow, issues an MQGET call to retrieve a message from the IBM® MQ queue that you have configured in its properties, and builds a result message tree. Finally, it uses the input tree and the result tree to create an output tree that is then propagated to its Output, Warning, or Failure terminal, depending on the configuration of the node and the result of the MQGET operation.
How the MQGet node handles the local environment
The MQGet node examines the local environment tree that is propagated from the preceding node, uses the content that is related to the MQGMO (MQ Get Message Options) and the MQMD (MQ Message Descriptor header), and updates the local environment:
- The node reads the MQGMO structure from
${inputMQParmsLocation}.MQGMO.*
. - The node copies the IBM MQ completion
and reason codes to
${outputMQParmsLocation}.CC
and${outputMQParmsLocation}.RC
. - The node writes the complete MQGMO that is used for the MQGET call
into
${outputMQParmsLocation}.MQGMO
if${inputMQParmsLocation}.MQGMO
exists in the input tree. - The node writes the MQMD that is passed to the MQGET call
(that contains the values that are specified in the input message
or are generated by the node) into
${inputMQParmsLocation}.MQMD
, deleting any existing content.
Set the value to ${inputMQParmsLocation}
in
the MQGet node property Input MQ Parameters Location on
the Request Properties tab.
Set the value
to ${outputMQParmsLocation}
in the MQGet node property Output MQ Parameters Location on
the Result Properties tab.
For more information about these properties, see MQGet node.
How the MQMD for the MQGET call is constructed
- A default MQMD is prepared. For further information about the MQMD, see the Application Programming Reference section of the IBM MQ product documentation online.
- If you do not supply an input MQMD, the default MQMD is used.
- If you do supply an input MQMD, the default MQMD is used after
the following modifications:
- If the property Use all input MQMD fields is set, all MQMD fields supplied are copied into the default MQMD from the input MQMD.
- If the property Use all input MQMD fields is not set and the properties Get by Message ID or Get by Correlation ID are selected, the respective IDs are copied into the default MQMD from the input MQMD.
The following diagram shows how the MQGet node constructs the MQMD that is used on the call to IBM MQ:

How the output message tree is constructed
The following diagram outlines how the MQGet node constructs the output message tree, combining the input tree from the previous node with the result tree from the MQGET call:
Property | Action |
---|---|
Copy Message | Copy Entire Message |
Generate Mode | Message |
Output Data Location | OutputRoot.XMLNS.A |
Result Data Location | ResultRoot.XMLNS.C |
- The whole of the input tree is copied to the output tree, including the XML branch with child A, and A's child B.
- From the result tree, the XML branch's child C, and C's child
D, are put into the output tree at position
OutputRoot.XMLNS.A
. Any previous content of A (values and children) is lost, and replaced with C's content, including all values and children it has, in this case child D. - The position in the output tree retains the name A.
The following diagram shows this behavior:

For some examples of message trees that are constructed by the MQGet node according to the rules described above, see MQGet node message tree examples.