Saturday, November 7, 2009

Send mail with text attachment in sap!!!!!!!!

REPORT ZSEND_MAIL.
*******************************************************************************
TYPES : BEGIN OF ty_coolprd_mas,
SOURCE_GC TYPE ZMRS_COOLPRD_MAS-SOURCE_GC,
DESTINATION_GC TYPE ZMRS_COOLPRD_MAS-DESTINATION_GC,
COOLING_PERIOD TYPE ZMRS_COOLPRD_MAS-COOLING_PERIOD,
BU TYPE ZMRS_COOLPRD_MAS-BU,
EXP_DATE TYPE ZMRS_COOLPRD_MAS-EXP_DATE,
END OF ty_coolprd_mas.

DATA : it_coolprd_mas TYPE TABLE OF ty_coolprd_mas,
wa_coolprd_mas TYPE ty_coolprd_mas.
DATA : it_header LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA : it_content LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA : it_recv LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
DATA : doc_data LIKE sodocchgi1 OCCURS 1 WITH HEADER LINE.
DATA : objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE.
DATA : attach_name LIKE solisti1-line. "attchment name for the email
DATA : it_att LIKE solisti1 OCCURS 0 WITH HEADER LINE.
DATA : objbin LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA : objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA : tab_lines TYPE sy-tabix.DATA : text(255).
DATA : head(255).
**************************************************************************
START-OF-SELECTION.
SELECT SOURCE_GC
DESTINATION_GC
COOLING_PERIOD
BU
EXP_DATE
FROM ZMRS_COOLPRD_MAS
INTO CORRESPONDING FIELDS OF TABLE it_coolprd_mas.
IF it_coolprd_mas[] IS NOT INITIAL.
PERFORM SEND_MAIL TABLES it_coolprd_mas.
ENDIF.
end-of-SELECTION.
**************************************************************************
form SEND_MAIL tables p_it_coolprd_mas .
****receiver's mail ids************************************************
CLEAR it_recv.
MOVE 'rahul.gupta1407@gmail.com' TO it_recv-receiver.
it_recv-express = 'X'.
* it_recv-copy = 'X'.
it_recv-rec_type = 'U'.
it_recv-com_type = 'INT'.
it_recv-notif_del = 'X'.
it_recv-notif_ndel = 'X'.
APPEND it_recv .
CLEAR it_recv .
MOVE 'rahul.gupta1@wipro.com' TO it_recv-receiver.
it_recv-express = 'X'.
it_recv-copy = 'X'. " carbon copy enabled
it_recv-rec_type = 'U'.
it_recv-com_type = 'INT'.
it_recv-notif_del = 'X'.
it_recv-notif_ndel = 'X'.
APPEND it_recv .
CLEAR it_recv .
********************Body of the Mail********************************************
MOVE space TO it_content-line .
APPEND it_content . CLEAR it_content-line .

MOVE 'Hi,' TO it_content-line .
APPEND it_content . CLEAR it_content-line .

MOVE space TO it_content-line .
APPEND it_content . CLEAR it_content-line .

text = 'Please find the attachment for the cooling off period data.'.
MOVE text TO it_content-line. APPEND it_content.

MOVE space TO it_content-line .
APPEND it_content . CLEAR it_content-line .

MOVE space TO it_content-line .
APPEND it_content . CLEAR it_content-line .
CLEAR text.

text = 'Best Regards,'.
MOVE text TO it_content-line. APPEND it_content. CLEAR it_content-line .

MOVE 'MRS Team.' TO it_content-line.
APPEND it_content .
CLEAR it_content-line .
**********************************************************************
DESCRIBE TABLE it_content LINES tab_lines.
READ TABLE it_content INDEX tab_lines.
doc_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( it_content ).
APPEND doc_data.
CLEAR objpack.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.

doc_data-obj_descr = 'Cool off data'.
CONCATENATE 'cool_off_data' '.TXT' INTO attach_name SEPARATED BY space.
DATA : len1 TYPE i.
DATA : len2 TYPE i,
txt_content(255).
CONCATENATE 'Source group customer '
'Destination group customer '
'Cooling period '
'Business unit '
'Expiry date' INTO txt_content.
SHIFT txt_content LEFT DELETING LEADING space. objbin-line = txt_content.
APPEND objbin.
LOOP AT p_it_coolprd_mas INTO wa_coolprd_mas.
objbin+1 = wa_coolprd_mas-SOURCE_GC.
objbin+33 = ''.
objbin+35 = wa_coolprd_mas-DESTINATION_GC.
objbin+67 = ''.
objbin+69 = wa_coolprd_mas-COOLING_PERIOD.
objbin+76 = ''.
objbin+78 = wa_coolprd_mas-BU.
objbin+130 = ''.
objbin+132 = wa_coolprd_mas-EXP_DATE.
APPEND objbin.
ENDLOOP.
DESCRIBE TABLE objbin LINES tab_lines.
* Assign the attachment file name
objhead = attach_name.
APPEND objhead.
* Creation of the entry for the compressed attachment
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
objpack-obj_name = 'ANLAGE'.
objpack-obj_descr = attach_name.
objpack-doc_size = tab_lines * 255.
APPEND objpack.
****************************************************************************
IF NOT it_recv[] IS INITIAL.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_data
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = objpack
CONTENTS_BIN = objbin
contents_txt = it_content
receivers = it_recv

endform. " SEND_MAIL
*****************************************************************************

No comments: