我正在尝试以编程方式从Web应用程序(Java EE)生成lotusscript(以脚本化按钮的形式),并将其发送给最终用户,然后最终用户将在他/她的Lotus Notes客户端中运行它。
我怎样才能做到这一点?我是否有一个API用于将lotusscript嵌入电子邮件中?
答案 0 :(得分:3)
这是一个想法。我没有尝试过,也不确定它会起作用:
Document.send()
通过电子邮件发送文档。当使用CORBA / IIOP连接到Domino服务器时,我认为这应该可行。<强>更新强>
您可以跳过DXL部分,只需修改文档项中的LotusScript即可。我知道您必须为每个收件人修改LotusScript。如果没有,那么一切都变得容易了(参见Richards的回答)。
答案 1 :(得分:3)
我不会尝试嵌入按钮,而是考虑利用Notes中“存储的文档形式”功能。
即,使用Domino Designer我会手动创建一个数据库(为方便起见,我称之为“MyDb.nsf”)。在此数据库中创建一个表单(为方便起见,“MyForm”)并使用电子邮件的必填字段(SendTo,Subject,Body等)进行设置。然后在表单上创建一个按钮并输入LotusScript代码。
事先完成此操作,您的代码可以利用Document.send()方法中的可选attachForm
参数。
你要做的是以通常的方式打开MyDb.nsf,然后使用Database.createDocument()
在该数据库中创建文档,然后使用Document.ReplaceItemValue("Form","MyForm")
将此文档绑定到表单。还可以根据需要设置其他项目(例如,Subject,SendTo,Body),并在完成所有操作后调用Document.send(true)
。这会将您的表单嵌入到文档中并发送它,因此LotusScript代码将以随消息一起发送的嵌入式表单传播。
我认为这对你来说可能是最好的方法,因为我认为这会在嵌入时保留表单上的签名。我不确定,但另一方面,我更确定使用CORBA / IIOP发送任何其他方式都会给你一个未签名的脚本(因为CORBA / IIOP无法访问签名所需的私钥文件)。未签名的脚本将意味着您的用户在执行时会收到ECL警告 - 这可能导致他们在ECL中添加一个条目以允许未签名的脚本,这是一种糟糕的安全措施。
答案 2 :(得分:1)
另一种选择是嵌入一个URL,用QueryOpen中的代码(或对代理的调用)打开一个Page设计元素,以便在页面打开时运行。
Notes://myserver.mycompany.com/utilities.nsf/MyTaskLauncher?OpenPage
我不确定它是否可以传递参数值,或者您是否必须依赖用户的凭据来确定正确的信息。
优点: