Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
41 views5 pages

Email Concept File

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views5 pages

Email Concept File

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

*DECALARATIONS.

TYPES: BEGIN OF TY_TEXT,


XMLLINE(100000) TYPE C,
END OF TY_TEXT.

CONSTANT: LC_I_TYPE TYPE SO_OBJ_TP VALUE 'HTM'. "I_TYPE to create


document
LC_ATT_TYPE TYPE STRING VALUE 'XLSX'.
"I_ATTACHMENT_TYPE for XL sheet

DATA: LS_TEXT TYPE TY_TEXT,


LS_HEADER TYPE STRING.

DATA: HTML_STRING01 TYPE STRING,


HTML_STRING02 TYPE STRING,
LV_STRING TYPE STRING,
HTML TYPE SOLI_TAB,
LV_SUBJ TYPE CHAR50, " SUBJECT WHICH WILL BE DISPLAYED IN THE
SO15
LV_EMAILSUBJ TYPE STRING,
LS_DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
LV_SENDER TYPE AD_SMTPADR, " ANY SENDER E-MAIL ADDRESS
LV_RECEIVER TYPE AD_SMTPADR, " ANY RECEIVER E-MAIL ADDRESS
LV_DISLIST TYPE SO_OBJ_NAM, " DISTRIBUTION LIST
LV_RESULTS TYPE SYST-BINPT,
BCS_EXCEPTION TYPE REF TO CX_BCS,
LV_ATT_TYPE TYPE SOODK-OBJTP,
CELL_H TYPE STRING, " FOR XL SHEET
CELL_F TYPE STRING, " FOR XL SHEET
ENDCELL TYPE STRING, " FOR XL SHEET.

DATA: HTML_WA LIKE LINE OF HTML,


LT_MAILHEX TYPE STANDARD TABLE OF SOLIX,
LT_TEXT TYPE STANDARD TABLE OF TY_TEXT,
LT_HEADER TYPE STANDARD TABLE OF STRING.

*PASSING VALUES TO THE LOCAL VARIABLES.


LV_ATT_TYPE = LC_ATT_TYPE.
CELL_H = '<CELL SS:STYLEID="2"><DATA SS:TYPE="STRING" >'.
CELL_F = '<CELL SS:STYLEID="1"><DATA SS:TYPE="STRING" >'.
ENDCELL = '</DATA></CELL>'.
LV_STRING = '<P> 'Any sentence or line' '</P>'
LV_SENDER = '[email protected]'.
lv_RECEIVER = 'Any Email address'.

*FETCH THE DATA.


SELECT * FROM ZXYZ INTO @DATA(LT_FINAL).

*XL SHEET.
*START OF XML DATA.
APPEND :'<?XML VERSION="1.0"?>' TO LT_TEXT,
'<WORKBOOK XMLNS="URN:SCHEMAS-MICROSOFT-COM:OFFICE:SPREADSHEET"' TO
LT_TEXT,
'XMLNS:SS="URN:SCHEMAS-MICROSOFT-COM:OFFICE:SPREADSHEET">' TO
LT_TEXT,
'<WORKSHEET SS:NAME="B1 CARTRIDGE DELIVERY INFO">' TO LT_TEXT.
'<TABLE>' TO LT_TEXT,
'<COLUMN SS:AUTOFITWIDTH="1" SS:WIDTH="100" />' TO LT_TEXT2
'<COLUMN SS:AUTOFITWIDTH="2" SS:WIDTH="100" />' TO LT_TEXT3
'<COLUMN SS:AUTOFITWIDTH="3" SS:WIDTH="100" />' TO LT_TEXT4
'<COLUMN SS:AUTOFITWIDTH="4" SS:WIDTH="100" />' TO LT_TEXT,
'<COLUMN SS:AUTOFITWIDTH="5" SS:WIDTH="100" />' TO LT_TEXT,
'<ROW>' TO LT_TEXT.

*ADDING COLUMNS HEADING TO TEXT FILE.


CONCATENATE 'AAA' 'BBB' 'CCC' 'DDD' 'EEE' INTO LS_HEADER SEPARATED BY
CL_ABAP_CHAR_UTILITIES=>NEWLINE.
SPLIT LS_HEADER AT CL_ABAP_CHAR_UTILITIES=>NEWLINE INTO TABLE LT_HEADER.
CLEAR LS_HEADER.
LOOP AT LT_HEADER INTO LS_HEADER.
CONCATENATE CELL_H LS_HEADER ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR : LS_TEXT.
ENDLOOP.
APPEND '</ROW>' TO LT_TEXT.

*FILLING FINAL DATA TO TEXT TABLE.


LOOP AT LT_FINAL INTO DATA(LS_FINAL).
APPEND '<ROW>' TO LT_TEXT.
CONCATENATE CELL_F LS_FINAL-AAA ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR LS_TEXT.
CONCATENATE CELL_F LS_FINAL-BBB ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR LS_TEXT.
CONCATENATE CELL_F LS_FINAL-CCC ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR LS_TEXT.
CONCATENATE CELL_F LS_FINAL-DDD ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR LS_TEXT.
CONCATENATE CELL_F LS_FINAL-EEE ENDCELL INTO LS_TEXT.
APPEND LS_TEXT TO LT_TEXT.
CLEAR LS_TEXT.
APPEND '</ROW>' TO LT_TEXT.
CLEAR: LS_FINAL.
ENDLOOP.

*END OF XML DATA.


IF SY-SUBRC = 0.
APPEND : ' </TABLE>' TO LT_TEXT,
' </WORKSHEET>' TO LT_TEXT,
' </WORKBOOK>' TO LT_TEXT.
ELSE.
REFRESH : LT_TEXT.
ENDIF.

*CONVERTING TEXT TO BINARY FORMAT.


REFRESH: LT_MAILHEX.
CALL FUNCTION 'SCMS_TEXT_TO_BINARY'
EXPORTING
FIRST_LINE = 1
TABLES
TEXT_TAB = LT_TEXT
BINARY_TAB = LT_MAILHEX
EXCEPTIONS
FAILED = 1
OTHERS = 2.
*BODY OF AN E-MAIL.
CONCATENATE HTML_STRING01
'<HTML> <BODY STYLE="FONT-FAMILY: CALIBRI, VERDANA, ARIAL,SANS-SERIF;">'
'<BR> <FONT SIZE="3">'
INTO HTML_STRING01 SEPARATED BY SPACE.
CONCATENATE HTML_STRING01
LV_STRING
INTO HTML_STRING01 SEPARATED BY SPACE.

REFRESH: HTML, TEXT_TABLE.


CLEAR : HTML_STRING02.
MOVE HTML_STRING01 TO HTML_STRING02.
CONCATENATE HTML_STRING02 '</BODY></HTML>' INTO HTML_STRING02 SEPARATED BY SPACE.
HTML_WA = HTML_STRING02+0(255).
IF HTML_WA IS INITIAL.
EXIT.
ENDIF.
APPEND HTML_WA TO HTML.

*EMAIL CONCEPT.
*CREATE DOCUMENT.
TRY.
TRY.
LS_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = LC_I_TYPE
I_TEXT = HTML
"TEXT_TABLE
I_SUBJECT = LV_SUBJ
).
CATCH CX_DOCUMENT_BCS INTO BCS_EXCEPTION.
ENDTRY.
*ADD ATTACHMENT.
TRY.
CALL METHOD LS_DOCUMENT->ADD_ATTACHMENT
EXPORTING
I_ATTACHMENT_TYPE = LV_ATT_TYPE " DOCUMENT CLASS
FOR ATTACHMENT
I_ATTACHMENT_SUBJECT = LV_XLSHEETSUBJ " ATTACHMENT TITLE
I_ATT_CONTENT_HEX = LT_MAILHEX. " CONTENT (BINARY)
CATCH CX_DOCUMENT_BCS INTO BCS_EXCEPTION.
ENDTRY.
*CREATE SEND REQUEST.
DATA(SEND_REQUEST) = CL_BCS=>CREATE_PERSISTENT( ).

*SET SUBJECT TO THE EMAIL.


TRY.
CALL METHOD SEND_REQUEST->SET_MESSAGE_SUBJECT
EXPORTING
IP_SUBJECT = LV_EMAILSUBJ. " SUBJECT OF EMAIL
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
*ADD DOCUMENT TO SEND REQUEST.
TRY.
CALL METHOD SEND_REQUEST->SET_DOCUMENT
EXPORTING
I_DOCUMENT = LS_DOCUMENT. " DOCUMENT TO BE
SENT
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
*SET SENDER EMAIL ADDRESS.
TRY.
DATA(SENDER) = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
I_ADDRESS_STRING = LV_SENDER ).
CATCH CX_ADDRESS_BCS INTO BCS_EXCEPTION.
ENDTRY.
TRY.
CALL METHOD SEND_REQUEST->SET_SENDER
EXPORTING
I_SENDER = SENDER.
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
*SET DISTRIBUTION LIST.
DATA(RECIPIENT01) = CL_DISTRIBUTIONLIST_BCS=>GETU_PERSISTENT(
I_DLINAME = LV_DISLIST
"DISTRIBUTION LIST
I_PRIVATE = ' '

).
CATCH CX_ADDRESS_BCS INTO BCS_EXCEPTION.
ENDTRY.
TRY.
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT01 " RECIPIENT OF
MESSAGE
I_EXPRESS = 'X'. " SEND AS EXPRESS
MESSAGE
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
*SET RECIPIENT EMAIL ADDRESS.
TRY.
DATA(RECIPIENT02) = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
I_ADDRESS_STRING = LV_RECEIVER ).
CATCH CX_ADDRESS_BCS INTO BCS_EXCEPTION.
ENDTRY.
TRY.
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT02 " RECIPIENT OF
MESSAGE
I_EXPRESS = 'X'. " SEND AS EXPRESS
MESSAGE
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
*SEND AN EMAIL.
TRY.
SEND_REQUEST->SET_SEND_IMMEDIATELY( I_SEND_IMMEDIATELY = 'X' ).
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
TRY.
CALL METHOD SEND_REQUEST->SEND
EXPORTING
I_WITH_ERROR_SCREEN = 'X' " TRANSMISSION LOG
BOOK IF ERRORS OCCUR
RECEIVING
RESULT = LV_RESULTS. " FLAG INDICATES
WHETHER DOCUMENT WAS SENT SUCCESSFULLY
CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION.
ENDTRY.
COMMIT WORK AND WAIT.
ENDTRY.
*PASSING RESULT OUTPUT TO THE SCREEN.
IF LV_RESULTS = 'X'.
WRITE:/ 'E-MAIL SENT SUCCESSFULLY'.
ELSE.
WRITE:/ 'E-MAIL NOT SENT'.
ENDIF.

You might also like