EXEC VARAs and variable inheritance

Blog Post created by Michael_Lowry on Jun 19, 2018

If you use the new EXEC VARA object type introduced in AWA v11, you may have been a bit confused by how variable inheritance works between the calling task and the called one.


Here’s a diagram I put together to better understand it. Variable inheritance above the blue line works normally. The EXEC VARA is evaluated in the execution context of the workflow, so the &Message# variable set at the workflow level can be accessed directly.


However, the only variables passed across the blue line are ones passed as EXEC VARA parameters, and explicitly read using the :READ command in the called object. Even though the called tasks are child tasks of the workflow task, they do not automatically inherit the workflow’s variables. Once one becomes accustomed to using EXEC VARAs, it can be easy to take them for granted and forget about this limitation.


Unlike with ACTIVATE_UC_OBJECT, with EXEC VARA objects there is no PASS_VALUES option one can use to instruct the called executable object to inherit all of the object/script variables of the calling object. (If you really want to accomplish this, and you’re using v12.1 or later, you can use my trick to Copy all variables from one task to another.)