通过Navision上的作业队列运行代码单元时发生错误

时间:2019-06-17 11:33:48

标签: rdlc development-environment job-scheduling navision microsoft-dynamics-nav

通过作业队列运行Codeunit时出现错误,即使我手动运行该代码单元也可以正常工作。 错误: “ Microsoft Dynamics导航服务器试图发出客户端回调以创建.NET对象:System.Data.SqlClient.SqlConnection(报告50126 NewOrdersCust)。MicrosoftDynamics导航服务器不支持客户端调用。”

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

CodeUnit:

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));

This report contains the following .net variables

1 个答案:

答案 0 :(得分:0)

在.net变量上,您可能已将属性RunOnClient设置为True。如果要在服务器上运行此报告,则无法执行此操作。将此属性设置为false,并确保您在导航服务器上需要库。