Following is a simple example to show how to perform background job processing:
*&---------------------------------------------------------------------* *& Report ZTEST *& *&---------------------------------------------------------------------* *& Background Job Processing *&---------------------------------------------------------------------* REPORT ztest. SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME. PARAMETERS: p_for RADIOBUTTON GROUP gr1 DEFAULT 'X' USER-COMMAND f1, p_back RADIOBUTTON GROUP gr1. PARAMETERS: p_name TYPE char10. SELECTION-SCREEN: END OF BLOCK b1. START-OF-SELECTION. IF p_for = 'X'. PERFORM disp USING p_name. ELSE. PERFORM batch_job USING p_name. ENDIF. *&---------------------------------------------------------------------* *& Form batch_job *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM batch_job USING p_name TYPE char10. DATA: lv_jobcount TYPE tbtcjob-jobcount, lv_jobname TYPE tbtcjob-jobname VALUE 'ZTEST', lv_text TYPE char200. DATA: lv_timestamp TYPE timestampl ##needed, lv_time TYPE char50. CONSTANTS: lc_jobclass TYPE tbtcjob-jobclass VALUE 'A', lc_sep2 TYPE char3 VALUE '_'. GET TIME STAMP FIELD lv_timestamp. lv_time = sy-uzeit. CONCATENATE lv_jobname lc_sep2 sy-datum lc_sep2 lv_time INTO lv_jobname . * JOB OPEN CALL FUNCTION 'JOB_OPEN' EXPORTING jobname = lv_jobname jobclass = lc_jobclass IMPORTING jobcount = lv_jobcount EXCEPTIONS cant_create_job = 1 invalid_job_data = 2 jobname_missing = 3 OTHERS = 4. IF sy-subrc <> 0. MESSAGE 'Error' TYPE 'S' DISPLAY LIKE 'E'. RETURN. ELSE. * CALLING THE SAME PROGRAM BY PASSING THE INPUT PARAMTERS SUBMIT ztest WITH p_name EQ p_name VIA JOB lv_jobname NUMBER lv_jobcount AND RETURN. IF sy-subrc = 0. * JOB CLOSE CALL FUNCTION 'JOB_CLOSE' EXPORTING jobcount = lv_jobcount jobname = lv_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. IF sy-subrc = 0. MESSAGE 'Success' TYPE 'S'. ELSE. MESSAGE 'Error' TYPE 'S' DISPLAY LIKE 'E'. RETURN. ENDIF. ENDIF. ENDIF. ENDFORM. "batch_job *&---------------------------------------------------------------------* *& Form DISP *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM disp USING p_name TYPE char10. WRITE: 'Hello', p_name. ENDFORM. " DISP
NOTE: You can view the background job in SM37. Click on execute and then you can view the spool.
No comments:
Post a Comment