JOB 处理

来源:互联网 发布:女生学软件开发 编辑:程序博客网 时间:2024/05/01 15:42

 

* JOB_OPEN
      CALL FUNCTION 'JOB_OPEN'
        EXPORTING
          jobname          = jobname
        IMPORTING
          jobcount         = jobcount
        EXCEPTIONS
          cant_create_job  = 1
          invalid_job_data = 2
          jobname_missing  = 3
          OTHERS           = 4.

      IF sy-subrc <> 0.
 
      ENDIF.
  
      check sy-subrc = 0.

* JOB_SUBMIT

      SUBMIT (projectId)   " JOB执行的工程名
        WITH p_keino   EQ  lw_zkeiyakuno " PARAM 名
        WITH p_rireno  EQ  lw_rirekcunt  " PARAM 名
     VIA JOB jobname
      NUMBER jobcount
         AND RETURN. 


* JOB_CLOSE
        CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
            jobcount             = jobcount
            jobname              = jobname
            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
            OTHERS               = 9.

*---------- JOB处理的一些后续处理--------------------*
* JOB执行后的状态确认
        DO 10 TIMES.
          WAIT UP TO 2 SECONDS.

          CALL FUNCTION 'BP_JOB_CHECKSTATE'
            EXPORTING
              dialog                       = 'N'
              jobcount                     = jobcount
              jobname                      = jobname
            IMPORTING
              actual_status                = actual_status
            EXCEPTIONS
              checking_of_job_has_failed   = 1
              correcting_job_status_failed = 2
              invalid_dialog_type          = 3
              job_does_not_exist           = 4
              no_check_privilege_given     = 5
              ready_switch_too_dangerous   = 6
              OTHERS                       = 7.

          IF sy-subrc <> 0.
            e_return = 8.  "JOBSTATUS取得失敗
            e_message = text-008.
            EXIT.
          ENDIF.


          IF ( actual_status = 'F' )
            OR ( actual_status = 'A' ).
            EXIT.
          ENDIF.
        ENDDO.

* JOB LOG的取得
          CALL FUNCTION 'BP_JOBLOG_READ'
            EXPORTING
              client                = sy-mandt
              jobcount              = jobcount
              jobname               = jobname
            TABLES
              joblogtbl             = joblogtbl
            EXCEPTIONS
              cant_read_joblog      = 1
              jobcount_missing      = 2
              joblog_does_not_exist = 3
              joblog_is_empty       = 4
              joblog_name_missing   = 5
              jobname_missing       = 6
              job_does_not_exist    = 7
              OTHERS                = 8.

          IF sy-subrc <> 0.
          
          ENDIF.