ジョブの選択と削除 

バックグラウンドジョブを明示的に削除する場合は、以下のように処理します。

対話式バックグラウンド処理管理システムで利用できる全基準を使用してジョブを選択することができます。

ジョブはそれ自身を削除することはできません。また、現在実行中のジョブも削除できません。ただし、正常に完了した時点で自動的に削除させることができます。 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 システム内で直接解決することができるので、
* ジョブヘッダは必要ありません。