在abap程序中,除了调用function job_open,job_submit 和job_close之外还可以通过SM62中定义的事件(event)来触发后台job,具体如下:
1, 定义事件
Tcode:SM62 定义自定义事件
输入事件名,描述,然后保存
2, 定义事件触发的后台job
Tcode:SM36定义事件触发的后台job,输入job名字类型,
点击start condition,在弹出的界面中输入1中创建的event z_trigger_job
然后点击step按钮,输入后台job需要运行的程序及其变式
3, 触发事件
SM62中创建的事件可以通过function BP_EVENT_RAISE 触发,完整代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
REPORT Z_TRIGGER_EVENT . CALL FUNCTION 'BP_EVENT_RAISE' EXPORTING eventid = 'Z_TRIGGER_JOB' "SM62中创建的事件 EXCEPTIONS BAD_EVENTID = 1 EVENTID_DOES_NOT_EXIST = 2 EVENTID_MISSING = 3 RAISE_FAILED = 4 OTHERS = 5 . IF sy-subrc <> 0. Write: 'Event failed to trigger'. ELSE. Write: 'Event triggered'. ENDIF. |
4, 测试
SE38运行测试程序Z_TRIGGER_EVENT,然后可以在SM37中看到步骤2中创建的job Z_NEW_JOB已经执行完毕。
以上。
发表评论