Lotus notes从浏览器实现自动化
Lotus notes automation from browser
我一直在尝试从浏览器界面自动填充Lotus Notes邮件。
在参考Richard Schwartz的答案后,我使用Lotus.NotesSession
类编写了这段代码。
function SendScriptMail() {
var mToMail = document.getElementById('txtMailId').value
var mSub = document.getElementById('txtSubject').value
var mMsg = document.getElementById('txtContent').value
var Password = "yyy"
alert("1");
var MailFileServer = "xxx.com"
var MailFile = "C:'Program Files'IBM'Lotus'Notes'mail'user.nsf"
alert("2")
var Session;
var Maildb;
var UI;
var NewMail;
var From = "user@xxx.com"
try {
alert("3")
// Create the Activex object for NotesSession
Session = new ActiveXObject("Lotus.NotesSession");
alert("4")
if (Session == null) {
throw ("NoSession");
} else {
Session.Initialize(Password);
// Get mail database
Maildb = Session.GetDatabase(MailFileServer, MailFile);
alert("5")
if (Maildb == null) {
throw ("NoMaildb");
} else {
NewMail = MailDB.CreateDocument();
if (MailDoc == null) {
throw ('NoMailDoc');
} else {
// Populate the fields
NewMail.AppendItemValue("Form", "Memo")
NewMail.AppendItemValue("SendTo", mToMail)
NewMail.AppendItemValue("From", From)
NewMail.AppendItemValue("Subject", mSub)
NewMail.AppendItemValue("Body", mMsg)
NewMail.Save(True, False)
NewMail.Send(False)
}
}
}
} catch (err) {
// feel free to improve error handling...
alert('Error while sending mail');
}
}
但现在,警报1,2,3被触发,然后计数器移动到catch块。lotus notes会话未启动。
在我之前看到的powershell脚本中,有一个代码regsvr32 "$NotesInstallDir'nlsxbe.dll" /s
在Session = new ActiveXObject("Lotus.NotesSession");
之前使用。javascript中也有类似的东西吗?如果有,我该如何调用dll。
我想我已经意识到我错在哪里了。根据我的说法,在alert("5")
之前一切都很好。但是由于Lotus.NotesSession
没有CreateDocument()
方法,它抛出了错误。不过,我不知道如何创建文档和填充值。
由于您选择使用Notes.NotesUIWorkspace类,因此您正在使用Notes客户端前端。它正在运行,您的用户可以在屏幕上看到正在发生的事情。您是否知道有一组后端类(植根于Lotus.NotesSession
,而不是Notes.NotesSession
和Notes.NotesUIWorkspace
)可以直接处理Notes数据库数据,而不会导致Notes客户端获取焦点并显示您正在做的一切?
使用前端意味着在某些情况下(取决于您使用的Notes版本),您将不会直接使用Notes消息中存储的和在后端看到的标准字段名。您将使用在用于查看和编辑消息的表单中用作临时输入的名称。您可以使用Domino Designer查看Memo表单来查看这些名称
不要使用"SendTo",请尝试使用:
MailDoc.Fieldsettext('EnterSendTo', mToMail)
关于身体领域,不涉及临时领域,但你还没有真正解释你所面临的困难。你不知道如何在浏览器中显示你想要的界面吗?你不知道如何将不同的输入组合成一个FieldSetText
调用吗?还是你只是对FieldSetText
不能进行任何花哨的格式化感到不满?在后一种情况下,为了获得更多的格式化功能,您可能需要切换到使用后端类,这样您就可以访问具有更多格式化功能的NotesRichTextItem
类。
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- Lotus notes从浏览器实现自动化
- 利用API响应实现站点自动化
- 使用JavaScript调用Shell脚本以实现自动化
- 如何使用 JavaScript 实现自动化登录到脚本编辑器中的消息窗口
- 有可能在Express中实现路由自动化吗
- 是否可以通过javascript实现嵌入式flash登录的自动化
- 我们如何使用CasperJS实现基于浏览器的下载窗口的自动化
- 使用javascript(dojo或jquery)在iframe中实现Web自动化-点击iframe内的元素
- 使用Node.js实现网页自动化
- 在python下使用javascript实现网页浏览的自动化
- Textarea到XML使用大文件实现流程自动化
- 从Web页面实现Windows UI自动化
- 使用Javascript实现自动化(JXA)来创建列表
- Node.js+Rreact使用Jest实现自动化测试
- 如何使用相同的按钮和类实现网站自动化?区别仅在于HTML的链接