*&---------------------------------------------------------------------*
*& Form FRM_SENDMAIL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM FRM_SENDMAIL .
DATA: LV_DOCUMENT_DATA TYPE SODOCCHGI1,
GT_CONTENT_TXT TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
GT_PACKING_LIST TYPE TABLE OF SOPCKLSTI1 WITH HEADER LINE,
GT_RECEIVERS TYPE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
LC_MAIL_ATTACH TYPE STRING,
GT_CONTENT_HEX TYPE STANDARD TABLE OF SOLIX WITH HEADER LINE,
GT_OBJECT_HEADER TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
LC_MAIL_XATTACH TYPE XSTRING,
LV_SENT_TO_ALL TYPE C,
IT_MAKT LIKE TABLE OF MAKT WITH HEADER LINE,
FIR_DATE TYPE SY-DATUM,
MIMETYPE TYPE CHAR64.
DATA: IT_ITAB TYPE TABLE OF ITAB WITH HEADER LINE,
WA_ITAB TYPE ITAB.
CONSTANTS:LC_TAB TYPE C VALUE CL_BCS_CONVERT=>GC_TAB,
LC_CTRL TYPE C VALUE CL_BCS_CONVERT=>GC_CRLF.
DATA SY_VLINE TYPE I.
DATA:
BUKRS TYPE STRING,
MATNR_MJ TYPE STRING,
EXTWG TYPE STRING,
ERSDA TYPE STRING,
ZMCQS TYPE STRING,
ZMJQS TYPE STRING,
ZMCCN TYPE STRING,
ZMJDM TYPE STRING,
ZBRAN TYPE STRING,
ZTEXT TYPE STRING,
ZCNDW TYPE STRING,
MJCSM TYPE STRING,
MSMRQ TYPE STRING,
MJYSM1 TYPE STRING,
MSMRQ1 TYPE STRING,
MJYSM2 TYPE STRING,
MSMRQ2 TYPE STRING,
MJYSM3 TYPE STRING,
MSMRQ3 TYPE STRING,
MENGE TYPE STRING,
ZYUPS TYPE STRING,
ZFLAG1 TYPE STRING,
MJCSM_LJ TYPE STRING,
MJCSY_PS TYPE STRING,
MJCSY_SL TYPE STRING,
MATNR_CP TYPE STRING,
MAKTX TYPE STRING,
MJCCP_SL TYPE STRING,
NETWR TYPE STRING,
ZFLAG TYPE STRING,
BUDAT_MKPF TYPE STRING
.
CLEAR GT_ZTMM16[].
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_ZTMM16 FROM ZTMM16
WHERE BUKRS = P_BUKRS
AND ZBRAN IN S_ZBRAN
.
IF GT_ZTMM16[] IS NOT INITIAL.
LV_DOCUMENT_DATA-OBJ_DESCR = '模具管理报表' .
LV_DOCUMENT_DATA-PRIORITY = '1'.
LV_DOCUMENT_DATA-OBJ_NAME = 'OFFER'.
LV_DOCUMENT_DATA-OBJ_LANGU = SY-LANGU.
* ****邮件正文信息
GT_CONTENT_TXT = '各位:'.
APPEND GT_CONTENT_TXT.
GT_CONTENT_TXT = ' '.
APPEND GT_CONTENT_TXT.
GT_CONTENT_TXT = '附件模具寿命已到期或即将到期,请及时处理!'.
APPEND GT_CONTENT_TXT.
GT_CONTENT_TXT = ' '.
APPEND GT_CONTENT_TXT.
GT_CONTENT_TXT = ''.
APPEND GT_CONTENT_TXT.
GT_CONTENT_TXT = 'Thanks and regards,'.
APPEND GT_CONTENT_TXT.
DESCRIBE TABLE GT_CONTENT_TXT LINES SY_VLINE.
LV_DOCUMENT_DATA-DOC_SIZE = 255 * ( SY_VLINE - 1 ) + STRLEN( GT_CONTENT_TXT ).
GT_PACKING_LIST-TRANSF_BIN = SPACE.
GT_PACKING_LIST-HEAD_START = 1.
GT_PACKING_LIST-HEAD_NUM = 0 .
GT_PACKING_LIST-BODY_NUM = SY_VLINE.
GT_PACKING_LIST-BODY_START = 1.
GT_PACKING_LIST-DOC_TYPE = 'RAW'.
APPEND GT_PACKING_LIST.
***收件人信息
LOOP AT GT_ZTMM16.
GT_RECEIVERS-RECEIVER = GT_ZTMM16-TELBX .
GT_RECEIVERS-REC_TYPE = 'U'.
GT_RECEIVERS-NOTIF_READ = 'X'.
GT_RECEIVERS-COM_TYPE = 'INT'.
GT_RECEIVERS-NOTIF_DEL = 'X'.
GT_RECEIVERS-NOTIF_NDEL = 'X'.
APPEND GT_RECEIVERS.
CLEAR GT_RECEIVERS.
CLEAR GT_ZTMM16.
ENDLOOP.
LOOP AT GT_DATA.
AT FIRST.
CONCATENATE
'模具所在公司' LC_TAB
'模具编号' LC_TAB
'系列' LC_TAB
'模具创建日期' LC_TAB
'模具产品腔数' LC_TAB
'模具腔数' LC_TAB
'产能' LC_TAB
'模具简码' LC_TAB
'部门' LC_TAB
'部门描述' LC_TAB
'产能单位' LC_TAB
'模具设计寿命(啤数)' LC_TAB
'初始设计寿命日期' LC_TAB
'模具延长设计寿命1(啤数)' LC_TAB
'延长设计寿命1日期' LC_TAB
'模具延长设计寿命2(啤数)' LC_TAB
'延长设计寿命2日期' LC_TAB
'模具延长设计寿命3(啤数)' LC_TAB
'延长设计寿命3日期' LC_TAB
'累计数量(2019年11月1号之后)' LC_TAB
'期初已使用啤数' LC_TAB
'模具是否归属客户' LC_TAB
'模具累计生产啤数' LC_TAB
'剩余寿命(啤数)' LC_TAB
'剩余寿命(数量)' LC_TAB
'产品编码' LC_TAB
'产品名称' LC_TAB
'模具对应物料总计划数量' LC_TAB
'模具累计生产啤数占比(%)' LC_TAB
'不启用标识' LC_TAB
'最后一次使用日期' LC_CTRL
INTO LC_MAIL_ATTACH.
ENDAT.
CLEAR BUKRS .
CLEAR MATNR_MJ .
CLEAR EXTWG .
CLEAR ERSDA .
CLEAR ZMCQS .
CLEAR ZMJQS .
CLEAR ZMCCN .
CLEAR ZMJDM .
CLEAR ZBRAN .
CLEAR ZTEXT .
CLEAR ZCNDW .
CLEAR MJCSM .
CLEAR MSMRQ .
CLEAR MJYSM1 .
CLEAR MSMRQ1 .
CLEAR MJYSM2 .
CLEAR MSMRQ2 .
CLEAR MJYSM3 .
CLEAR MSMRQ3 .
CLEAR MENGE .
CLEAR ZYUPS .
CLEAR ZFLAG1 .
CLEAR MJCSM_LJ .
CLEAR MJCSY_PS .
CLEAR MJCSY_SL .
CLEAR MATNR_CP .
CLEAR MAKTX .
CLEAR MJCCP_SL .
CLEAR NETWR .
CLEAR ZFLAG .
CLEAR BUDAT_MKPF .
BUKRS = GT_DATA-BUKRS .
MATNR_MJ = GT_DATA-MATNR_MJ .
EXTWG = GT_DATA-EXTWG .
ERSDA = GT_DATA-ERSDA .
ZMCQS = GT_DATA-ZMCQS .
ZMJQS = GT_DATA-ZMJQS .
ZMCCN = GT_DATA-ZMCCN .
ZMJDM = GT_DATA-ZMJDM .
ZBRAN = GT_DATA-ZBRAN .
ZTEXT = GT_DATA-ZTEXT .
ZCNDW = GT_DATA-ZCNDW .
MJCSM = GT_DATA-MJCSM .
MSMRQ = GT_DATA-MSMRQ .
MJYSM1 = GT_DATA-MJYSM1 .
MSMRQ1 = GT_DATA-MSMRQ1 .
MJYSM2 = GT_DATA-MJYSM2 .
MSMRQ2 = GT_DATA-MSMRQ2 .
MJYSM3 = GT_DATA-MJYSM3 .
MSMRQ3 = GT_DATA-MSMRQ3 .
MENGE = GT_DATA-MENGE .
ZYUPS = GT_DATA-ZYUPS .
ZFLAG1 = GT_DATA-ZFLAG1 .
MJCSM_LJ = GT_DATA-MJCSM_LJ .
MJCSY_PS = GT_DATA-MJCSY_PS .
MJCSY_SL = GT_DATA-MJCSY_SL .
MATNR_CP = GT_DATA-MATNR_CP .
MAKTX = GT_DATA-MAKTX .
MJCCP_SL = GT_DATA-MJCCP_SL .
NETWR = GT_DATA-NETWR .
ZFLAG = GT_DATA-ZFLAG .
BUDAT_MKPF = GT_DATA-BUDAT_MKPF .
CONCATENATE LC_MAIL_ATTACH
BUKRS LC_TAB
MATNR_MJ LC_TAB
EXTWG LC_TAB
ERSDA LC_TAB
ZMCQS LC_TAB
ZMJQS LC_TAB
ZMCCN LC_TAB
ZMJDM LC_TAB
ZBRAN LC_TAB
ZTEXT LC_TAB
ZCNDW LC_TAB
MJCSM LC_TAB
MSMRQ LC_TAB
MJYSM1 LC_TAB
MSMRQ1 LC_TAB
MJYSM2 LC_TAB
MSMRQ2 LC_TAB
MJYSM3 LC_TAB
MSMRQ3 LC_TAB
MENGE LC_TAB
ZYUPS LC_TAB
ZFLAG1 LC_TAB
MJCSM_LJ LC_TAB
MJCSY_PS LC_TAB
MJCSY_SL LC_TAB
MATNR_CP LC_TAB
MAKTX LC_TAB
MJCCP_SL LC_TAB
NETWR LC_TAB
ZFLAG LC_TAB
BUDAT_MKPF LC_CTRL
INTO LC_MAIL_ATTACH.
CLEAR GT_DATA .
ENDLOOP.
MIMETYPE = 'APPLICATION/MSEXCEL;CHARSET=UTF-16LE'.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = LC_MAIL_ATTACH
MIMETYPE = MIMETYPE
* ENCODING =
IMPORTING
BUFFER = LC_MAIL_XATTACH
EXCEPTIONS
FAILED = 1
OTHERS = 2.
IF SY-SUBRC = 0.
CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE LC_MAIL_XATTACH INTO LC_MAIL_XATTACH IN BYTE MODE.
ENDIF.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = LC_MAIL_XATTACH
* APPEND_TO_TABLE = ' '
* IMPORTING
* OUTPUT_LENGTH =
TABLES
BINARY_TAB = GT_CONTENT_HEX.
GT_OBJECT_HEADER = '寿命到期模具'.
APPEND GT_OBJECT_HEADER.
DESCRIBE TABLE GT_CONTENT_HEX LINES SY_VLINE.
GT_PACKING_LIST-TRANSF_BIN = 'X'.
GT_PACKING_LIST-HEAD_START = 1 .
GT_PACKING_LIST-HEAD_NUM = 0 .
GT_PACKING_LIST-BODY_START = 1.
GT_PACKING_LIST-BODY_NUM = SY_VLINE.
GT_PACKING_LIST-DOC_TYPE = 'XLS'.
GT_PACKING_LIST-DOC_SIZE = SY_VLINE * 255.
GT_PACKING_LIST-OBJ_NAME = '寿命到期模具'.
GT_PACKING_LIST-OBJ_DESCR = GT_PACKING_LIST-OBJ_NAME.
APPEND GT_PACKING_LIST.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = LV_DOCUMENT_DATA
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
IMPORTING
SENT_TO_ALL = LV_SENT_TO_ALL
* NEW_OBJECT_ID =
TABLES
PACKING_LIST = GT_PACKING_LIST[]
OBJECT_HEADER = GT_OBJECT_HEADER[]
* CONTENTS_BIN =
CONTENTS_TXT = GT_CONTENT_TXT[]
CONTENTS_HEX = GT_CONTENT_HEX[]
* OBJECT_PARA =
* OBJECT_PARB =
RECEIVERS = GT_RECEIVERS[]
EXCEPTIONS
* TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 1
* DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
ENQUEUE_ERROR = 5
OTHERS = 6.
ENDIF.
ENDFORM.
ABAP发送邮件(含EXCEl附件)
最新推荐文章于 2024-04-18 14:47:58 发布