Official documentation 1.0
Master Data Management System (abbrev. MDMS) is a module that allows users to set up any set of data within MS Dynamics NAV database and replicate it to another NAV database to ensure data consistency.
Users are allowed to set up any number of Receivers, which are target companies, to which data will be replicated.
Structure of data replicated can be set up as Data Sets.
Users can use any number of created Data Sets and set them up to be replicated to particular Receiver, using Replication card. Replication can be either Full or Incremental; while processing Incremental replication, only data changed from the last Replication will be exported.
Module is particularly useful when company wants to create & maintain certain NAV cards (e.g. items, BOMs, vendors) in one company – called “master” company - and afterwards synchronize it with subsidiaries (“receiver” companies).
Module uses SOAP Web Services as a data transport layer.
It is necessary to set up 2 numbering series:
As part of MDMS module, new permission set has been created: MDMS. It contains all necessary permissions to set up & execute module functions. On MDMS User Setup page (available under: MDMS / MDMS User Setup) there are following fields:
Receiver is a company that will receive data sent from Master Company.
In each receiver company, a Web Service needs to be published: codeunit 20020709. Its name must be equal to ReceiverWS - codeunit name without prefix
Copy SOAP URL of created service.
To set up a receiver, Receiver Card needs to be opened from MDMS / Receivers. Following fields need to be set up:
Data Set contains information about structure of data being replicated.
Data Sets can be found under MDMS / Data Sets.
Following fields are available in Data Set header:
Following fields are available in Data Set lines:
Specify a filter (using C/AL SETVIEW syntax) to exclude certain records from blocking rules. Example filters: • Cross-Reference Type=FILTER(<>Bar Code) • Code=FILTER('FA CIP') • "Dimension Code"=FILTER('FA CIP') • "No."=FILTER(11111..11198|11211..11297)
User can set up which fields should be included in the Data Set using Line / Show Details function. Following fields are available on Data Set Line Details page:
Note: It is also possible to add many fields at once, using Add Fields function:
After all necessary setup has been performed, it is necessary to mark Data Set card as completed using Functions / Release action which will change its status to Released. Data Set has to be released prior to be included on any Replications. If user wants to make any further adjustments to previously released Data Set, it is necessary to reopen it first using Functions / Reopen action.
Using Line / Show Filters action it is possible to specify additional filters that will be applied to data set records while processing replication. NOTE: If filters are defined both on Data Set and on Replication, for the same table, filters on Data Set level will be overwritten.
Using Line / Show Relation action it is possible to specify relation between indented record and its parent.
Replication links Data Sets to particular Receiver and specifies what kind of data should be replicated. It is also possible to set up additional filters which will be applied during replication processing.
Replications can be found under MDMS / Replications. Following fields are available in Replication header:
Following fields are available in Replication lines:
Using Line / Show Filters action it is possible to specify additional filters that will be applied to data set records while processing replication. Following fields are available:
NOTE: Please remember that Value is text-based field. If you want to set up a filter against option-type field, you need to ensure that filter value is correct.
After all necessary setup has been performed, it is necessary to mark Replication card as completed using Functions / Release action which will change its status to Released. Replication has to be released prior to running. If user wants to make any further adjustments to previously released Replication, it is necessary to reopen it first using Functions / Reopen action.
While running replication, system first checks whether all Data Sets included in current replication are released and displays an error message if otherwise. Also, replication itself has to be released as well. After successful replication, Record Synchronization Entries are created. Also, Last Run Date and Time field is updated on Replication card.
User can run replication manually, from Replication Card or Replication List, using Run (Full) or Run (Incremental) functions. NOTE: It is possible to select multiple Replications on the list and run them altogether.
It is possible to set up replication to be run automatically using Dynamics NAV Job Queue module.
It is necessary to set up Codeunit no. 20020699 Run Replication (MDMS) as Object ID to Run.
In Parameter String, following structure has to be followed:
<Replication No.>,<Replication Type>
Example Parameter String values are:
Should Parameter String be invalid, Job Queue will fail with appropriate error message.
Each replication can be run in one of two modes: Full or Incremental.
Full replication loops through all the records from Data Set, including filters set up on Replication line (if any). In case no filters has been set up, all records will be exported every time replication is run.
Incremental replication includes only data that has changed recently (since Last Run Date and Time as specified on Replication card). For each record that would normally be included as for Full replication, it performs additional check (using internal change log functionality) to see whether record should be exported.
NOTE: Only top-level changes are recognized.
Every successful replication run updates Last Run Date and Time field on Replication card.
Upon releasing Replication, a message may appear. When data set is included in released replication, all tables included are added to internal MDMS tracking log, which is utilized while processing incremental replications. However, any changes concerning tracking log are applied while opening a database and are persistent during user session.
NOTE: It is therefore necessary that after each change, prior to processing a replication (especially incremental), user logs off and logs in back again.
Every replication run creates Record Synchronization Entries for each processed record. They can be opened from Replication card by choosing Navigate / Replication/ Record Synchronization Entries. Following fields are available: