Calling another flow in Data weave | lookup in Data weave




Calling another flow in Data weave | lookup in Data weave

From lookup we can call another mule flow in data weave.
Here is the example :


In transform message test_dataweaveFlow1 will be called.



Transform message configuration : 




URL : localhost:8085/api/dataweaveflow
Method : POST

Input : 

{
"id" : 1
}



Output : 

{
    "flow": "Hello Himanshu"
}

XML project code  :


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

<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" 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://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
    <flow name="test_dataweaveFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/dataweaveflow" doc:name="HTTP"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{

  flow : lookup('test_dataweaveFlow1',payload) //calling mule flow,we cant call subflow from it
   
}]]></dw:set-payload>
        </dw:transform-message>
    </flow>
    <flow name="test_dataweaveFlow1">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/flow" doc:name="HTTP"/>
        <set-payload value="Hello Himanshu" doc:name="Set Payload"/>
    </flow>
</mule>