The new version of the Automation Engine, v12.2, adds rudimentary support for version control using an external version control system. Unfortunately, it is implemented in a way that makes it useless to us. The unit of control in this system is the AE client. That’s right — you can check in, check out, update, branch, and merge only entire clients in the AE system. The new version control capability does not make it possible to do version control at the folder or object level.
Until the AE supports finer-grained version control, we will continue to rely on the transport case and XML mechanisms of moving objects from the one AE system to another. (We developed our own in-house application to automate this process.)
I often find myself spending hours automating something that I know I will use infrequently. I know that each of the tools I develop teaches me something new, and the process of creating something is satisfying per se. Still, I sometimes wonder if I am finding the right balance. Am I alone, or have others also wondered about this??
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.)