编写此函数是为了创建Lotus电子邮件,填充它,将其保存到“草稿”部分,然后打开它以供用户编辑。但是,它有两个问题:
这两个问题都是不定期发生的。如果有模式,我还没有看到它。我可以解决这些问题吗?有关减少错误的其他任何提示吗?
(注意:我正在遗漏错误处理程序)
Dim NtSession As New NotesSession
Dim NtDB As New NotesDatabase
Dim NtWkSp As Object
Dim NtDoc As New NotesDocument
Dim NtObj As New NotesEmbeddedObject
Dim NtBodyRT As New NotesRichTextItem
NtSession.Initialize
'==========================================================================
'Open the mail server
Set NtDB = NtSession.GetDatabase( _
NtSession.GetEnvironmentString("MailServer", True), _
NtSession.GetEnvironmentString("MailFile", True), _
True)
'==========================================================================
'Fill in basic email fields
Set NtDoc = NtDB.CreateDocument
NtDoc.AppendItemValue "Form", "Memo"
Set NtBodyRT = NtDoc.CreateRichTextItem("Body")
AddFields
'=========================================================================
' Save it to the drafts folder
DoEvents
NtDoc.SaveMessageOnSend = True
NtDoc.SignOnSend = True
NtDoc.Save False, False, True
Set NtWkSp = CreateObject("Notes.NotesUIWorkspace")
DoEvents
NtWkSp.OpenDatabase _
NtSession.GetEnvironmentString("MailServer", True), _
NtSession.GetEnvironmentString("MailFile", True), _
"($Drafts)"
DoEvents
NtWkSp.VIEWREFRESH
NtWkSp.EDITDOCUMENT
Set NtWkSp = Nothing
Set NtSession = Nothing
答案 0 :(得分:0)
在NtWkSp.VIEWREFRESH
来电之后,您需要确保视图选择在您刚刚添加的草稿上,否则,当您致电NtWkSp.EDITDOCUMENT
时,它将始终打开第一个草稿,因为那是查看它指向。
除此之外,对于Lotus Objects类使用早期绑定和Lotus自动化类的后期绑定似乎很奇怪,但是可能有目的吗?
Notes错误发生在哪一行?
答案 1 :(得分:0)
NotesUIWorkspace EditDocument方法可以选择性地传递Notes文档的句柄,并以编辑模式打开该文档。所以,你可以使用类似的东西:
...
NtWkSP.EditDocument (true, NtDoc)
答案 2 :(得分:0)
这两组类是不相关的,并且使用不同的API和不同的运行时上下文 - 您的NtDoc对象将不存在于工作空间上下文中。尽管我讨厌这样做,但我建议在Notes Automation类中完成所有工作。无论如何,您必须在Notes命名空间中打开NotesSession,以确保您拥有正确的文档(无论是使用NotesDatabase.GetDocumentByUNID,NotesDatabase.GetDocumentByID还是NotesView.GetDocumentByKey)。显然有两个会话,两个数据库,两个文档等等,都指向同一组对象的不同句柄会变得混乱,实际上可能会导致冲突。
(为了回答之前的问题,Lotus Domino Objects是一个受支持的COM接口,它支持早期绑定,但只能访问后端; Notes Automation Objects接口是一个早期且不推荐使用的OLE接口,不支持早期坦率地说,具有约束力,并且有点崩溃。)