「最後まできたら終了」で FileMaker がエラーを返すのはなぜ?
FileMaker には、下記のレコード移動、ポータル行の移動のスクリプトステップがあって、どちらにも「最後まできたら終了」というオプションがある。
- レコード/検索条件/ページへ移動 [ 次の; 最後まできたら終了 ]
- ポータル内の行へ移動 [ 次の; 最後まできたら終了 ]
例えば、最初のレコードに移動してから、レコードを移動しながら、対象レコードの最後まで処理を繰り返すという場合に、このオプションは便利です。実際、とてもよく使います。
ただ、ちょっと不思議なのは、このオプションをオンにしている場合でも、最後のレコードやポータル行で処理を終えようとしている時にエラーコード 101(「レコードが見つかりません」の意味)が返されてしまうこと。
このオプションが動作した時には常にエラーを返すという仕様なのであれば、エラー処理がオフの時には、FileMaker標準のエラーダイアログが表示されなければおかしいが、そうはならない(何もエラーは通知されない)。つまり、エラー処理のオン/オフに関係なく、内部的にエラーが返るだけという動作になっている。
整合性という点で妙な感じなのだが、個人的にはこのオプションで処理を抜ける時にはエラーを返さないでほしいと思います。開発者が処理を抜けるようにと設定したオプションなので、「意図通り」の動作ですし。
開発中にスクリプトデバッガで処理を追っかけていて、エラー処理を入れていない箇所でエラーが返ってくるのは精神衛生上あまりよろしくありません。