当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年8月25日月曜日

GetEmnbeddedObjectメソッドでのトラブル・・・

筆者がGetEmnbeddedObjectメソッドを利用していて遭遇したトラブルとその回避策について書いてみよう。

http://guylocke.blogspot.com/2008/05/blog-post_22.html
で書いたが、リッチテキスト内の添付ファイルを取得する際、
NotesRichTextItemクラスのGetEmbeddedObjectメソッドを利用した。
通常であれば、これで問題なく取得できるのだが・・・

なんとGetEmbeddedObjectで添付ファイルを取得できないということが発生したのだ。
その文書を眺めてみると、どうみてもそのファイルは存在している。
ためしに添付ファイルをダブルクリックして、起動してみるときちんと起動する。
で、そのファイル名をクリップボードにコピーして、ダイレクトに指定してみるも、やはり取得できない。
理由が全く分からない。

理由が分からなくても回避しなくてはならない。
ということで、以下のように回避した。

---------------------------------------------------------------------------------------
変更前
anames = "添付ファイルの内部ファイル名"
Set afile = ritem.GetEmbeddedObject( anames )

変更後
anames = "添付ファイルの内部ファイル名"
varData = ritem.EmbeddedObjects
Forall xx in varData
If xx.Name = anames Then
Set afile = xx
End If
End Forall


EmbeddedObjectsプロパティを利用することで、そのリッチテキスト内の全添付ファイルを取得するのである。
後は、指定したファイルかどうかを確認していくのである。
なぜか、このやり方では、添付ファイルが取得できたのである。

さすが、Lotus Notes。奥が深い・・・


Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: