Monday, December 21, 2015

MDS - Create and Reuse a Master Entity Across Models

Master Data Services 2016 now supports the ability to create a Master Entity, and use it in all your models.  It's called Entity Sync.

Master Data Services supports the concept of Models, and the documentation encourages the use of multiple models for your different data groups, such as products, customers, etc. All well and good, except that many of those models use the same entity. A key tenant for a master data repository should include the ease with which data can be sourced from a master location. Yet, within the previous versions of MDS, reusing a core entity across multiple models was not supported natively.  You had to create custom SSIS packages, or some other band-aid approach.  

Entity Sync


As part of the System Administration, you now have a new item under the Manage menu - Entity Sync.




Add/Edit


Using the Add/Edit button, you are presented with a form on the right that allows you to select the source Model, Version and Entity, along with the destination Target Model and Version. Plus the ability to push it to either an existing entity or a new one, the name for the new entity and the frequency the data is synced.



Is Sync Target

Once you have setup a entity to be sourced from a master entity, it is flagged as "Is Sync Target" on the main entities page for the target Model. Under the property listed "Is Sync Target" you'll find the "yes" flag.




Copy of Data


When you setup an Entity Sync, keep in mind that the target entity is physically created. And the data is only updated when the last successful sync was run - again based on the refresh frequency properties. And finally, if you remove the Entity Sync process, the Entity initially created still exists.

Domain Controlled Attributes need not apply

If your source entity has any attributes that are driven by a domain (table) in the model, that attribute will not be included in the sync.  No values are transferred over to the target. So, if you are trying to create a sophisticated model, using domains to manage your entity, this feature comes up a bit short. A nice start, but still incomplete. Still, if you can limit your master entities to only those that do not rely on another domain, this is a great addition.


No comments: