SM36是設置SAP周期性運行的事務碼
來測試一下,首先先寫一個程序:
我有一個zzp_people2的數據表.
DATA : INT1 TYPE I. DATA : ITAB LIKE ZZP_PEOPLE2. CALL FUNCTION 'QF05_RANDOM_INTEGER' EXPORTING RAN_INT_MAX = 9999999 RAN_INT_MIN = 1000000 IMPORTING RAN_INT = INT1 EXCEPTIONS INVALID_INPUT = 1 OTHERS = 2. ITAB-ZID = INT1. ITAB-ZNAME = INT1 + 1. ITAB-ZPASSWORD = INT1 + 2. INSERT ZZP_PEOPLE2 FROM ITAB.
這段程序的作用,就是產生隨機數,然后插入到表里面。
接下來是用SM36了:
回車
然后
回退
可以“立刻”
也可以“日期/時間” 填寫“預定的啟動”->“日期”->“時間”
去sm37看看:
這樣,就會在后台運行了~~~可以測試一下。
*&---------------------------------------------------------------------* *& Report Z_BARRY_SET_JOB * *& * *&---------------------------------------------------------------------* *& 設置后台Job,更多功能請看函數組:BTCH * *&---------------------------------------------------------------------* REPORT z_barry_set_job . 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.