The Change Sync feature within InProd is intended to keep non-production environments in line with production changes by syncing selected objects. Often the configuration requirements for a lab if different from production, for example, naming conventions, host names, and IP addresses. We are able to solve this challenge with the use of a Changeset.
Key points
- A Change Sync rule is created to listen to a targeted environment for a selected Genesys object type
- Filtering can be used to select only objects of interest or all changes of a selected object type can be synced
- A targeted environment is selected where the change will be deployed via a Changeset
- Traditionally the Changeset will contain a Create action for the same object type that is being listened for, but really any Changeset actions can be called
- The Changeset uses Enforcing mode, so if the object already exists within the targeted environment it is updated with any new values
When a Change Sync rule is created, a default Changeset action is generated with generic sample data that can be used as a based point to speed up the configuration process and provide an example of how to configure the parameters.
A custom Changeset variable called sync_object
contains the values of the object that received the change. The following text could be applied to the ‘Name’ parameter of an object to replicate them exactly between the destinations [?? sync_object.name ??]
JavaScript Matching
JavaScript ES5 code is used to determine which objects should qualify for the sync process. The JavaScript code needs to return a boolean type of `True` for the change to be synced and any other result will dismiss the change. The variable `syncObject` contains the object that has been changed. Code example matching on the object name starting with the characters ‘mcp_’
syncObject['name'].indexOf('mcp_') == 0
or for more complex logic add the code into a function block
function foo() {
return syncObject['name'].indexOf('mcp_') == 0
}
foo()
To assist with debugging, the JavaScript function `logMsg(message)` can be used to write log messages into the Bow log file.