02-09-2011 4:11 AM
Hi All,
I am submiting a report program using SUBMIT keyword. I required SPOOL. But its not generating. Can anyone kindly let me know whts wrong in my code?
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
LAYOUT = 'X_65_132'
LINE_COUNT = 65
LINE_SIZE = 132
IMPORTING
OUT_PARAMETERS = print_parameters
OUT_ARCHIVE_PARAMETERS = ARCPAR
VALID = VAL
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT saprck60
TO SAP-SPOOL
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
WITH FREE SELECTIONS texpr
VIA SELECTION-SCREEN
WITH ck_matnr = 'Z*' SIGN 'E'
WITH ck_werks = p_werks
WITH kalaid = wa_default-kalaid
WITH kaladat = sy-datum
WITH backgr = 'X'
VIA JOB name NUMBER number
AND RETURN .
02-09-2011 6:00 AM
Hi,
Try this code
data : l_jobname TYPE tbtcjob-jobname,
l_jobcount TYPE tbtcjob-jobcount,
l_dest TYPE pri_params-pdest VALUE 'LOCL',
l_linsz TYPE pri_params-linsz VALUE '999999',
l_jobstatus TYPE tbtco-status,
l_rqident TYPE tsp01-rqident.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = l_jobname
IMPORTING
jobcount = l_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc EQ 0.
* Set default print parameters for Spool
CALL FUNCTION 'SET_PRINT_PARAMETERS'
EXPORTING
destination = l_dest
line_size = l_linsz.
SUBMIT saprck60
TO SAP-SPOOL DESTINATION l_dest
LINE-SIZE l_linsz
IMMEDIATELY 'X'
KEEP IN SPOOL 'X'
USER sy-uname VIA JOB l_jobname NUMBER l_jobcount
WITHOUT SPOOL DYNPRO
WITH SELECTION-TABLE p_sel_opts
AND RETURN.
IF sy-subrc EQ 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_jobcount
jobname = l_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
OTHERS = 8.
ENDIF.
ENDIF.
* Check the Job status
DO.
CALL FUNCTION 'BDL_READ_JOB_STATUS'
EXPORTING
jobname = l_jobname
jobnumber = l_jobcount
IMPORTING
jobstatus = l_jobstatus
EXCEPTIONS
job_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF l_jobstatus EQ 'F'.
EXIT.
ENDIF.
ENDDO.
Regards,
Nagaraj
02-09-2011 4:16 AM
Try using the FM 'JOB_CLOSE' at the end after the submit , that should work .
02-09-2011 4:19 AM
Hi,
Already i added the fn module,
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
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
OTHERS = 8.
ENDIF.
ENDIF.
02-09-2011 5:48 AM
Hi Mohana,
Try running the program you wish to submit in dialog mode and check if it generates a spool.
Regards,
Jovito.
02-09-2011 6:00 AM
Hi,
Try this code
data : l_jobname TYPE tbtcjob-jobname,
l_jobcount TYPE tbtcjob-jobcount,
l_dest TYPE pri_params-pdest VALUE 'LOCL',
l_linsz TYPE pri_params-linsz VALUE '999999',
l_jobstatus TYPE tbtco-status,
l_rqident TYPE tsp01-rqident.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = l_jobname
IMPORTING
jobcount = l_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc EQ 0.
* Set default print parameters for Spool
CALL FUNCTION 'SET_PRINT_PARAMETERS'
EXPORTING
destination = l_dest
line_size = l_linsz.
SUBMIT saprck60
TO SAP-SPOOL DESTINATION l_dest
LINE-SIZE l_linsz
IMMEDIATELY 'X'
KEEP IN SPOOL 'X'
USER sy-uname VIA JOB l_jobname NUMBER l_jobcount
WITHOUT SPOOL DYNPRO
WITH SELECTION-TABLE p_sel_opts
AND RETURN.
IF sy-subrc EQ 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_jobcount
jobname = l_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
OTHERS = 8.
ENDIF.
ENDIF.
* Check the Job status
DO.
CALL FUNCTION 'BDL_READ_JOB_STATUS'
EXPORTING
jobname = l_jobname
jobnumber = l_jobcount
IMPORTING
jobstatus = l_jobstatus
EXCEPTIONS
job_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF l_jobstatus EQ 'F'.
EXIT.
ENDIF.
ENDDO.
Regards,
Nagaraj