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

FieldDescription
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 currentThis checkbox is selected if the version is current. 
Created byThe user who did the change.
Created atThe date and time of the record creation.
Local packThe local pack that contains this record.
Retrieved packThe Retrieved pack to which this record is related to.
Restored byA unique ID of the version record from which the current record was restored.
Action

Action type. Available options:

  • Create
  • Update
  • Delete
Record policy

Current record protection policy after the transaction is over. Available options:

  • Open
  • Changed
  • Protected
Is strong overwriteWhen 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 policyTarget record protection policyResult
Protected

ProtectedSuccess
OpenSuccess
ChangedSuccess
Changed

ProtectedFailed. Use Strong overwrite to proceed.
OpenSuccess
ChangedSuccess
Open

ProtectedFailed. Use Strong overwrite to proceed.
OpenSuccess
ChangedFailed. 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.

  • No labels