アドオン開発をしている時に、オンラインで実行された場合とバックグラウンドで実行された場合に異なる動作をさせたいケースが割とよくあります。
バックグラウンド実行をしたいということは、時間なのか先行プログラムの終了なのかなどトリガーは様々ではありますが、自動で勝手に処理しておいて欲しいということなので、オンラインで自分のタイミングで処理する時とは状況が異なるため、メッセージを変えたり、エラーになった時のアラートの出し方だったりを変えるために何かしらの処理を行うということをしたりします。
プログラムとしても、どう実行されたのかを判定する必要がありますが、その時に使えるのがシステム変数である『SY-BATCH』です。
この変数の値がブランクの場合はオンライン実行、バックグラウンド実行の場合は『X』が設定されています。
つまり、SY-BATCHが初期値かどうかで判定をすればオンライン実行かバックグラウンド実行かで処理を分ける事が出来るということです。
コメント