Checking for variable existence in pipeline

(b2b Integrator Version 4.0.2) I’m mapping one string value from the Pipeline-In to a string value in the “From Item” record of the AppendToRecordList service and simultaneously defaulting a string value in the “From Item” record as well. Ideally I would like to only map the value from the Pipeline-In and default the string value if the Pipeline-In variable is not $null.

There are two things

  1. Defaulting a value
  2. Conditional Mapping

Create a MAP operation and assign a value to string variable. Uncheck ‘Override pipeline value’
. This will default a value to the variable.

For conditiona mapping (i.e. ‘Copy only if’ ) have a variable that holds value for condition, lets say a variable ‘con_var’ that holds value ‘1’. On map specify condition (‘Copy only if’) “%con_var% > 1”

Parvez Purkar

Use a Branch construct, using the variable as the character you branch on. Use 2 Sequence constructs under the branch with $null as the first label, $default as the second. Code the map accordingly.

BRANCH on ‘/variable’
$null: SEQUENCE

Thanks.

Looks like you have a solution that works, but here’s another angle. I think the problem is that you’re trying to do the default setting and the condition map copy at the same time, and the default setting is always “winning”.

Try doing a MAP of the default value to “fromItem” first. And then do the conditional copy in the INVOKE. Some of the expressions you list may work. Another would just be:
variable != $null

Hi Kevin,

As this thread points out, there are several ways to do it, but here is what I think is most elegant:
You have an invoke of AppendToStringList (I assume it is string, not record list).

  1. Draw your map line from your variable to the fromItem.
  2. set the Copy-only-if to be ONLY the variable name example: %myVariableName% (this will copy only if the variable exists), and I doubt it is even really necessary–but it needs to be conditional to allow you to also do a set-input on the fromItem.
  3. set-input to the default value on fromItem(i.e. ‘UNKOWN’ or whatever you want it to be). UNCHECK ‘Overwrite pipeline value’.

Voila, you’ve set the default and mapped all in one line.

Marilyn