10-07-2008 9:54 AM
Hi,
I'm using 'CONVERT_ABAPSPOOLJOB_2_PDF' function module for PDF conversion for sending mails. I'm passing the spool ID as given below. But the FM is giving error as "Spool request 30420 contains no ABAP list data".
Please help.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gv_spoolno
no_dialog = gc_no
dst_device = gc_device
PDF_DESTINATION =
IMPORTING
pdf_bytecount = gv_bytecount
PDF_SPOOLID =
LIST_PAGECOUNT =
BTC_JOBNAME =
BTC_JOBCOUNT =
TABLES
pdf = gi_pdf_output
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
10-07-2008 11:53 AM
Hi,
If u are using smartform just see the below code. U will get the spool id from the function module of smartform.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'YMML_SHORTAGE_SUPPLY_01'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = fmname1
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_shortage3 INTO wa_shortage3.
CALL FUNCTION fmname1
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = output_options1
user_settings = 'X'
wa_shortage3 = wa_shortage3
IMPORTING
DOCUMENT_OUTPUT_INFO =
job_output_info = job_output_info1
job_output_options = job_output_options1
TABLES
it_shortage2 = it_shortage2
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
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 NOT job_output_info1-spoolids[] IS INITIAL.
spoolid1 = job_output_info1-spoolids.
LOOP AT spoolid1 INTO wa_spool1.
ENDLOOP.
PERFORM email1.
ENDIF.
ENDLOOP.
ENDFORM. " openform1
FORM email1.
REFRESH : i_objpack1,
i_objhead1,
i_objbin1,
i_objtxt1,
reclist1.
CLEAR : i_objpack1,
i_objhead1,
i_objbin1,
i_objtxt1,
reclist1,
v_addrnumber1,
v_emailaddress1.
LOOP AT it_shortage1 INTO wa_shortage1.
SELECT SINGLE smtp_addr
INTO v_emailaddress1
FROM adr6
WHERE addrnumber = wa_shortage1-adrnr.
IF sy-subrc = 0.
Create receiver list
reclist1-receiver = v_emailaddress1. "<-- vendor address
reclist1-rec_type = 'U'.
APPEND reclist1.
CLEAR v_emailaddress1.
ENDIF.
CLEAR v_emailaddress.
ENDLOOP.
docdata1-obj_name = 'MAIL'.
docdata1-obj_descr = 'SHORTAGE Memo'.
i_objtxt1 = 'Hi,'.
APPEND i_objtxt1.
i_objtxt1 = 'Regards'.
APPEND i_objtxt1.
i_objtxt1 = 'Shortage Memo'.
APPEND i_objtxt1.
DESCRIBE TABLE i_objtxt1 LINES tab_lines1.
READ TABLE i_objtxt1 INDEX tab_lines1.
docdata1-doc_size = ( tab_lines1 - 1 ) * 255 + STRLEN( i_objtxt1 ).
CLEAR i_objpack1-transf_bin.
i_objpack1-head_start = 1.
i_objpack1-head_num = 0.
i_objpack1-body_start = 1.
i_objpack1-body_num = tab_lines1.
i_objpack1-doc_type = 'RAW'.
APPEND i_objpack1.
PERFORM pdf_convert1.
&----
*& Form pdf_convert1
&----
text
----
--> p1 text
<-- p2 text
----
FORM pdf_convert1.
DATA: BEGIN OF i_spool1 OCCURS 0,
rqident1 LIKE tsp01-rqident,
rqo1name1 LIKE tsp01-rqo1name,
rqclient1 LIKE tsp01-rqclient,
END OF i_spool1.
DATA: client1 LIKE tst01-dclient,
name1 LIKE tst01-dname,
objtype1 LIKE rststype-type,
type1 LIKE rststype-type.
DATA: spoolno1 LIKE tsp01-rqident,
otf1 LIKE itcoo OCCURS 100 WITH HEADER LINE,
pdf1 LIKE tline OCCURS 100 WITH HEADER LINE,
doctab1 LIKE docs OCCURS 1 WITH HEADER LINE,
numbytes1 TYPE i,
arc_idx1 LIKE toa_dara,
pdfspoolid1 LIKE tsp01-rqident,
jobname1 LIKE tbtcjob-jobname,
jobcount1 LIKE tbtcjob-jobcount,
is_otf1.
DATA: tab_lines1 TYPE i,
doc_size1 TYPE i,
att_type1 LIKE soodk-objtp.
DATA: date2 LIKE sy-datum,
time2 LIKE sy-uzeit,
period2 LIKE tsp01-rqcretime.
date2 = sy-datum.
time2 = sy-uzeit.
date2 = date2 - 1.
CONCATENATE date2 time2 INTO period2.
SELECT rqident
rqo1name
rqclient FROM tsp01 INTO TABLE i_spool1
WHERE rqowner = sy-uname AND
rqclient = sy-mandt AND
rqcretime > period2 AND
rqident = wa_spool1.
IF sy-subrc <> 0.
WRITE: / 'No Spool Request created today'(003)
COLOR COL_NEGATIVE.
EXIT.
ENDIF.
SORT i_spool1 DESCENDING BY rqident1.
READ TABLE i_spool1 INDEX 1.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = i_spool1-rqclient1
name = i_spool1-rqo1name1
part = 1
IMPORTING
CHARCO =
CREATER =
CREDATE =
DELDATE =
MAX_CREDATE =
MAX_DELDATE =
NON_UNIQ =
NOOF_PARTS =
RECTYP =
SIZE =
STOTYP =
type = type1
objtype = objtype1
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = i_spool1-rqident1
no_dialog = ' '
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
pdf_bytecount = numbytes1
pdf_spoolid = pdfspoolid1
OTF_PAGECOUNT =
btc_jobname = jobname1
btc_jobcount = jobcount1
TABLES
pdf = pdf1
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 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.
CASE sy-subrc.
WHEN 0.
WHEN 1.
WRITE: / 'Error On Spool Job'(002)
COLOR COL_NEGATIVE.
EXIT.
WHEN 2.
WRITE: / 'No Permission'(003)
COLOR COL_NEGATIVE.
EXIT.
WHEN 3.
WRITE: / 'Conversion Not Possible'(004)
COLOR COL_NEGATIVE.
EXIT.
WHEN OTHERS.
WRITE: / 'Incorrect Destination Device'(005)
COLOR COL_NEGATIVE.
EXIT.
ENDCASE.
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
line_width_src = 134
line_width_dst = 255
TABLES
content_in = pdf1
content_out = i_objbin1
EXCEPTIONS
err_line_width_src_too_long = 1
err_line_width_dst_too_long = 2
err_conv_failed = 3
OTHERS = 4.
ENDFORM. " pdf_convert1
10-07-2008 11:54 AM
10-07-2008 11:56 AM
Spool id is generated and data is present for the same. I checked it in sp02.