System Configuration Updates
Change storage and VCS records
All the changes are stored as VCS records in the VCS Records (sys_vcs_record) table. They are created automatically and cannot be deleted or edited.
Each action (create, delete, update) on a versioned table object leads to creation of a record in the VCS Records (sys_vcs_record) table. This table contains information about the changes done in any application on the platform.
- VCS records cannot be created, updated, or deleted manually. These records are created automatically by the system. Only users with the admin role can read them.
- admin can also edit the Local pack and Is strong overwrite fields.
VCS Record form fields
Field | Description |
---|---|
Table name | The system name of the target record table. |
Record | The unique ID of the source record processed by the transaction. |
Document record | A reference to the target record for which the current VCS record is created. |
JSON copy | This field stores target record attributes in JSON format as an associative array. Example {"value": "Report Item", "policy": "Open", "sys_id": 159653803414986194, "column_id": 156941403909472422, "record_id": 159653803414985080, "language_id": 156628684306541141, "application_id": 155931135900000002, "sys_created_at": "2020-08-04 10:47:14", "sys_created_by": 155931135900000001, "sys_updated_at": "2020-08-04 10:47:14", "sys_updated_by": 155931135900000001} |
Is current | This checkbox is selected if the version is current. |
Created by | The user who did the change. |
Created at | The date and time of the record creation. |
Local pack | The local pack that contains this record. |
Retrieved pack | The Retrieved pack to which this record is related to. |
Restored by | A unique ID of the version record from which the current record was restored. |
Action | Action type. Available options:
|
Record policy | Current record protection policy after the transaction is over. Available options:
|
Is strong overwrite | When the checkbox is selected, the current record will be written over the existing version with the Protected policy. |
All the changes are stored in the local pack selected in the Local pack field of the Admin preferences menu. You can also set the local pack as current on the form of that pack. To learn more, see Managing VCS records in the Assembling Local Packs article.
The VCS records can also be imported from another instance. See the Importing Configuration Packages article to learn how to import and preview the imported VSC records.
Protection policy
The Protection policy attribute is responsible for data protection. After a new record is created in a versioned table, its Protection policy is set to Open. Once the record is updated, the Protection Policy field value becomes Changed. These values are transferred to the Record policy field in the related VCS record that is, the record version has the same Policy as the record itself.
admin can only update the Local pack and Is strong overwrite fields of the records with any protection policy.
During the importing process, the records that can be overwritten, can also be updated. Both record policy values set in the system and in the configuration pack are taken into account. All possible policy combinations are described in the table below.
Source record protection policy | Target record protection policy | Result |
---|---|---|
Protected | Protected | Success |
Protected | Open | Success |
Protected | Changed | Success |
Changed | Protected | Failed. Use Strong overwrite to proceed. |
Changed | Open | Success |
Changed | Changed | Success |
Open | Protected | Failed. Use Strong overwrite to proceed. |
Open | Open | Success |
Open | Changed | Failed. Use Strong overwrite to proceed. |
See the Development Recommendations article to know more about the Record policy.
Client company identification
To enable a client company identification when the update is implemented, a vendor sets a client prefix on the instance. This prefix is added to the names of tables created by the client. This measure eliminates the confusion in case when a client creates a table with a name similar to the one existing in the application by default. So the application prefix follows the client prefix. For example, there is a table Work Schedule that exists in the Simple application (its prefix is sys), and a client (whose prefix is client) creates a table with the same name Work Schedule in the same application. As a result, the client's table name appears as sys_client_work_schedule.
The general table name pattern is:
applicationPrefix_clientPrefix_tableName
To get a client prefix from a table name, use the ss.getTablePrefix() method in your scripts.