Abap SendMail Function

      最近发现一个用Abap程式发送Mail 提醒信息的标准Function,可以在工作中引用,代码如下:
FUNCTION
 Z_E_RFC_WS_MAIL_SERVICE.
*"----------------------------------------------------------------------
*"Local Interface:
*"  IMPORTING
*"     VALUE(FROM) TYPE  STRING
*"     VALUE(TO) TYPE  STRING
*"     VALUE(MESSAGE) TYPE  STRING
*"     VALUE(SUBJECT) TYPE  STRING
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRET2
*"-----------------------------------------------------
*-----------------------------------------------------*
* CLASS DEFINITIONS                                                    *
*-----------------------------------------------------*
  DATA: send_request       TYPE REF TO cl_bcs.
  DATA: document           TYPE REF TO cl_document_bcs.
  DATA: sender             TYPE REF TO if_sender_bcs.
  DATA: recipient          TYPE REF TO if_recipient_bcs.
  DATA: exception_info     TYPE REF TO if_os_exception_info,
        bcs_exception      TYPE REF TO cx_bcs.

*-----------------------------------------------------*
* INTERNAL TABLES                                                      *
*-----------------------------------------------------*
  DATA: l_mailtext TYPE soli_tab.

  TRY.
* Create persistent send request
      send_request = cl_bcs=>create_persistent( ).

* Move the Subject from string to BCS subject type
      DATA: l_subject TYPE so_obj_des.
      l_subject = subject.

* Move the message from string to internal table
      CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
        EXPORTING
          text      = message
        TABLES
          ftext_tab = l_mailtext.

* Create the Document
      document = cl_document_bcs=>create_document(
                          i_type    = 'RAW'
                          i_text    = l_mailtext
                          i_subject = l_subject ).

* Add document to send request
      CALL METHOD send_request->set_document( document ).

* Get sender object
      DATA: l_sender TYPE ad_smtpadr.
      l_sender = from.
      sender = cl_cam_address_bcs=>create_internet_address( l_sender ).

* Add sender
      CALL METHOD send_request->set_sender
        EXPORTING
          i_sender = sender.

* Get Recipient Object
      DATA: l_recipient TYPE ad_smtpadr.
      l_recipient = to.
      recipient = cl_cam_address_bcs=>create_internet_address( l_recipient

).

* Add recipient with its respective attributes to send request
      CALL METHOD send_request->add_recipient
        EXPORTING
          i_recipient  = recipient.

* Set that you don't need a Return Status E-mail
      call method send_request->set_status_attributes
        exporting
          i_requested_status = 'E'
          i_status_mail      = 'E'.

* set send immediately flag
      send_request->set_send_immediately( 'X' ).

* Send document
      call method send_request->send( ).

      COMMIT WORK.

    CATCH cx_bcs INTO bcs_exception.
      data: l_message type string.
      l_message = bcs_exception->GET_TEXT( ).
      return-message = l_message.
  ENDTRY.


ENDFUNCTION.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9381143/viewspace-670427/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9381143/viewspace-670427/

### 回答1: ABAP调用函数是指在ABAP程序中调用一个函数模块。函数模块是一段可重用的代码,可以在不同的程序中被调用。在ABAP中,可以使用CALL FUNCTION语句来调用函数模块。调用函数模块时,需要指定函数模块的名称和输入参数。函数模块执行完毕后,可以返回输出参数和返回值。ABAP调用函数模块是一种常见的编程技巧,可以提高程序的可重用性和效率。 ### 回答2: 1. 什么是 ABAP Call FunctionABAP Call Function 是一种在 ABAP 程序中调用函数模块的方法。通过这种方法,可以在 ABAP 程序中调用SAP 中的函数模块来实现各种功能,比如数据读取、数据保存、数据更新等。 2. ABAP Call Function 的语法是什么? ABAP Call Function 的语法如下: <脚本语言> CALL FUNCTION <function_name> [DESTINATION <string>] [EXPORTING <parameter>] [IMPORTING <parameter>] [CHANGING <parameter>] [TABLES <parameter>] [EXCEPTIONS <exception>]. 3. ABAP Call Function 中的参数类型有哪些? ABAP Call Function 中的参数类型有: - EXPORTING:用于传递输入参数,传递的是一个单一值(Scalar)或者是一个结构体(Structure) - IMPORTING:用于传递输出参数,传递的是一个单一值(Scalar)或者是一个结构体(Structure) - CHANGING:用于传递双向参数,传递的是一个单一值(Scalar)或者是一个结构体(Structure) - TABLES:用于传递表格参数,传递的是一个内部表格(Internal Table) 4. ABAP Call Function 的执行顺序是什么? ABAP Call Function 的执行顺序如下: 1) 初始化变量; 2) 设置输入参数,进行必要的数据类型转换; 3) 调用函数模块; 4) 从输出参数中获取返回值; 5) 检测异常并进行错误处理; 6) 销毁变量。 5. ABAP Call Function 的优点是什么? - 提高程序的重用性和可维护性; - 减少程序的维护成本; - 减少开发人员对于底层实现的依赖程度; - 提高程序的可靠性。 总之,ABAP Call Function 在 SAP 系统中具有重要的作用,在编写 ABAP 程序时,开发人员需要熟悉 ABAP Call Function 的使用方法,以便在必要时快速、准确地实现所需功能。 ### 回答3: ABAP Call Function 是 SAP 中的一个功能模块,是在 ABAP 程序中调用远程函数的一种常见方式。用户可以直接通过函数调用来获取必要的数据或进行必要的操作,比如在 ABAP 程序中读取/写入数据、调用其他应用程序中的函数等。下面我们将详细介绍 ABAP Call Function 的三个主要部分: 1. 函数调用的头部信息: ABAP Call Function 的头部信息中包含了需要调用的函数名称,以及输入/输出参数的描述。用户需要在程序中先明确需要调用的函数名称,然后通过使用 SAP 的 Function Builder 工具来查看函数的输入/输出参数描述。可以将这些参数描述写入到函数调用的头部信息中,以告诉 SAP 系统如何执行函数调用。 2. 输入/输出参数: 函数调用的输入参数指向 ABAP 程序中的变量或常量。这些参数可以作为函数调用的输入值,在调用结束后也可以作为输出参数返回值。需要注意的是,函数调用的每个输入参数都需要指定相应数据对象的类型以及长度。 函数调用的输出参数被定义为返回变量,也就是调用函数后输出的结果。输出参数的类型和长度也需要与函数调用的函数定义匹配,以确保函数调用后可以得到正确的返回值。 3. 函数调用相关的其他信息: 函数调用还有一些其他的信息,比如错误信息、返回代码等等。在使用 ABAP Call Function 进行函数调用时,需要了解有哪些函数返回的信息是至关重要的,需要在程序中格外关注。 总之,ABAP Call Function 是 SAP 系统中非常重要的一个部分,用户在使用 ABAP 程序中调用需要在 SAP 中运行的函数时,就需要着重考虑如何使用 ABAP Call Function 进行函数调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值