Automatic Transfers


An automatic transfer is a transfer which is triggered when its dependency conditions are satisfied. It is made automatically by the VC/m system, rather than manually by a user using one of the transfer functions. Each time VC/m transfers an object version, it checks through its list of automatic transfers and makes any ones whose conditions are satisfied.

AUTOF and AUTOT


Automatic transfers are defined by the use of the reserved function codes AUTOF and AUTOT.

AUTOF

A transfer route with an AUTOF function code is designed to automatically push objects further around the workflow once they have been transferred to a location. After the transfer of an object takes place, VC/m looks for AUTOF transfer routes whose 'from' location matches the location to which the object version was just transferred, or another location where that transfer activated it. VC/m then initiates each transfer if its dependencies are met.

Each time VC/m initiates an AUTOF transfer from a location, it goes back and re-checks the dependencies of the AUTOF transfer routes that did not have their dependencies met. This is because each transfer changes the VC/m environment, and a transfer that was not valid on the first check may become valid after any of the other AUTOF transfers take place. This behavior can be subverted by chaining and ordering the transfers (see below).

Note: AUTOFs are typically defined with a '%TO dependency and a +%TO activations. Failing to do this is likely to cause repeated re-transferring (up to 100 times).

Note: AUTOFs are processed before AUTOTs.

AUTOT

A transfer route with an AUTOT function code is designed to automatically advance particular areas of the workflow. After an object has been transferred between two locations and any AUTOF transfers have taken place, VC/m checks all AUTOT transfer routes. If an AUTOT transfer route's dependencies are met, the object will be transferred along that route.

The major difference between AUTOT and AUTOF transfer routes is that all AUTOT transfers routes are checked - and initiated if valid - after every transfer, not just those transfer routes whose 'from' location matches the 'to' location of the original transfer or another activation location of that transfer.

Note: AUTOTs need a combination of dependencies and activations that will prevent them firing indefinitely. Failing to do this will cause repeated re-transferring (up to 100 times).

Example

In a development workflow where a developer wants to transfer their work to the testing area, it may be necessary for the object to be transferred to multiple locations, for example, when an application needs to be tested on different Operating Systems. The workflow might be set up like this:

  1. The developer checks the object in by transferring it from the DEV location to the ForTesting location.
  2. After this transfer takes place, VC/m looks for AUTOF transfer routes that start from the ForTesting location.
  3. VC/m finds a transfer route from ForTesting to QAWin, its dependencies are met and the transfer takes place.
  4. VC/m then finds another transfer route, this time from ForTesting to QALinux. Its dependencies are met and the transfer takes place.
  5. Finally, VC/m checks all of the AUTOT transfer routes that are defined. It finds the route which transfers the object from ForTesting to InTest. Its dependencies ensure that the transfer cannot take place unless the object version exists at the two working locations, QAWin and QALinux. This is true so the transfer is initialized.

Chaining and Ordering Automatic Transfers


In the case that multiple AUTOF or AUTOT transfers are required to be triggered, custom transfer route function codes can be defined. All transfer routes that have a function code which begins with AUTOF or AUTOT will have their dependency conditions checked whenever a transfer is initiated. This means that you can chain automatic transfer routes in a particular by adding a custom suffix to the function code.

For example, an environment could be configured to contain a transfer route with the function code AUTOT1 and another with the function code AUTOT2. VC/m will check and intiate these routes in order.


See Also: Transfers, Transfer Routes, Managing Transfer Routes, Reserved Transfer Route Function Codes