Most of the times, references look as follows:
<namespace:variablename>
or
<namespace:variablename=defaultvalue>
The latter example can be used to fall back to a default value in case a Reference cannot be resolved.
<notes:userdetails_internetaddress=>, for example, would fall back to an empty value if a user's internet email address can not be read from the public adressbook (e.g. when a user is offline).
<ini:ExitNotesPrompt=0>, for example, would return "0" (without quotes) if no such ini entry exists.
Referencing Actions
When referencing other Actions, MarvelClient allows you to specify a so called type of execution.
In the above examples, the colon (:) defines how a reference affects possible execution of an Action - in addition to using a colon, a reference also allows for other types of execution:
<namespace[type_of_execution]variableName>
There are three types of execution (all to be specified without brackets):
Types of Execution for Referencing Actions | |
---|---|
: (colon) | = Run Once. NOTE: Referencing an Action can only bring it forward within the same Runtype, but NOT from a later Runtype.
|
! (exclamation mark) | = Run Always. NOTE: Referencing an Action can only bring it forward within the same Runtype, but NOT from a later Runtype.
|
| (pipe) | = Never Run. Use result only if already executed. Example: Action A references result from Action B using a colon (=make sure it runs). Action C then references the result from Action B again using a | (=use result from Action B if it ran). In case a user can not see or execute Action A, Action C will not run in this example, as the result from Action B cannot be resolved. |
NOTE that whilst referencing anything other than Actions (e.g. os: or notes:, env: or ini:) also allows for the use of all three types of execution, this does not affect re-calculating any results.
<notes!disk_client_free_mb>, for example, will not re-evaluate the free disk space but only return the free disk space in the Notes program directory from when the client was started.
In order to obtain a real-time result use a filesystem reference instead.
Naturally, ini: and env: references always return the corresponding result in real-time, even when using a colon (:) for the type of execution.
You are advised to only use a colon (:) for normal config variable references, as the behaviour for ! and | may change in future releases.