Skip to Content
0
Former Member
Nov 13, 2009 at 12:41 PM

PDF attachment in mail

33 Views

Hi All,

I am able to send the PDF file in mail attachment, but the problem is the logo is not getting displayed correctly. Pls find my code below

REPORT ztestmail.

DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.

DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.

DATA: objbin LIKE solisti1 OCCURS 45 WITH HEADER LINE.

DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.

DATA: doc_chng LIKE sodocchgi1.

DATA: tab_lines LIKE sy-tabix.

DATA : it_lines TYPE STANDARD TABLE OF tline,

it_line TYPE tline.

  • Creating the document to be sent

doc_chng-obj_name = 'Invoice'.

doc_chng-obj_descr = 'Invoice'.

objtxt = 'Invoice as Attachment'.

APPEND objtxt.

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.

doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

  • Creating the entry for the compressed document

CLEAR objpack-transf_bin.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-body_num = tab_lines.

objpack-doc_type = 'RAW'.

APPEND objpack.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = 'U:\PDF\2.PDF'

filetype = 'BIN'

TABLES

data_tab = it_lines

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DATA : gd_buffer TYPE string.

LOOP AT it_lines INTO it_line.

TRANSLATE it_line USING ' ~'.

CONCATENATE gd_buffer it_line INTO gd_buffer.

ENDLOOP.

TRANSLATE gd_buffer USING '~ '.

DO.

objbin = gd_buffer.

APPEND objbin.

SHIFT gd_buffer LEFT BY 255 PLACES.

IF gd_buffer IS INITIAL.

EXIT.

ENDIF.

ENDDO.

objhead = 'Invoice.PDF'. APPEND objhead.

  • Creating the entry for the compressed attachment

objpack-transf_bin = 'X'.

objpack-head_start = 1.

objpack-head_num = 1.

objpack-body_start = 1.

DESCRIBE TABLE objbin LINES tab_lines.

READ TABLE objbin INDEX tab_lines.

objpack-doc_size = tab_lines * 255.

objpack-body_num = tab_lines.

objpack-doc_type = 'EXT'.

objpack-obj_name = 'ATTACHMENT'.

objpack-obj_descr = 'Reproduction object 138'.

APPEND objpack..

  • Entering names in the distribution list

reclist-receiver = 'mail address'.

reclist-rec_type = 'U'.

APPEND reclist.

  • * sending the document

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = doc_chng

put_in_outbox = 'X'

commit_work = 'X'

TABLES

packing_list = objpack

object_header = objhead

contents_bin = objbin

contents_txt = objtxt

receivers = reclist

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.

Thanks,

Raju