CopiaFacts allows sets of variables ('variable groups') to be defined in CFG, USR and UJP files, which are selectively activated in processing FS files for outbound operations. This provides a powerful means for automatically varying the processing of a transmission depending on external conditions.
![]() | Grouped variables can only be specified in CFG, USR and UJP files. Prior to version 8.3, grouped variables could not be specified in CFG files. |
Specifying Variable Groups
Grouped variables are identified by preceding the variable name with a number between 0 and 30 and a forward-slash character:
$var_def 0/NameA "DefaultValueA"
$var_def 0/NameB "DefaultValueB"
$var_def 1/NameA "valueA1"
$var_def 1/NameB "valueB1"
$var_def 2/NameA "valueA2"
$var_def 2/NameB "valueB2"
If variables of the same name and same group number are defined in FAXFACTS.CFG and in the active USR/UJP file, the latter overrides the former.
Grouped variables defined in an instance UJP file, unlike normal UJP variables, are not all copied to job FS files when the job is launched. However when a group of variables are activated, it is as if they had been read from the FS file, and they are retained in the FS file after processing the attempt during which they were activated.
Use Variable Group 0 to specify default values of variables, if required. These will always be activated first, and then overridden by the activation of a higher-numbered group if activated. If you do not specify a '0' variable group, then the last activated set of variables is applied to all subsequent transmission attempts for the FS file. No '0' group is needed if you ensure that at least one of your non-zero groups is always activated.
Trace Information Additional trace information on variable group activation can be obtained by selecting Trace Outbound Queue in the COPIAFACTS engine trace options.
Mixing Variables and Grouped Variables
We not recommend attempting to using the same variable name as a regular variable name and a grouped variable name. The priority override rules for variables defined at different levels (such as FS➺UJP➺CFG or JobInstance➺JobType➺JobOwner➺System) may be different for grouped variables.
![]() | If variables and grouped variables with the same name are used in the same transaction, you should regard the priority of each variable type and level as 'undefined'. Use one type or the other, not both, for each variable name. |
Activating Variable Groups
There are three ways to activate a variable group:
•Activation based on the destination number or address, using action codes.
•Activation based on which channel is used to process the call
•Activation for the next attempt based on the outcome of the current attempt.
One or more variable groups can be activated for the processing of a specific FS file, but normally only one variable group would need to be activated for each type of activation. The group is activated AFTER the FS file has been completely parsed, when its user profile is linked to it, so the group variables OVERRIDE variables of the same name in the FS file. However the normal FS file variables (or other default values) are used in the expansion of any variable references in the FS file, not the group variables.
Activating using an ActionCode Variable
ActionCode values 201 through 230 can be used to activate variable groups 1 to 30 respectively based on looking up the phone number, e-mail address or e-mail domain name. This required an $action_phone or $action_email command in the CFG file as described in the topic for destination-specific processing. This action is currently available at transmit time only. An example of this usage is available in the examples section.
If more than one action code in this range is present, only the first is used.
From version 8.2, this activation method has replaced an earlier activation using 'phone masks'.
Activating for specific channel(s)
Variables can be activated for use when an FS file is processed on a specific channel or channel group. For example if you had two ATA devices on separate IP addresses you could specify the IP address to be used in variable groups tied to the FoIP ports configured for each ATA.
The $line_vargroup command is used to specify the variable groups to be activated for each channel or channel group. There is an example of this in the command description.
Activating for retries
A powerful feature of grouped variables is ability to activate a different set of variables for retries. To do this, use a prefix of Gn (where n is from 1 to 30) on the $retry_delays delay time, separated by a forward slash if it is the only prefix:
$retry_delays F "3 G3/3 G4/3" ; use group 3 vars for 2nd retry, group 4 for 3rd
When the FS file is written after processing, the variables in the activated group are included in the $var_def commands written, so these values are available for extraction and analysis. The values will be overridden if a subsequent attempt is made with a different variable group activated, or if a 'group 0' is specified and no specific group is activated.