我正在尝试从 Web 应用程序(Java EE)以编程方式生成 lotusscript(以可编写脚本按钮的形式)并将其发送给最终用户,最终用户将在他/她的 Lotus Notes 客户端中运行它。
我怎样才能做到这一点?我是否可以使用 API 将 lotusscript 嵌入到电子邮件中?
我正在尝试从 Web 应用程序(Java EE)以编程方式生成 lotusscript(以可编写脚本按钮的形式)并将其发送给最终用户,最终用户将在他/她的 Lotus Notes 客户端中运行它。
我怎样才能做到这一点?我是否可以使用 API 将 lotusscript 嵌入到电子邮件中?
这是一个想法。我还没有尝试过,也不确定它是否会起作用:
Document.send()
。当使用 CORBA/IIOP 连接到 Domino 服务器时,我认为这应该可以工作。更新
您也许可以跳过 DXL 部分,只修改文档项中的 LotusScript。我知道您必须为每个收件人修改 LotusScript。如果不是,那么一切都会容易得多(见理查兹的回答)。
我不会尝试嵌入按钮,而是考虑利用 Notes 的“在文档中存储表单”功能。
即,使用 Domino Designer 我将手动创建一个数据库(为方便起见,我将其称为“MyDb.nsf”)。在此数据库中创建一个表单(为方便起见,“MyForm”)并使用电子邮件消息的必填字段(SendTo、主题、正文等)对其进行设置。然后在表单上创建一个按钮并输入 LotusScript 代码。
提前完成此操作后,您的代码可以利用attachForm
Document.send() 方法中的可选参数。
您要做的是以通常的方式打开 MyDb.nsf,然后使用Database.createDocument()
在该数据库中创建您的文档,然后使用Document.ReplaceItemValue("Form","MyForm")
将此文档绑定到您的表单。还可以根据需要设置其他项目(例如,Subject、SendTo、Body),并在完成后调用Document.send(true)
。这会将您的表单嵌入到文档中并发送,因此 LotusScript 代码将在与消息一起发送的嵌入表单中传播。
我认为这对您来说可能是最好的方法,因为我认为这将在嵌入表单时保留表单上的签名。我不确定,但另一方面我更确定使用 CORBA/IIOP 发送的任何其他方式都会给你一个未签名的脚本(因为 CORBA/IIOP 无法访问签名所需的私钥文件)。未签名的脚本意味着您的用户在执行它时会收到 ECL 警告——这可能导致他们在 ECL 中添加一个条目以允许未签名的脚本,这是一种糟糕的安全做法。
Another option is to embed a URL to open a Page design element with your code (or a call to the agent) in the QueryOpen, so it runs when the page opens.
Notes://myserver.mycompany.com/utilities.nsf/MyTaskLauncher?OpenPage
I'm not sure if it could pass parameter values or if you have to rely on the user's credentials to determine the proper information.
Advantages: