LotusScript - 按主题查找文档

问题描述

您好,我编写了此代码(从我在网上找到的站点复制)以在我的 Lotus Notes 收件箱视图中查找电子邮件并保存附件。 我不能做的是找到我需要的主题的文档。该集合未填充。我哪里错了?谢谢。

Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesdocumentCollection
Dim doc As Notesdocument
Dim rtitem As Variant
Dim filename As Variant

Const DIR_NOT_FOUND = 76
Dim i As Integer
Dim strname As String
Dim view As NotesView
Dim myArray (1 To 2) As String
myArray (1) = "DataToBeSaved"
myArray (2) = "DataToBeSaved"

Set db = sess.currentdatabase
Set view = db.GetView("($InBox)" )

Set coll = view.GetAllDocumentsByKey(myArray,False)
Set doc = coll.GetFirstDocument()

While Not doc Is nothing
    Set rtitem = doc.GetFirstItem("Body")
    If Not rtitem Is nothing Then
        If ( rtitem.Type = RICHTEXT ) Then
            If Isempty(rtitem.Embeddedobjects) = False Then
                Forall o In rtitem.Embeddedobjects
                    If ( o.Type = EMbed_ATTACHMENT ) Then
                        filename = Evaluate("@AttachmentNames",doc)
                        'For i = 0 To Ubound(filename)
                        If (filename(i)="query nas.txt") Then
                            strname = Replace(filename(i),"/","-")
                            On Error DIR_NOT_FOUND Resume Next
                            Call o.ExtractFile( "\\rflenas1.rfle.roto-frank.com\RFIB\LOTUSPROVA\" & strname )
                        End If                          
                        'Next
                        doc.fieldname = ""
                        Call doc.Save( True,True )
                    End If
                End Forall
            End If
        End If
    End If
    Set doc = coll.getnextdocument(doc)
Wend

结束子

解决方法

您需要将您的逻辑包装在这样的循环中。它将循环您收件箱中的所有文档,如果 subejct 匹配,它将执行您想放入“对文档进行处理”区域中的任何内容。

set doc = view.getfirstdocument
while not doc is nothing
    if doc.subject(0) = "THE SUBJECT I WANT TO FIND" then
    'Do something with the doc
end if
    set doc = view.getnextdocument(doc)
Wend

您将不再需要 coll