在 ABAP ZPROGRAM 中触发自定义事件



我正在ABAP中开发。我需要在 ABAP Z 程序中触发自定义事件。任何人都可以告诉我如何在 Z 程序中调用自定义事件来发送电子邮件。(请注意:这不是工作流程,我需要在Z程序中完成此任务)。

您的描述有点模糊,因此一般来说,如果您谈论要按下的按钮和要触发的以下操作,您可能需要:

  • GUI-Status 中为应用程序工具栏定义一个按钮,其中包含单击按钮时使用的自定义函数代码
  • 将"屏幕元素类型"= 确定的全局常规属性添加到 Dynpro 屏幕的元素列表中
  • 在 PAI 模块中检查此全局属性以获取自定义函数代码值,然后执行/调用您的 sendEmail 函数

您应该在事务 SM62 中创建自定义事件。在程序中,调用函数模块BP_EVENT_RAISE,以引发自定义事件。"eventid"是您之前在 SM62 上创建的事件的名称。

使用以下代码示例,通过调用函数模块SO_NEW_DOCUMENT_SEND_API1(SAPoffice:发送新文档)以 ABAP z 程序代码发送电子邮件:

* Data Declarations
DATA: LT_MAILSUBJECT     TYPE SODOCCHGI1.
DATA: LT_MAILRECIPIENTS  TYPE STANDARD TABLE OF SOMLREC90 WITH HEADER LINE.
DATA: LT_MAILTXT         TYPE STANDARD TABLE OF SOLI      WITH HEADER LINE.
* Recipients
LT_MAILRECIPIENTS-REC_TYPE  = 'U'.
LT_MAILRECIPIENTS-RECEIVER = 'sheetal@gmail.com'.
APPEND LT_MAILRECIPIENTS .
CLEAR LT_MAILRECIPIENTS .
* Subject.
LT_MAILSUBJECT-OBJ_NAME = 'TEST'.
LT_MAILSUBJECT-OBJ_LANGU = SY-LANGU.
LT_MAILSUBJECT-OBJ_DESCR = 'Mail Subject'.
* Mail Contents
LT_MAILTXT = 'This is a test mail'.
APPEND LT_MAILTXT. CLEAR LT_MAILTXT.
* Send Mail
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
  EXPORTING
    DOCUMENT_DATA              = LT_MAILSUBJECT
  TABLES
    OBJECT_CONTENT             = LT_MAILTXT
    RECEIVERS                  = LT_MAILRECIPIENTS
  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 EQ 0.
  COMMIT WORK.
*   Push mail out from SAP outbox
  SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
ENDIF.

相关内容

  • 没有找到相关文章

最新更新