后台作业触发事件定义以及事件在程序中的调用

使用到的Function和T-code

Function:BP_EVENT_RAISE

T-code:SM62、SM36

1.定义EventID

a.执行SM62

后台作业触发事件定义以及事件在程序中的调用_第1张图片


EventID的定义没有严格的要求,一个原则:通过ID名称可以分辨出是有谁创建以及该Event是用来触发那个Job的。

后台作业触发事件定义以及事件在程序中的调用_第2张图片

2.为被触发程序Program2定义Background Job。

执行SM36

点击:开始条件->事件后

后台作业触发事件定义以及事件在程序中的调用_第3张图片


3.在触发程式Program1中调用激活触发事件的Function

*&---------------------------------------------------------------------*
*&      Form  FRM_AUTO_TRIGGER_JOB
*&---------------------------------------------------------------------*
*       通过调用事件触发后台作业
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_AUTO_TRIGGER_JOB .

  DATA:g_event(30) TYPE c VALUE 'Event_1_for_Program2'.

  CALL FUNCTION 'BP_EVENT_RAISE'
    EXPORTING
      EVENTID               = g_event
    EXCEPTIONS
      BAD_EVENTID            = 1
      EVENTID_DOES_NOT_EXIST = 2
      EVENTID_MISSING      = 3
      RAISE_FAILED       = 4
      OTHERS         = 5.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.                    " FRM_AUTO_TRIGGER_JOB

 

注意:步骤3,和前面两步没有一定先后关系,但一定要保证程序中定义常量或者变量中已定义的或将要定义的Event值以及SM62定义的Event名称要一致。




你可能感兴趣的:(id,event,abap,程序调用,后台作业设置,BP_EVENT_RAISE)