For some time now, we have struggled with an error message from MS Dynamics NAV C/Front when updating or adding new records in NAV. The error message that we got is "Another user changed the definition of table xxx", where xxx is the NAV table that we try to write to.
The error message says that the definition or layout of the specific table was changed by another user. The problem is that in all cases where we had this message come out consistently, nobody else was changing any table definitions in NAV, so clearly the error message was wrong.
Searching the internet for solutions revealed different suggestions around upgrading NAV Client/Server and C/Front to a newer version. This did not help in our case either.
The solution turned out to be related to the exact data written to NAV through C/Front. When updating a BCD value in NAV (BCD means Binary Coded Decimal and is the Numeric data type that NAV uses internally) with a 0 (zero) value, we would in some cases set the Exponent to a value different from 0 and the rest of the value to 0's. This is something that we have also seen NAV return when reading BCD values from NAV.
Set BCD Value to 0
This turned out to be the mistake and the cause of the above error. When writing a 0 value BCD encoded to NAV, you need to set it all to 0's (including the Exponent part).
I hope this can help others that use NAV C/Front and encounter this error.
Upgrade the RapidiConnector
In terms of the RapidiOnline Service, you should just know, that if you encounter the above error and it continues to fail (because if you just encounter the error once it can very well be someone else having updated the definition of the table), the solution is to upgrade the RapidiConnector to version 3.2.91c or later.
In case you need your RapidiConnector upgraded, please contact our support. We can now in many cases do this remotely without any work on your side.