!--a11y-->
ユーザ固有プログラムのタスクとしての挿入 
トランザクションを変更することなく、トランザクションを直接タスク計画に含めることができます。
ユーザが固有のプログラムを定期的に実行している場合、プログラムを拡張すると、フロー定義 ( ワークフロー) でもこのプログラムが使用可能になるため、モニタで処理ステータスを確認することができるようになります。
ワークリストを使用するプログラムの場合は、ジョブ監視に対するプログラミングガイドラインとフロー定義が一致している必要があります。この場合、プログラムを更に拡張する必要があります。
ユーザ固有プログラムのモニタへの接続
標準装備のプログラム CUSTOMER_REPORT を利用することができます。これにより、最も簡単なモニタへの接続 ( ワークフロー接続なしの接続) を可能にする 2 つの汎用モジュールを呼び出す方法が示されます。
2 つのインクルード SCHEDMAN_INIT と SCHEDMAN_CLOSE をプログラムの中で統合します。プログラムがジョブ監視に接続されます。
フロー定義に対するユーザ固有プログラムの利用
フロー定義でもユーザ固有プログラムを利用したい場合は、インクルード RKASMAWF を選択画面で統合する必要があります。
処理の開始時に、以下のコーディングを、インクルード SCHEDMAN_INIT の代わりに インストールします。
data: gs_key like schedman_key.
data: ls_detail like schedman_detail_user.
data: ls_appl like schedman_customer.
data: ld_dummy(20) value 'ABCDEFGHIJKL'.
constants: customer_appl like smmain-application value 'CUSTOMER'
ls_detail-application = customer_appl.
ls_detail-repid = sy-repid.
* ls_detail-testflag = true. "Decide if testrun or not
ls_appl-customer_field = ld_dummy.
CALL FUNCTION 'KPEP_MONI_INIT_RECORD'
EXPORTING
LS_DETAIL = ls_detail
* LS_WITEM =
LS_APPL = ls_appl
* LD_WORKLIST_FLAG = ' '
IMPORTING
LS_KEY = gs_key.
* TABLES
* LT_SELKRIT =
* LT_PARAM =
構造 SCHEDMAN_CUSTOMER では、実行時間にユーザが値を書き込む、ユーザ独自の項目を定義することができます。
処理の終了時に、以下のコーディングを、インクルード SCHEDMAN_CLOSE の代わりに インストールします。
data: ld_aplstat like smmain-aplstat.
data: LS_SCMA_EVENT LIKE SCMA_EVENT.
constants: c_status_ok value '0'.
constants: c_status_undefined value '2'.
constants: c_status_error value '4'.
constants: c_status_aborted value 'A'.
include schedman_events.
*.decide the status you want to send
ld_aplstat = c_status_ok.
* ld_aplstat = c_status_undefined.
* ld_aplstat = c_status_error.
* ld_aplstat = c_status_aborted.
*.If the report ended with error -> stop whole workflow. Otherwise
*.start the next job
if ld_aplstat = '4' or ld_aplstat = 'A'.
ls_scma_event-wf_event = cs_wf_events-error.
else.
ls_scma_event-wf_event = cs_wf_events-finished.
endif.
*.the variables wf_witem and wf_okey
*.are from include RKASMAWF and are filled AUTOMATICALLY
*.fill them into strcuture ls_scma_event
ls_scma_event-WF_WITEM = wf_witem.
ls_scma_event-WF_OKEY = wf_okey.
CALL FUNCTION 'KPEP_MONI_CLOSE_RECORD'
EXPORTING
LS_KEY = gs_key.
* LS_MESSAGE =
* LD_OBJECTS =
* LS_EXT =
* LS_RL =
LS_SCMA_EVENT = ls_scma_event
* TABLES
* LT_SPOOL =
CHANGING
LD_APLSTAT = ld_aplstat
EXCEPTIONS
NO_ID_GIVEN = 1
OTHERS = 2.

フロー定義に含めるプログラムに関しては、次の点に注意してください。
キ クロスアプリケーションプログラムの場合は、アプリケーションとともにすでに保管されているプログラムをコピーしてから、新規のプログラムを新規アプリケーションとともにテーブル SCMAPROG に保管する必要があります。
スケジュールマネージャで、得意先プログラムとしてプログラム名を入力します。追加情報は、ユーザ固有プログラムのタスクとしての挿入を参照してください。
これらの設定を使うと、ユーザ固有のプログラムをフロー定義に含めて、モニタで結果を確認することができます。