Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

problem in sending mail

Former Member
0 Likes
918

I have used FM CALL FUNCTION 'SO_DOCUMENT_SEND_API1' to send mail to external system.

it is wrking fine but it is not displaying text in body.

for ex : 'Do not reply to this email. As this is system Generated mail.'

I have added that,

My code is as below Pls check..

OBJTXT = 'Hi'.

APPEND OBJTXT.

OBJTXT = 'Please refer to the attachment and act accordingly' .

APPEND OBJTXT .

OBJTXT = 'Do not reply to this email. As this is system Generated mail.'.

APPEND OBJTXT.

DESCRIBE TABLE OBJTXT LINES TAB_LINES.

READ TABLE OBJTXT INDEX TAB_LINES .

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = 0.

plist-body_start = 0.

plist-body_num = 0.

plist-doc_type = 'RAW'.

plist-obj_descr = 'Spool data'.

APPEND plist.

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = plist-body_num.

plist-body_start = 1.

DESCRIBE TABLE so_ali LINES plist-body_num.

plist-doc_type = real_type.

  • Get the size.

READ TABLE so_ali INDEX plist-body_num.

plist-doc_size = ( plist-body_num - 1 ) * line_size + STRLEN( so_ali ).

APPEND plist.

  • Move the receiver address.

MOVE: p_email TO rec_tab-receiver,

'U' TO rec_tab-rec_type.

APPEND rec_tab.

IF NOT sp_lang IS INITIAL.

document_data-obj_langu = sp_lang.

ELSE.

document_data-obj_langu = sy-langu.

ENDIF.

v_name = sy-uname.

  • Subject.

document_data-obj_descr = 'Spool attached'.

  • Send the email.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = document_data

sender_address = v_name

sender_address_type = 'B'

TABLES

packing_list = plist

object_header = objhead

contents_bin = so_ali

contents_txt = objtxt

receivers = rec_tab

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.

HERE SO_ALI IS pdf FILE.

AND OBJTXT IS TYE OF SOLISTI1 STRUCTURE.

Regards,

Sameer

I have used FM CALL FUNCTION 'SO_DOCUMENT_SEND_API1' to send mail to external system.

it is wrking fine but it is not displaying text in body.

for ex : 'Do not reply to this email. As this is system Generated mail.'

I have added that,

My code is as below Pls check..

OBJTXT = 'Hi'.

APPEND OBJTXT.

OBJTXT = 'Please refer to the attachment and act accordingly' .

APPEND OBJTXT .

OBJTXT = 'Do not reply to this email. As this is system Generated mail.'.

APPEND OBJTXT.

DESCRIBE TABLE OBJTXT LINES TAB_LINES.

READ TABLE OBJTXT INDEX TAB_LINES .

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = 0.

plist-body_start = 0.

plist-body_num = 0.

plist-doc_type = 'RAW'.

plist-obj_descr = 'Spool data'.

APPEND plist.

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = plist-body_num.

plist-body_start = 1.

DESCRIBE TABLE so_ali LINES plist-body_num.

plist-doc_type = real_type.

  • Get the size.

READ TABLE so_ali INDEX plist-body_num.

plist-doc_size = ( plist-body_num - 1 ) * line_size + STRLEN( so_ali ).

APPEND plist.

  • Move the receiver address.

MOVE: p_email TO rec_tab-receiver,

'U' TO rec_tab-rec_type.

APPEND rec_tab.

IF NOT sp_lang IS INITIAL.

document_data-obj_langu = sp_lang.

ELSE.

document_data-obj_langu = sy-langu.

ENDIF.

v_name = sy-uname.

  • Subject.

document_data-obj_descr = 'Spool attached'.

  • Send the email.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = document_data

sender_address = v_name

sender_address_type = 'B'

TABLES

packing_list = plist

object_header = objhead

contents_bin = so_ali

contents_txt = objtxt

receivers = rec_tab

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.

HERE SO_ALI IS pdf FILE.

AND OBJTXT IS TYE OF SOLISTI1 STRUCTURE.

Regards,

Sameer

5 REPLIES 5
Read only

Former Member
0 Likes
841

HI

DESCRIBE TABLE OBJTXT LINES TAB_LINES.

READ TABLE OBJTXT INDEX TAB_LINES .

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = 0.

plist-body_start = 0.

plist-body_num = 0.

plist-doc_type = 'RAW'.

plist-obj_descr = 'Spool data'.

APPEND plist.

plist-transf_bin = 'X'.

plist-head_start = 0.

plist-head_num = plist-body_num.

plist-body_start = 1.

Try this way instead as you coded in above ...

DESCRIBE TABLE li_objtxt LINES l_lines.

READ TABLE li_objtxt INTO l_objtxt INDEX l_lines.

l_docdata-doc_size = ( l_lines - 1 ) * 255 + STRLEN( l_objtxt ).

CLEAR l_objpack-transf_bin.

l_objpack-head_start = 1.

l_objpack-head_num = 0.

l_objpack-body_start = 1.

l_objpack-body_num = l_lines.

l_objpack-doc_type = 'RAW'.

APPEND l_objpack TO li_objpack.

Read only

Former Member
0 Likes
841

Hi Go through this.

&----


*& Report YMSL_ORDER_ACCEPTANCE

*&

&----


*&

*&

&----


REPORT YMSL_ORDER_ACCEPTANCE.

*********Variable Declarations *****************************

DATA: GV_FORM_NAME TYPE RS38L_FNAM, " Used to store the function module generated by Smartform

GV_BIN_FILESIZE TYPE I, " Store the file size

GV_POS TYPE I,

GV_LEN TYPE I,

GV_TAB_LINES TYPE I,

gv_desc_lines type i.

********Constants *******************************************

DATA : GC_TEXT(11) TYPE C VALUE 'Form Output',

GC_TST(3) TYPE C VALUE 'TST',

GC_TESTING(20) TYPE C VALUE 'Order Acceptance'.

*********Work Area Declarations *****************************

DATA: GS_DOCDATA TYPE SODOCCHGI1, " Data of an object which can be changed

GS_CTRLOP TYPE SSFCTRLOP, " Smart Forms: Control structure

GS_OUTOPT TYPE SSFCOMPOP, " SAP Smart Forms: Smart Composer (transfer) options

GS_OTFDATA TYPE SSFCRESCL, " Smart Forms: Return value at end of form printing

GS_RECLIST TYPE SOMLRECI1, " SAPoffice: Structure of the API Recipient List

GS_PDF_TAB TYPE TLINE, " Workarea for SAP Script Text Lines

GS_OBJBIN TYPE SOLISTI1, " SAPoffice: Single List with Column Length 255

GS_OBJPACK TYPE SOPCKLSTI1. " SAPoffice: Description of Imported Object Components

DATA : w_doc_chng typE sodocchgi1.

*********Internal tables Declarations *****************************

DATA : I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

DATA: GT_RECLIST TYPE TABLE OF SOMLRECI1, " SAPoffice: Structure of the API Recipient List

GT_PDF_TAB TYPE TABLE OF TLINE, " SAPscript: Text Lines

GT_OTF TYPE TABLE OF ITCOO, " OTF Structure

GT_OBJBIN TYPE TABLE OF SOLISTI1, " SAPoffice: Single List with Column Length 255

GT_OBJPACK TYPE TABLE OF SOPCKLSTI1. " SAPoffice: Description of Imported Object Components

******

DATA : BEGIN OF IT_ADR6 OCCURS 0,

SMTP_ADDR TYPE ADR6-SMTP_ADDR,

END OF IT_ADR6.

DATA : W_FILE_NAME TYPE STRING,

W_FILE_PATH TYPE STRING,

W_FULL_PATH TYPE STRING.

CLEAR : GV_FORM_NAME,

GS_CTRLOP,

GS_OUTOPT,

GS_OTFDATA,

GV_BIN_FILESIZE,

GV_POS,

GV_LEN,

GV_TAB_LINES.

SELECTION-SCREEN: BEGIN OF SCREEN 1001 AS WINDOW TITLE scr_ttl .

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT_B1 NO INTERVALS.

SELECTION-SCREEN BEGIN OF LINE .

SELECTION-SCREEN COMMENT 1(15) TX_VBELN.

PARAMETER : P_VBELN TYPE VBAK-VBELN .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B1.

*SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TXT_B2 .

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: R_OUT RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND RAD11 .

SELECTION-SCREEN COMMENT 5(20) TXT_OUT. " roles by t-code

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER R_PDF RADIOBUTTON GROUP R1 .

SELECTION-SCREEN COMMENT 5(20) TXT_PDF.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER R_MAIL RADIOBUTTON GROUP R1 .

SELECTION-SCREEN COMMENT 5(15) TXT_MAIL.

*SELECTION-SCREEN END OF LINE.

*SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 20(7) TXT_MAL1.

PARAMETER : P_MAIL TYPE ADR6-SMTP_ADDR MODIF ID M1 .

SELECTION-SCREEN END OF LINE.

*SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN: END OF SCREEN 1001 .

CALL SELECTION-SCREEN 1001 STARTING AT 20 5 ENDING AT 105 10.

*SET PF-STATUS 'STATUS'.

INITIALIZATION.

TX_VBELN = 'Order'.

TXT_B1 = 'Selection Criteria '.

  • TXT_B2 = 'Output Criteria '.

scr_ttl = 'Order Acceptance'.

TXT_OUT = 'Print Output'.

TXT_PDF = 'Save To PDF'.

TXT_MAIL = 'Mail the Output'.

TXT_MAL1 = 'E-mail'.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF R_MAIL <> 'X'.

IF SCREEN-GROUP1 = 'M1'.

  • SCREEN-INVISIBLE = 1.

SCREEN-INPUT = 0. " Disable for input.

MODIFY SCREEN.

ENDIF.

ENDIF.

ENDLOOP.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MAIL.

PERFORM TABLE_HELP.

START-OF-SELECTION..

  • IF P_VBELN IS NOT INITIAL.

PERFORM GET_SF.

IF R_PDF = 'X' .

PERFORM CONVERT_OTF.

PERFORM SAVE_DIALOG.

PERFORM DOWNLOAD.

ELSEIF R_MAIL = 'X'.

IF P_MAIL IS NOT INITIAL.

PERFORM CONVERT_OTF.

PERFORM SEND_MAIL.

ELSE.

MESSAGE 'Please Enter Email Address' TYPE 'S'.

  • CALL TRANSACTION 'YMSL20'.

  • LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

  • ELSE.

  • MESSAGE 'Please Enter Order No' TYPE 'S'.

    • CALL TRANSACTION 'YMSL20'.

    • LEAVE LIST-PROCESSING.

*

*ENDIF.

END-OF-SELECTION.

&----


*& Form TABLE_HELP

&----


FORM TABLE_HELP .

IF R_MAIL = 'X'.

SELECT SMTP_ADDR FROM ADR6 INTO TABLE IT_ADR6.

SORT IT_ADR6.

DELETE ADJACENT DUPLICATES FROM IT_ADR6 COMPARING ALL FIELDS.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'IT_ADR6-SMTP_ADDR'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'EMAIL'

  • STEPL = 0

WINDOW_TITLE = 'SELECT MAIL ADDRESS'

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_ADR6

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 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.

ENDIF.

ENDFORM. " TABLE_HELP

&----


*& Form GET_SF

&----


FORM GET_SF .

*u2022 Generate Function Module name

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'Z_CHK'

IMPORTING

FM_NAME = GV_FORM_NAME

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.

*u2022 Assigning values to Form Control Structure and Form Composer

IF R_OUT <> 'X'.

GS_CTRLOP-GETOTF = 'X'.

GS_CTRLOP-NO_DIALOG = 'X'.

GS_OUTOPT-TDNOPREV = 'X'.

ENDIF.

*/1BCDWB/SF00000368

CALL FUNCTION GV_FORM_NAME "'/1BCDWB/SF00000368'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = GS_CTRLOP

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

OUTPUT_OPTIONS = GS_OUTOPT

USER_SETTINGS = 'X'

IMPORTING

  • DOCUMENT_OUTPUT_INFO =

JOB_OUTPUT_INFO = GS_OTFDATA

  • JOB_OUTPUT_OPTIONS =

  • 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.

*

  • CALL FUNCTION GV_FORM_NAME

  • EXPORTING

    • ARCHIVE_INDEX =

    • ARCHIVE_INDEX_TAB =

    • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS = GS_CTRLOP

    • MAIL_APPL_OBJ =

    • MAIL_RECIPIENT =

    • MAIL_SENDER =

  • OUTPUT_OPTIONS = GS_OUTOPT

  • USER_SETTINGS = 'X'

  • TEMP_VBELN = P_VBELN

  • IMPORTING

    • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO = GS_OTFDATA

    • JOB_OUTPUT_OPTIONS =

  • 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.

ENDFORM. " GET_SF

&----


*& Form CONVERT_OTF

&----


FORM CONVERT_OTF .

*u2022 Assigning the OTFDATA to OTF Structure table

CLEAR GT_OTF.

GT_OTF[] = GS_OTFDATA-OTFDATA[].

*u2022 Convert the OTF DATA to SAP Script Text lines

CLEAR GT_PDF_TAB.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = 132

  • ARCHIVE_INDEX = ' '

  • COPYNUMBER = 0

  • ASCII_BIDI_VIS2LOG = ' '

  • PDF_DELETE_OTFTAB = ' '

IMPORTING

BIN_FILESIZE = GV_BIN_FILESIZE

  • BIN_FILE =

TABLES

OTF = GT_OTF

LINES = GT_PDF_TAB

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

ERR_BAD_OTF = 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.

*

*t_otf[] = t_otf_from_fm-otfdata[].

*

    • Function Module CONVERT_OTF is used to convert the OTF format to PDF

*

*CALL FUNCTION 'CONVERT_OTF'

*EXPORTING

*FORMAT = 'PDF'

*MAX_LINEWIDTH = 132

    • ARCHIVE_INDEX = ' '

    • COPYNUMBER = 0

    • ASCII_BIDI_VIS2LOG = ' '

    • PDF_DELETE_OTFTAB = ' '

*IMPORTING

*BIN_FILESIZE = W_bin_filesize

    • BIN_FILE =

*TABLES

*otf = T_OTF

*lines = T_pdf_tab

*EXCEPTIONS

*ERR_MAX_LINEWIDTH = 1

*ERR_FORMAT = 2

*ERR_CONV_NOT_POSSIBLE = 3

*ERR_BAD_OTF = 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.

ENDFORM. " CONVERT_OTF

&----


*& Form SAVE_DIALOG

&----


FORM SAVE_DIALOG .

  • To display File SAVE dialog window

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG

EXPORTING

WINDOW_TITLE = 'Download to PDF '

  • DEFAULT_EXTENSION = '(*.PDF)'

DEFAULT_FILE_NAME = 'file.pdf'

FILE_FILTER = 'PDF Format(*.PDF)'

INITIAL_DIRECTORY = 'C:\Documents and Settings\Administrator\Desktop'

  • WITH_ENCODING =

PROMPT_ON_OVERWRITE = 'X'

CHANGING

FILENAME = W_FILE_NAME

PATH = W_FILE_PATH

FULLPATH = W_FULL_PATH

  • USER_ACTION =

  • FILE_ENCODING =

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

NOT_SUPPORTED_BY_GUI = 3

OTHERS = 4

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " SAVE_DIALOG

&----


*& Form DOWNLOAD

&----


FORM DOWNLOAD .

  • Use the FM GUI_DOWNLOAD to download the generated PDF file onto the

  • presentation server

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE = GV_BIN_FILESIZE

FILENAME = W_FULL_PATH

FILETYPE = 'BIN'

  • APPEND = ' '

  • WRITE_FIELD_SEPARATOR = ' '

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = GT_PDF_TAB

  • FIELDNAMES =

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " DOWNLOAD

&----


*& Form SEND_MAIL

&----


FORM SEND_MAIL .

***changes by rajan

*DATA : v_first TYPE USER_ADDR-NAME_FIRST,

  • V_LAST TYPE USER_ADDR-NAME_LAST.

DATA : detail TYPE STRING.

*

*SELECT SINGLE NAME_FIRST NAME_LAST FROM

  • USER_ADDR INTO (V_FIRST,V_LAST)

  • WHERE BNAME = syst-UNAME.

  • CONCATENATE v_first V_LAST INTO detail SEPARATED BY space.

data : v_po_no TYPE vbkd-bstkd,

v_po_date TYPE vbkd-bstdk.

data : day TYPE STRING,

month type STRING,

year TYPE STRING.

data : date TYPE STRING.

SELECT SINGLE BSTKD BSTDK

FROM VBKD

INTO (v_po_no,v_po_date)

WHERE VBELN = P_VBELN.

day = v_po_date+6(2).

month = v_po_date+4(2).

year = v_po_date+0(4).

CONCATENATE day '/' month '/' year INTO date.

CONCATENATE 'Please Find attached Order Acceptance against your P.O.No.' v_po_no 'dated' date '.' INTO detail SEPARATED BY space.

**u2022 Assigning the Description of the object sent in the mail

  • CLEAR GS_DOCDATA.

  • GS_DOCDATA-OBJ_NAME = GC_TST.

  • GS_DOCDATA-OBJ_DESCR = GC_TESTING.

*u2022 Assigning the email id to Structure of the API Recipient List table

CLEAR : GT_RECLIST, GS_RECLIST.

GS_RECLIST-RECEIVER = P_MAIL. "

GS_RECLIST-REC_TYPE = 'U'."'G' ."'O'. "'B'. "'U'.

APPEND GS_RECLIST TO GT_RECLIST.

        • mail body rajan

I_OBJTXT = 'Dear Sir/Madam.'.

APPEND I_OBJTXT.

I_OBJTXT = detail.

APPEND I_OBJTXT.

I_OBJTXT = ''.

APPEND I_OBJTXT.

I_OBJTXT = 'Thanks.'.

APPEND I_OBJTXT.

I_OBJTXT = 'Best Regards,'.

APPEND I_OBJTXT.

I_OBJTXT = 'For Bilcare Ltd.'.

APPEND I_OBJTXT.

DESCRIBE TABLE i_objtxt LINES gv_desc_lines.

*DESCRIBE TABLE i_objtxt LINES v_lines_txt.

CLEAR I_OBJTXT.

READ TABLE I_OBJTXT INDEX gv_desc_lines.

if sy-subrc = 0.

  • Document information.

GS_DOCDATA-obj_name = 'ord_accept'.

GS_DOCDATA-expiry_dat = sy-datum + 10.

GS_DOCDATA-obj_descr = 'Order Acceptance'.

GS_DOCDATA-sensitivty = 'F'. "Functional object

GS_DOCDATA-doc_size = gv_desc_lines * 255.

CLEAR Gs_OBJPACK-transf_bin.

  • Start line of object header in transport packet

  • GS_OBJPACK-TRANSF_BIN = 'X'.

GS_OBJPACK-doc_size = gv_desc_lines * 255.

GS_OBJPACK-HEAD_START = 1.

GS_OBJPACK-HEAD_NUM = 0.

GS_OBJPACK-BODY_START = 1.

GS_OBJPACK-BODY_NUM = gv_desc_lines.

GS_OBJPACK-DOC_TYPE = 'RAW'.

  • GS_OBJPACK-OBJ_NAME = 'ORDER_ACCEPTANCE'.

  • GS_OBJPACK-OBJ_DESCR = 'ORDER_ACCEPTANCE.PDF'.

APPEND GS_OBJPACK TO GT_OBJPACK.

  • GS_OBJPACK-HEAD_START = 1.

  • GS_OBJPACK-HEAD_NUM = 0.

  • GS_OBJPACK-BODY_START = 1.

  • GS_OBJPACK-doc_type = 'RAW'.

*APPEND GS_OBJPACK TO GT_OBJPACK.

ENDIF.

*u2022 Passing the SAP Script text lines to SAPoffice: Single List with Column Length 255 table

CLEAR : GS_OBJBIN, GS_PDF_TAB.

LOOP AT GT_PDF_TAB INTO GS_PDF_TAB.

GV_POS = 255 - GV_LEN.

IF GV_POS > 134. "length of pdf_table

GV_POS = 134.

ENDIF.

GS_OBJBIN+GV_LEN = GS_PDF_TAB(GV_POS).

GV_LEN = GV_LEN + GV_POS.

IF GV_LEN = 255. "length of out (contents_bin)

APPEND GS_OBJBIN TO GT_OBJBIN.

CLEAR: GS_OBJBIN, GV_LEN.

IF GV_POS < 134.

GS_OBJBIN = GS_PDF_TAB+GV_POS.

GV_LEN = 134 - GV_POS.

ENDIF.

ENDIF.

ENDLOOP.

IF GV_LEN > 0.

APPEND GS_OBJBIN TO GT_OBJBIN.

ENDIF.

*u2022 Filling the details in SAPoffice: Description of Imported Object Components table

DESCRIBE TABLE GT_OBJBIN LINES GV_TAB_LINES.

CLEAR GS_OBJBIN.

READ TABLE GT_OBJBIN INTO GS_OBJBIN INDEX GV_TAB_LINES.

IF SY-SUBRC = 0.

GS_OBJPACK-DOC_SIZE = ( GV_TAB_LINES - 1 ) * 255 + STRLEN( GS_OBJBIN ).

GS_OBJPACK-TRANSF_BIN = 'X'.

GS_OBJPACK-HEAD_START = 1.

GS_OBJPACK-HEAD_NUM = 0.

GS_OBJPACK-BODY_START = 1.

GS_OBJPACK-BODY_NUM = GV_TAB_LINES.

GS_OBJPACK-DOC_TYPE = 'PDF'.

GS_OBJPACK-OBJ_NAME = 'ORDER_ACCEPTANCE'.

GS_OBJPACK-OBJ_DESCR = 'Order Acceptance'.

APPEND GS_OBJPACK TO GT_OBJPACK.

ENDIF.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = GS_DOCDATA

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

  • IMPORTING

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

TABLES

PACKING_LIST = GT_OBJPACK

  • OBJECT_HEADER = I_OBJTXT

CONTENTS_BIN = GT_OBJBIN

CONTENTS_TXT = I_OBJTXT

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

RECEIVERS = GT_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.

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

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

ELSE.

  • WRITE 'Sent Successfully'.

MESSAGE 'Sent Successfully' TYPE 'I'.

  • CALL TRANSACTION 'YMSL20'.

  • LEAVE LIST-PROCESSING.

ENDIF.

SUBMIT RSCONN01

WITH MODE EQ 'INT'

AND RETURN.

ENDFORM. " SEND_MAIL

Read only

former_member404244
Active Contributor
0 Likes
841

Hi,

Please check if the below link is helpful..

http://www.sapdev.co.uk/reporting/email/attach_xls.htm

Regards,

Nagaraj

Read only

Former Member
0 Likes
841

Add this part of the code in your code at the end.

SUBMIT rsconn01 WITH MODE = 'INT'

WITH OUTPUT = ' '

AND RETURN.

Read only

Former Member
0 Likes
841

try with passing

COMMIT_WORK = ' X'

in the Function Module.