Create Background Jobs with ABAP | Submit Program to SAP-Spool ( Current Date in Daily )

เป็นการ run Background Job อีกแบบนึงใช้ในกรณีที่ต้องการให้วันที่เป็นวันที่ปัจจุบันของทุกวัน ( ตรงที่วงสีแดง ) ในกรณีที่เราต้องการ set Background เป็น Daily



หลักการคือ เราจะเขียนโปรแกรมอีกโปรแกรมนึงขึ้นมาเพื่อสั่งให้โปรแกรมที่เราต้องการ run Background นั้นเปลี่ยนวันที่ตามวัน โดยการตั้ง Background Job เราจะไม่ได้ตั้งที่โปรแกรมหลัก แต่เราจะทำการตั้งที่โปรแกรมใหม่ที่เขียนเขียนขึ้นมา โดยมา ดังนี้


REPORT ysubmit_report.


DATA: jobcount TYPE tbtcjob-jobcount,
      host TYPE msxxlist-host.

DATA: starttimeimmediate TYPE btch0000-char1 VALUE 'X',
      print_parameters TYPE pri_params.
DATA: seltab TYPE TABLE OF rsparams,
      seltab_wa LIKE LINE OF seltab,
      ld_pernr TYPE pernr-pernr.

PARAMETER p_cocod TYPE zfpce001-bukrs DEFAULT 9000.
PARAMETER p_jobnam TYPE tbtcjob-jobname OBLIGATORY.


*&---------------------------------------------------------------------*
*&      Form  process
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM process.
  seltab_wa-selname = 'SO_PERNR'.
  seltab_wa-sign    = 'I'.
  seltab_wa-option  = 'EQ'.
  seltab_wa-low    = ld_pernr.
  APPEND seltab_wa TO seltab.

* Job open
  CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      delanfrep        = ' '
      jobgroup         = ' '
      jobname          = p_jobnam
      sdlstrtdt        = sy-datum
      sdlstrttm        = sy-uzeit
    IMPORTING
      jobcount         = jobcount
    EXCEPTIONS
      cant_create_job  = 01
      invalid_job_data = 02
      jobname_missing  = 03.

  CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      immediately            = 'X'   "ถ้าค่าว่างคือจะไม่ส่งไปปริ้น
      no_dialog              = 'X'
    IMPORTING
      out_parameters         = print_parameters
    EXCEPTIONS
      archive_info_not_found = 1
      invalid_print_params   = 2
      invalid_archive_params = 3
      OTHERS                 = 4.


  SUBMIT ชื่อโปรแกรมที่ต้องการสั่ง (ไม่ใช่ T-Code) TO SAP-SPOOL AND RETURN
         WITH SELECTION-TABLE seltab
         USER sy-uname                "เพื่อการ authorization
         SPOOL PARAMETERS print_parameters
         WITHOUT SPOOL DYNPRO
         VIA JOB p_jobnam
         NUMBER jobcount.


  CALL FUNCTION 'JOB_CLOSE'
    EXPORTING
      jobcount             = jobcount
      jobname              = p_jobnam
      strtimmed            = starttimeimmediate
    EXCEPTIONS
      cant_start_immediate = 01
      invalid_startdate    = 02
      jobname_missing      = 03
      job_close_failed     = 04
      job_nosteps          = 05
      job_notex            = 06
      lock_failed          = 07
      OTHERS               = 99.

ENDFORM.                    "process

START-OF-SELECTION.

  IF sy-batch IS INITIAL.
    MESSAGE text-e02 TYPE 'S'.
  ELSE.
    PERFORM process.
  ENDIF.




Result.

Comments

Popular posts from this blog

Create Background Jobs With ABAP

[How to] การ เพิ่ม ลบ แก้ไข ข้อมูลในตาราง แบบไม่สนHee สนTad ใดๆ ทั้งสิ้น