Conditional Logic is the most important building block of any software development tool. WebMethods is not a programming language, but since we use it to build integration interface, which is also software, it means we are also programming with it. Writing a simple “If-Then-Else” condition in WebMethod is way too verbose to me though. The official tutorial on SoftwareAG teaches us to implement an if-then-else logic using the Branch, Sequence, and Map nodes as depicted in the sample below:

As we can see, one simple If-Then-Else condition will require at least 5 lines to achieve. A more complex Case condition with multiple branches can take up half of a screen’s real estate. This makes the code harder to read.

My preferred alternative approach is to use the “Copy Condition” when mapping variables as shown below:

If the condition specified in this “Copy Condition” is True, the value will be mapped from the left-side variable to the right-side variable. In this case, value of the $valuelist/Approved variable will be mapped to the $output variable if condition $var1 = ‘A’ is True.

To achieve the default (Else) branch, we use the NOT (!) operator such as: 

! ($var1 = ‘A’ OR $var1 = ‘W’ OR $var1 = ‘C’)

By doing this, no matter how many conditions we have, we can fit everything in one line.