Dear Friends,
I have used the below code for generating the spool by submitting the standard program.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = lv_job_name
IMPORTING
jobcount = lv_job_nr
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc EQ 0.
SUBMIT RPCEDTX0
TO SAP-SPOOL WITHOUT SPOOL DYNPRO
SPOOL PARAMETERS mstr_print_parms
USING SELECTION-SET 'ZPDF'
VIA JOB lv_job_name NUMBER lv_job_nr
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_job_nr
jobname = lv_job_name
strtimmed = 'X'
IMPORTING
job_was_released = lv_job_released
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.
IF syst-subrc NE 0.
MESSAGE i162(00) WITH
'An error occured while closing the background job.'.
STOP.
ENDIF.
ENDIF.
WAIT UP TO 5 SECONDS .
*get job details
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
*eventid = gd_eventid
*eventparm = gd_eventparm
*external_program_active = gd_external_program_active
jobcount = lv_job_nr " gd_jobcount
jobname = lv_job_name "gd_jobname
*stepcount = gd_stepcount
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
* Get the spool number
SELECT * FROM tbtcp
INTO TABLE it_tbtcp
WHERE jobname = lv_job_name " gd_jobname
AND jobcount = lv_job_nr "gd_jobcount
* AND stepcount = gd_stepcount
* AND listident '0000000000'
ORDER BY jobname
jobcount.
*stepcount.
IF sy-subrc = 0.
READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
IF sy-subrc = 0.
gd_spool_nr = wa_tbtcp-listident. "gd_spool_nr --> contains spool no.
ENDIF.
ENDIF.
mi_rqident = gd_spool_nr .
*-- Convert Spool to PDF
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = mi_rqident
no_dialog = space
dst_device = mstr_print_parms-pdest
IMPORTING
pdf_bytecount = mi_bytecount
TABLES
pdf = mtab_pdf
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
Iam using in my program as WAIT UP TO 5 SECONDS , i dont want to use this option as i wanted to use a better way other than this way to increase the performance , please could anyone let me know what i can do.
If iam not using the WAIT UP TO 5 SECONDS then i found the spool no is not getting generated and there by iam getting an error as spool no found .
Please help me what is the better way of doing .
regards
divya
Formatted by: Vijay Babu Dudla on Apr 27, 2009 9:56 AM