Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to delay background processing

Former Member
0 Likes
1,712

Hi,

I am writing a submit statement in the Delivery Order exit USEREXIT_SAVE_DOCUMENT_PREPARE. It triggers on saving the Delivery.

The submit statement calls my Z Program in background (Im using Job Open and Job Close).

My requirement is that once the submit statement is executed, the cursor should come back to my driver program (User exit) and save the delivery document.

The background Z program should get triggered after say 5 minutes only on the condition that a delivery document exists for the particular delivery.

Could someone tell me how to write the SUBMIT statement to send my z program in background and ask it to start/release after a lag of 5 minutes.

Thanks & Regards,

Shobhit

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
994

Hi Shobhit,

Try the below way. Pass what time you want to start the

job(time & Date ) to job close.


IF V_DATE > SY-DATUM OR
     ( V_DATE = SY-DATUM AND V_TIME >= SY-UZEIT ).
    CALL FUNCTION 'JOB_CLOSE'
         EXPORTING
              JOBCOUNT             = V_JOBNUMBER
              JOBNAME              = V_JOBNAME
              SDLSTRTDT            = V_DATE
              SDLSTRTTM            = V_TIME
              TARGETSYSTEM         = SY-HOST
         IMPORTING
              JOB_WAS_RELEASED     = V_REL
         EXCEPTIONS
              CANT_START_IMMEDIATE = 1
              INVALID_STARTDATE    = 2
              JOBNAME_MISSING      = 3
              JOB_CLOSE_FAILED     = 4
              JOB_NOSTEPS          = 5
              JOB_NOTEX            = 6
              LOCK_FAILED          = 7
              OTHERS               = 8.

  

Dynamically if you want to give option to user when to

schdule job use the below and pass the particular time and date.


 CLEAR I_HELPVAL.
  REFRESH I_HELPVAL.

  I_HELPVAL-LENGTH = 8.
  I_HELPVAL-KEYWORD = 'DATE ( YYYYMMDD )'.
  I_HELPVAL-VALUE = SY-DATUM.
  APPEND I_HELPVAL.

  I_HELPVAL-LENGTH = 6.
  I_HELPVAL-KEYWORD = 'TIME ( HHMMSS )'.
  I_HELPVAL-VALUE = SY-UZEIT.
  APPEND I_HELPVAL.

  CALL FUNCTION 'HELP_GET_VALUES'
       EXPORTING
            POPUP_TITLE = 'Batch Job - Enter Date and Time'(023)
       IMPORTING
            RETURNCODE  = V_REL
       TABLES
            FIELDS      = I_HELPVAL
       EXCEPTIONS
            NO_ENTRIES  = 1
            OTHERS      = 2.

Hope this is useful.

Thanks&Regards,

Siri.

3 REPLIES 3
Read only

Former Member
0 Likes
994

May be this will Help.. try

WIth Job may be you can specify time..

 SUBMIT REPORTNAME AND RETURN
USER SY-UNAME " User for runtime authorizations
VIA JOB JOBNAME NUMBER JOBNUMBER
" Job name and job number
" from JOB_OPEN
TO SAP-SPOOL " Print and archiving options from
" GET_PRINT_PARAMETERS
" Both sets of options come from
" GET_PRINT_PARAMETERS
SPOOL PARAMETERS USER_PRINT_PARAMS
ARCHIVE PARAMETERS USER_ARC_PARAMS
WITHOUT SPOOL DYNPRO.
Leaving content frame

Read only

Former Member
0 Likes
995

Hi Shobhit,

Try the below way. Pass what time you want to start the

job(time & Date ) to job close.


IF V_DATE > SY-DATUM OR
     ( V_DATE = SY-DATUM AND V_TIME >= SY-UZEIT ).
    CALL FUNCTION 'JOB_CLOSE'
         EXPORTING
              JOBCOUNT             = V_JOBNUMBER
              JOBNAME              = V_JOBNAME
              SDLSTRTDT            = V_DATE
              SDLSTRTTM            = V_TIME
              TARGETSYSTEM         = SY-HOST
         IMPORTING
              JOB_WAS_RELEASED     = V_REL
         EXCEPTIONS
              CANT_START_IMMEDIATE = 1
              INVALID_STARTDATE    = 2
              JOBNAME_MISSING      = 3
              JOB_CLOSE_FAILED     = 4
              JOB_NOSTEPS          = 5
              JOB_NOTEX            = 6
              LOCK_FAILED          = 7
              OTHERS               = 8.

  

Dynamically if you want to give option to user when to

schdule job use the below and pass the particular time and date.


 CLEAR I_HELPVAL.
  REFRESH I_HELPVAL.

  I_HELPVAL-LENGTH = 8.
  I_HELPVAL-KEYWORD = 'DATE ( YYYYMMDD )'.
  I_HELPVAL-VALUE = SY-DATUM.
  APPEND I_HELPVAL.

  I_HELPVAL-LENGTH = 6.
  I_HELPVAL-KEYWORD = 'TIME ( HHMMSS )'.
  I_HELPVAL-VALUE = SY-UZEIT.
  APPEND I_HELPVAL.

  CALL FUNCTION 'HELP_GET_VALUES'
       EXPORTING
            POPUP_TITLE = 'Batch Job - Enter Date and Time'(023)
       IMPORTING
            RETURNCODE  = V_REL
       TABLES
            FIELDS      = I_HELPVAL
       EXCEPTIONS
            NO_ENTRIES  = 1
            OTHERS      = 2.

Hope this is useful.

Thanks&Regards,

Siri.

Read only

0 Likes
994

Thanks Srilatha!!!

Regards,

Shobhit