fc2ブログ

NotesUIWorkspace.CurrentDocument と Source.document は同じではない

こんなTechnoteが出ているのを見つけました。

Do not use NotesUIWorkspace.CurrentDocument in form events (文書番号 1393712)

QueryOpenや QueryCloseなどのフォームイベントで NotesUIWorkspace.CurrentDocument 使うのは止めましょう、と言うお話です。

確かにフォームイベントではSource と言うNotesUIDocumentクラスのオブジェクトが与えられているのにわざわざ別の方法で取り直す必要が無いのであまりやる人はいない気がするのですが、脊髄反射的にフロントエンドからNotesDocumentクラスのオブジェクトを取得するコードを書いてしまう事がありそうです。

なぜこの方法を避けるべきか?と言う事がこの技術文書に説明されているのですが、以下のような値になるためです。

NotesUIWorkspace.CurrentDocument : 現在フォーカスを保持しているウィンドウの文書
Source.Document : フォームで扱っている文書

通常のテストではうまく動いているように見えてしまうので、うっかり書いていて今のところ動いている、と言うのもあるかもしれません。

思い当たりがある方は是非一度確認してみてください。

コメント

非公開コメント