Script Transformer in Mule




Script Transformer in Mule


It defines a script component to use as a transformer. The Script transformer lets you select the particular scripting engine from a pull-down list. The predefined script transformers Groovy, JavaScript, Python, and Ruby have the scripting engines already set.

Minimum Configuration: None.

A Script transformer lets you use a script component as a transformer. You can configure a script using name/value pairs, in which case you must provide the key or name for the name/value pair.


Open the Properties Editor. Use the General tab to specify the file containing the script code or to enter the script itself. You also select the MIME Type and scripting engine from the Engine property pull-down list. Scripting engine choices are: JavaScript, Groovy, Python, and Ruby. The default scripting engine is Groovy.

Script Transformer is used to write a code script.It supports 4 scripting languages :

1) Groovy(default)
2) Javascript
3) Python
4) Ruby


We can execute code either of above mentioned scripting languages.

I have chosen default one that is Groovy.


flow of Script Transformer :



Script Transformer configuration :




URL :  http://localhost:8085/api/scripttransformer
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:scripting="http://www.mulesoft.org/schema/mule/scripting" 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/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.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_scripttransformerFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/scripttransformer" doc:name="HTTP"/>
        <object-to-string-transformer doc:name="Object to String"/>
        <scripting:transformer doc:name="Script">
            <scripting:script engine="Groovy"><![CDATA[String str = payload;
String str1 = payload + ' ' + 'Himanshu';
return str1;]]></scripting:script>
        </scripting:transformer>

    </flow>

</mule>