12-08-2014 4:47 AM
Hi All,
I have a requirement to send table with 15 fields in email body.
I need the step by step details to send table in email body.
Also is there any limitation on length or no. of fields which can be sent in email body?
Thanks.
Regards,
Sanjana
12-08-2014 6:58 AM
Hi,
find below code
MOVE '<body style="background-color: #D7ECF3;">' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<BR>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CLEAR GS_OBJTXT.
CONCATENATE text-011 '<BR><BR>'
text-012 '.<BR><BR>' INTO GS_OBJTXT-LINE SEPARATED BY space.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE gv_tot_cnt to gv_rec_cnt.
CONCATENATE Text-001 gs_files-fname '<BR><BR>Total Record(s):' gv_rec_cnt '<BR><BR>'"'<BR><BR>Data Error Record(s):' gv_err_rec_cnt
INTO GS_OBJTXT-LINE SEPARATED BY space.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TABLE BORDER=2>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TR style="background-color: #96A5AA;"> <TH> Pernr </TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Employee ID </TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> First Name</TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Last Name </TH>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Status Message </TH>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
LOOP AT GT_ERR_LOG INTO GS_ERR_LOG.
if GS_ERR_LOG-ERR_PERNR is NOT INITIAL.
CONCATENATE '<TR> <TD>' GS_ERR_LOG-ERR_PERNR '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ELSE.
MOVE '<TR> <TD></TD>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ENDIF.
CONCATENATE '<TD>' GS_ERR_LOG-EMPNO '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-FIRST_NAME '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-LAST_NAME '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-ERR_MSG '</TD></TR>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ENDLOOP.
MOVE '</TABLE>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CLEAR GS_OBJTXT.
CONCATENATE '<BR>' text-013 '<BR>'
text-018 INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<BR><BR>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
* MOVE ' <TABLE><TH>*** This is an auto generated mail from SAP-HCM, Do not reply ***</TH><TH></TH><TH></TH><TH></TH><TH></TH></TABLE>' TO GS_OBJTXT-LINE.
CONCATENATE '<TABLE><TH>*** This is an auto generated mail from ' sy-sysid sy-mandt 'system, Do not reply ***</TH><TH></TH><TH></TH><TH></TH><TH></TH></TABLE>' INTO GS_OBJTXT-LINE SEPARATED BY space..
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE TEXT-015 TO GS_DOCDATA-OBJ_DESCR.
GS_DOCDATA-SENSITIVTY = 'F'.
DESCRIBE TABLE GT_OBJTXT LINES GV_LINES.
IF NOT GV_LINES IS INITIAL.
GS_DOCDATA-DOC_SIZE = GV_LINES * 255.
ENDIF.
CLEAR GS_OBJPACK.
GS_OBJPACK-TRANSF_BIN = ''.
GS_OBJPACK-HEAD_START = 1.
GS_OBJPACK-HEAD_NUM = 0.
GS_OBJPACK-BODY_START = 1.
GS_OBJPACK-BODY_NUM = GV_LINES.
GS_OBJPACK-DOC_TYPE = 'HTM'.
GS_OBJPACK-DOC_SIZE = ( GV_LINES - 1 ) * 255 + STRLEN( GS_OBJTXT ).
APPEND GS_OBJPACK TO GT_OBJPACK.
if MAIL_REC is NOT INITIAL.
* GS_RECEIVER-RECEIVER = p_mail1.
* GS_RECEIVER-REC_TYPE = 'U'.
* APPEND GS_RECEIVER TO GT_RECEIVER.
* ENDIF.
Loop at MAIL_REC.
gs_receiver-receiver = mail_rec-low.
gs_receiver-rec_type = 'U'.
gs_receiver-com_type = c_comtyp_int.
APPEND gs_receiver TO gt_receiver.
CLEAR gs_receiver.
Endloop.
ENDIF.
* if p_mail2 is NOT INITIAL.
* GS_RECEIVER-RECEIVER = p_mail2.
* GS_RECEIVER-REC_TYPE = 'U'.
* APPEND GS_RECEIVER TO GT_RECEIVER.
* ENDIF.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = GS_DOCDATA
* put_in_outbox = c_x
COMMIT_WORK = C_X
IMPORTING
SENT_TO_ALL = GV_SENTALL
NEW_OBJECT_ID = GV_NOBJID
TABLES
PACKING_LIST = GT_OBJPACK[]
* OBJECT_HEADER =
* CONTENTS_BIN = gt_contents
CONTENTS_TXT = GT_OBJTXT[]
* CONTENTS_HEX = gt_contents_hex
RECEIVERS = GT_RECEIVER[]
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
.
Regards,
Rajesh K
12-08-2014 4:53 AM
Sanjana,
May be you can explore on sending the table data with all the required fields as attachment instead of putting the data as body of the email.
K.Kiran.
12-08-2014 5:05 AM
Hi Sanjana,
We wont be able to Create a table in E-mail body as we create in our report programs. You have to manually create the table concatenating "_" and '|" . i think we have display length restriction of 255 Char. So it is better to go with an attachment rather than having it in mail body.
Thanks!!
Suvarnamathy R
12-08-2014 5:16 AM
Hi Sanjana,
Maybe below link will be helpful for you.
Mails from SAP to external mail id with HTML formatting - Code Gallery - SCN Wiki
There are many other discussions done on the same topic in the forum.
Regards,
~Athreya
12-08-2014 5:24 AM
Hi,
Thanks for the reply,
Is there any link for sample program to send table in email body? I am new to this HTML functionality.
Thanks.
Regards,
Sanjana
12-08-2014 5:28 AM
Hello Sanjana,
Look into the below links, which may be helpful for you.
http://scn.sap.com/thread/3200685
http://scn.sap.com/thread/1254294
http://wiki.scn.sap.com/wiki/display/Snippets/Send+Email+in+HTML+format++from+SAP
Regards
Manasa.
12-08-2014 5:58 AM
Hello Sanjana,
You can check the program BCS_EXAMPLE_6.
In this example internal table data is get converted to pdf attachment and sending the email to the concern person.
12-08-2014 6:58 AM
Hi,
find below code
MOVE '<body style="background-color: #D7ECF3;">' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<BR>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CLEAR GS_OBJTXT.
CONCATENATE text-011 '<BR><BR>'
text-012 '.<BR><BR>' INTO GS_OBJTXT-LINE SEPARATED BY space.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE gv_tot_cnt to gv_rec_cnt.
CONCATENATE Text-001 gs_files-fname '<BR><BR>Total Record(s):' gv_rec_cnt '<BR><BR>'"'<BR><BR>Data Error Record(s):' gv_err_rec_cnt
INTO GS_OBJTXT-LINE SEPARATED BY space.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TABLE BORDER=2>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TR style="background-color: #96A5AA;"> <TH> Pernr </TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Employee ID </TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> First Name</TH> ' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Last Name </TH>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<TH> Status Message </TH>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
LOOP AT GT_ERR_LOG INTO GS_ERR_LOG.
if GS_ERR_LOG-ERR_PERNR is NOT INITIAL.
CONCATENATE '<TR> <TD>' GS_ERR_LOG-ERR_PERNR '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ELSE.
MOVE '<TR> <TD></TD>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ENDIF.
CONCATENATE '<TD>' GS_ERR_LOG-EMPNO '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-FIRST_NAME '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-LAST_NAME '</TD>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CONCATENATE '<TD>' GS_ERR_LOG-ERR_MSG '</TD></TR>' INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
ENDLOOP.
MOVE '</TABLE>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
CLEAR GS_OBJTXT.
CONCATENATE '<BR>' text-013 '<BR>'
text-018 INTO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE '<BR><BR>' TO GS_OBJTXT-LINE.
APPEND GS_OBJTXT TO GT_OBJTXT.
* MOVE ' <TABLE><TH>*** This is an auto generated mail from SAP-HCM, Do not reply ***</TH><TH></TH><TH></TH><TH></TH><TH></TH></TABLE>' TO GS_OBJTXT-LINE.
CONCATENATE '<TABLE><TH>*** This is an auto generated mail from ' sy-sysid sy-mandt 'system, Do not reply ***</TH><TH></TH><TH></TH><TH></TH><TH></TH></TABLE>' INTO GS_OBJTXT-LINE SEPARATED BY space..
APPEND GS_OBJTXT TO GT_OBJTXT.
MOVE TEXT-015 TO GS_DOCDATA-OBJ_DESCR.
GS_DOCDATA-SENSITIVTY = 'F'.
DESCRIBE TABLE GT_OBJTXT LINES GV_LINES.
IF NOT GV_LINES IS INITIAL.
GS_DOCDATA-DOC_SIZE = GV_LINES * 255.
ENDIF.
CLEAR GS_OBJPACK.
GS_OBJPACK-TRANSF_BIN = ''.
GS_OBJPACK-HEAD_START = 1.
GS_OBJPACK-HEAD_NUM = 0.
GS_OBJPACK-BODY_START = 1.
GS_OBJPACK-BODY_NUM = GV_LINES.
GS_OBJPACK-DOC_TYPE = 'HTM'.
GS_OBJPACK-DOC_SIZE = ( GV_LINES - 1 ) * 255 + STRLEN( GS_OBJTXT ).
APPEND GS_OBJPACK TO GT_OBJPACK.
if MAIL_REC is NOT INITIAL.
* GS_RECEIVER-RECEIVER = p_mail1.
* GS_RECEIVER-REC_TYPE = 'U'.
* APPEND GS_RECEIVER TO GT_RECEIVER.
* ENDIF.
Loop at MAIL_REC.
gs_receiver-receiver = mail_rec-low.
gs_receiver-rec_type = 'U'.
gs_receiver-com_type = c_comtyp_int.
APPEND gs_receiver TO gt_receiver.
CLEAR gs_receiver.
Endloop.
ENDIF.
* if p_mail2 is NOT INITIAL.
* GS_RECEIVER-RECEIVER = p_mail2.
* GS_RECEIVER-REC_TYPE = 'U'.
* APPEND GS_RECEIVER TO GT_RECEIVER.
* ENDIF.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = GS_DOCDATA
* put_in_outbox = c_x
COMMIT_WORK = C_X
IMPORTING
SENT_TO_ALL = GV_SENTALL
NEW_OBJECT_ID = GV_NOBJID
TABLES
PACKING_LIST = GT_OBJPACK[]
* OBJECT_HEADER =
* CONTENTS_BIN = gt_contents
CONTENTS_TXT = GT_OBJTXT[]
* CONTENTS_HEX = gt_contents_hex
RECEIVERS = GT_RECEIVER[]
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
.
Regards,
Rajesh K
12-08-2014 7:54 AM