
このセクションでは、以下を開始する際に使用する特別な方式について記述します。
サービスプログラムおよびデーモンの開始
R/3
バックグラウンド処理システムを使用して UNIX システム内のデーモンのようなサービスプログラムを開始することができます。これらのプログラムは、開始されると常駐するように設計されています。これらは、通常のプログラムのように、終了すると
R/3 バックグラウンド制御プログラムに戻るようなことはありません。サービスプログラムを開始する場合には、ジョブのスケジュール時に、以下の制御フラグ設定を使用する必要があります。
終了
: 待機なし : 外部プログラムは即座に終了しないので、 Wait のデフォルト設定を変更する必要があります。変更すると、 R/3 制御プログラムは外部プログラムを開始すると同時に終了するようになります。それでもなお、制御プログラムが外部プログラムを開始するまでは、制御プログラムからのトレースデータを入手することができます。
プログラムのカスケード型開始
バックグラウンド処理システムが開始する外部プログラムが、さらに
1 つまたは複数の外部プログラムを開始することがよくあります。プログラムのカスケードには問題があります。最初の外部プログラムから有効なフィードバックが得られないことが多いようです。外部プログラムがその他のプログラムの完了を待たずに終了する場合、ジョブログ内のリターンコードは、対象システムで行われたそれ以降の処理に関して、有効な情報を全く提供しません。この問題の回避方法は
2 つあります。この場合、バックグラウンド処理システムでは、開始予定の各
" カスケード " プログラムについて、個別にジョブをスケジュールすることができます。最初のプログラムがイベントを発生させると、バックグラウンド処理システムはそのイベントを待機しているジョブそれぞれを開始します。利点
: ジョブログの各外部プログラムからリターンコード、出力、トレースデータを受け取ることができます。例
: R/3 システムへのデータ転送の際、転送プログラムの終了に備えて待機しているスクリプトまたは小さな制御プログラムから、各外部データ転送プログラムを起動することができます。転送プログラムの終了に際し、制御プログラムはリターンコードをチェックし、
R/3 プログラム SAPEVT を使用して R/3 に対して適当なイベントを発行します。 R/3 バックグラウンド処理システムに、そのイベントを使用して転送されたデータを処理する ABAP プログラムを開始させるようにスケジュールすることができます。