LotusScript のプログラム実行中に変数やプロパティ等の値の変化を確認したりファンクションを遷移する様子を追うことができる「スクリプトデバッガ」という標準ツールがあります。
上の図の矢印の箇所(ツール - LotusScript のデバッグ)をクリックすると、スクリプトデバッガの有効/無効を切り替えることができます。
スクリプトデバッガを有効にした状態で LotusScript を実行すると、次のような画面(スクリプトデバッガ)が起動します。
このスクリプトデバッガが起動しない現象に遭遇しました。
再現性のある簡単な例を示します。
「A」と「B」の2つのフォームにはそれぞれホットスポットボタンがあり、どちらのボタンにも LotusScript でプログラムが書かれていて、それぞれ次のような挙動をします。
フォーム「A」のホットスポットボタン:フォーム「B」を開く
フォーム「B」のホットスポットボタン:ステータスバーに文字列を表示する
ここでフォーム「B」のホットスポットボタンにある LotusScript をデバッグするため、次の手順で操作する場合、手順5でスクリプトデバッガが起動しません。
- スクリプトデバッガを有効にする
- フォーム「A」を開く
- ホットスポットボタンをクリックする
(スクリプトデバッガが起動する) - スクリプトデバッガの[ステップ イン]ボタンを何度かクリックする
(フォーム「B」が開く) - フォーム「B」のホットスポットボタンをクリックする
(スクリプトデバッガは起動しない)
また、デバッガの起動条件として
- 文書上のボタンのスクリプトの実行中にデバッガを表示させるためにはデバッガはその文書を開く前にONの状態になっていなくてはならない。
- それに加えて、もしオブジェクトがそれ自身のイベント以上のスクリプトを持っている場合、最初のイベントのみがデバッガで表示される。
があり、上で示した再現手順の5番目は、デバッガの起動条件の2つめに該当するらしい。
そして、今回のケースではフォーム「B」のホットスポットボタンでスクリプトデバッガを実行させる回避策があるとのこと。
上の手順の1と2を逆にして(スクリプトデバッガを有効にするタイミングを遅らせて)操作するだけでした。
- フォーム「A」を開く
- スクリプトデバッガを有効にする
- ホットスポットボタンをクリックする
(起動条件1に該当するため、スクリプトデバッガは起動しない) - フォーム「B」のホットスポットボタンをクリックする
(スクリプトデバッガが起動する\( 'ω')/)
オブジェクトをまたいでデバッグしたい場合は、スクリプトデバッガを有効にするタイミングに注意しましょう。
【参考情報】
Debugger does not display during script execution
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0037095




0 件のコメント:
コメントを投稿