通过作业队列运行Codeunit时出现错误,即使我手动运行该代码单元也可以正常工作。 错误: “ Microsoft Dynamics导航服务器试图发出客户端回调以创建.NET对象:System.Data.SqlClient.SqlConnection(报告50126 NewOrdersCust)。MicrosoftDynamics导航服务器不支持客户端调用。”
此代码单元运行报告,并将其作为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));
答案 0 :(得分:0)
在.net变量上,您可能已将属性RunOnClient
设置为True。如果要在服务器上运行此报告,则无法执行此操作。将此属性设置为false,并确保您在导航服务器上需要库。