0

早い段階で、テーマ「Groovy: Lotus Notes から特定の拡張子で添付ファイルを自動保存」を投稿しましたが、解決策が見つからなかったため、別の vbscript を見つけて独自に作成しました。それは機能しますが、問題があります。スクリプトの自動保存が添付された後、文字が削除されません。エラーが表示されます:「すべてのオブジェクトは同じセッションからのものでなければなりません」。どんなアイデアにも感謝します。

Dim Session 
Dim Maildb 
Dim vw 
Dim doc 
Dim Item 
Dim x 
Set Session = CreateObject("Lotus.NotesSession") 
Call Session.Initialize("password") 
Set Maildb = Session.GetDatabase("SERVER", "mail.nsf") 
If Not Maildb.IsOpen = True Then 
Call Maildb.Open 
End If 
Set vw = Maildb.GetView("($inbox)") 
With vw 
x = 0 
ReDim LmailID(x) 
ReDim HasAttach(x) 
Set doc = .GetFirstDocument 
Set Item = doc.GetFirstItem("Body") 
Do 
If Item.Type = RICHTEXT Then  -  here i try take unread message and it doesnt work
fileNames = Session.Evaluate("@AttachmentNames", doc) 
For Each Filename In fileNames 
If Filename <> "" Then 
If Right(Filename, 3) = "bch" Then
Call doc.Save( False, True, True )
Set NotesEmbeddedObject = doc.GetAttachment(Filename) 
NotesEmbeddedObject.ExtractFile ("C:\" + Filename) 
Set reply = doc.CreateReplyMessage( False )
Call reply.replaceItemValue("Subject", "DONE" + subject)
Call reply.Send( False )
Set nextDoc = .GetNextDocument(doc)
Set doc = nextDoc
End If 
End If 
Next 
End If
x = x + 1 
ReDim Preserve LmailID(x) 
Set doc = .GetNextDocument(doc) 
Wscript.Sleep 500 
Loop Until doc Is Nothing 
End With 
Set Session = Nothing 
Set vw = Nothing 
Set doc = Nothing 
Set Item = Nothing 
Set Maildb = Nothing 
4

1 に答える 1

1

いくつかのヒント: 使用しているループ内で.GetFirstDocument. それをループの外側(外側With vw)に移動してから、ループ.GetNextDocument(doc)の内側で使用します(すでに行っているように)。

また、呼び出してから、削除したばかりのインスタンスをdoc.Remove(True)参照して次のドキュメントを取得しようとしています。docこれを修正するには、次のような別のドキュメント インスタンスを追加し、インスタンスnextDocを削除する間、これを一時ドキュメントとして使用しdocます。

ドキュメントを削除する前に:

Set nextDoc = .GetNextDocument(doc)

ドキュメントを削除した後:

Set doc = nextDoc
于 2012-12-12T18:55:11.257 に答える