2011 Nov 24 4:41 AM
Hello Experts....
I'm getting error message while opening the attached PDF file in mail.
I'm Sending the payslip to mail which is converted into .PDF format.
Where exactly the problem i m not getting.
Please help....
Hello Experts....
I'm getting error message while opening the attached PDF file in mail.
I'm Sending the payslip to mail which is converted into .PDF format.
Where exactly the problem i m not getting.
Please help....
2011 Nov 24 5:50 AM
2011 Nov 24 6:10 AM
Error is: There was an error while opeing this document.The file is damaged and could not be repaired....
I'm sending the PE51-PAYSLIP
converting by using this FM "CONVERT_ABAPSPOOLJOB_2_PDF"
after geting result in OUT_TAB.
again the conversion FM "QCE1_CONVERT" is using...and getting result in othe Internal table.
in this FM source is OUT_TAB
and Target is i_record.
out_tab is of type tline
and i_record is of type solisti1.
2011 Nov 24 7:28 AM
2011 Nov 24 7:44 AM
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = rqident
no_dialog = ' '
DST_DEVICE = out_parms-pdest
PDF_DESTINATION =
get_size_from_format = out_parms-pdest
IMPORTING
pdf_bytecount = bytecount
pdf_spoolid = pdfspoolid
LIST_PAGECOUNT =
btc_jobname = jobname
btc_jobcount = jobcount
TABLES
pdf = out_tab
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.
IF sy-subrc NE 0.
ENDIF.
*CALL FUNCTION 'BAPI_GET_PAYSLIP_PDF'
EXPORTING
employeenumber = PERNR-PERNR
sequencenumber = '00001'
payslipvariant = 'PAYSLIP-PM'
IMPORTING
RETURN =
PAYSLIP = PAYSLIP
PDF_FSIZE =
.
*
******************CONVERTING PAYSLIP(XSTRING) TO BINARY FORMAT******
*
call function 'SCMS_XSTRING_TO_BINARY'
exporting
buffer = payslip
APPEND_TO_TABLE = ' '
IMPORTING
OUTPUT_LENGTH =
tables
binary_tab = OUT_TAB.
*----
*----
check not ( out_tab[] is initial ).
refresh i_record.
clear : i_record.
*
call function 'QCE1_CONVERT'
tables
t_source_tab = out_tab
t_target_tab = i_record
exceptions
convert_not_possible = 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.
do.
i_record = it_attachment_long.
append i_record.
shift it_attachment_long left by 255 places.
if it_attachment_long is initial.
exit.
endif.
enddo.
*
select single ltx into subject from t247
where mnr eq pn-begda+4(2)
and spras eq 'EN'.
condense subject.
concatenate 'Payslip for the month of' subject pn-begda+0(4)
into subject separated by space.
describe table lt_objbin lines l_att_lines.
read table lt_objbin index l_att_lines.
lv_document_data-doc_size = tab_lines * 255 .
lv_document_data-obj_name = 'Payslip'.
lv_document_data-obj_descr = subject.
e-mail body
clear lt_objpack-transf_bin.
lt_objpack-head_start = 1.
lt_objpack-head_num = 0.
lt_objpack-body_start = 1.
lt_objpack-body_num = tab_lines.
lt_objpack-doc_type = 'RAW'.
LT_OBJPACK-doc_size = STRLEN( LT_OBJTXT ).
append lt_objpack.
For e-mail attachment
lt_objhead = 'payslip.pdf'.
append lt_objhead.
lt_objbin[] = out_tab[]."i_record[].
"describe table i_record lines l_att_lines.
describe table out_tab lines l_att_lines.
CLEAR LT_OBJPACK.
lt_objpack-transf_bin = 'X'.
lt_objpack-head_start = 1.
lt_objpack-head_num = 0.
lt_objpack-body_start = 1.
lt_objpack-body_num = l_att_lines.
lt_objpack-doc_type = 'PDF'.
lt_objpack-obj_name = 'attachment'.
lt_objpack-obj_descr = 'payslip'.
lt_objpack-doc_size = ( l_att_lines - 1 ) * 255 + strlen( lt_objbin ).
append lt_objpack.
make recipient list
" check user_mail_id is not initial.
lt_reclist-receiver = user_mail_id.
lt_reclist-rec_type = 'U'.
append lt_reclist.
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = lv_document_data
put_in_outbox = 'X'
commit_work = 'X'
tables
packing_list = lt_objpack
object_header = lt_objhead
contents_bin = lt_objbin
contents_txt = lt_objtxt
receivers = lt_reclist
exceptions
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.
if sy-subrc = 0.
write:/ 'Mail sent to', 30 user_mail_id.
write : sy-uline.
else.
write:/ 'Error encountered'.
endif.
clear : lt_objpack, lt_objhead, lt_objbin, lt_reclist.
refresh : lt_objpack, lt_objhead, lt_objbin, lt_reclist.
clear : filepath+3(17), pdffile, encryptpdf, batch_file.
clear : out_tab, i_record, filetable.
clear : user_mail_id, password.
else.
write : 'payslip not generated'.
endif.
end-of-selection.
Please Check....
2011 Nov 24 8:42 AM
2011 Nov 24 10:46 AM
Thanks Anjeneya....
But there is one problem....I wanted tha PDF file in landscape view....
Will u please help...
2011 Nov 26 7:38 AM
Hello Anjaneya...
The code in the link u have send to me is working fine but i dont want the payslip in that format(means dotted lines an all)...
I want the payslip which will u get after running "pc00_m40_cedt".
please help...
2011 Nov 24 5:50 AM
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |