从任务/作业计划程序运行报告

时间:2021-01-11 10:11:16

标签: microsoft-dynamics navision

我正在尝试运行一个在 NAV 2015 中执行一些 SQL 查询的报告

如果我手动运行报告,它运行良好,但是当我将它设置到任务计划程序中时,它会出错,因为它有一个试图加载到客户端的自动化。

我已将 CREATE 参数更改为 (FALSE, FALSE) 而不是 (FALSE, TRUE),因此它在服务器而不是客户端中运行,但是当我尝试编译时会出现此错误:

enter image description here

翻译: 无法在 NAV 服务器中创建自动化对象“sqlConnection”。您必须在客户端中创建它。

但是如果我在客户端创建它 CREATE(FALSE, TRUE) 它会给出错误: enter image description here

翻译: NAV 服务器试图返回客户端调用以创建自动化对象。 NAV Server 中不允许来自客户端的调用返回。

这是代码:(循环公司表)

IF (STRPOS(LOWERCASE(Company.Name), 'prueba') = 0) AND (STRPOS(LOWERCASE(Company.Name), 'test') = 0) AND (STRPOS(LOWERCASE(Company.Name), 'uat') = 0) AND (STRPOS(LOWERCASE(Company.Name), 'prova') = 0) THEN BEGIN
  recWasteHeader.CHANGECOMPANY(Company.Name);
  IF recWasteHeader.COUNT > 0 THEN BEGIN
    recWasteLine.SETRANGE("Document Type", 4);
    recWasteLine.SETRANGE("Business Type", 2);
    recWasteLine.SETFILTER("Sub Contract No.", '<>%1', '*NUL*');
    IF recWasteLine.FINDSET THEN BEGIN
      IF ISCLEAR(sqlConnection) THEN
        CREATE(sqlConnection, FALSE, FALSE);
      sqlConnection.Open(ConnectionString);

      IF ISCLEAR(sqlCommand) THEN
        CREATE(sqlCommand, FALSE, FALSE);
      sqlCommand.ActiveConnection := sqlConnection;                      
      sqlCommand.CommandText := 'DELETE FROM [Noc Services Price] WHERE Empresa=' + q + Company.Name + q;
      sqlCommand.CommandType := 1;
      sqlCommand.Execute;

      REPEAT
        querydata := STRSUBSTNO(dataset, Company.Name, recWasteLine."Document No.", recWasteLine."Line No.", recWasteLine.Amount);
        sqlCommand.CommandText := 'INSERT INTO [Noc Services Price] (Empresa, Contracte, [Linea contracte], [PREU ACTUAL]) VALUES ( ' + querydata + ');';
        sqlCommand.Execute;
      UNTIL recWasteLine.NEXT = 0;

      sqlConnection.Close;      
    END;
  END;
END;

我也找不到 dotnet System.Data.SqlClient

enter image description here

0 个答案:

没有答案