So, back in the old days, we used to get an error saying, Another user have modified the record after you retrieved it from the database

Image result for navision another user have changed

In Business Central (and actually already in NAV2018) you get Sorry, we just updated this page. Reopen it, and try again.

In some cases, you’ll get this error even when you’re the only user on the system, because it’s actually an error saying that what you’re trying to modify in the database does not match what you retrieved from the database, example:

// now we have two record in memory of the record from the database
CompanyInfo1.SomeField := "New Value';
// Now Record 1 is the same as the database and record to obsolete
CompanyInfo2.SomeOtherField := 'Better Value';
CompanyInfo2.MODIFY; <----- Error

In this case, CompanyInfo2 is getting “stale” when CompanyInfo1 is written back to the database, resulting in an error when we mdofiy CompanyInfo2.

This often happens if you pass a Record variable to a function call without VAR transferring it and the continue to operate on the variable in the parent function, example:

CompanyInfo.Field := 'Value';

procedure DoSomething(CI : Record "Company Info");
  CI.OneField := 'value';

Change the above example to DoSomething(var CI : Record..) or do a CompanyInfo.GET after the call to DoSomething(…).

Anyway, long story short about an error message changing text 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.