Equisys technical notes

Technical guidance, explanations and fixes for our products

HOWTO: Modify Sales Quote to be Compatible with Server Side Delivery

Print

ZTN4396

ID: ZTN4396

This Zetadocs technical note applies to:

  • Zetadocs for NAV 8.0
  • Dynamics NAV reports which require user input

Summary

Prevent failure when sending using Server Side Delivery for reports that contain user dialogs, e.g. Sales Quote and Purchase Quote.

In this technote the changes required to make a report compatible with the Zetadocs for NAV Server Side Delivery feature will be discussed.

More information

Errors can occur when dialogs are invoked from within any executing code whilst processing on the server, such as report functions whilst sending from the server, for example in Sales Quote. These errors cause the send operation to fail silently. This technote will cover how to prevent report GUI elements from disrupting the Server Side Delivery operation. The following is a typical error as shown in Zetadocs-NAV.log for this issue

<Date>- <Time>-ERROR-C9041221.HandlePDFGeneration() Error whilst creating PDF Microsoft Dynamics NAV Server attempted to issue a client callback to show a confirmation dialog box: Do you want to create a follow-up to-do? (Report 204 Sales - Quote). Client callbacks are not supported on Microsoft Dynamics NAV Server.

The Zetadocs-NAV.log is available from C:\ProgramData\Microsoft\Microsoft Dynamics NAV\80\Server\MicrosoftDynamicsNavServer$DynamicsNAV80\users\default\<domain>\<user>\TEMP\Zetadocs.

To prevent failure during Server Side Delivery the report’s C/AL script must be customized to run correctly on the server. C/AL implementations differ between reports. All user dialogs must be manually prevented from running within report C/AL script if they are to be successfully sent on the server. This includes but is not limited to: CONFIRM, ERROR, MESSAGE, OPEN and PAGE.RUN. Also be aware of calls to functions that may cause a dialog to be triggered, e.g. a printer prompting because it is low on ink.

1.     Create a backup of the report and make the following changes in a new copy.

2.     Every call to a dialog should be wrapped in an

IF GUIALLOWED THEN

clause. For example, to correctly mark up Report 204 Sales-Quote add the following circled line to the OnPostDataItem trigger.

Note that client callbacks invoked from nested code will also have to be prevented. For C/AL this can be done using the method described above.

Last updated: 2nd March 2015 (SB/JV) 

Keywords: Server Side Delivery Client Callback OnPostDataItem

Equisys Logo, Document Management and Expense Management for Business Central
 

Replaced by script