「最後まできたら終了」で FileMaker がエラーを返すのはなぜ?

FileMaker には、下記のレコード移動、ポータル行の移動のスクリプトステップがあって、どちらにも「最後まできたら終了」というオプションがある。

  • レコード/検索条件/ページへ移動 [ 次の; 最後まできたら終了 ]
  • ポータル内の行へ移動 [ 次の; 最後まできたら終了 ]

例えば、最初のレコードに移動してから、レコードを移動しながら、対象レコードの最後まで処理を繰り返すという場合に、このオプションは便利です。実際、とてもよく使います。

ただ、ちょっと不思議なのは、このオプションをオンにしている場合でも、最後のレコードやポータル行で処理を終えようとしている時にエラーコード 101(「レコードが見つかりません」の意味)が返されてしまうこと。

このオプションが動作した時には常にエラーを返すという仕様なのであれば、エラー処理がオフの時には、FileMaker標準のエラーダイアログが表示されなければおかしいが、そうはならない(何もエラーは通知されない)。つまり、エラー処理のオン/オフに関係なく、内部的にエラーが返るだけという動作になっている。

整合性という点で妙な感じなのだが、個人的にはこのオプションで処理を抜ける時にはエラーを返さないでほしいと思います。開発者が処理を抜けるようにと設定したオプションなので、「意図通り」の動作ですし。

開発中にスクリプトデバッガで処理を追っかけていて、エラー処理を入れていない箇所でエラーが返ってくるのは精神衛生上あまりよろしくありません。