Create Background Jobs with ABAP | Submit Program to SAP-Spool ( Current Date in Daily )
เป็นการ run Background Job อีกแบบนึงใช้ในกรณีที่ต้องการให้วันที่เป็นวันที่ปัจจุบันของทุกวัน ( ตรงที่วงสีแดง ) ในกรณีที่เราต้องการ set Background เป็น Daily
หลักการคือ เราจะเขียนโปรแกรมอีกโปรแกรมนึงขึ้นมาเพื่อสั่งให้โปรแกรมที่เราต้องการ run Background นั้นเปลี่ยนวันที่ตามวัน โดยการตั้ง Background Job เราจะไม่ได้ตั้งที่โปรแกรมหลัก แต่เราจะทำการตั้งที่โปรแกรมใหม่ที่เขียนเขียนขึ้นมา โดยมา ดังนี้
หลักการคือ เราจะเขียนโปรแกรมอีกโปรแกรมนึงขึ้นมาเพื่อสั่งให้โปรแกรมที่เราต้องการ 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
Post a Comment