0

ロータス エージェントがアタッチメントを取り外します。実際、" xxx@aol.fr "からのメールを除いて、ほぼ問題なく動作します。

Set rtitem = curdoc.GetFirstItem("Body")
If Not rtitem Is Nothing Then
    If Isarray( rtitem.EmbeddedObjects ) Then 
        Forall o In rtitem.EmbeddedObjects
            If ( o.Type = EMBED_ATTACHMENT ) Then 
                fullpath = path + o.source
                Call o.ExtractFile(fullpath) 
            End If
        End Forall
    End If
End If

このエージェントをデバッグしたところ、テスト「Isarray(ritem.EmbeddedObjects)」がパスしなかったことがわかりました。これは、ritem.EmbeddedObjects が配列ではないことを意味しますが、メールには添付ファイルの準備ができています!

どうしてか分かりません ?

私はグーグルでたくさん検索しましたが、ritem has embeddedObjects をチェックする方法と同様の問題を見つけましたが、オブジェクトにはオブジェクトがありません

そして、私はここでこれのヒントを試しました

    'test
    Dim vEval As Variant
    Dim embObj As NotesEmbeddedObject
    vEval = Evaluate("@AttachmentNames", curdoc)
    ForAll v In vEval
        LogInfo("detacheFichier() v=" & v)
        If v <> "" Then
            Set embObj = curdoc.GetAttachment(v)
            Call embObj.ExtractFile(pathDir + pathFile & v)
        End If
    End ForAll

それはうまくいきます。私はとても幸せですが、最後のコード: 前のコードが機能しない理由がわかりません

よろしくお願いします

4

2 に答える 2

0

EmbeddedObjectsプロパティのヘルプ ドキュメントには次のように記載されています。

リッチ テキスト アイテムに埋め込みオブジェクトが含まれていない場合は、空を返します。

Isarray(rtitem.EmbeddedObjects)使用するのではなくIsEmpty(rtitem.EmbeddedObjects)

于 2013-06-07T12:51:43.710 に答える