`
zjut_xiongfeng
  • 浏览: 280236 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

abap系统消息处理与自定义消息处理

阅读更多

CLASS cl_message_mm DEFINITION LOAD.

DATA: gl_handle TYPE REF TO cl_handle_mm,
gl_dummy(72),
gl_message_handler TYPE REF TO cl_message_handler_mm,
gl_subrc TYPE sy-subrc,
gl_tabix TYPE sy-tabix,
gl_objdesc TYPE mepo_objdesc.

************************************************************************
* *
* Current business Object *
* *
************************************************************************
DEFINE mmpur_business_obj.
gl_subrc = sy-subrc.
gl_tabix = sy-tabix.
call method cl_message_mm=>set_current_business_obj
exporting im_business_obj = &1.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_business_obj_id.
gl_subrc = sy-subrc.
gl_tabix = sy-tabix.
call method cl_handle_manager_mm=>get
exporting im_id = &1
importing ex_handle = gl_handle.

call method cl_message_mm=>set_current_business_obj
exporting im_business_obj = gl_handle.
call method cl_message_mm=>set_current_context
exporting im_context = 5.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_obj_from_id.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_handle_manager_mm=>get
exporting im_id = &1
importing ex_handle = &2.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

* Definitions via varkey (non object Case)
DEFINE mmpur_business_obj_hd.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
clear gl_objdesc.
gl_objdesc-objtyp = cl_po_header_handle_mm=>c_objtyp.
gl_objdesc-varkey+0(10) = &1.
call method cl_message_mm=>set_current_business_obj
exporting im_business_obj_var = gl_objdesc.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_business_obj_it.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
clear gl_objdesc.
gl_objdesc-objtyp = cl_po_item_handle_mm=>c_objtyp.
gl_objdesc-varkey+0(10) = &1.
gl_objdesc-varkey+10(5) = &2.
call method cl_message_mm=>set_current_business_obj
exporting im_business_obj_var = gl_objdesc.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_business_obj_sc.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
clear gl_objdesc.
gl_objdesc-objtyp = cl_po_schedule_handle_mm=>c_objtyp.
gl_objdesc-varkey+0(10) = &1.
gl_objdesc-varkey+10(5) = &2.
gl_objdesc-varkey+15(4) = &3.
call method cl_message_mm=>set_current_business_obj
exporting im_business_obj_var = gl_objdesc.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_business_obj_ac.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
clear gl_objdesc.
gl_objdesc-objtyp = cl_po_accounting_handle_mm=>c_objtyp.
gl_objdesc-varkey+0(10) = &1.
gl_objdesc-varkey+10(5) = &2.
gl_objdesc-varkey+15(2) = &3.
call method cl_message_mm=>set_current_business_obj
exporting im_business_obj_var = gl_objdesc.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.


************************************************************************
* *
* meta fields *
* *
************************************************************************
DEFINE mmpur_metafield.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_contextfield_mm=>set_current_field
exporting im_field = &1.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.
*
DEFINE mmpur_metafield_add.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_contextfield_mm=>add_to_current_fields
exporting im_field = &1.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.
*-----------------------------------------------------------------------
*
* Context
*
*-----------------------------------------------------------------------
DEFINE mmpur_context.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_message_mm=>set_current_context
exporting im_context = &1.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.
************************************************************************
* *
* Events *
* *
************************************************************************
DEFINE mmpur_message_config.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_message_mm=>configure exporting im_msgty = &1
im_dialog = &2
im_collect = &3
exceptions failure = 01.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.


* simple replacement of the ABAP message statement

DEFINE mmpur_message.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.

message id &2 type &1 number &3 with &4 &5 &6 &7 into gl_dummy.

call method cl_message_mm=>create exporting im_msgid = &2
im_msgty = &1
im_msgno = &3
im_msgv1 = sy-msgv1
im_msgv2 = sy-msgv2
im_msgv3 = sy-msgv3
im_msgv4 = sy-msgv4
exceptions failure = 01
dialog = 02.
if sy-subrc = 1 or sy-subrc = 2.

message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

* configurable message ( T160M )

DEFINE mmpur_message_enaco.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.

message id &2 type 'W' number &3 with &4 &5 &6 &7 into gl_dummy.

call method cl_message_mm=>create exporting im_msgid = &2
im_msgty = &1
im_msgno = &3
im_msgv1 = sy-msgv1
im_msgv2 = sy-msgv2
im_msgv3 = sy-msgv3
im_msgv4 = sy-msgv4
im_custom = 1
exceptions failure = 01
dialog = 02.
if sy-subrc = 1 or sy-subrc = 2.

message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_message_enaco_forced.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
message id &2 type 'W' number &3 with &4 &5 &6 &7 into gl_dummy.
clear sy-msgty.
call method cl_message_mm=>create exporting im_msgid = &2
im_msgty = &1
im_msgno = &3
im_msgv1 = sy-msgv1
im_msgv2 = sy-msgv2
im_msgv3 = sy-msgv3
im_msgv4 = sy-msgv4
im_custom = 1
im_force_collect = mmpur_yes
exceptions failure = 01
dialog = 02.
if sy-subrc = 1 or sy-subrc = 2.

message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

* specialized version of mmpur_message: useful for soft
* error messages

DEFINE mmpur_message_forced.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
message id &2 type &1 number &3 with &4 &5 &6 &7 into gl_dummy.

call method cl_message_mm=>create exporting im_msgid = &2
im_msgty = &1
im_msgno = &3
im_msgv1 = sy-msgv1
im_msgv2 = sy-msgv2
im_msgv3 = sy-msgv3
im_msgv4 = sy-msgv4
im_force_collect = mmpur_yes
exceptions failure = 01
dialog = 02.
if sy-subrc = 1 or sy-subrc = 2.

message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_remove_messages_by_id.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_handle_manager_mm=>get
exporting im_id = &1
importing ex_handle = gl_handle.

call method cl_message_handler_mm=>get_handler importing
ex_handler = gl_message_handler.

call method gl_message_handler->remove_by_bo exporting
im_business_obj = gl_handle
im_context = 5.
sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

DEFINE mmpur_remove_msg_by_context.
gl_tabix = sy-tabix.
gl_subrc = sy-subrc.
call method cl_handle_manager_mm=>get
exporting im_id = &1
importing ex_handle = gl_handle.
call method cl_message_handler_mm=>get_handler
importing ex_handler = gl_message_handler.
call method gl_message_handler->remove_by_bo
exporting im_business_obj = gl_handle
im_context = &2.

sy-subrc = gl_subrc.
sy-tabix = gl_tabix.
END-OF-DEFINITION.

*-------如何使用

if it_ekpo-NETWR > 100000000.
mmpur_message 'W' 'ZEMM' '045' '100,000,000' '' '' ''.
endif .

*---包含程序

include MM_MESSAGES_MAC .

分享到:
评论

相关推荐

    ABAP向在线用户发送系统消息(自动刷新ALV)

    ### ABAP向在线用户...通过以上分析,我们可以看到ABAP中向在线用户发送系统消息并自动刷新ALV的过程涉及到了多种技术和概念,包括数据管理、用户界面控制、事件处理和异常管理等,体现了ABAP开发的复杂性和灵活性。

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

    ABAP长文本的读取与插入

    ABAP长文本的读取与插入 ABAP长文本的读取与插入是ABAP开发中常见的操作,用于读取和...ABAP长文本的读取与插入是ABAP开发中非常重要的知识点,掌握了这项技术,可以更好地处理长文本数据,提高开发效率和系统性能。

    《SAP ABAP开发详解与高端应用》.zip

    《SAP ABAP开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...

    abap xlsx2 demo 程序

    在ABAP(Advanced Business Application Programming)环境中,处理Excel文件(通常以.xlsx格式存在)是常见的需求,例如数据导入导出、报表生成等。"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中...

    sap abap query高级功能

    SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...

    ABAP上传EXCLE文件自定义函数(增强函数可指定开始行开始列)

    综上所述,这个自定义的ABAP函数提供了一个强大且灵活的方式来处理Excel文件的上传与数据读取任务。它不仅简化了开发过程,还提高了数据导入的准确性和效率。对于需要频繁处理Excel文件的项目来说,这是一个非常有...

    SAP ABAP开发BADI与增强资料

    BADI(Business Add-In)和屏幕增强是ABAP开发中的关键概念,它们允许用户自定义和扩展标准SAP功能以满足特定业务需求。 **BADI简介** BADI是一种灵活的、面向对象的设计技术,它允许开发人员在不修改标准SAP代码的...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP 4.7版本开始支持SOAP和RESTful Web服务,使得SAP系统能与其他系统进行集成和数据交换。 9. 调试和测试: SAP提供了强大的调试工具,如ABAP Debugger,用于查找和修复代码错误,同时支持单元测试和集成测试。...

    ABAP4简介___ABAP4简介

    Dialog模块专注于处理与用户交互的屏幕对话框,通常用于处理数据库的读取和更新事务。Dialog程序不是独立运行的,而是通过transaction code触发屏幕对话流程。Dialog的流程逻辑分为PBO(Process Before Output)和...

    自定义BAPI的基本过程.doc

    自定义BAPI(Business Application Programming Interface)是SAP系统中用于外部系统集成的重要工具,它提供了标准化的接口,使得外部程序可以与SAP系统进行数据交互。以下将详细阐述自定义BAPI的基本过程: 1. ...

    下载ABAP程序源代码的程序.pdf

    ABAP语言具有强大的编程能力、灵活的数据类型、丰富的内置函数和强大的错误处理机制等特点。ABAP程序是SAP R/3系统的核心组件之一,对于SAP系统的开发和实施起着至关重要的作用。 下载ABAP程序源代码的程序是指从...

    内含ABAP入门资源(11天学会ABAP)以级中级ABAP篇,高级ABAP资料

    - 事务码(Transaction Code):了解SAP系统的操作界面与事务码的关联,如何创建和使用自定义事务码。 - 选择屏幕(Selection Screen):学习创建交互式的输入屏幕,提高用户友好性。 - 内部表操作:深入理解内部...

    abap编程中的事务代码和系统变量

    这些基本知识对于ABAP程序员来说是不可或缺的,它们构成了ABAP编程的基础,使得开发人员能够有效地与SAP系统进行交互,处理数据,以及构建用户友好的应用程序。通过深入理解和熟练运用事务代码和系统变量,可以提高...

    ABAP中文帮助文档

    3. **业务逻辑**:编写处理业务逻辑的ABAP代码,与SAP业务对象交互。 4. **事件处理**:学习如何响应用户的操作,如按钮点击、字段改变等。 5. **状态管理和导航**:理解事务状态,实现事务间的导航和跳转。 “BCAB...

    ABAP 屏幕设计中添加文本编辑器

    ABAP 屏幕设计中添加文本编辑器是指在 SAP 业务系统中,使用文本编辑器处理内表,并在屏幕上显示编辑器,退出时将内容输出。本文将详细介绍如何在屏幕上显示编辑器,退出时将内容输出。 知识点1:建立屏幕 在建立...

    abap培训全套教材

    ABAP(Advanced Business Application Programming)是SAP系统中的一种编程语言,主要用于开发和定制企业级业务应用程序。本套“ABAP培训全套教材”是针对初学者和内部员工设计的,内容涵盖ABAP的基础到进阶知识,...

    abap与excel接口统一方法

    5. **错误处理与性能优化** 在设计接口时,应考虑异常处理,以捕获可能出现的错误,如文件打开失败、写入权限不足等。同时,为了提高性能,可以考虑批量写入单元格,而不是一次写一个。 6. **内存优化** OODI在...

    ABAP加密和解密.doc

    此外,ABAP还支持证书和公钥基础设施(PKI),这在进行SSL/TLS通信或签署消息时非常有用。`cl_x509_certificate`类可以帮助处理X.509证书,而`cl_abap_rsa`类则提供了RSA加密和解密功能。这些技术对于确保网络传输...

Global site tag (gtag.js) - Google Analytics