Skip to main content

Notifications

Dynamics 365 Community / Blogs / Navision 360 / Call to the function 'I...

Call to the function 'INSERT' is not allowed | Solution

Zaid Tariq Profile Picture Zaid Tariq 2,266

Hi Folks,
I am back with another solution for an error, I came across this error several times even before but this time I am posting here for your help :) . The error description is as follow:

 

Microsoft Dynamics NAV
---------------------------

Call to the function 'INSERT' is not allowed inside the call to 'FunctionName' when it is used as a TryFunction.
---------------------------
OK
---------------------------

TryCatch-Error.PNG

According to Microsoft:

This behavior is different from the behavior in Microsoft Dynamics NAV 2016, which did not include this restriction by default. Therefore, you might encounter errors if you have application code that was written for Microsoft Dynamics NAV 2016 and you run the code in Microsoft Dynamics NAV 2017.

In practice, this means that you should not include the following function calls inside a try function scope:

Data TypeFunction
Record and RecordRef - INSERT
- MODIFY
- MODIFYALL
- RENAME
- DELETE
- DELETEALL
- >ADDLINK
- DELETELINK
- DELETELINKS
Database - COMMIT

If you want to change this behavior, you can set the DisableWriteInsideTryFunctions setting in the CustomSettings.config file of the server instance to false. However, we recommend that you design your code to suit the default behavior instead.


So you may find the CustomSettings.config file at: C:\Program Files\Microsoft Dynamics NAV\100\Service


Once you find the file, open it (Make sure the service is stopped) and search for DisableWriteInsideTryFunctions in this file. Change it to false.

Config-File.PNG

Save and close the file and then start the service again. Now try the operation again and It must be fixed. Enjoy!!!

Reference: https://docs.microsoft.com/en-us/dynamics-nav/handling-errors-by-using-try-functions

Comments

*This post is locked for comments