In Master Data Services (MDS), you can create multiple versions of the master data within a model. When you create a model for the first time, MDS creates a default initial version of your model data. You can create as many versions you want for your model, either in sequential fashion (one version after another) or in simultaneous fashion (multiple versions in parallel). This way you can ensure you have a dedicated/consistent version of your master data for downstream consumption while at the same time having another version for adding/deleting/modifying members or for testing your model data, without compromising consistency in master data availability.
You may want to have one version of the data marked as “current”, and another set marked as “proposed” (using Version Flags). When the proposed version is confirmed as valid and clean, you can move that from proposed to current.
A version could be in either of these three status modes:
- Open – A model version of “Open” status mode allows everyone with required access to add/delete/change the members, hierarchies of the model. You can also run the business rules validation process to validate the data that it contains
- Locked – A model version of “Locked” status mode allows only the model administrator to add/delete/change the members and hierarchies of the model and other users are allowed only read access to the locked version (even though they might be having update permission on the model). A version is switched to “Locked” status mode to run the business rule validation and fix any issues with the data and that’s the reason not all users, except model administrator, are allowed to do the changes just to avoid inadvertent modification. A locked version can be switched back to Open status mode if required (to allow other users to do changes other than model administrator) or can be switched forward to “Committed” status mode
- Committed – Once all the business rules validation has passed in “Locked” status mode, this model version can be transitioned to “Committed” status mode and then you can create subscription views against this version to let reporting and analytical applications consume master data from the model version. A committed version cannot be unlocked (this means no changes are allowed on the committed version) though you can create another copy of committed version in parallel to do changes to the members and hierarchies
Two important notes about using versioning:
- Creating a new version for a model causes a whole new copy of ALL the data in the model to be created, which could take a long time if you have a lot of data
- If you turn transaction logging on while staging, every change to the entity will be logged as a transaction. Transaction logging is on by default when you use Excel or the web UI to add/edit members