最近有一个需求-通过ABAP发送邮件到邮箱,使用了内部封装好的方式。 但是遇到了如下问题
在发送邮件的过程中,需要同时发送附件,附件要从本地上载,并转化为xstring的格式发送。
怎么上载附件?
通过两个function:WS_FILENAME_GET(选择文件上载目录)
GUI_UPLOAD(上载文件)。
DATA:LV_FILE TYPE STRINT.
DATA:BEGIN OF LS_XDATA,
RAW TYPE XSTRING LENGTH 255,
END OF LS_XDATA,
LT_XDATA LIKE TABLE OF LS_XDATA.
DATA:LV_XDATA TYPE XSTRING.
CLEAR:LV_FILE,LV_XDATA,LS_XDATA,LT_XDATA[]
CALL FUNCTION 'WS_FILENAME_GET'
IMPORTING
FILENAME = LV_FILE
EXCEPTION
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CHECK LV_FILE IS NOT INITIAL.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTION
FILENAME = LV_FILE
FILETYPE = 'BIN'
TABLES
DATA_TAB = LT_XDATA.
LOOP AT LT_XDATA INTO LS_XDATA.
CONCATANATE LV_XDATA LS_XDATA-RAW INTO LV_XDATA IN BYTE MODE.
CLEAR LS_XDATA.
ENDLOOP.
LV_XDATA 就是最终得到的XSTRING。