Set Transaction ID in Mule 4 | Transaction ID in Mule 4

Set transaction ID in Mule 4


In order to set the transaction ID for Business events then you will need to utilize the new connector "Set Transaction ID" available in the palette, which will allow you to specify the value for the Transaction ID as was previously the case in the Flow configuration in Mule 3. There is no need to enable the default event tracking check-box on the flow when utilizing this connector.

Sets an identifier for all checked events so that meaningful information such as order number is displayed for the transaction when analyzing tracked event at run time whether using the mule management console or cloudhub.

Flow:

This is configured exactly as was the case with Mule 3, you may enter an expression to create a unique ID for each flow invocation or a static value as is required.

Do be aware that this connector should be placed near the start of the flow, otherwise, if an exception is raised in the flow before this connector is triggered it may result in the transaction logging a default ID instead of the custom ID configured.

XML project code:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" xmlns:http="http://www.mulesoft.org/schema/mule/http"
       xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
       xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">
       <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="3792a84b-b9ea-4915-83df-5412ab23379a" >
              <http:listener-connection host="0.0.0.0" port="8085" />
       </http:listener-config>
       <flow name="test_transactionidFlow" doc:id="672abfe7-3c46-40e1-8e43-7794c6bf57d7" >
              <http:listener doc:name="Listener" doc:id="1dd789ca-db90-4959-ab01-e054b17229eb" config-ref="HTTP_Listener_config" path="/trans"/>
              <tracking:transaction doc:name="Set Transaction Id" doc:id="c9c3c2b0-5b2a-442e-a48b-84346fc45d09" id="#[%dw 2.0
output application/json
---
{
       id: random()*1000
}]"/>
              <logger level="INFO" doc:name="Logger" doc:id="1bb7c729-977a-471f-8780-372c0439410e" message="#[payload]" />
       </flow>
</mule>