SAP ABAP使用SO_NEW_DOCUMENT_ATT_SEND_API1带附件发送邮件

7 篇文章 0 订阅

1、使用实例

参数说明:

DOCUMENT_DATA  邮件属性

PUT_IN_OUTBOX    发送后将文档移动到发件箱

COMMIT_WORK      提交事务

PACKING_LIST        数据结构信息

CONTENTS_BIN      文件二进制数据

CONTENTS_TXT     邮件内容

RECEIVERS             收件人

DATA: GS_DOC_DATA TYPE SODOCCHGI1,
      GV_LINES_TXT TYPE I,
      GT_PACKING_LIST TYPE STANDARD TABLE OF SOPCKLSTI1,
      GS_PACKING_LIST TYPE SOPCKLSTI1,
      GT_OBJECT_HEADER TYPE STANDARD TABLE OF SOLISTI1,
      GS_OBJECT_HEADER TYPE SOLISTI1,
      GT_CONTENTS_BIN TYPE STANDARD TABLE OF SOLISTI1,
      GS_CONTENTS_BIN TYPE SOLISTI1,
      GT_CONTENTS_TXT TYPE STANDARD TABLE OF SOLISTI1,
      GS_CONTENTS_TXT TYPE SOLISTI1,
      GT_RECEIVERS TYPE STANDARD TABLE OF SOMLRECI1,
      GS_RECEIVERS TYPE SOMLRECI1,
      GV_START_POS  TYPE I,
      GV_OFFSET_POS TYPE I,
      GV_CONTENT_EXIST TYPE C.

GS_DOC_DATA-OBJ_NAME = 'TEXT'.
GS_DOC_DATA-SENSITIVTY = 'O'.
GS_DOC_DATA-OBJ_DESCR = '标题'.

CONCATENATE '<TABLE BORDER="1">' '<TR>'
              '<TD>' 'CONTENT1' '</TD>'
              '<TD>' 'CONTENT2' '</TD>'
              '</TR>' '</TABLE>'
              INTO GS_CONTENTS_TXT.
APPEND GS_CONTENTS_TXT TO GT_CONTENTS_TXT.


DESCRIBE TABLE GT_CONTENTS_TXT LINES GV_LINES_TXT.
READ TABLE GT_CONTENTS_TXT INTO GS_CONTENTS_TXT  INDEX GV_LINES_TXT.
GS_DOC_DATA-DOC_SIZE = GV_LINES_TXT * 255.

CLEAR:GS_PACKING_LIST-TRANSF_BIN.
GS_PACKING_LIST-TRANSF_BIN = SPACE.
GS_PACKING_LIST-HEAD_START = 1.
GS_PACKING_LIST-HEAD_NUM = 0.
GS_PACKING_LIST-BODY_START = 1.
GS_PACKING_LIST-BODY_NUM = GV_LINES_TXT.
GS_PACKING_LIST-DOC_TYPE = 'HTM'. "RAW
APPEND GS_PACKING_LIST TO GT_PACKING_LIST.

*收件人
CLEAR:GT_RECEIVERS,GS_RECEIVERS.
GS_RECEIVERS-RECEIVER = 'XXX@XXX.COM'."EMAIL ADDRESS
GS_RECEIVERS-EXPRESS = 'X'.
GS_RECEIVERS-REC_TYPE = 'U'.
GS_RECEIVERS-COPY = ''."是否抄送
APPEND GS_RECEIVERS TO GT_RECEIVERS.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
  DOCUMENT_DATA              = GS_DOC_DATA
  PUT_IN_OUTBOX              = 'X'
  COMMIT_WORK                = 'X'
TABLES
  PACKING_LIST               = GT_PACKING_LIST
  OBJECT_HEADER              = GT_OBJECT_HEADER
  CONTENTS_BIN               = GT_CONTENTS_BIN
  CONTENTS_TXT               = GT_CONTENTS_TXT
  RECEIVERS                  = GT_RECEIVERS
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.
  WAIT UP TO 2 SECONDS.
  SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
ENDIF.

2、注意事项

1、PACKING_LIST-DOC_TYPE为HTM时邮件内容以html超文本形式,为RAW时邮件内容以普通文本形式

2、DOCUMENT_DATA-SENSITIVTY为文件灵敏度,域固定值有所有灵敏选项

3、SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.可手动触发立即发送邮件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值