SlideShare a Scribd company logo
1 of 17
DATAWEAVE IN MULE
Using the DataWeave Transformer
• In Anypoint Studio, you can place a Transform
Message element in a flow to create transformations
using the DataWeave language.
• The editor helps you do this by offering intelligent
autocomplete suggestions, an output preview that is
updated in real time as you make changes.
• This generates a .dwl transformation file (or several of
them) that stores your code and is packaged with your
Mule application.
• When adding a Transform Message element to a Mule
Flow, it takes the elements from the incoming Mule
Message as its inputs. It then performs the necessary
actions to produce a Mule message as output for the next
element in the flow
• The DataWeave Text Editor GUI
• The Transform Message element allows you to freely
write DataWeave code.
• If you click on an instance of the Transform Message
element in your flow, its properties editor will be displayed.
This editor is divided into three sections:
• Input
• Transform
• Output
Input Section
In the main tab, a tree view shows the known metadata
contents of the incoming Mule Message, allowing you to
explore it and know what data is available for using as an
input, and how to reference each part of it.
If the Mule flow doesn’t expose Metadata about the
elements you need from the incoming message, you can
manually specify it. To do so, select the element of the input
you desire to define, note that the pencil icon at the top
right is no longer grayed out. Click this icon to open a new
tab in your input section where you can define a sample
with the structure of this data.
When the input is of JSON or XML types, the sample input contains plain XML or
JSON code. When the input is of type POJO or DataWeave, the sample input is
written in DataWeave for more simplicity. In these cases the sample DataWeave code
is merely a way to display the sample data, not a transformation in itself.
Setting Reader Parameters
• Some input formats, like CSV, allow you to define
a reader with specific properties that make
DataWeave parse inputs differently. Select the
input element you wish to configure on the tree
view of the input section, then click the gear icon.
Transform Section
• you write the actual DataWeave code that carries out the
transform. Notice that changing the type of your output
directive changes the output section of the editor.
Although DataWeave as a language supports adding
input directives and naming these by any name you like,
in Studio the elements of the input message are implicitly
considered input directives and so they don’t need to be
defined in the header.
If Studio has any metadata about the components that are
upstream or downstream from your Transform Message
element at the time when you add the component to your
flow, a scaffolding for your DataWeave code is written out
automatically, with as much depth as Studio can
intelligently deduce. In some cases, this code may be
enough to carry out the transformation you need, and no
additional coding is needed. Sometimes, all you need to do
is fill in the blank spaces in the scaffolding with references
to the input fields, other times you may want to carry out
more complex operations that involve aggregation, filtering,
calculations, defining custom functions, etc and there you
must write this out in DataWeave code.
Re-scaffolding
• Once you’ve added the Transform Message element to
your flow, any further changes you make to the
surrounding message processors and their metadata
won’t affect your `.dw`l file. You may still click the
Scaffolding button on the top left of the DataWeave
properties editor any time you want and have a new
scaffolding built, note that this will erase anything you’ve
written in the DataWeave body. Doing this won’t affect
any directives you defined in your header (except for the
output directive). Use this button if you’ve made any
changes to elements that come after the Transform
Message element on the flow that expose metadata and
don’t mind loosing what you’ve already written into the
transform’s body.
Referencing Existing Transforms
Instead of defining a new .dwl file, you can reference an
existing one by clicking theData Source button,
selecting On File as the source and referencing the correct
file.
Handling Multiple Outputs
A single Transform Message element can give shape to
several different components of the output Mule message.
Each of these output components must be defined in a
separate .dwl file, written out in a separate tab of the
Transform section. For example in one tab you may be
defining the payload contents, in another those of an
outbound property, and these will both be parts of the same
output Mule message
To add a new output, click the Plus sign at the
bottom right of the section:new+output.png[image]
A new tab will then appear, there you can specify
where in the output Mule message to place the
output of this DataWeave transform. In case you’re
creating a new variable or property, you must also
set a name for it.
In the XML editor you can do the same by adding multiple
child elements inside thedw:transform-message component.
<dw:transform-message>
<dw:set-payload resource="classpath:path/transform.dwl"/> <dw:set-
variable variableName="myVariable"
resource="classpath:path/transform.dwl"/> <dw:set-session-variable
variableName="mySessionVariable"
resource="classpath:path/transform.dwl"/> </dw:transform-message>
Output Section
• This section has two tabs, one of them shows you a neat
expandable tree view of the output data structure, the other
shows you a preview of what the actual output looks like, built
from any sample data you provide in the input section. As you
make changes in the transport section, notice how the data
structure changes. The output of the transformer is made into
the selected component of the output mule message. If your
transformer has multiple outputs, the Preview tab will display
the one corresponding to the currently selected transform.
Using DataWeave Language Elsewhere
• All components in Mule that support Mule Expression
Language also support expressions written in DataWeave
Language. To invoke an expression written in DataWeave
language, simply invoke the dw() function, the expression will
return whatever the transform outputs.
• DataWeave expressions defined within this function work just
as those defined within a Transform Message element, the only
difference is that the output is returned into the expression’s
result, wherever it may be.
• For example, you can define a custom object and
populate it with elements from the payload:
• That same expression could be added inside a Logger,
• within a MEL expression, to print out its result:
dw(myobject:{id:payload.accountid, user:payload.user})
#[`dw(myobject:{id:payload.accountid, user:payload.user})`]

More Related Content

What's hot

What's hot (12)

Oracle Form material
Oracle Form materialOracle Form material
Oracle Form material
 
OBIEE publisher with Report creation - Tutorial
OBIEE publisher with Report creation - TutorialOBIEE publisher with Report creation - Tutorial
OBIEE publisher with Report creation - Tutorial
 
Murach: How to use Entity Framework EF Core
Murach: How to use Entity Framework EF  CoreMurach: How to use Entity Framework EF  Core
Murach: How to use Entity Framework EF Core
 
Generic steps in informatica
Generic steps in informaticaGeneric steps in informatica
Generic steps in informatica
 
Reports 6i
Reports 6iReports 6i
Reports 6i
 
Responsive Design and Bootstrap
Responsive Design  and BootstrapResponsive Design  and Bootstrap
Responsive Design and Bootstrap
 
d2k
d2kd2k
d2k
 
SQL Commands
SQL Commands SQL Commands
SQL Commands
 
VB6 Using ADO Data Control
VB6 Using ADO Data ControlVB6 Using ADO Data Control
VB6 Using ADO Data Control
 
Oracle Certification 1Z0-1041 Questions and Answers
Oracle Certification 1Z0-1041 Questions and AnswersOracle Certification 1Z0-1041 Questions and Answers
Oracle Certification 1Z0-1041 Questions and Answers
 
Oracle SQL Advanced
Oracle SQL AdvancedOracle SQL Advanced
Oracle SQL Advanced
 
SQL Tunning
SQL TunningSQL Tunning
SQL Tunning
 

Viewers also liked

BTO 2015 | La Sfida | Sergio Cagol
BTO 2015 | La Sfida | Sergio CagolBTO 2015 | La Sfida | Sergio Cagol
BTO 2015 | La Sfida | Sergio CagolBTO Educational
 
Style and genre
Style and genreStyle and genre
Style and genrenickieho
 
Bus30104 intro to biz final project aug 2015
Bus30104 intro to biz final project   aug 2015Bus30104 intro to biz final project   aug 2015
Bus30104 intro to biz final project aug 2015Leon Lim
 
Style and genre
Style and genreStyle and genre
Style and genrenickieho
 
RubyKaigi 2015-DIY-Testing
RubyKaigi 2015-DIY-TestingRubyKaigi 2015-DIY-Testing
RubyKaigi 2015-DIY-TestingEmily Stolfo
 
Albert en Paola in mis voor Patrick Haemers
Albert en Paola in mis voor Patrick HaemersAlbert en Paola in mis voor Patrick Haemers
Albert en Paola in mis voor Patrick HaemersThierry Debels
 
Justin Weaver PCP1512 Professional Persona Project Slideshow
Justin Weaver PCP1512 Professional Persona Project SlideshowJustin Weaver PCP1512 Professional Persona Project Slideshow
Justin Weaver PCP1512 Professional Persona Project SlideshowJustin Weaver
 
Bus30104 intro to biz assignment business plan aug 2015
Bus30104 intro to biz assignment   business plan aug 2015Bus30104 intro to biz assignment   business plan aug 2015
Bus30104 intro to biz assignment business plan aug 2015Leon Lim
 
Aorta abdominal y sus terminales
Aorta abdominal y sus terminalesAorta abdominal y sus terminales
Aorta abdominal y sus terminalesNatasha Zavala
 
openFrameworks-jp Tokyo Meetup 2015 autumn
openFrameworks-jp Tokyo Meetup 2015 autumnopenFrameworks-jp Tokyo Meetup 2015 autumn
openFrameworks-jp Tokyo Meetup 2015 autumnNariaki Iwatani
 
Teaching people to think and work across disciplinary and professional bounda...
Teaching people to think and work across disciplinary and professional bounda...Teaching people to think and work across disciplinary and professional bounda...
Teaching people to think and work across disciplinary and professional bounda...Lina Markauskaite
 
PayrollAdmin - Attendance and Payroll Management ERP Software
PayrollAdmin - Attendance and Payroll Management ERP SoftwarePayrollAdmin - Attendance and Payroll Management ERP Software
PayrollAdmin - Attendance and Payroll Management ERP SoftwareRanganath Shivaram
 

Viewers also liked (20)

Marketing plan
Marketing planMarketing plan
Marketing plan
 
Wcms 170567
Wcms 170567Wcms 170567
Wcms 170567
 
BTO 2015 | La Sfida | Sergio Cagol
BTO 2015 | La Sfida | Sergio CagolBTO 2015 | La Sfida | Sergio Cagol
BTO 2015 | La Sfida | Sergio Cagol
 
Style and genre
Style and genreStyle and genre
Style and genre
 
Bus30104 intro to biz final project aug 2015
Bus30104 intro to biz final project   aug 2015Bus30104 intro to biz final project   aug 2015
Bus30104 intro to biz final project aug 2015
 
3º advento c 2015
3º advento  c  20153º advento  c  2015
3º advento c 2015
 
Style and genre
Style and genreStyle and genre
Style and genre
 
Possitive%20 mindset
Possitive%20 mindsetPossitive%20 mindset
Possitive%20 mindset
 
Doc1
Doc1Doc1
Doc1
 
intelectual capital
intelectual capitalintelectual capital
intelectual capital
 
RubyKaigi 2015-DIY-Testing
RubyKaigi 2015-DIY-TestingRubyKaigi 2015-DIY-Testing
RubyKaigi 2015-DIY-Testing
 
Albert en Paola in mis voor Patrick Haemers
Albert en Paola in mis voor Patrick HaemersAlbert en Paola in mis voor Patrick Haemers
Albert en Paola in mis voor Patrick Haemers
 
Justin Weaver PCP1512 Professional Persona Project Slideshow
Justin Weaver PCP1512 Professional Persona Project SlideshowJustin Weaver PCP1512 Professional Persona Project Slideshow
Justin Weaver PCP1512 Professional Persona Project Slideshow
 
Bus30104 intro to biz assignment business plan aug 2015
Bus30104 intro to biz assignment   business plan aug 2015Bus30104 intro to biz assignment   business plan aug 2015
Bus30104 intro to biz assignment business plan aug 2015
 
Ashish (original) oct 15
Ashish (original) oct 15Ashish (original) oct 15
Ashish (original) oct 15
 
Ppt Eksperimen
Ppt EksperimenPpt Eksperimen
Ppt Eksperimen
 
Aorta abdominal y sus terminales
Aorta abdominal y sus terminalesAorta abdominal y sus terminales
Aorta abdominal y sus terminales
 
openFrameworks-jp Tokyo Meetup 2015 autumn
openFrameworks-jp Tokyo Meetup 2015 autumnopenFrameworks-jp Tokyo Meetup 2015 autumn
openFrameworks-jp Tokyo Meetup 2015 autumn
 
Teaching people to think and work across disciplinary and professional bounda...
Teaching people to think and work across disciplinary and professional bounda...Teaching people to think and work across disciplinary and professional bounda...
Teaching people to think and work across disciplinary and professional bounda...
 
PayrollAdmin - Attendance and Payroll Management ERP Software
PayrollAdmin - Attendance and Payroll Management ERP SoftwarePayrollAdmin - Attendance and Payroll Management ERP Software
PayrollAdmin - Attendance and Payroll Management ERP Software
 

Similar to Data weave (20)

Dataweave nagarjuna
Dataweave nagarjunaDataweave nagarjuna
Dataweave nagarjuna
 
Data weave
Data weave Data weave
Data weave
 
Data weave
Data weave Data weave
Data weave
 
Data weave
Data weave Data weave
Data weave
 
Dataweave 160103180124
Dataweave 160103180124Dataweave 160103180124
Dataweave 160103180124
 
Mule data weave
Mule data weaveMule data weave
Mule data weave
 
Data weave
Data weaveData weave
Data weave
 
Dataweave in studio
Dataweave in studioDataweave in studio
Dataweave in studio
 
Data weave in mule
Data weave in muleData weave in mule
Data weave in mule
 
Muledataweave10 161029032456-161119152200
Muledataweave10 161029032456-161119152200Muledataweave10 161029032456-161119152200
Muledataweave10 161029032456-161119152200
 
Mule dataweave
Mule dataweaveMule dataweave
Mule dataweave
 
How to – data integrity checks in batch processing
How to – data integrity checks in batch processingHow to – data integrity checks in batch processing
How to – data integrity checks in batch processing
 
Mule data weave_2
Mule data weave_2Mule data weave_2
Mule data weave_2
 
Mule dataweave
Mule dataweaveMule dataweave
Mule dataweave
 
Mule data weave_3
Mule data weave_3Mule data weave_3
Mule data weave_3
 
Mule with data weave
Mule with data weaveMule with data weave
Mule with data weave
 
Mca 504 dotnet_unit5
Mca 504 dotnet_unit5Mca 504 dotnet_unit5
Mca 504 dotnet_unit5
 
2 designer
2 designer2 designer
2 designer
 
Data weave (MuleSoft)
Data weave (MuleSoft)Data weave (MuleSoft)
Data weave (MuleSoft)
 
Oracle report from ppt
Oracle report from pptOracle report from ppt
Oracle report from ppt
 

More from Phaniu

Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gatewayPhaniu
 
How to use expression filter
How to use expression filterHow to use expression filter
How to use expression filterPhaniu
 
How to use message properties component
How to use message properties componentHow to use message properties component
How to use message properties componentPhaniu
 
Mapping and listing with mule
Mapping and listing with muleMapping and listing with mule
Mapping and listing with mulePhaniu
 
Mmc rest api user groups
Mmc rest api user groupsMmc rest api user groups
Mmc rest api user groupsPhaniu
 
Mule esb stripe
Mule esb stripeMule esb stripe
Mule esb stripePhaniu
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollectionPhaniu
 
Mule esb
Mule esbMule esb
Mule esbPhaniu
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollectionPhaniu
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollectionPhaniu
 
Mule esb
Mule esbMule esb
Mule esbPhaniu
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollectionPhaniu
 
Mule security jaas
Mule security jaasMule security jaas
Mule security jaasPhaniu
 
Mule security jaas
Mule security jaasMule security jaas
Mule security jaasPhaniu
 
Mule security saml
Mule security samlMule security saml
Mule security samlPhaniu
 
Mule soa
Mule soaMule soa
Mule soaPhaniu
 
Mule soap
Mule soapMule soap
Mule soapPhaniu
 
Mule soap
Mule soapMule soap
Mule soapPhaniu
 

More from Phaniu (20)

Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
How to use expression filter
How to use expression filterHow to use expression filter
How to use expression filter
 
How to use message properties component
How to use message properties componentHow to use message properties component
How to use message properties component
 
Mapping and listing with mule
Mapping and listing with muleMapping and listing with mule
Mapping and listing with mule
 
Mmc rest api user groups
Mmc rest api user groupsMmc rest api user groups
Mmc rest api user groups
 
Mmc
MmcMmc
Mmc
 
Mmc 2
Mmc 2Mmc 2
Mmc 2
 
Mule esb stripe
Mule esb stripeMule esb stripe
Mule esb stripe
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollection
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollection
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollection
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule for each scope headerc ollection
Mule for each scope headerc ollectionMule for each scope headerc ollection
Mule for each scope headerc ollection
 
Mule security jaas
Mule security jaasMule security jaas
Mule security jaas
 
Mule security jaas
Mule security jaasMule security jaas
Mule security jaas
 
Mule security saml
Mule security samlMule security saml
Mule security saml
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule soap
Mule soapMule soap
Mule soap
 
Mule soap
Mule soapMule soap
Mule soap
 

Recently uploaded

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Data weave

  • 2. Using the DataWeave Transformer • In Anypoint Studio, you can place a Transform Message element in a flow to create transformations using the DataWeave language. • The editor helps you do this by offering intelligent autocomplete suggestions, an output preview that is updated in real time as you make changes. • This generates a .dwl transformation file (or several of them) that stores your code and is packaged with your Mule application.
  • 3. • When adding a Transform Message element to a Mule Flow, it takes the elements from the incoming Mule Message as its inputs. It then performs the necessary actions to produce a Mule message as output for the next element in the flow
  • 4. • The DataWeave Text Editor GUI • The Transform Message element allows you to freely write DataWeave code. • If you click on an instance of the Transform Message element in your flow, its properties editor will be displayed. This editor is divided into three sections: • Input • Transform • Output
  • 5. Input Section In the main tab, a tree view shows the known metadata contents of the incoming Mule Message, allowing you to explore it and know what data is available for using as an input, and how to reference each part of it. If the Mule flow doesn’t expose Metadata about the elements you need from the incoming message, you can manually specify it. To do so, select the element of the input you desire to define, note that the pencil icon at the top right is no longer grayed out. Click this icon to open a new tab in your input section where you can define a sample with the structure of this data.
  • 6. When the input is of JSON or XML types, the sample input contains plain XML or JSON code. When the input is of type POJO or DataWeave, the sample input is written in DataWeave for more simplicity. In these cases the sample DataWeave code is merely a way to display the sample data, not a transformation in itself.
  • 7. Setting Reader Parameters • Some input formats, like CSV, allow you to define a reader with specific properties that make DataWeave parse inputs differently. Select the input element you wish to configure on the tree view of the input section, then click the gear icon.
  • 8. Transform Section • you write the actual DataWeave code that carries out the transform. Notice that changing the type of your output directive changes the output section of the editor. Although DataWeave as a language supports adding input directives and naming these by any name you like, in Studio the elements of the input message are implicitly considered input directives and so they don’t need to be defined in the header.
  • 9. If Studio has any metadata about the components that are upstream or downstream from your Transform Message element at the time when you add the component to your flow, a scaffolding for your DataWeave code is written out automatically, with as much depth as Studio can intelligently deduce. In some cases, this code may be enough to carry out the transformation you need, and no additional coding is needed. Sometimes, all you need to do is fill in the blank spaces in the scaffolding with references to the input fields, other times you may want to carry out more complex operations that involve aggregation, filtering, calculations, defining custom functions, etc and there you must write this out in DataWeave code.
  • 10. Re-scaffolding • Once you’ve added the Transform Message element to your flow, any further changes you make to the surrounding message processors and their metadata won’t affect your `.dw`l file. You may still click the Scaffolding button on the top left of the DataWeave properties editor any time you want and have a new scaffolding built, note that this will erase anything you’ve written in the DataWeave body. Doing this won’t affect any directives you defined in your header (except for the output directive). Use this button if you’ve made any changes to elements that come after the Transform Message element on the flow that expose metadata and don’t mind loosing what you’ve already written into the transform’s body.
  • 11. Referencing Existing Transforms Instead of defining a new .dwl file, you can reference an existing one by clicking theData Source button, selecting On File as the source and referencing the correct file.
  • 12. Handling Multiple Outputs A single Transform Message element can give shape to several different components of the output Mule message. Each of these output components must be defined in a separate .dwl file, written out in a separate tab of the Transform section. For example in one tab you may be defining the payload contents, in another those of an outbound property, and these will both be parts of the same output Mule message
  • 13. To add a new output, click the Plus sign at the bottom right of the section:new+output.png[image] A new tab will then appear, there you can specify where in the output Mule message to place the output of this DataWeave transform. In case you’re creating a new variable or property, you must also set a name for it.
  • 14. In the XML editor you can do the same by adding multiple child elements inside thedw:transform-message component. <dw:transform-message> <dw:set-payload resource="classpath:path/transform.dwl"/> <dw:set- variable variableName="myVariable" resource="classpath:path/transform.dwl"/> <dw:set-session-variable variableName="mySessionVariable" resource="classpath:path/transform.dwl"/> </dw:transform-message>
  • 15. Output Section • This section has two tabs, one of them shows you a neat expandable tree view of the output data structure, the other shows you a preview of what the actual output looks like, built from any sample data you provide in the input section. As you make changes in the transport section, notice how the data structure changes. The output of the transformer is made into the selected component of the output mule message. If your transformer has multiple outputs, the Preview tab will display the one corresponding to the currently selected transform.
  • 16. Using DataWeave Language Elsewhere • All components in Mule that support Mule Expression Language also support expressions written in DataWeave Language. To invoke an expression written in DataWeave language, simply invoke the dw() function, the expression will return whatever the transform outputs. • DataWeave expressions defined within this function work just as those defined within a Transform Message element, the only difference is that the output is returned into the expression’s result, wherever it may be.
  • 17. • For example, you can define a custom object and populate it with elements from the payload: • That same expression could be added inside a Logger, • within a MEL expression, to print out its result: dw(myobject:{id:payload.accountid, user:payload.user}) #[`dw(myobject:{id:payload.accountid, user:payload.user})`]