Hi Community, I am doing automated testing in Business central and while testing one of my functions is using following code:
CreatesubscriptionInvoices.RunModal();
CreatesubscriptionInvoices variable is of type Report.
to run processing only report along with a request page but as soon code hits that line test case becomes failed and following error appears;
"The following C/AL functions are limited during write transactions because one or more tables will be locked. Form.RunModal is not allowed in write transactions. Codeunit.Run is allowed in write transactions only if the return value is not used."
Anyone knows what its means and how to solve it ?
thanks
0
Answers
What it means is that you cannot call a RunModal or Codeunit.Run during an active Write-Transaction.
So either you make sure that you don't have any Insert() or Modify() before your RunModal() call in that transaction, or make sure to commit those changes via Commit().
Usually if you run into this error you've made some bad design decisions while constructing your code. UI Elements should be shown before actual processing is done. If you can't/don't want/are not able to restructure your code properly try committing any open transactions before calling RunModal()