IT.integro

Master Data Management System (MDMS)

Official documentation 1.0


Welcome

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.


Content:

  1. Welcome
  2. How to: Set up MDMS
  3. How to: Create a Data Set
  4. How to: Create and Process Replication

How to: Set up MDMS#back to top

Master Company Setup

No. Series

It is necessary to set up 2 numbering series:

  1. Data Set Nos.
  2. Replication Nos.
    This can be done using standard NAV No. Series page. ### MDMS Setup Following fields should be set up in Master Company:
  3. Data Set Nos.
    Indicates No. Series used for numbering new Data Set records.
  4. Replication Nos.
    Indicates No. Series used for numbering new Replication records.
  5. Master Company
    Indicates that current company is Master Company. This enables a number of functionalities, including blocking of certain actions against records from tables that are part of active data set.
  6. Block Record Rename
    When selected, users will not be able to rename any record from synchronized tables.
  7. Records per Sync. Message
    Number of records send per one message, the smaller the datasets the larger the number can be, 0 will result in default value 300, in case of errors needs to be lowered

User Permission & User Setup

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:

  1. User ID
    Contains user ID.
  2. Receiver No.
    Assigns user to Receiver. This connection is necessary when processing record-level replication. For more information about record-level replication, see User Guide.
  3. MDMS Super User
    Indicates that user is Master Data Super User. When selected, user will be able to perform all activities against records that are part of synchronized data sets. It is possible to block delete / rename actions in Master Company in MDMS Setup. In Receiver Company it depends on settings on replicated Data Set. When system recognizes current user as Master Data Super User, no restrictions will apply. For more details refer to User Guide.

Receivers

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:

  1. No.
    Receiver No.
  2. Description
    Receiver Description
  3. Language Code
    Language Code
  4. WebServices Address
    Paste copied url here, but ending after the company name and before the word codeunit. For example: http://SERVER:7047/INSTANCE/WS/Receiver/Codeunit/ReceiverWS should be: http://SERVER:7047/INSTANCE/WS/Receiver
  5. WebServices Username and Password
    Credentials needed to log on the remote webservices

How to: Create a Data Set #back to top

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:

  1. No.
    Data Set unique identifier
  2. Description
    Data Set description
  3. Last Date Modified
    Read-only field. Contains date of last modification
  4. Status
    Read-only field, contains Data Set status. Status may be either Open or Released and can be adjusted using Release and Reopen actions.

Following fields are available in Data Set lines:

  1. Code
    Data Set line unique identifier
  2. Name
    Data Set line description
  3. Table No.
    No. of table being replicated
  4. Table Name
    Name of table being replicated, filled in automatically upon entering Table No.
  5. On Record Exists
    Defines action which will be taken when replicated record is found to be already existing in target database. Possible actions are Update and Skip.
  6. Record-Level Replication
    Specifies whether all table data should be replicated or user (assigned MDMS Receiver role) should manually mark records which they want to be replicated to their local database
  7. Disable Local Insert While this field is selected, users will not be able to insert new records in their local database
  8. Disable Local Delete
    While this field is selected, users will not be able to delete records in their local database
  9. Block Exclude Filter

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)

  1. Run Trigger on Insert
    When new record is inserted to local database, INSERT(TRUE) will be used during the operation. By default, it is INSERT(FALSE).
  2. Run Trigger on Modify When record is updated in local database, MODIFY(TRUE) will be used during the operation. By default, it is MODIFY(FALSE).
  3. Target Table No.
    Here you can specify Table No. records should be inserted to in Receiver company. Default value is 0 = records will be transferred to the same table they are exported from.

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:

  1. Code
    Unique identifier of Data Set field
  2. Field No.
    Field number
  3. Field Name
    Field name
  4. Target Field No.
    Number of target field. It is therefore possible to set up Data Set to import the data to another field from the same table
  5. Validate Field
    Indicates whether field should be validated upon importing on the receiver side
  6. Disable Local Modify
    Indicates whether editing field should not be allowed locally, on the receiver side
  7. Field Type
    Type of the field
  8. Processing Order
    Order in which record fields will be processed. This is particularly important when considering data validation flow
  9. Table No.
    Table Number
  10. Keep Local Value
    Push field value from global company to local company, but do not overwrite afterwards. It will be possible to adjust field’s value locally and this value will be kept.
  11. Skip Export
    Select this field if you would like to skip current field from the export.

Note: It is also possible to add many fields at once, using Add Fields function:

Releasing / Reopening

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.

Data Set filters

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.

Data Set Line Relation

Using Line / Show Relation action it is possible to specify relation between indented record and its parent.

How to: Create and Process Replication #back to top

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:

  1. No.
    Replication unique identifier
  2. Description
    Replication description
  3. Receiver No.
    No. of Receiver
  4. Last Run Date and Time
    Date and time of last successful replication
  5. Status
    Read-only field, contains Replication status. Status may be either Open or Released and can be adjusted using Functions / Release and Functions/Reopen actions

Following fields are available in Replication lines:

  1. Data Set No.
    No. of replicated Data Set
  2. Description
    Description of replicated Data Set

Replication filters

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:

  1. Data Set Line No.
    Line No. of Data Set being replicated
  2. Data Set Line Code
    Line Code of Data Set being replicated, filled in automatically as soon as Data Set Line No. is entered
  3. Field No.
    Field No. that filter will be applied against
  4. Field Caption
    Field caption, filled in automatically as soon as Field No. is entered
  5. Value
    Desired filter value

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.

Releasing/Reopening

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.

Running replication

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.

Manual

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.

Automatic (using Job Queue)

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>
Where:

  • Replication No. – contains Replication No. to be run;
  • Replication Type – specifies replication type, two possible values are: “FULL” and “INCREMENTAL”.

Example Parameter String values are:

  • R0001,INCREMENTAL
  • R0025,FULL

Should Parameter String be invalid, Job Queue will fail with appropriate error message.

Full vs Incremental

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.

Replication Tracking Entries

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.

Record Synchronization Entries

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:

  1. Entry No.
    Sequential No.
  2. Date and Time
    Date and time of Replication run
  3. Status
    Specifies if entry has been processed succesfully
  4. Processed Date & Time and Processed By
    Specifies when the entry has been processed and by which user
  5. Error Text
    Message thrown by error during processing
  6. Old Record ID
    Used in case of rename, points to record that was renamed to repeat in receiver
  7. Receiver No.
    Important when using group receiver ### Synchronizing records After running replication no data is sent to Receiver. To process Record Synchronization Entries there are 2 options. Action Synchronize on Replication Card processes all pending entries for the replication. Action Process on Record Synchronization Entries page processes all selected entries.