Flow Reference in Mule
Use a Flow Reference component in a flow to direct Mule to send a message to another flow for processing. When a message reaches a flow reference component in a flow, Mule sends the message to another flow according to the configuration of the flow-ref attributes.
When Mule passes a message to another flow via a flow reference, the message is not carried via a transport. Thus, any outbound properties on the message remain outbound properties rather than being converted into inbound properties (as they would be if the message crossed the transport barrier.)
A flow reference can route messages to any type of flow within the same application. Refer to Flows and Subflows for more information.
Sequence of flow while using flow reference component.
Mule flow with flow reference component.
Here we have connected our main flow testflowrefFlow with our sub-flow testflowrefSub_Flow.So once control comes to flow reference component it goes to testflowrefSub_Flow as we have mapped the name of subflow in flow ref.Here it will do the required task and control again comes to main flow.
Mapping of subflow name in flow-ref component
URL : http://localhost:8085/api/flowref
Method : POST
Input :
Output :
XML Project code :
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
<flow name="testflowrefFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/flowref" doc:name="HTTP"/>
<object-to-string-transformer doc:name="Object to String"/>
<set-payload value="Hello #[payload]" doc:name="Set Payload"/>
<flow-ref name="testflowrefSub_Flow" doc:name="testflowrefSub_Flow"/>
<set-payload value="#[payload]" doc:name="Set Payload"/>
</flow>
<sub-flow name="testflowrefSub_Flow">
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
<set-payload value="#[payload] ,
I am from Pune " doc:name="Set Payload"/>
</sub-flow>
</mule>