
ジョブの選択と削除
バックグラウンドジョブを明示的に削除する場合は、以下のように処理します。
BP_JOB_SELECT
を使用して削除したいジョブのジョブ名とジョブ番号を取得します。
対話式バックグラウンド処理管理システムで利用できる全基準を使用してジョブを選択することができます。
:
ジョブに対する命名規則をあらかじめ適切に規定しておけば、正しいジョブを容易に選択することが可能になります。
ジョブ番号
ジョブをスケジュールしたユーザの名前
開始時刻ウインドウ
/
開始時刻スケジュールなしの指定
先行ジョブに依存した開始
イベントおよびイベント引数に依存した開始
ジョブステータス
(
準備、スケジュール済、処理待ち、実行中、終了、中止
)
。
を使用してジョブを削除してください。ジョブが実行された場合、ジョブログも削除されます。

ジョブはそれ自身を削除することはできません。また、現在実行中のジョブも削除できません。ただし、正常に完了した時点で自動的に削除させることができます。
JOB_OPEN
の
DELANFREP
パラメータを参照してください。
サンプルプログラム
:
バックグラウンドジョブの削除
*
データ宣言
: BP_JOB_SELECT
*
DATA JSELECT LIKE BTCSELECT.
DATA SEL_JOBLIST LIKE TBTCJOB OCCURS 100 WITH HEADER LINE.
*
サンプル選択基準
*
JSELECT-JOBNAME = '
ジョブの名称
'.
JSELECT-USERNAME = SY-UNAME.
CALL FUNCTION 'BP_JOB_SELECT'
EXPORTING
JOBSELECT_DIALOG = BTC_NO
JOBSEL_PARAM_IN = JSELECT
IMPORTING
JOBSEL_PARAM_OUT = JSELECT
TABLES
JOBSELECT_JOBLIST = SEL_JOBLIST
EXCEPTIONS NO_JOBS_FOUND = 1
SELECTION_CANCELED = 2
OTHERS = 99.
*
*
この例ではプログラムは内部テーブル
SEL_JOBLIST
をループし、
*
選択されたジョブを削除します。
*
*
代案
: BP_JOBLIST_PROCESSOR
を使用して
*
削除対象ジョブをユーザが選択できるようにします。たとえば、
サンプルプログラム
: JOB_CLOSE
を使用した先行ジョブの終了待機を参照してください。
*
LOOP AT SEL_JOBLIST.
CALL FUNCTION 'BP_JOB_DELETE'
EXPORTING
FORCEDMODE = 'X'
JOBNAME = SEL_JOBLIST-JOBNAME
JOBCOUNT = SEL_JOBLIST-JOBCOUNT
EXCEPTIONS
OTHERS = 99.
ENDLOOP.*
*
* FORCEDMODE
はジョブの他の部分がジョブを保持している
* TemSe
ファシリティから削除できない場合にもジョブヘッダを
*
削除します。
* FORCEDMODE
を使用してもシステム内で障害は
*
発生しません。バックグラウンドジョブに影響を与える
TemSe
の障害は
*
どのようなものでも
TemSe
システム内で直接解決することができるので、
*
ジョブヘッダは必要ありません。