
汎用モジュール
SHOW_JOBSTATE を使用してジョブのステータスを調べることができます。この汎用モジュールにジョブ名とジョブ番号を指定してください。ジョブの 6 つのステータスのうちのいずれかが返されます。次の例では、
BP_FIND_JOBS_WITH_PROGRAM を使用して特定レポートあるいは外部プログラムを含むジョブを検索しています。次に SHOW_JOBSTATE を使用して検索された各ジョブのステータスをチェックします。 IF キーワードを使用して、プログラムは汎用モジュールにより返されるステータスを評価し、ステータスを表すアイコンを使用して一覧表示します。REPORT EXAMPLE.
INCLUDE LBTCHDEF.“
“
非対話式モードで、プログラム名、バリアント名、あるいはその両方を使用して検索できます。
“
これらの指定すべてを省略すると、
PROGRAM_SPECIFICATION_MISSING
になります。
DIALOG = BTC_NO
“ BTC_NO:
非対話式モード。コールには最低でも
1
つのプログラム名を指定する必要があります。
“ BTC_YES:
ユーザがプログラム名とバリアントを入力します。
TABLES
JOBLIST = SEL_JOBLIST
“
検索された任意のジョブを含む書式
TBTCJOB
の
“
内部テーブル
EXCEPTIONS
NO_JOBS_FOUND = 1
PROGRAM_SPECIFICATION_MISSING = 2
INVALID_DIALOG_TYPE = 3
JOB_FIND_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
<
エラー処理
>
ENDIF.
*
一覧ヘッダ行の書込み
WRITE: / '
ステータス
, 9 '
ジョブ名
, 25 '
ジョブ番号
.
ULINE AT /1(85).
* BP_FIND_JOBS_WITH_PROGRAM
で検出されたジョブ中のループ
LOOP AT SEL_JOBLIST.
CALL FUNCTION 'SHOW_JOBSTATE'
EXPORTING
JOBCOUNT = SEL_JOBLIST-JOBCOUNT
JOBNAME = SEL_JOBLIST-JOBNAME
“
チェック対象ジョブの特定。名称とカウントの両方が必要。
IMPORTING
“
候補ステータスジョブのステータスは値
‘X’
に設定されます。
ABORTED = ABORTED
“
ジョブ異常終了
FINISHED = FINISHED
“
ジョブ正常終了
PRELIMINARY = PRELIMINARY
“
ジョブ開始不可
:
ジョブはスケジュール済ですが
“
実行に対してリリースされていないか、開始条件を付けずに
“
ジョブがスケジュールされています。
READY = READY
“
ジョブはスケジュール済、リリース済、開始条件の指定済
“
ですが、ジョブはまだ開始されていません。
RUNNING = RUNNING
“
ジョブ実行中
SCHEDULED = SCHEDULED
“
ジョブはスケジュール済、リリース済で、開始条件
“
が整うまで待機中です。
EXCEPTIONS
JOBCOUNT_MISSING = 1
JOBNAME_MISSING = 2
JOB_NOTEX = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
<
エラー処理
>
ENDIF.
* SHOW_JOBSTATE
によりチェックされたジョブのステータスを判定。適切なステータスアイコンの割当と、一覧への書込み
IF ABORTED = 'X'.
WRITE: /3 ICON_FAILURE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF FINISHED = 'X'.
WRITE: /3 ICON_CHECKED AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF PRELIMINARY = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF READY = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF RUNNING = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ELSEIF SCHEDULED = 'X'.
WRITE: /3 ICON_INCOMPLETE AS ICON,
AT 9 SEL_JOBLIST-JOBNAME,
AT 25 SEL_JOBLIST-JOBCOUNT.
ENDIF.
ENDLOOP.