用ABAP实现SM36的设置后台JOB
設置后臺Job,更多功能請看函數組:BTCH?????????????????????????????
DATA: jobcount LIKE tbtcjob-jobcount.
DATA: abort TYPE c,
????? finish TYPE c,
????? prelim TYPE c,
????? ready TYPE c,
????? run TYPE c,
????? sched TYPE c.
PARAMETERS: p_name LIKE tbtcjob-jobname OBLIGATORY DEFAULT 'Z_BARRY_TEST_JOB',
??????????? p_date LIKE sy-datum OBLIGATORY,
??????????? p_time LIKE sy-uzeit OBLIGATORY.
SELECT-OPTIONS s_rept FOR sy-repid NO INTERVALS OBLIGATORY .
START-OF-SELECTION.
CALL FUNCTION 'JOB_OPEN' "定義一個Job
??? EXPORTING
????? jobname????????? = p_name
??? IMPORTING
????? jobcount???????? = jobcount "Job id
??? EXCEPTIONS
????? cant_create_job = 1
????? invalid_job_data = 2
????? jobname_missing = 3
????? OTHERS?????????? = 4.
IF sy-subrc <> 0.
??? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
??????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT s_rept .
??? CALL FUNCTION 'JOB_SUBMIT' "Scheduled 這個Job
????? EXPORTING
??????? authcknam?????????????? = sy-uname
??????? jobcount??????????????? = jobcount
??????? jobname???????????????? = p_name
??????? report????????????????? = s_rept-low
*??????? VARIANT???????????????? = 'TEST'
????? EXCEPTIONS
??????? bad_priparams?????????? = 1
??????? bad_xpgflags??????????? = 2
??????? invalid_jobdata???????? = 3
??????? jobname_missing???????? = 4
??????? job_notex?????????????? = 5
??????? job_submit_failed?????? = 6
??????? lock_failed???????????? = 7
??????? program_missing???????? = 8
??????? prog_abap_and_extpg_set = 9
??????? OTHERS????????????????? = 10.
??? IF sy-subrc <> 0.
????? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
????????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
??? ENDIF.
ENDLOOP.
CALL FUNCTION 'JOB_CLOSE' "Release 這個Job
??? EXPORTING
????? jobcount???????????? = jobcount
????? jobname????????????? = p_name
????? sdlstrtdt??????????? = p_date
????? sdlstrttm??????????? = p_time
??? EXCEPTIONS
????? cant_start_immediate = 1
????? invalid_startdate??? = 2
????? jobname_missing????? = 3
????? job_close_failed???? = 4
????? job_nosteps????????? = 5
????? job_notex??????????? = 6
????? lock_failed????????? = 7
????? OTHERS?????????????? = 8.
IF sy-subrc <> 0.
??? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
??????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'SHOW_JOBSTATE'
??? EXPORTING
????? jobcount???????? = jobcount
????? jobname????????? = p_name
??? IMPORTING
????? aborted????????? = abort
????? finished???????? = finish
????? preliminary????? = prelim
????? ready??????????? = ready
????? running????????? = run
????? scheduled??????? = sched
??? EXCEPTIONS
????? jobcount_missing = 1
????? jobname_missing = 2
????? job_notex??????? = 3
????? OTHERS?????????? = 4.
IF sy-subrc <> 0.
??? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
??????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
WRITE : / 'Canceled????????????? :' , abort ,
????????? / 'Finished????????????? :' , finish,
????????? / 'Scheduled Temporarily :' , prelim,
????????? / 'Ready for Execution?? :' , ready,
????????? / 'Active??????????????? :' , run,
????????? / 'Scheduling Released?? :' , sched.
總結
以上是生活随笔為你收集整理的用ABAP实现SM36的设置后台JOB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sap 后台作业状态都是什么含义
- 下一篇: 【SAP】PO中“交货已完成”的功能解析