【发布时间】:2019-10-16 10:31:21
【问题描述】:
我想从 Lotus Script 中的代理修改 word 文档。 Domino 服务器作为具有管理员用户计数的服务启动。 Word 文档附加在 Lotus Notes 文档中。我将文档提取到 Domino 可以访问的文件夹中。 当 Domino 服务器(作为服务)运行该进程时,Domino 会显示错误。但是当我将 Domino 服务器作为应用程序启动时,该进程运行良好并且没有出现任何错误。 脚本代码如下:
Set rtItem = doc_perfil.GetFirstItem(campo)
Set obj = rtitem.EmbeddedObjects(0)
sFile = RUTA + "\" + ReplaceSubstring(nameNewFile, "/", "-") + ".docx"
Call obj.ExtractFile(sFile)
OLE_OBJECT = "word.application"
Set Word = CreateObject (OLE_OBJECT)
Set templt = Word.Documents.Add (sFile)
产生错误的行是“Set templt = Word.Documents.Add (sFile)”
【问题讨论】:
-
当您将 Domino 作为常规应用程序运行时,您在运行代理程序时是否看到任何 UI 活动?如果我没记错的话,所有现代 Windows Server 版本都具有阻止服务访问 UI 的安全功能。由于 OLE 类实际上启动应用程序并发送自动化指令(与 COM 类相反,它提供对应用程序功能的直接访问),因此它们会受到此限制的影响。我不记得是否有任何方法可以覆盖它。
-
我猜变量 RUTA 包含一个网络位置的路径......不幸的是,Windows 服务没有网络凭据......如果他们有:网络驱动器将不会被映射到特殊上下文,即使它在登录会话中...尝试使用本地路径来找出问题是否存在。这个或“UI”——理查德提到的问题。
-
您是否尝试过在服务帐户(不是 localSystem)下运行 domino?
标签: windows lotus-domino lotusscript