SAP在开发程序中有很多地方会使用自动发送邮件功能,有时会发送文本通知,有时会将报表内容作为附件发送给接收者。今天说一下邮件正文怎么使用模板来实现。
执行事务码SO10,新创建对象ZXXX
文本里的参数需要在主程序中定义。在编辑邮件正文的逻辑里,使用以下代码,即可得到邮件正文。
DATA: LS_HEADER TYPE THEAD,
LT_TXT TYPE TLINE OCCURS 0 WITH HEADER LINE.
DATA: LV_LINES TYPE SY-TABIX.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'ST'
LANGUAGE = '1' "sy-langu
NAME = 'ZMMT_PO_MAIL'
OBJECT = 'TEXT'
IMPORTING
HEADER = LS_HEADER
TABLES
LINES = LT_TXT
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
CLEAR: LV_LINES.
LV_LINES = LINES( LT_TXT ).
CALL FUNCTION 'TEXT_SYMBOL_REPLACE'
EXPORTING
ENDLINE = LV_LINES
HEADER = LS_HEADER
PROGRAM = SY-REPID
TABLES
LINES = LT_TXT.
DATA: L_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
LOOP AT LT_TXT.
REPLACE ALL OCCURRENCES OF ',,' IN LT_TXT-TDLINE WITH L_TAB IN CHARACTER MODE .
IF SY-SUBRC = 0.
CONCATENATE ' ' LT_TXT-TDLINE INTO I_OBJTXT.
ELSE.
I_OBJTXT = LT_TXT-TDLINE.
ENDIF.
APPEND I_OBJTXT.
CLEAR I_OBJTXT.
ENDLOOP.
如果需要在正文插入表格,或者字体样式有要求,或插入超链接等情况,可以使用SMW0里上载HTML文件来实现。
PS:喜欢的同学可以关注微信公众号