1

我创建了一个批处理作业,该作业创建了一个填充有查询的 Excel 文件,问题如下:

我在代码中使用了 WinAPI 和 SysExcelApplication 类。调试后,我看到这些类在使用批处理作业启动时会导致问题。我使用了带有 fileIOPermission 类的 winAPIServer 和托管权限,但我的问题仍然存在。

在没有批处理作业的情况下启动时,我的代码运行良好,没有错误。

有没有人有想法来解决我的问题?

这是错误消息:会话服务器端替换 (RunAs) 试图调用一个仅可用于客户端处理的方法。

4

3 回答 3

3

在 WinAPI 方面,有一个 WinAPIServer 类与 WinAPI 做同样的事情。有一个我使用的代码示例:

    if (xGlobal::clientKind() == ClientType::Client)
    {
        winapi::copyfile(File, strReplace(File,SourceFolder, FailureFolder));
        winapi::deletefile(File);
    }
    else
    {
        winapiServer::copyfile(File, strReplace(File,SourceFolder, FailureFolder));
        winapiServer::deletefile(File);
    }
于 2014-10-03T05:50:05.643 回答
2

您不能从在服务器上执行的批处理作业中使用 SysExcelApplication,因为 Excel 是需要访问客户端 UI 的客户端应用程序,这与模拟服务执行不兼容。

我知道这不是应有的逻辑,但几个月前,当我在客户端遇到这个问题时,我从 Microsoft 工程团队那里得到了这个答案。

如果您可以通过使用 CSV 文件或类似的东西来避免它,则可能的解决方案是根本不使用 Excel;或者使这些批处理在客户端层上运行,这迫使您始终让客户端在客户端会话上打开运行批处理(并使用客户端许可证)

于 2013-01-25T19:27:14.933 回答
0

在 Dynamics AX 中,您可以创建一个 xml 文件。然后创建并调用 PowerShell 脚本将 xml 文件转换为 excel 文件。而这一切都可以在 AX Batch Job 中完成。

于 2015-04-16T15:29:16.367 回答