Customization Rules for Client Configurator

All of the client control tables except DATASOURCES have a new column named xx_user_bmask (where xx is either “ds”, “di”, “dt” or “da”, depending on the table where it resides). This column, which parallels xx_options, is used to indicate whether the bits were changed by the user script or by the Client Configurator.

However, not all bits in the xx_options columns are changed by user scripts or the Client Configurator. Some are set by the Client or are set by changing an item to a special client data type, such as a date. The redefine command, when run in Client Configurator mode (use_dbconfig = true), will restore the bits in xx_options that are referenced by xx_user_bmask, while leaving the remaining bits unchanged. Several bits in xx_options that were previously unused are now used to indicate that a specific field in the record was modified by a user script or the Client Configurator.

The global parameters that affect ds_options settings are as follows:

history_tables = { 0 | 1 | 2}

0 - No history tables will be created.

1 - Creates history tables for all data sets. The bit DSOPT_Save_Updates (8) is automatically set for all data set table entries. (If you used a data set user script to do this, remove it and set history_tables to 1 in the client configuration file using either the Client Configurator or the editor. If you use binary configuration files, you must export the file before editing the file. See Exporting and Importing Configuration Files.

2 - The same as a value of 1, except that it also sets the bit DSOPT_History_Only (0x2000 or decimal 8192). This replaces the DATABridge 6.0 configuration file parameter keep_history_only. Combining the two history parameters in this way eliminates the case where you can have no history and keep_history_only set to true. The Client Configurator will protect you against making this mistake.

clr_dup_extr_recs = {true | false}

Defines the initial value of the new ds_options bit DSOPT_Clrdup_Recs (0x8000 or decimal 32768). This parameter is no longer checked by the process and clone commands.

split_varfmt_dataset = {true | false}

Defines the initial value of the new ds_options bit DSOPT_Split_Vfmt_ds (0x10000 or decimal 65536). It make the client treat variable format data sets in a slightly different manner by putting all the fixed parts of records in the table normally used for type 0 records. The fixed parts of records in all other tables is not included, except for the items that are keys.

force_aa_value_only = {true | false}

Defines the initial value of the ds_options bit DSOPT_Use_AA_Only, which forces the data set to use AA Values or RSNs as keys if the data set has a valid RSN or AA Value. RSNs always take precedence over AA Values unless an embedded dataset or a DMSII link is involved.

Caution:

Any time you explicitly change the value of a bit in ds_options, you must set the corresponding bit in ds_user_bmask. If you set a bit that had a default value of 1 to 0, you must set the corresponding bit in ds_user_bmask to 1 to indicate that the value of this bit should be preserved by the redefine command.

Be aware that some bits in ds_options may already be set. You should use the "|" operator for SQL Server and the "+" operator for Oracle to set a bit rather than setting the column to that value.

If you change the value of external_columns for a single data set, you must also set the new bit DSOPT_ExtCols_Set (0x2000 or decimal 131072 ) in both ds_options and ds_user_bmask. This retains the change for Client Configurator.

DATASETS Control Table Changes

Besides the addition of the column ds_user_bmask, some ds_options bits are used to indicate that a specific field in the record was changed by the Client Configurator or a user script. These new ds_options bits are described in the following table.

Note: If you explicitly change the value of a bit in ds_options, you must set the corresponding bit in ds_user_bmask. If you set a bit that has a default value of 1 to 0, you must set the corresponding bit in ds_user_bmask to 1 to indicate that the value of this bit should be preserved by the redefine command.

DSOPT_SetNameChange (262144)

This bit must be set for any data set whose set_name column is modified by the Client Configurator or a user script. The redefine command uses this bit to determine if the value of the set_name should be preserved.

DMS_ITEMS Control Table Changes

Besides the addition of the column di_user_bmask, several di_options bits are used to indicate that a specific field in the record was changed by Client Configurator or a user script. These new di_options bits are described in the following table.

Note: If you explicitly change the value of a bit in di_options, you must also set the corresponding bit in di_user_bmask. If you set a bit that has a default value of 1 to 0, you must set the corresponding bit in di_user_bmask to 1 to indicate that the value of this bit should be preserved by the redefine command.

DIOPT_Item_Key_Modified (8)

This bit must be set for any item whose item_key column is modified by the Client Configurator or a user script. The redefine command uses this bit to determine if the dms_item_key value should be preserved.

DIOPT_Subtype_Modified (0x40000 or decimal 262144)

This bit indicates that the dms_subtype column was set by the Client Configurator or a user script. The redefine command uses this bit to determine if the dms_subtype value should be preserved.

DATATABLES Control Table Changes

Besides the addition of the column dt_user_bmask, several dt_options bits are used to indicate that a specific field in the record was changed by Client Configurator or a user script. These new dt_options bits are described in the following table.

Note: If you explicitly change the value of a bit in dt_options, you must set the corresponding bit in dt_user_bmask. If you set a bit that had a default value of 1 to 0, you must set the corresponding bit in dt_user_bmask to 1 to indicate that the value of this bit should be preserved by the redefine command.

DTOPT_Table_Renamed (1)

This bit indicates that the table was renamed by changing the table_name column of the item_name columns and all the DATAITEMS that belong to the table. The redefine command uses this bit to determine if the table_name value should be preserved.

DTOPT_Index_Renamed (2)

This bit indicates that the index was renamed by changing the index_name column of the table. The redefine command uses this bit to determine if the index_name value should be preserved.

DTOPT_User_Table (4)

This bit indicates that the table was created by the user. The redefine command uses this bit to determine if the index_name value should be preserved. (This bit is not fully implemented in version 6.1.)

DATAITEMS Control Table Changes

Besides the addition of the column da_user_bmask, several da_options bits are used to indicate that a specific field in the record was changed by the Client Configurator or a user script. These new da_options bits are described in the following table.

Note: Any time you explicitly change the value of a bit in da_options, you must set the corresponding bit in da_user_bmask. If you set a bit that had a default value of 1 to 0, you must set the corresponding bit in da_user_bmask to 1 to indicate that the value of this bit should be preserved by the redefine command.

DAOPT_Column_Renamed (2)

This bit indicates that the column was renamed by changing the item_name column of the item. The redefine command uses this bit to determine if the item_name value should be preserved.

DAOPT_Type_Changed (4)

This bit indicates that the column’s data type was changed by changing the value in the sql_type column. The redefine command uses this bit to determine if the sql_type value should be preserved.

DAOPT_Length_Changed (8)

This bit indicates that the column’s data type length specification was changed by changing the value in the sql_length column. The redefine command uses this bit to determine if the sql_length value should be preserved.

DAOPT_Scale_Changed (16)

This bit indicates that the column’s data type scale was changed by changing the value in the sql_scale column. The redefine command uses this bit to determine if the sql_scale value should be preserved.

DAOPT_User_Column (32)

This bit indicates that the column was added by the user. The redefine command uses this bit to determine if the column should be preserved.

DAOPT_Item_Renumbered (128)

This bit indicates that the column was renumbered by the user. The redefine command uses this bit to determine if the item_number should be preserved.

Caution: This will not always work because item numbers may change as a result of a DMSII reorganization. If you do this, you'll need to use the Client Configurator to get the column into the proper place.