ABAB发邮件 例子3 -发邮件(带添附文件) * PDF File create by SMARTFORMS


★★Send Mail with Attachment PDF File★★

* PDF File create by SMARTFORMS
DATA:LV_FMNAME TYPE RS38L_FNAM,
LS_CTRLOP TYPE SSFCTRLOP,
LS_COMPOP TYPE SSFCOMPOP,
LS_RETURN TYPE SSFCRESCL,
LS_INFO TYPE SSFCRESCL,
LS_OPTIONS TYPE SSFCRESOP.

"Attachment File Detail
DATA:LT_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
LT_TLINE TYPE TLINE OCCURS 0 WITH HEADER LINE,
LT_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

"Mail Setting Detail
DATA:LV_SIZE TYPE I, "Attachment File Size
LV_LINES_TXT TYPE I, "Mail Text Lines
LV_LINES_BIN TYPE I, "Attachment File Lines
LV_BENFILE TYPE XSTRING,
LV_OBJECT TYPE CHAR50, "Mail Title
LV_PDFNAME TYPE CHAR50,
GT_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE, "Mail Text + Attachment File
GT_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, "Mail Text Detail
GT_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, "Attachment File Detail
GT_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE, "Receiver
LS_DOC_CHNG TYPE SODOCCHGI1. "Mail Attributes

"Output Control
LS_CTRLOP-NO_OPEN = ‘X’.
LS_CTRLOP-NO_CLOSE = ‘X’.
LS_CTRLOP-GETOTF = ‘X’.
LS_CTRLOP-LANGU = ‘1’.
LS_CTRLOP-NO_DIALOG = ‘X’.

*LS_COMPOP-TDNOPREV = ‘X’.

CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING
FORMNAME = ‘ZSMARTFORMS_TEST1’
IMPORTING
FM_NAME = LV_FMNAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL FUNCTION ‘SSF_OPEN’
EXPORTING
OUTPUT_OPTIONS = LS_COMPOP
CONTROL_PARAMETERS = LS_CTRLOP
USER_SETTINGS = ‘X’
IMPORTING
JOB_OUTPUT_OPTIONS = LS_OPTIONS
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL FUNCTION LV_FMNAME
EXPORTING
OUTPUT_OPTIONS = LS_COMPOP
CONTROL_PARAMETERS = LS_CTRLOP
USER_SETTINGS = ’ ’
IV_RDATE = ‘20130504’
IV_CURR = ‘VND’
IV_BUKRS = VG_BUKRS
IV_LANGU = sy-langu
IV_DATE_TO = ‘99991231’

  • IMPORTING
  • job_output_info = gwa_result

IMPORTING
JOB_OUTPUT_INFO = LS_RETURN
TABLES
IT_DATA = IT_DATA
IT_WAERS = IT_WAERS
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
ENDIF.

CALL FUNCTION ‘SSF_CLOSE’
IMPORTING
JOB_OUTPUT_INFO = LS_INFO
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
APPEND LINES OF LS_INFO-OTFDATA TO LT_OTF.
ENDIF.

CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
FORMAT = ‘PDF’
PDF_USERNAME = ‘TIANCZ’
IMPORTING
BIN_FILESIZE = LV_SIZE
BIN_FILE = LV_BENFILE
TABLES
OTF = LT_OTF
LINES = LT_TLINE
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF LV_BENFILE IS NOT INITIAL.
CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’
EXPORTING
BUFFER = LV_BENFILE
IMPORTING
OUTPUT_LENGTH = LV_SIZE
TABLES
BINARY_TAB = LT_RECORD.
ENDIF.

REFRESH:GT_RECLIST,GT_OBJTXT,GT_OBJBIN,GT_OBJPACK.
CLEAR: LS_DOC_CHNG.

"Convert File to Attachment File
APPEND LINES OF LT_RECORD TO GT_OBJBIN.

"Add Mail Text in Mail
GT_OBJTXT = ‘’.
APPEND GT_OBJTXT.

GT_OBJTXT = ‘Test Email with a Attachment File’.
APPEND GT_OBJTXT.
GT_OBJTXT = ’ '.
APPEND GT_OBJTXT.
GT_OBJTXT = ‘Gung Lee’.
APPEND GT_OBJTXT.

"Mail Text Lines
LV_LINES_TXT = LINES( GT_OBJTXT ).

LV_OBJECT = ‘Send SMARTFORMS with a Attachment File’.
LV_PDFNAME = ‘SMARTFORMS.pdf’.

LS_DOC_CHNG-OBJ_LANGU = SY-LANGU.
LS_DOC_CHNG-OBJ_NAME = ‘Email’.
LS_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.
LS_DOC_CHNG-OBJ_DESCR = LV_OBJECT. "Mail Title
LS_DOC_CHNG-SENSITIVTY = ‘F’.
LS_DOC_CHNG-DOC_SIZE = LV_LINES_TXT * 255 + LV_SIZE.
LS_DOC_CHNG-PRIORITY = ‘1’.

CLEAR GT_OBJPACK-TRANSF_BIN.
GT_OBJPACK-HEAD_START = 1.
GT_OBJPACK-HEAD_NUM = 0.
GT_OBJPACK-BODY_START = 1.
GT_OBJPACK-BODY_NUM = LV_LINES_TXT.
GT_OBJPACK-DOC_TYPE = ‘RAW’.
APPEND GT_OBJPACK.

CLEAR:LV_LINES_BIN.
GT_OBJPACK-TRANSF_BIN = ‘X’.
GT_OBJPACK-HEAD_START = 1.
GT_OBJPACK-HEAD_NUM = 1.
GT_OBJPACK-BODY_START = 1.

LV_LINES_BIN = LINES( LT_RECORD ).

GT_OBJPACK-DOC_SIZE = LV_SIZE .
GT_OBJPACK-BODY_NUM = LV_LINES_BIN.
GT_OBJPACK-DOC_TYPE = ‘PDF’.
GT_OBJPACK-OBJ_NAME = ‘PO’.
GT_OBJPACK-OBJ_DESCR = LV_PDFNAME.
APPEND GT_OBJPACK.

GT_RECLIST-RECEIVER = ‘gunglee1@xxx.com’."Receiver Mail Address 1
GT_RECLIST-REC_TYPE = ‘U’.
APPEND GT_RECLIST.
GT_RECLIST-RECEIVER = ‘gunglee2@xxx.com’."Receiver Mail Address 2
GT_RECLIST-REC_TYPE = ‘U’.
APPEND GT_RECLIST.

CALL FUNCTION ‘SO_NEW_DOCUMENT_ATT_SEND_API1’
EXPORTING
DOCUMENT_DATA = LS_DOC_CHNG " Mail Attributes
PUT_IN_OUTBOX = ‘’
COMMIT_WORK = ‘X’
TABLES
PACKING_LIST = GT_OBJPACK " Mail Text
CONTENTS_BIN = GT_OBJBIN " Attachment File BIN
CONTENTS_TXT = GT_OBJTXT " Mail text insert Directly
RECEIVERS = GT_RECLIST " Receiver Mail Address
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.

IF SY-SUBRC = 0.
COMMIT WORK.
MESSAGE ‘send mail successful!’ TYPE ‘S’.
WAIT UP TO 5 SECONDS.
SUBMIT RSCONN01 WITH MODE = ‘INT’
AND RETURN.
ELSE.
MESSAGE ‘send mail as an error!’ TYPE ‘S’.
ENDIF.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值