SAP ABAP 发邮件方法(OO)

转载 2015年07月10日 10:11:56
*&---------------------------------------------------------------------*
*& Report  ZSENDEMAIL08
*&
*&---------------------------------------------------------------------*

REPORT  zsendemail08.

CONSTANTS:
  gc_tab  TYPE c VALUE cl_bcs_convert=>gc_tab,  "CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
  gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf. "CL_ABAP_CHAR_UTILITIES=>CR_LF

PARAMETERS mailto TYPE ad_smtpadr DEFAULT 'justin.ding@usisz.com.cn'收件人

DATA send_request   TYPE REF TO cl_bcs.
DATA document       TYPE REF TO cl_document_bcs.
DATA recipient      TYPE REF TO if_recipient_bcs.
DATA bcs_exception  TYPE REF TO cx_bcs.

DATA main_text      TYPE bcsy_text.
DATA binary_content TYPE solix_tab.
DATA size           TYPE so_obj_len.
DATA sent_to_all    TYPE os_boolean.


START-OF-SELECTION.

  PERFORM create_content.
  PERFORM send.

*&---------------------------------------------------------------------*
*&      Form  create_content
*&---------------------------------------------------------------------*
Create Example Content
1) Write example text into string
2) convert this string to solix_tab
*----------------------------------------------------------------------*
FORM create_content.

  DATA lv_string TYPE string.
  DATA ls_t100   TYPE t100.

--------------------------------------------------------------
as example content we use some system messages out of t100
get them for all installed languages from db
and write one line for each language into the spread sheet
columns are separated by TAB and each line ends with CRLF

  CONCATENATE 'This Is Just Example Text!'
              gc_crlf gc_crlf
              INTO lv_string.

  DO 10 TIMES.
    CONCATENATE lv_string
                '1111111111111111111111111111111111111111111111111111111111111' gc_tab
                '2222222222222222222222222222222222222222222222222222222222222' gc_tab
                '3333333333333333333333333333333333333333333333333333333333333' gc_tab
                'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' gc_tab
                'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' gc_tab
                'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' gc_tab
                'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' gc_tab
                'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' gc_tab
                'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' gc_tab
                'ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg' gc_tab
                'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh' gc_tab
                'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' gc_tab
                'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj' gc_tab
                'kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' gc_crlf
                INTO lv_string.
  ENDDO.
--------------------------------------------------------------
convert the text string into UTF-16LE binary data including
byte-order-mark. Mircosoft Excel prefers these settings
all this is done by new class cl_bcs_convert (see note 1151257)

  TRY.
      cl_bcs_convert=>string_to_solix(
        EXPORTING
          iv_string   lv_string
          iv_codepage '4103'  "suitable for MS Excel, leave empty
          iv_add_bom  'X'     "for other doc types
        IMPORTING
          et_solix  binary_content
          ev_size   size ).
    CATCH cx_bcs.
      MESSAGE e445(so).
  ENDTRY.

ENDFORM                   "create_content

*---------------------------------------------------------------
NOTES:
*---------------------------------------------------------------
UTF-16LE including the BOM (Byte order mark)
is preferred by Microsoft Excel. If you want to create
other binary content you may choose another codepage (e.g.
'4110' (UTF-8) which is standard for e-mails).
Find SAP codepage names in the drop down list
for the codepage setting of node SMTP in transaction SCOT.
Or: leave iv_codepage and iv_add_bom empty. Then the target
codepage is set according to SAPconnect settings
*
Important:
SAP neither guarantees that the attachment created
by this report can be opened by all Excel Versions nor
that it can be opened by any 3rd party software at all

*&---------------------------------------------------------------------*
*&      Form  send
*&---------------------------------------------------------------------*
FORM send.

  TRY.

    -------- create persistent send request ------------------------
      send_request cl_bcs=>create_persistent( ).

    -------- create and set document with attachment ---------------
    create document object from internal table with text
      APPEND 'Hello world!' TO main_text.                   邮件内容
      document cl_document_bcs=>create_document(
        i_type    'RAW'
        i_text    main_text
        i_subject 'Test Created By BCS_EXAMPLE_7' ).      邮件主题名

    add the spread sheet as attachment to document object
      document->add_attachment(
        i_attachment_type    'xls'                        附件格式
        i_attachment_subject 'ExampleSpreadSheet'         attachment name
        i_attachment_size    size                         "附件大小
        i_att_content_hex    binary_content ).            "附件内容

    add document object to send request
      send_request->set_document( document ).

    --------- add recipient (e-mail address) -----------------------
    create recipient object
      recipient cl_cam_address_bcs=>create_internet_address( mailto ).

    add recipient object to send request
      send_request->add_recipient( recipient ).

    ---------- send document ---------------------------------------
      sent_to_all send_request->send( i_with_error_screen 'X' ).

      COMMIT WORK.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode 'INT'
                    WITH output 'X'
                    AND RETURN.
      IF sent_to_all IS INITIAL.
        MESSAGE i500(sbcoms) WITH mailto.
      ELSE.
        MESSAGE s022(so).
      ENDIF.
  ------------ exception handling ----------------------------------
  replace this rudimentary exception handling with your own one !!!
    CATCH cx_bcs INTO bcs_exception.
      MESSAGE i865(so) WITH bcs_exception->error_type.
  ENDTRY.

ENDFORM                   "send


举报

相关文章推荐

SAP ABAP实现发送邮件功能

TRY. *    创建发送请求       l_send_request = cl_bcs=>create_persistent( ). *  &...
  • lyb_yt
  • lyb_yt
  • 2013-07-26 14:05
  • 4251

SAP ABAP实现发送邮件功能 (oo)

文章转自 http://blog.csdn.net/lyb_yt/article/details/9495207   TRY. *    创建发送请求       l_send_reques...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

ABAP 发送邮件的两种方式

第一种:Call the FM to post the message to SAPMAIL, CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API...

ABAP实现发送外部邮件(添加附件)功能

ABAP实现发送外部邮件(添加附件)功能

ABAP 发邮件程序

*&---------------------------------------------------------------------* *& Report  ZZ_TEST *& *...

ABAP email發郵件 2

SAP可以把一些信息发到外部的Email地址,比如把PO的信息发送给供应商。实现这个事情主要的问题有两个:配置系统和写ABAP 配置系统:(这是470以上系统的配置,如果是47C或者以下,会用到RFC...

ABAP email發郵件 2

SAP可以把一些信息发到外部的Email地址,比如把PO的信息发送给供应商。实现这个事情主要的问题有两个:配置系统和写ABAP 配置系统:(这是470以上系统的配置,如果是47C或者以下,会用到RFC...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)