DUAS: How to transfer a variable with a Trigger

Document ID : KB000103794
Last Modified Date : 29/06/2018
Show Technical Document Details
Introduction:
This best Practice Article explains a contraint of the use of so called 'inheritance variables' in combination with 'Uproc variables' and discusses the consequences for the transmission of variables with Triggers. 
Background:
When a variable is transferred to a Trigger during activation, this is done with so called 'inheritance variable'. When used in combination with 'Uproc variable' of the same name this mechanisme does not work because 'Uproc variables' take precedence.

For instance, it is possible to launch a Provoked Task with a Trigger, like demonstrated below. In this case cURL is used to activate the Trigger:
First we log into the IO_X of the DUAS instance. This will return a session key:
curl.exe -G <DUAS hostname>:<IO_X port> --data "user=<user>&pwd=<password>" 

Now, we use the session key to launch a Trigger and at the same time pass a variable:
curl.exe -POST <DUAS hostname>:<IO_X port> --data "type=<Trigger name>&area=<X|S|I|A>&<variable name>=<value>"
--header "authorization:<session key return by first curl command>"


When the Uproc of the Task is started, you can see the variable and its value under the header inheritance variables at the top of the job log.

When, in the same Uproc, you define a 'Uproc variable' with the same name, with or without a values, you will see that the values of the Uproc variable takes precedence over the 'inheritance variable'.
Instructions:
Note that 'Uproc variables' take precedence over 'inheritance variables'. This means that if an 'inheritance variables' and a 'Uproc variables' of the same name are used in one Uproc the values of the 'Uproc variable' is used. This is expected behavior.

In the case of Triggers that transfer a variable, you therefore have to either remove 'Uproc variables' of the same name or introduce the value of the 'inheritance variable' via a preceding Uproc and uxset var.