XPage で、次のコードを使用してドキュメントの MIME エンティティからテキストを読み込みます。
var dcl:NotesDocumentCollection=database.getView("myView").getAllDocumentsByKey("key",true);
var doc:NotesDocument=dcl.getFirstDocument();
var entity:NotesMIMEEntity=doc.getMIMEEntity("data");
var text=entity.getContentAsText();
これはエラーなしで機能します。データベースをsessionAsSigner.getCurrentDatabase()で置き換えると、 MIME エンティティが nullであることを示すエラーが発生します(テスト環境 = サーバー: Notes 8.5.3 | クライアント: Firefox 15)。コードを手動でデバッグして得た追加情報を次に示します。
- sessionAsSigner は有効な NotesSession オブジェクトです
- doc は、私にとって読み取り可能な有効な NotesDocument です。つまり、getItemValue メソッドを使用してもエラーは発生しません。
- doc.hasItem("data") が true、つまり MIME エンティティ フィールドが存在する
ただし、doc.getMIMEEntity("data") を使用すると、空でなくても null が返されます。この問題は、作成者フィールドと読者フィールドのないドキュメントでも発生します。sessionAsSignerを使用すると、ドキュメントを開いてアイテムの値を取得できるのに、MIME エンティティを読み取ることができないのはなぜですか?