Tuesday, March 30, 2010

Customized Version Control - Tertiary

In a previous post, I discussed how to implement binary or bimodal version control. This means that there are two states, Active and Inactive. This is useful for objects like quotes where you really just need to know which is the most recent. In other situations, especially involving complex meta data, the timing of deploying the new version is critical and therefore requires the entire data structure to be completed before deploying. This requires a third mode, a Pending or In Progress status and an Activation step. You see this in Siebel already in Assignment Manager where Rules need to be Activated. You also see this in Data Validation Manager (DVM), which I actually was able to mimic.


In DVM admin, creating a new record puts the status as 'In Progress'. Pressing the 'Activate' button changes the status of this record to 'Active' and the status of any other records with this name to 'Outdated'. This is all enabled by the specialized class of the FINS Validation Rule Set business component, CSSFABCValidation. I was able to create a custom BC and set the class to this custom value, and mimic this versioning behavior. The other setup steps for a binary versioning setup are still required, including setting up the sequence and version field for that BC, and setting up BC User Props 'Active Field' and 'Revision Field'. There are some additional BC user properties that are necessary to make this work.


Status Field. This is undocumented as far as I can see but the value of this property identifies the BC field holding the status value of the version. This is the field that will hold the values 'Active', 'In Progress' and 'Outdated'


Name Field. The value of this property identifies the BC field holding the logical key of the versioned data structure, typically the name or a unique number that will remain the same across all versions of a structure.


If this data structure has child records, insure that Deep Copy and Deep Delete properties are setup correctly

No comments:

Post a Comment