天天看點

ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

目錄

【一】調用程式和被調用程式

【二】跳轉到被調用程式選擇螢幕

【三】跳轉到被調用程式執行結果頁面

【四】将被調用程式設定為背景作業模式運作

【一】調用程式和被調用程式

調用程式:ZLXF001

ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

被調用程式:ZLXF003

ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

【二】跳轉到被調用程式選擇螢幕

SUBMIT zlxf003 VIA SELECTION-SCREEN
                   WITH p_date = p_date
                   WITH s_bukrs IN s_bukrs
                   WITH s_hkont IN s_hkont
                   WITH p_rd1 = p_rd1
                   WITH p_rd2 = p_rd2
                   WITH p_rd3 = p_rd3
                   AND RETURN.
           
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

【三】跳轉到被調用程式執行結果頁面

SUBMIT lxf003 "VIA SELECTION-SCREEN
                   WITH p_date = p_date
                   WITH s_bukrs IN s_bukrs
                   WITH s_hkont IN s_hkont
                   WITH p_rd1 = p_rd1
                   WITH p_rd2 = p_rd2
                   WITH p_rd3 = p_rd3
                   AND RETURN.
           
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

【四】将被調用程式設定為背景作業模式運作

FORM frm_bajob_data .

  DATA: lv_jobname  TYPE tbtcjob-jobname,
        lv_jobcount TYPE tbtcjob-jobcount.

  CONCATENATE 'ZLXF003_' sy-datum sy-uzeit INTO lv_jobname.

**********************************************************************
*   啟動背景作業
  CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = lv_jobname
      sdlstrtdt        = sy-datum
      sdlstrttm        = sy-uzeit
    IMPORTING
      jobcount         = lv_jobcount
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
    RETURN.
  ENDIF.

**********************************************************************
*  submit 程式
  SUBMIT zlxf003 AND RETURN
                   WITH p_date = p_date
                   WITH s_bukrs IN s_bukrs
                   WITH s_hkont IN s_hkont
                   WITH p_rd1 = p_rd1
                   WITH p_rd2 = p_rd2
                   WITH p_rd3 = p_rd3
                   USER sy-uname
                   VIA JOB lv_jobname
                   NUMBER lv_jobcount.

**********************************************************************
*   關閉背景
  "參數cant_start_immediate設定後天作業啟動優先級,如果不設定的話,可能導緻作業挂起,不能實時執行
  CALL FUNCTION 'JOB_CLOSE'
    EXPORTING
      jobcount             = lv_jobcount
      jobname              = lv_jobname
      laststrtdt           = sy-datum
      laststrttm           = sy-uzeit
      strtimmed            = 'X'
    EXCEPTIONS
      cant_start_immediate = 1
      invalid_startdate    = 2
      jobname_missing      = 3
      job_close_failed     = 4
      job_nosteps          = 5
      job_notex            = 6
      lock_failed          = 7
      invalid_target       = 8
      invalid_time_zone    = 9
      OTHERS               = 10.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
    RETURN.
  ENDIF.

ENDFORM.
           
ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作

ABAP之程式互相調用--SUBMIT 執行個體【一】調用程式和被調用程式【二】跳轉到被調用程式選擇螢幕【三】跳轉到被調用程式執行結果頁面【四】将被調用程式設定為背景作業模式運作