SM35執行一個后台作業后,想及時停止,
運行SM37后,點擊ctr + F1停止活動的作業,系統根本就沒反應。
解決方法:
第一步:SM50,
找到,Ty.列為BGD的(Background),然后再找到你剛運行的那個后台Job的行,選中;然后在菜單點擊:Process---Cancel with core. 即可。
第二步:SM37查看Background Job,應該為“取消”狀態。
第三步:SM35,選中Session Name,點擊小綠旗release即可。
http://blog.sina.com.cn/s/blog_76c57b480100rumm.html
How to define event background job in SAP?
以下為操作中會用到Function和T-code:
Function: BP_EVENT_RAISE
T-code:SM62、SM36、SM37
1. 首先來定義一個Event ID。
a.執行SM62
有關Event定義沒有嚴格的要求,只要能辨別出是你的,用來觸發那個Job就行了。

2. 為被觸發程式(Program2)定義Background Job。
執行SM36(這里記錄的是關鍵步驟,有疑問請復習一下SM36的使用。)
Start condition > After event >
通過紅色標記選項處先出事先定義的Event,完成后保存。

3. 在觸發程式(Program1)中調用激活觸發事件的Function。
"以下是在程式開始定義的一個變量,也可以是一個常量。 PARAMETERS: P_EVENT(30) TYPE C OBLIGATORY DEFAULT 'Evt_TEST'. "以下是在程式最后定義的一個Group,也可以單一調用。 FORM AUTO_CREAT_WO_BY_GROUP. DATA: WRK_TIMES(2) TYPE C . DATA: WRK_EVENT(31) TYPE C . DO P_GROUP TIMES. WRK_TIMES = WRK_TIMES + 1. CONCATENATE P_EVENT WRK_TIMES INTO WRK_EVENT . CALL FUNCTION 'BP_EVENT_RAISE' EXPORTING EVENTID = WRK_EVENT OTHERS = 1 . ENDDO. ENDFORM.
* 操作步驟3,保證程式中定義常量或者變量中已定義的或者將要定義的Event值要和你通過SM62定義的Event名稱要一致
JOB_SUBMIT 示例程序:設置后台Job,更多功能請看函數組:BTCH
1 *&---------------------------------------------------------------------* 2 *& Report Z_BARRY_SET_JOB * 3 *& * 4 *&---------------------------------------------------------------------* 5 *& 設置后台Job,更多功能請看函數組:BTCH * 6 *&---------------------------------------------------------------------* 7 8 REPORT z_barry_set_job . 9 10 DATA: jobcount LIKE tbtcjob-jobcount. 11 DATA: abort TYPE c, 12 finish TYPE c, 13 prelim TYPE c, 14 ready TYPE c, 15 run TYPE c, 16 sched TYPE c. 17 18 PARAMETERS: p_name LIKE tbtcjob-jobname OBLIGATORY DEFAULT 'Z_BARRY_TEST_JOB', 19 p_date LIKE sy-datum OBLIGATORY, 20 p_time LIKE sy-uzeit OBLIGATORY. 21 SELECT-OPTIONS s_rept FOR sy-repid NO INTERVALS OBLIGATORY . 22 23 START-OF-SELECTION. 24 CALL FUNCTION 'JOB_OPEN' "定義一個Job 25 EXPORTING 26 jobname = p_name 27 IMPORTING 28 jobcount = jobcount "Job id 29 EXCEPTIONS 30 cant_create_job = 1 31 invalid_job_data = 2 32 jobname_missing = 3 33 OTHERS = 4. 34 IF sy-subrc <> 0. 35 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 36 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 37 ENDIF. 38 39 LOOP AT s_rept . 40 CALL FUNCTION 'JOB_SUBMIT' "Scheduled 這個Job 41 EXPORTING 42 authcknam = sy-uname 43 jobcount = jobcount 44 jobname = p_name 45 report = s_rept-low 46 * VARIANT = 'TEST' 47 EXCEPTIONS 48 bad_priparams = 1 49 bad_xpgflags = 2 50 invalid_jobdata = 3 51 jobname_missing = 4 52 job_notex = 5 53 job_submit_failed = 6 54 lock_failed = 7 55 program_missing = 8 56 prog_abap_and_extpg_set = 9 57 OTHERS = 10. 58 IF sy-subrc <> 0. 59 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 60 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 61 ENDIF. 62 ENDLOOP. 63 64 CALL FUNCTION 'JOB_CLOSE' "Release 這個Job 65 EXPORTING 66 jobcount = jobcount 67 jobname = p_name 68 sdlstrtdt = p_date 69 sdlstrttm = p_time 70 EXCEPTIONS 71 cant_start_immediate = 1 72 invalid_startdate = 2 73 jobname_missing = 3 74 job_close_failed = 4 75 job_nosteps = 5 76 job_notex = 6 77 lock_failed = 7 78 OTHERS = 8. 79 IF sy-subrc <> 0. 80 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 81 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 82 ENDIF. 83 84 CALL FUNCTION 'SHOW_JOBSTATE' 85 EXPORTING 86 jobcount = jobcount 87 jobname = p_name 88 IMPORTING 89 aborted = abort 90 finished = finish 91 preliminary = prelim 92 ready = ready 93 running = run 94 scheduled = sched 95 EXCEPTIONS 96 jobcount_missing = 1 97 jobname_missing = 2 98 job_notex = 3 99 OTHERS = 4. 100 IF sy-subrc <> 0. 101 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno 102 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. 103 ENDIF. 104 105 WRITE : / 'Canceled :' , abort , 106 / 'Finished :' , finish, 107 / 'Scheduled Temporarily :' , prelim, 108 / 'Ready for Execution :' , ready, 109 / 'Active :' , run, 110 / 'Scheduling Released :' , sched.
后台作業信息存儲在透明表TBTCP(批作業步驟概述)中,試圖V_OP中。
函數組BTCH中有很多方法可以處理。
* 取后台作業記錄
SELECT *
INTO TABLE LI_OP
FROM V_OP
WHERE JOBNAME LIKE 'ZPSMAM_RFC%'
AND SDLUNAME = SY-UNAME
AND ( STATUS = 'A' OR STATUS = 'F' ).
PS:台作業狀態(STATUS)信息和參數對照如下:
1 Active STATUS = R
2 就緒 STATUS = Y
3 已調度的 STATUS = P
4 已釋放 STATUS = S
5 已取消 STATUS = A
6 已完成 STATUS = F
7 批准/暫停 STATUS = Z
* 刪除后台記錄
LOOP AT LI_OP INTO LW_OP.
CALL FUNCTION 'BP_JOB_DELETE'
EXPORTING
JOBCOUNT = LW_OP-JOBCOUNT
JOBNAME = LW_OP-JOBNAME
* FORCEDMODE = ' '
* COMMITMODE = 'X'
。。。。。。。。。。。
ENDLOOP.
---------------------
作者:SAP劍客
來源:CSDN
原文:https://blog.csdn.net/zhongguomao/article/details/79091618
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
