coderz.py

Keep Coding Keep Cheering!

if else Condition in Flow Control (DataWeave 2.0)

if else

An if statement evaluates a conditional expression and returns the value under the if only if the conditional expression returns true. Otherwise, it returns the expression under else. Every if expression must have a matching else expression.

If/else expressions allow you to make decisions using logical operators and branch as a result.

operators and branch as a result.

if (<criteria_expression&gt;) <return_if_true&gt; else <return_if_false&gt;

There are cases in DW where parentheses are optional, but it’s important to note the criteria must be surrounded by parentheses in if/else expressions.

The following example uses the input { country : “India” }, which is defined by the myVar variable in the header:

DataWeave Script:

%dw 2.0
var myVar = { country : "India" }
output application/json
---
if (myVar.country == "UAE")
  { currency: "EUR" }
else { currency: "RUPEES" }

Output:

{
  "currency": "RUPEES"
}

You can use the if-else construct on any condition that evaluates to true or false, including mathematical, logical, equality, and relational statements. The condition can act on any valid input.

  • A mathematical operation in ex1
    The if else statement returns the Boolean value true if the operation 1 + 1 == 55 is true and false if not.
  • An equality operation in ex2
    The if else statement returns 1 if the value of the specified index is 1 or a string if the value is not 1.
  • An isEmpty function in ex3
    The if else statement returns the string “ID is empty” or “ID is not empty” depending on whether aRecord.bookId contains a value.

A mapping in ex4 that iterates over firstInput
The if else statement returns the value of the bookId as a Number if the value is equal to 101. It returns the specified string if the value is not equal to 101.

DataWeave Script:

%dw 2.0
var aRecord =
 [
    "bookId":"101",
    "title":"world history",
    "price":"19.99"
 ]
output application/xml
---
{ examples:
	{
	   ex1 : if (1 + 1 == 55) true
	         else false,
	   ex2 : if ([1,2,3,4][1] == 1) 1
	         else "value of index 1 is not 1",
	   ex3 : if (isEmpty(aRecord.bookId)) "ID is empty"
	  	 else "ID is not empty",
	   ex4 : aRecord.bookId map (idValue) -&gt;
	   	 if (idValue as Number == 101) idValue as Number
		 else "not 101"
	}
}

Output:

<?xml version='1.0' encoding='UTF-8'?>
<examples>
  <ex1>false</ex1>
  <ex2>value of index 1 is not 1</ex2>
  <ex3>ID is not empty</ex3>
  <ex4>101</ex4>
</examples>






Follow Me
If you like my post please follow me to read my latest post on programming and technology.
Instagram
Facebook

Leave a Comment

Your email address will not be published. Required fields are marked *

Advertisement