Global variables are defined within scopes:
The basic definition aka Fabric Implementation can be overridden at environment, global cluster and session levels.
The override prioritization is based on levels as illustrated in the following diagram, where the upper level has the highest priority:
The priority is also managed by the scope. If a Global is defined in both Shared Objects and Logical Unit scopes, the Logical Unit definition is used in the Logical Unit scope. Other Logical Units use the Shared Objects definition.
The following illustrates by-scope prioritization:
SET commands are used to apply overrides:
Click here for more information about overriding Globals using SET and SET_GLOBAL commands.
Click here for more information about Environments and switching SET commands.
Note that as explained in the above links, overrides can be canceled / reset whereby the Globals return to their original values.
The following examples demonstrate use cases of the priorities explained above. Note that the examples display the consecutive levels and the priority between other levels like session which is stronger than environment.
This example refers to the SOURCE_ENV_NAME which is defined in the CRM LU. The Fabric Implementation is set to UAT.
Assuming that the UAT UAT1, UAT2, UAT3 environments have been created:
The entire environment cluster which includes the CRM.SOURCE_ENV_NAME="UAT2_ALPHA" has been switched to work with UAT2.
When running the set_global environment='UAT2';
switch environment command the UAT2_ALPHA value for CRM.SOURCE_ENV_NAME Global is set for all sessions in all cluster nodes.
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Global.CRM.SOURCE_ENV_NAME |UAT2_ALPHA |
Since values are defined for the Environment, a SET_GLOBAL command was not required.
For more information about creating and editing Globals per environment, click here.
For more information about switching between environments click here.
In this example although specific values have been for the UAT environment, they are updated for today by reducing the CASES_THERSHOLD Shared Object Global variable from 30,000 to 10,000.
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Global.Customer.CASES_THRESHOLD |30000 |
|Global.CRM.CASES_THRESHOLD |30000 |
|... | |
When running set_global global '*.CASES_THRESHOLD=10000';
the result is:
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Customer.CASES_THRESHOLD |10000 |
|Global.CRM.CASES_THRESHOLD |10000 |
|... | |
To return to the environment's original values, the following set_global global '*.CASES_THRESHOLD=';
command is executed.
Assuming that in the previous example the threshold was set to 10000, this time a session is used as a means for examining another value by running the set CASES_THRESHOLD='20000';
command.
To return to its original non-session level value the set CASES_THRESHOLD='';
command is executed. Note that if at cluster level this value has not been overwritten, it returns to the environment's Global variable value, and if it has not been overwritten for the environment, it returns to the implementation value.
Scope priorities are applied using SET commands. Click here for the command syntax and available options.
There are times that when tests on an UAT environment are required while the system is running. Sessions can be used for this whereby an LU refers to another UAT environment for data.
To do so, set SOURCE_ENV_NAME='UAT1'
is used to call for all LUs in this session, and set CRM.SOURCE_ENV_NAME='UAT2'
is used to run the CRM LU at a session level. The order the commands are run is irrelevant, although the LU command is stronger in both scenarios.
Once tests are completed, use the set SOURCE_ENV_NAME=''
command to return to the original cluster / environment / implementation.
The following example demonstrates combined priority rules settings. Colored objects hold Global settings, as described below
In this example:
Using the previous examples, let's refer to the SOURCE_ENV_NAME Global variable, the following the example examines the actual values retrieved in the set;
command.
The defined values for the SOURCE_ENV_NAME are:
The actual values are:
When reseting the session values, the actual values are:
Global variables are defined within scopes:
The basic definition aka Fabric Implementation can be overridden at environment, global cluster and session levels.
The override prioritization is based on levels as illustrated in the following diagram, where the upper level has the highest priority:
The priority is also managed by the scope. If a Global is defined in both Shared Objects and Logical Unit scopes, the Logical Unit definition is used in the Logical Unit scope. Other Logical Units use the Shared Objects definition.
The following illustrates by-scope prioritization:
SET commands are used to apply overrides:
Click here for more information about overriding Globals using SET and SET_GLOBAL commands.
Click here for more information about Environments and switching SET commands.
Note that as explained in the above links, overrides can be canceled / reset whereby the Globals return to their original values.
The following examples demonstrate use cases of the priorities explained above. Note that the examples display the consecutive levels and the priority between other levels like session which is stronger than environment.
This example refers to the SOURCE_ENV_NAME which is defined in the CRM LU. The Fabric Implementation is set to UAT.
Assuming that the UAT UAT1, UAT2, UAT3 environments have been created:
The entire environment cluster which includes the CRM.SOURCE_ENV_NAME="UAT2_ALPHA" has been switched to work with UAT2.
When running the set_global environment='UAT2';
switch environment command the UAT2_ALPHA value for CRM.SOURCE_ENV_NAME Global is set for all sessions in all cluster nodes.
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Global.CRM.SOURCE_ENV_NAME |UAT2_ALPHA |
Since values are defined for the Environment, a SET_GLOBAL command was not required.
For more information about creating and editing Globals per environment, click here.
For more information about switching between environments click here.
In this example although specific values have been for the UAT environment, they are updated for today by reducing the CASES_THERSHOLD Shared Object Global variable from 30,000 to 10,000.
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Global.Customer.CASES_THRESHOLD |30000 |
|Global.CRM.CASES_THRESHOLD |30000 |
|... | |
When running set_global global '*.CASES_THRESHOLD=10000';
the result is:
set;
|key |value |
+---------------------------------+------------------------------------+
|... | |
|ENVIRONMENT |UAT2 |
|... | |
|Customer.CASES_THRESHOLD |10000 |
|Global.CRM.CASES_THRESHOLD |10000 |
|... | |
To return to the environment's original values, the following set_global global '*.CASES_THRESHOLD=';
command is executed.
Assuming that in the previous example the threshold was set to 10000, this time a session is used as a means for examining another value by running the set CASES_THRESHOLD='20000';
command.
To return to its original non-session level value the set CASES_THRESHOLD='';
command is executed. Note that if at cluster level this value has not been overwritten, it returns to the environment's Global variable value, and if it has not been overwritten for the environment, it returns to the implementation value.
Scope priorities are applied using SET commands. Click here for the command syntax and available options.
There are times that when tests on an UAT environment are required while the system is running. Sessions can be used for this whereby an LU refers to another UAT environment for data.
To do so, set SOURCE_ENV_NAME='UAT1'
is used to call for all LUs in this session, and set CRM.SOURCE_ENV_NAME='UAT2'
is used to run the CRM LU at a session level. The order the commands are run is irrelevant, although the LU command is stronger in both scenarios.
Once tests are completed, use the set SOURCE_ENV_NAME=''
command to return to the original cluster / environment / implementation.
The following example demonstrates combined priority rules settings. Colored objects hold Global settings, as described below
In this example:
Using the previous examples, let's refer to the SOURCE_ENV_NAME Global variable, the following the example examines the actual values retrieved in the set;
command.
The defined values for the SOURCE_ENV_NAME are:
The actual values are:
When reseting the session values, the actual values are: