アドオン開発をする場合、選択画面に複数件および範囲指定するための入力項目を用意する事があります。SELECT-OPTIONS命令で作成する入力ボックスの事ですね。
単一指定も出来ますし、使い勝手が良いので、どちらでも良い場合はこちらで定義する事が多いのではないかと思います。この入力項目の場合に1つ注意しておく必要があるのが、指定件数が一定以上に増えると実行時エラー(ショートダンプ)になってしまう事がある事です。
SELECT-OPTIONS命令で画面を定義した場合、内部的にはヘッダー行付きのレンジ型の内部テーブルが作られます。画面で入力した値をこの内部テーブルに受け渡してプログラム内で使うという仕組みです。
基本的にはただそれだけなので、普通のレンジテーブルと同じように扱えば良いのですが、レンジテーブルの場合、おそらく持っている情報が多いのと、裏で条件式を持っているために、1500~2000件以上になるとSQL発行時にエラーが発生してしまう事があります。
環境によって異なってくるので、一概に何件とは言えないのですが、経験上これぐらいの件数を超えるとエラーになる可能性を頭に入れておくべきかと思っています。
結果として返ってくる件数ではなく、条件指定する件数、つまり内部テーブルの件数でエラーになるので、範囲指定なり除外指定なり他の条件指定が出来ないかを検討しましょう。もしくは、どうしても難しい場合は、1000件ずつ分けてデータを取得するようにするなどしておく事が無難だと思います。
ちなみに、アドオンで作成したものだけではなく、当然標準機能も裏ではABAPが書かれているので、同様のエラーが起きるので注意しましょう。
コメント