Posts

Number System Conversion in MuleSoft(Mule 4) using Dataweave

Image
 The number 11, we call it eleven in the decimal system. Still, it can be a representation of three in a binary system or it can be seventeen in a hexadecimal system. The actual value of a number depends on the base it is calculated. It is interesting changing the base changes the value of the representation. Let us assume in some integration flow we are getting values in binary number system but target system accepts values in a decimal system or hexadecimal system or vice versa. Examples depicting values in various number systems: # DECIMAL BINARY HEXADECIMAL OCTAL BASE 10 BASE 2 BASE 16 BASE 8 I 5 101 5 5 II 14 1110 E 16 III 54 110110 36 66 IV 123 1111011 7B 173 V 240 11110000

DECIPHER: Dynamic XSLTs in BPEL (SOA 12c)

Image
 While developing integrations in BPEL 12c, XSLT is most commonly used to transform different XML message structures. We generally come across scenarios wherein based on specific input fields, our transformation logic changes. What we generally do is have all conditions within the same XSLT file. This makes our XSLT look a lot bigger and difficult to maintain. A better way would be to have different XSLTs and move deciding factor out of XSLT. Once we create different XSLTs for specific use cases having the same output format, now the question will come how to configure these XSLTs to be picked at runtime? This blog is curated with answers to such and many more questions. Let's take the example of account creation. There is a source application sending account information in an XML document which we need to update in a backend database. Now source system can send different types of address information like home address, business address, or shipping address. We get this information

Creating and Using Key-Value Lookups in MuleSoft (Mule 4)

Image
Lookups or key-value pairs are really helpful while developing integrations. Suppose, we get a value from the source system but the target system requires a corresponding value for that key(incoming data). One way is to store such cross-reference in a database table and fetch values. What if, these values are not changed frequently, and accessing a database will probably pose an overhead. A better approach would be to have a static lookup file included within the Mule application. This lookup file can be a .csv, JSON, XML, Excel, etc. file. For simplicity, in this blog, we will be using CSV files as an example for creating and using lookups in Mule 4. A CSV file is easy to maintain and use. Let's start with the below use case. Let's take a use case of Country codes. From the source system, the country field contains Country Name e.g. India but our target system requires 2 character Country Code e.g. IN as input in one of the fields. Now

Playing with XML Namespaces in Mule 4 Dataweave

Image
 Today, the world is full of REST APIs which use JSON as a major message type. But we have a lot of applications and APIs in the middleware world which rely on XML message structures. XML messages are a bit more complex than JSON messages, as in XML messages namespaces play a vital role. A miss in the namespace can lead to errors that are sometimes unseen to normal eyes. In this blog, we will discuss various ways by which we can handle the transformation of XML messages with or without namespaces in Mule 4 using Dataweave. Transforming XML messages without namespaces Transforming XML messages with namespaces  1. Transforming XML messages without namespaces This conversion is pretty simple, all we need to consider is XPath and do the mapping accordingly. This is similar to the JSON data transformation Let's take an example of 2 XMLs, wherein both input and output XMLs don't have namespaces. The output we need to specify is application/xml . IN

Tips and tricks to handle dateTime formats in Mule 4

Image
We generally come across various scenarios while developing integrations, wherein we have to deal with multiple formats of date, time, or DateTime. Sometimes source systems can send date data in only one format which may or may not be accepted by target systems, which we have to handle using dataweave expressions. In this blog, we will be going through a couple of generic scenarios which we come across frequently. For example, if we use now() in dataweave, we get an output as below. DataWeave expression: %dw 2.0 output application/json --- now() Output: "2021-12-12T14:27:48.064709Z" The above output is in the format of DateTime, and from this, it is easy to convert or extract and date or time values. Scenario #1 What if we get date time in some different format, for e.g. " 2021/12/12 14.27.48 " and we just need to extract date

Popular posts from this blog

DateTime formatting using xp20:format-dateTime ()

Handling XML response with or without namespace in Postman

Create Delimited String from XML Nodes and Vice Versa in SOA 12c