0

通过作业队列运行 Codeunit 时出现错误,即使当我手动运行该代码单元时它工作正常。错误:“Microsoft Dynamics NAV Server 尝试发出客户端回调以创建 .NET 对象:System.Data.SqlClient.SqlConnection(报告 50126 NewOrdersCust)。Microsoft Dynamics NAV Server 不支持客户端撤回。”

此代码单元运行报告并将其保存为文件夹中的 pdf 文件。

代码单位:

OnRun(VAR Rec : Record "Job Queue Entry")
 IF GUIALLOWED THEN BEGIN
 programm:='\\MB\Navision\ReportsMB\PDFSoftware\cpdf.exe';
//Merged PDF1
Output := '\\MB\Navision\ReportsMB\Customers.pdf';
directory:= '\\MB\Navision\ReportsMB\2019\Customers';
Filename1:='\\MB\Navision\ReportsMB\2019\Kunden_Vertrieb\CustomersOrders.pdf';
Report1.SAVEASPDF(Filename1);
END;

该报告实际上是基于一个 SQL 查询:

报告:

MyReport - OnPreDataItem()
Servername:='*.*.*.*';
DBName:='DB';
GetSQLConnection(SQLConnection,Servername,DBName);

QueryinText:='select * from [SickDays] K  Order by Year DESC, Code ASC, Monat DESC ';

SQLCommand:=SQLCommand.SqlCommand(QueryinText,SQLConnection);
SQLConnection.Open();
Queryread :=SQLCommand.ExecuteReader;

MyReport - OnAfterGetRecord()
IF (Queryread.Read()) THEN
       BEGIN
       LoopCount+=1;
       Year:= Queryread.Item(0);
       KrankDays:=Queryread.Item(5);
       END
ELSE
    BEGIN
       SQLConnection.Close();
       CurrReport.BREAK;
    END;

SETRANGE(Number,1,  LoopCount);

MyReport - OnPostDataItem()

GetSQLConnection(VAR SQLConnection : DotNet "System.Data.SqlClient.SqlConnection";Servername : Code[20];DBName : Code[20])
SQLConnection :=
  SQLConnection.SqlConnection(
    STRSUBSTNO(
      'Data Source=%1;Initial Catalog=%2;Integrated Security=SSPI',
      Servername,DBName));

此报告包含以下 .net 变量

4

1 回答 1

0

在 .net 变量上,您可能已将属性设置RunOnClient为 True。如果您想在服务器上运行此报告,则不能这样做。将此属性设置为 false 并确保您在导航服务器上具有所需的库。

于 2019-06-17T12:49:23.530 回答