Frequently Asked Questions
How to set up AAD?
See Setting up Azure Active Directory Authentication
The error message: "Connection to the remote service x could not be established" displayed when synchronizing records.
The error is shown because master company cannot send data to the receiver. This is not a web service response. The connectivity problem is on the master company's side. Technically, no HTTP request can be sent.
The possible causes are:
Temporary problems with the service. They can result in a longer time of establishing a connection - the timeout error.
Too large package. The No. of Records per Synchronization Message field value on the MDMS Setup page can be decreased or the Max Message Size parameter can be increased on service configuration. Sending too many unnecessary fields like system fields can lead to timeout errors as well.
Why the Test Connection action on the Receiver Card page results in http 401 or http 501 statuses?
On-Premises Installation
If Windows credential type is used then separate instance with NavUserPassword is required. For more information, see On-Premises Installation.
The specified credentials are not correct - check the values of the Web Service Username and Web Service Password fields.
Web service address is wrong or not fully copied to the Web Service Address field. For more information and the correct Web Service Address format, see Receivers Setup.
The user whose credentials are used on the Receiver Card does not have any permissions in the receiver company.
The user whose credentials are used on the Receiver Card does not have MDMS permission set assigned in the receiver company. For more information, see Receiver User permission.
Online installation
Since Business Central 2022 wave 1, Azure Active Directory authentication is used. For more information, see Setting up Azure Active Directory Authentication.
Frequent mistakes when setting up the Azure Active Directory Authentication:
- copying the value of the Object ID field insetead of the value of the Application (client) ID field from the Azure Portal to the Client ID field.
- copying the value of the Secret ID field instead of the value of the Value field from the Azure Portal to the Client Secret field.
- not setting the MDMS permissions in the Azure Active Directory Application Card page in the receiver company.
For previous installations:
Web Service Access Key is not used as WebServices Password. For more information, see Receivers Setup.
Web Service Access Key is not fully copied to the WebServices Password field.
Important
The Web Service Access Key string always contains '=' as the last character.
HTTP 413, 500 - The request entity is too large for the server to process
- Consider change of No. of Records per Sync Message to a lower value. For more information, see MDMS Setup.
I have changed a record but incremental replication does not catch that. Why is that?
Incremental is not generated when replication is opened.
Let's assume that fields on the Item Card have been modified. The OnAfterDatabaseModify global event is always invoked after the card has been closed. This event is used to insert a new record in the tracking log entry. To verify, the Tracking Log Entries action can be used on the Replication List or Replication pages.
I received Http 413 (Request Entity Too Large). How to solve it?
The synchronized packet exceeds SOAP message limit. The No. of Records per Synchronization Message field on the MDMS Setup can be decreased or Max Message Size parameter can be increased on the service configuration.
I received an error message: "You cannot change the value of an AutoIncrement field..." during synchronization. What does it mean?
AutoIncrement fields cannot be modified (even with the same value) – it’s Dynamics/BC behavior. AutoIncrement fields must not be included in the data set fields.
Why is MDMS so slow?
MDMS is a tool to replicate master data. It is important to define which tables and fields are in the master data scope.
Create Record Sync. Details on the MDMS Setup can slow down MDMS. If a large volume of data is processed, the option should be switched off.
Events OnBeforeExportField, OnBeforeExportRecord, OnAfterExportRecord, OnAfterImportedRecordModify are executed in the main loop. The logic executed when subscribing to those events should be limited.
When is it necessary to use relations?
The data set line relation has to be defined when indented lines are used. For more information, see Data Set Setup.
What is the difference between Data Set filters and Replication filters?
Filters applied on the data set are effective in all the places where the data set is used. Replication filters are per replication.
Important
If both filters are applied for the same fields, replication filters are used.
When to use "Run Trigger on Insert" and "Run Trigger on Modify"?
These actions trigger the records with true parameter in Insert or Modify. They can be used when business logic in those triggers should be executed or if event subscribers should be invoked with true parameter.
Can MDMS replicate BLOB fields?
Yes, MDMS does support replication of large files including BLOB, Media and Media Set types. For more information, see Binary Data Replication.
Data is replicated to the company which was deleted. I cannot delete records from the master company, because it tries deleting from a not-existing company. How to solve it?
The receiver which is not used should be deleted.
Is it possible to cleanup Record Sync. Entry?
Yes, for more information, please read Compressing Record Sync. Entries
How to unlock tables in the receiver company?
Can MDMS work with multiple master companies?
Yes, MDMS supports multiple master companies setup. No additional setup is needed. The only limit is the process of deleting records that cannot be performed from the master company if records should be removed from another master company.
Is there any way to filter records per specific company?
Replication filters can be used to filter the data set. To make a selection per record, the Record-Level functionality should be used.
Can we synchronize the data with the external ERP systems?
MDMS replications would produce XML files up to Business Central 13 version. Such XML files could be uploaded by an external system, provided that the external system was properly set up for import.
In the current application version, MDMS uses web services for data exchange. There is no way to map a table other than the one you are sending.
Is MDMS capable of replicating fields added via extensions?
Yes, MDMS can replicate any table from database. It doesn't matter if it is standard or customized table.
Is it possible to have two customers, one in a master company and the other in a subsidiary, linked for synchronization, but not having the same primary key?
No, all synchronization is based on the primary key.
Does your solution allow exchanging transactional data?
MDMS allows synchronizing any kind of table, including transactional tables.
What happens if a record is deleted in the master data company that has active relations in one or more companies?
When attempting to delete a record in the master data company, system first issues a web service call to all companies this record has been published to, and attempts to delete it there. It will only succeed in master data company if record has been successfully deleted from all subscriber companies. For more information, see Record Deletion.
How MDMS tracks data modifications?
MDMS has an internal change log to track any operations on synchronized tables.
Is it possible to synchronize data between Business Central and Navision which does not support web services?
NAV versions older than NAV 2017 does not support web service communication. For instance to send data between NAV 2009 and Business Central 15, an additional company, which can handle both types of communication is needed. NAV 2017 is the first version which can handle files and web services communication.
How does MDMS support local translations? For instance, when items are replicated from a company that uses English to the company that uses Chinese?
It requires a simple code adjustment. MDMS publishes the OnAfterExportRecord event which can be subscribed to in order to handle this situation.
Figure: OnAfterExportRecord event subscriber example
Item Attributes
Suggested Data Set for Item Attributes
Figure: Item Attributes Data Set
Important
When replicating attributes, full replication should be used.
If item attributes are replicated and synchronized first and their values are assigned later, it is possible to use incremental replication.
Disable Local Insertion and Disable Local Deletion: The option is selected to maintain data consistency, because field ID which is part of primary key of those tables has the Auto Increment property.
Full-Incremental Replication on item attribute: The option is selected to replicate all Item Attribute properties like Name or Item Attribute Value Option Values.
Additionally MDMS supports attributes handling with the Advanced Item Attributes Handling setup option.
For more information, see MDMS Setup.
Item Attribute Modification Handling
When modifying the last occurance of the iItem attribute value, the record is deleted in the receiver company as well. A confirmation dialog window, which can not be handled by the web service, appears because the deletion request is sent before the change of item value mapping. A possible solution is to delete item value mapping before deleting the item attribute value.
It can be done with enabling Advanced Item Attribute Handling in MDMS Setup.
For more information, see MDMS Setup.
Handling multiple confirmations when deleting Item Attribute
If skipping multiple confirmations is needed when deleting an item attribute, deletion can be done with the MDMS Records Management worksheet. It should start with item attribute value mapping and item attribute values.