Everything you need to know about blockchain technology

40

Bitcoin is the most chanted word in the recent past. Blockchain is the technology behind bitcoin, but Blockchain is often associated with bitcoin and other virtual currencies. People who have associated with this technology says what the world has seen on blockchain is only the tip of a iceberg, which means there is plenty that can be made out of Blockchain. Blockchain has the potential of transforming many industry verticals.

If you a read a piece of advice or heard from your neighbour to invest in bitcoin or trade some Ethereum and have come across the word blockchain and wondering what it actually is, you have come to the right place.

Let us make one point clear, Blockchain isn’t just for bitcoin. It’s much beyond bitcoin.

Blockchain technology is not simple when you get deeper into the concepts, however the basic concept is not too tough either. It is an effective database that is validated by a community. It can be defined as a collection of records that a group of people maintain rather than a single entity like a bank or a government.

In the concept of blockchain, block represents the volume of transaction records and the chain component links all of them together with a # function. As the records get piled up, they are authorized by a distributed network for computer and are paired up with previous entry in the chain. This creates a chain of blocks or a blockchain.

As mentioned earlier the blockchain is retained on a large network of machines, which means no individual has control over its history or its records. Blockchain is more like a public ledger that cannot be easily tampered. It is like a built in layer of protection which is not possible in the case of standard, centralized database of information.

Blockchain challenged the traditional methodology, where we have a trusted central authority like bank or government to fulfil the needs of contracts. Blockchain makes it possible to have the people around us guarantee trust for us in an automated, secure fashion. This is the innovation that blockchain brings and that’s why you may have heard it being used as a reference to cryptocurrency. However blockchain has a potential to maintain variety of information like electoral voting system or handling patient records.

In spite of blockchain having potential, there are some serious consideration that needs to be addressed before calling it as a technology for the future. This presents a numerous opportunities for companies today working in the blockchain space. There is a tremendous chance to innovate and grab the first mover advantage in the market.

We understood above that the calculations in blockchain are tedious and will need a network of super computers to do the job. The power consumed by a network of expensive network of super computers is also high and equally expensive. This is one area of concern from an infrastructure point of view.

Transaction speed is also another issue. When the blocks in the chain needed to be verified by a distribution network, it takes time. There is a saying that bitcoin’s average transaction time exceeded 41 hours in its initial days. Though this has bettered with due course of time, it could still be an issue in the application of blockchain outside cryptocurrency.

Few more concerns in the areas of complex calculations, security and infrastructure needs to be addressed in near future we will be seeing blockchain technology being more adoptable, flexible and growing. The future looks promising for blockchain for sure.

For more information on blockchain, reach us at info@massil.tech

Applying filtering logic for custom filters in Mule ESB?

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about applying filtering logic for custom filters in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

We have found to our surprise that extensive documentation on mulesoft does not cover the line of applying filtering logic for custom filters. In addition to applying standard filters, you can create a custom filter to specify a precise set of conditions a message must satisfy before it can continue through the flow. Note that the reference is to a class implementing the Filter interface.

STEP 1:

In The Anypoint top left click on the file => New => Mule Project. Click on the Mule Project enter the your project name.

STEP 2:

Drag and drop the connecters you required from the Mule ESB Palette to the canvas.

STEP 3:

Custom filter is used where you can have an out-of-box filter logic which you can say your own custom filter logic. Generally, you can implement your Custom Filter in a Java class implementing org.mule.api.routing.filter.Filter interface

A small example of your custom filter:

Create following Java Class as a custom filter:

package com.filter;

import org.mule.api.MuleMessage;

import org.mule.api.routing.filter.Filter;

 

public class PayloadFilter implements Filter {

/**

* This class implements a custom Mule filter.

*/

@Override

public boolean accept(MuleMessage input) {

boolean msgValidated = false;

try {

String payloadStr = input.getPayloadAsString();

if (payloadStr != null && (payloadStr.trim().length() > 0)) {

if (payloadStr.contains(“@”)) {

msgValidated = true;

} else

return false;

} else {

return false;

}

 

} catch (Exception e) {

e.printStackTrace();

msgValidated = false;

}

 

return msgValidated;

}

}

STEP 4:

In Mule ESB flow, you can implement this custom Filter by calling this java class as follows:

FLOW :

What this Custom Filter will do is when you pass any String payload into your flow it validates the String payload and check if it contains @ in it. If it finds @ within the String, it will pass or else it will throw exceptions. For example, String like support@mulesoft.com will pass successfully, while Sting like support will fail. You can try passing a String payload from POSTMAN client to the flow as POST method and header as Content-Type=text/plain

Xml:

<?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.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd

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:listener-config name=“HTTP_Listener_Configuration” host=“0.0.0.0” port=“8081” doc:name=“HTTP Listener Configuration”/>

<flow name=“TestFlow”>

<http:listener config-ref=“HTTP_Listener_Configuration” path=“/test” doc:name=“HTTP”/>

<object-to-string-transformer doc:name=“Object to String”/>

<message-filter throwOnUnaccepted=“true” doc:name=“RequestHeaderFilter”>

<custom-filter class=“com.filter.PayloadFilter”/>

 

</message-filter>

<set-payload value=“Test payload” doc:name=“Set Payload”/>

</flow>

</mule>

POSTMAN OUTPUT:

In a simple way, you can post the support@mulesoft.com or any other wit will contains @ it will gives the success results otherwise like supportmulesoft.com it will fail. The success text is shown below.

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

How to extract nested JSON elements without changing it to Object in Mule ESB?

37

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about extracting nested JSON elements without changing it to object in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

The step by step approach is explained below hoping it would be of use to all the readers.

Step 1:

In Anypoint Studio click File > New > Mule Project to create a new project, give it whatever name you wish and click Finish.

Step 2:

Drag an HTTP Connector from the palette to your empty canvas, then a Transform Message   Component.

Step 3:

Click on the HTTP Connector to open its properties editor, then click the green arrow icon to create a new configuration for it. Leave all of the fields by default and click OK.

Step 4:

 

Note that if you open the Transform Message component, the output payload section should write the

payload.individualdata

Step 5:

In the logger write  #[payload]

Step 6:

Save & Run the project:

Step 7:

Send JSON using postman to the project

Step 8:

The output is as shown below:

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

Transmission Control Protocol in Mule ESB

36

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about Transmission Control Protocol (TCP) in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

The TCP transport allows sending or receiving messages over TCP connections. TCP is a layer over IP and used to implement many other reliable protocols such as HTTP and FTP. However, you may want to use the TCP transport directly if you require a specific protocol for reading the message payload that is not supported by one of these higher level protocols. This is often the case when communicating with legacy or native system applications that don’t support web services.

The following Mule transports provide access to TCP connections:

  • The TCP Transport
  • The SSL and TLS Transports which use TCP with socket-level security

Creating a TCP Server:

Step 1:

Drag a TCP connector to the canvas and configure it as shown.

 

To access the payload we are taking one java component and we are writing one java class for it. Write java code in src/main/java

java code:

importorg.mule.api.MuleEventContext;

importorg.mule.api.lifecycle.Callable;

 

publicclassTcpServerimplements Callable {

 

@Override

public Object onCall(MuleEventContexteventContext) throws Exception {

// TODO Auto-generated method stub

User user = (User) eventContext.getMessage().getPayload();

System.out.println(user.getId() + ” ” + user.getFname() + ” ”

+ user.getLname());

returnuser;

}

 

}

Take a Java component from the palette and class name of the java file.

Step2:

We have to access the server for that takes another flow:

Take one HTTP connector from the palette and configure it like this:

Take JSON-to Object transformer to convert the Payload (JSON payload) write a java code for it.

Java code:

importjava.io.Serializable;

 

publicclass User implements Serializable {

 

/**

*

*/

privatestaticfinallongserialVersionUID = 1L;

privateint id;

private String fname;

private String lname;

 

publicintgetId() {

return id;

}

 

publicvoidsetId(int id) {

this.id = id;

}

 

public String getFname() {

returnfname;

}

 

publicvoidsetFname(String fname) {

this.fname = fname;

}

 

public String getLname() {

returnlname;

}

 

publicvoidsetLname(String lname) {

this.lname = lname;

}

 

}

To access the server we have to take TCP connector and configure it as shown:

Let’s test the application and send JSON data.

See the output from the application.

Check whether the server acknowledges the output in the logger.

The above console shows the 5seconds time gap from one processor to another processor. Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

Object Store in Mule ESB

35

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about object store in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

What is Object Store?

Mule ESB provides facility to store objects in the mule application or across the project i.e. Object Store.Object store will store the objects for future retrieval. Mule internally uses Object Store in various filters, message processor..etc to store messages.

Mule provides two types of object stores:

Persistent Store:

Mule ESB persists data when an object store is explicitly configured to be persistent. Mule creates a default persistent store in the file system.

In-memory Store:

The in-memory store was the default But as of 3.5 Persistent Store is the default for ObjectStore.

Configuration of Object Store Connector:

MaxEntries: It will limit the no of the object to be stored in the object store.

TTL(Time to Live): It will say indicate the number of milliseconds that a cached response has to live in the object store.

Expiration Interval:  Enter an integer to indicate, in milliseconds, the frequency with which the object store checks for cached response events it should expunge. For example, if you enter “1000”, the object store reviews all cached response events every one thousand milliseconds to see which ones have exceeded their Time To Live and should be expunged.

General Settings:

Key: Object Store will store your object with this Name. The naming of store name should be unique.

Value:  Give which value want to store.

Operations:

Contains: Object Store will check whether it contains the given key.

Dispose Store: Deletes the complete store

Dual Store: It will store the value with the key , also vice versa

Remove: It will remove the value of a key

Retrieve: It will retrieve the value of the key

Retrieve and Store: Retrieves and stores at the same operation

Store: Store the value with a key

For More Details go through the below documents:

MuleDocs:https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-object-stores

Mule Docs: https://en.wikipedia.org/wiki/ObjectStore

Object Store:

AnyPointStudio won’t come with Object Store Connector we have to install it. You can install it from Exchange.

To install ObjectStore connector you need to login into Exchange with Anypoint Credentials. Login in to Exchange and Install the connector, When the installation complete studio will prompt to restart the studio. Say yes to that your studio will get restarted.

Step1:

Take one Http and configure it as shown:

Take a variable from palette and give name and value for the variable.

 

 

 

 

Step2:

Take objectStore from the palette and configure it like this

Step3:

Take one file connector and configure it as shown:

Step 4:

Take a Flow and drag one HTTP connector to it.

Step5:

Take an ObjectStore connector and do the configuration which has been done at first flow. In basic settings select retrieve option. In general, settings give the key name

Step6:

Take a File connector, configure it same as the previous one

Step7:

Lets’ run the application

>right click on the canvas

>select run project

Send some text from the postman.

Output :

The output is visible in the console shown below:

Again send the text to the second flow:

Response:

The above console shows the 5seconds time gap from one processor to another processor. Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

How to hold a message in Mule ESB flow for a specific time?

34

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about .xml that use groovy to hold or freeze a message in Mule ESB flow for a specific interval of time before passing to next message processor. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

We describe the solution in a step by step approach:

STEP 1:

In The Anypoint studio, in the top left click on the file => New => Mule Project

Click on the Mule Project enter your project name and click finish.

STEP 2:

Drag and drop the connectors you required from the Mule Palette to the canvas. Below flow shows the requirement to freeze a Mule message for a specific period of time.

Groovy flow:

The most viable solution is to use sleep() method to hold or freeze message for certain time. Below is the example snippet. In the above mule flow, take new variables named first message and the second message with two different payload data in the groovy component I use the sleep(5000) method to hold the payload data from one processor to another processor with 5sec this is the freeze time.

Console Output:

The output will come back from the first message to the second message with 5seconds time gap. The 5 seconds in the desired time or freeze time.

The above console shows the 5seconds time gap from one processor to another processor. Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

How to create an empty list and add elements to it using app.registry in Mule ESB?

33

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about creating an empty list and adding elements to it using app.registry in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

App.registry is the most popular term in Mule ESB. If you need to store runtime data that is available from across the application, you can store the data as objects in the Registry. You can get a handle to the registry from anywhere that you have access to the Mule Context, as in most Mule ESB entities.

Now, addressing the above scenario, we present you the best possible approach in a step by step manner.

Step 1: Create a project and search HTTP listener in Mule ESB Palette and drag it to the message flow and configure as follows

Step 2:- Store the data in a variable which is present in Payload (i.e. data which is coming from post man) as follows:

Step 3:-Create an empty list by using bean in global elements. The configuration of creating an empty list as follows:

Step 4: Drag an expression connector from mule Palette to message flow after the variable and we will add the data which we are passing from postman into the list by using app.registry in expression as follows

Step 5:-Drag the set payload and write the code to print the data present in the list as output.

Step 6:- Complete flow in Mule ESB is as follows:

Step 7: Run the project and after successful deployment hit some data from postman to see the results

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the above mentioned. scenario. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

How to construct a DW field to use the $gte operator on a date field in Mule ESB

32

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about constructing a DW field to use the $gte operator on a date field in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

In one of our projects we have come across the following scenario, where we are able to retrieve documents from a specific time using syntax like :getCollection(‘events’).find({ whenOccurred: {$gte: new Date(ISODate().getTime() – 1000 * 60 * 60 * 24 * 120) }}), when it comes to Mule ESB, we had to struggele to find a way to construct a DW field to use the $gte operator on a date field.

What is MongoDB?

From the source website, we define MongoDB as a document database with the scalability and flexibility that you want with the querying and indexing that you need.

MongoDB is an open-source, document database designed for ease of development and scaling. The Manual introduces key concepts in MongoDB, presents the query language, and provides operational and administrative considerations and procedures as well as a comprehensive reference section.

MongoDB is a cross-platform document-oriented database. Classified as a NoSQL database, MongoDB eschews the traditional table-based relational database structure in favor of JSON-like documents with dynamic schemas (MongoDB calls the format BSON), making the integration of data in certain types of applications easier and faster.

Getting Started with Mongo DB:

Download Link :- https://www.mongodb.com/download-center?jmp=nav#community

Install the Mongo DB in your system. check the program files for Mongo DB as shown in the example below

ex: C:\Program Files\MongoDB\Server\3.4\bin

Note: Before running the Mongo DB create a folder data & DB folder in data in C Drive ex: C:\data\db

How to Start:

Open a command prompt and paste the path up to bin (i.e. C:\Program Files\MongoDB\Server\3.4\bin). Execute the code mongod run Mongo DB

2) Connect to the instance: mongo –port 27017

3) Create the user administrator (in the admin authentication database) as shown:

use admin

db.createUser(

{

user: “myUserAdmin”,

pwd: “abc123”,

roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]

}

)

4) Re-start the MongoDB instance with access control: mongod

5) Connect and authenticate as the user administrator as shown:

mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”

6) Create additional users as needed for your deployment (in the test authentication database).

use test

db.createUser(

{

user: “myTester”,

pwd: “xyz123”,

roles: [ { role: “readWrite”, db: “test” },

{ role: “read”, db: “reporting” } ]

}

)

7) Connect and authenticate as myTester.

  • mongo –port 27017 -u “myTester” -p “xyz123” –authenticationDatabase “test”

Now, we will do the Question in Anypoint Studio in a step-by-step approach

Step 1: Create a project and search http listener in Mule ESB Palette and drag it to the Message flow and configure as follows

Step 2:- Drag a variable to the flow and set the variable with the data as we want to get the data from data base based on the date.

Step 3:-Now, Drag a set payload to the message flow & write a code in it to get the data based on it.

Step 4:- Drag a Mongo DB connector to the message processor from Mule palette, configure the Mongo DB as follows:

Step 5: Complete flow in Mule ESB is here.

Step 6: Run the project and after successful deployment hit the postman to see the results

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the above-mentioned scenario. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

How to Login Securely from HTML form in Mule ESB

31

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about logging in securely from HTML form in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

Out of the different scenarios we worked upon, we are sharing with you the most effective and easiest way of doing it. Hope our article helps you in your task. The step by step approach is as follows:

Step 1: Create a project and search Http connector in Mule ESB palette and drag it to the Message flow and configure as follows

Step 2:- Keep the Parse Template after the Http connector to call HTML page which consists of login content.

 

Step 3: Keep the index.html, loginSuccessful.html, unsuccess.html files in src/main/resources in the project

index.html:

<!DOCTYPE html>

<html>

<style>

form {

border: 3px solid #f1f1f1;

}

 

input[type=text], input[type=password] {

width: 100%;

padding: 12px 20px;

margin: 8px 0;

display: inline-block;

border: 1px solid #ccc;

box-sizing: border-box;

}

 

button {

background-color: #4CAF50;

color: white;

padding: 14px 20px;

margin: 8px 0;

border: none;

cursor: pointer;

width: 100%;

}

 

button:hover {

opacity: 0.8;

}

 

.cancelbtn {

width: auto;

padding: 10px 18px;

background-color: #f44336;

}

 

.imgcontainer {

text-align: center;

margin: 24px 0 12px 0;

}

 

img.avatar {

width: 40%;

border-radius: 50%;

}

 

.container {

padding: 16px;

}

 

span.psw {

float: right;

padding-top: 16px;

}

 

/* Change styles for span and cancel button on extra small screens */

@media screen and (max-width: 300px) {

span.psw {

display: block;

float: none;

}

.cancelbtn {

width: 100%;

}

}

</style>

<body>

 

<form action=“/Login”>

<div  class=“container “>

<div class=“row”>

<div class=“col-lg-4 col-md-4 col-sm-4 col-md-offset-4”>

 

<label><b>Username</b></label>

<input type=“text” placeholder=“Enter Username” name=“username” required>

 

<label><b>Password</b></label>

<input type=“password” placeholder=“Enter Password” name=“password” required>

 

<button type=“submit”>Login</button>

<input type=“checkbox” checked=“checked”> Remember me

</div>

 

<div class=“container” style=”background-color:#f1f1f1“>

<button type=“button” class=“cancelbtn”>Cancel</button>

<span class=“psw”>Forgot <a href=“#”>password?</a></span>

</div>

</div> </div>

</form>

 

</body>

</html>

loginSuccessful.html

<!DOCTYPE html>

<html>

<body>

<h1>success</h1>

</body>

</html>

unsuccess.html

<!DOCTYPE html>

<html>

<body>

<h1>fail</h1>

</body>

</html>

Step 4: Now, create another flow & keep the http Inbound connector, configure as follows

Step 5:-Keep the message Filter in the Message Flow so that we can identify the incoming username & password is same as we defined or not.

Step 6: Keep another Parse Template to print the successful HTML after successful login validation.

Step 7: In Http expand the Error Handling, keep the Catch Exception Strategy. In Catch, Exception Strategy keep another Parse Template for loading unsuccessful HTML.

Step 8: Complete Mule ESB Flow is as follows:

Step 9: Run the project and after successful deployment, Hit the URL http://localhost:8081/login from Browser you will get the login page.

Step 10:-Now, Give the username as mule & password as mule, Click LOGIN then you will get a success message. Otherwise If the Credentials are Different You Get the Failure Message

 

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the above-mentioned scenario. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.

Finding the sum of values of XML elements in Mule ESB

From the technical center of excellence of Massil Technologies, our technology leaders make it easy to understand the complex situations you come across in Mule ESB from the experience of Massil Technologies to have countered them in their experience of working on client projects in real time. This blog talks about finding the sum of values of XML elements in Mule ESB. This blog is a part of series of blogs being authored and published by Massil Technologies for the benefit of the IT community globally.

Finding the sum of values involves the following steps:

Step 1:

In Anypoint Studio click File > New > Mule Project to create a new project, give it whatever name you wish and click Finish.

Step2

Drag an HTTP Connector from the palette to your empty canvas, then a Transform Message

Component

Step 3:

 

Click on the HTTP Connector to open its properties editor, then click the green arrow icon to create a new configuration for it. Leave all of the fields in default and click OK.

Step 4:

Note that if you open the Transform Message component, the input section should show the fields that will be present in the incoming payload

Step 5:

you write the output payload in

sum (payload.MessageGroup.DataSet.Series.*Obs.ObsValue.@value)

Step 6:

In logger write #[payload]

 

Step 7:

 Save & Run the Mule project

Step 8:

Send xml file using postman to the project

Step 9:

 

The output is

Hence, we have gone through the step by step process to depict the way Massil Technologies team has addressed the scenario mentioned above. Hope this article from Massil Technologies was useful for you. If you have any further queries on this topic, please reach out to info@massil.tech.