abap三月通(3)

2019-04-01 22:40

4灵活运用消息. 对于消息的运用,除了可配置消息类别外,另外一个重要用处就在于,可根据消息找到程序弹出消息的确切行,然后稍微花点时间看看程序逻辑就可大概知道异常发生的根本原因. 从某种程度来讲,即使对某模块很陌生,只要掌握得好,依旧可排除一些问题. 5 配置自定义的消息. 俩方法可模妨SAP的消息配置 1从上我们已经知道既然T160M是可直接使用SE16维护的,我们就可直接将相关设置写入T160M.然后就可根据相关设置取得消息类别(如上图我们使用函数ME_CHECK_T160M),这样比类似MESSAGE E017(ZFIMSG)—Hard code要安全得多,假设不管三七二十一就给出错误消息,除非在程序中确信已考虑了所有情况,否则还是在T160M这样设置比较好(万一在生产环境还可更改E成W什么的). 2我们知道T100C是所谓的可配置消息表,我们可使用SE16:T100C和V_T100C. (1)SE16:T100S定义消息可配置信息. 如图[1]在此新建.(进去browse数据似乎不可新建) 设置消息.如下图. [1]Appl Area消息类ZFIMSG. [2]表示允许配置的消息类型 [3]没选则表示不能关闭消息. (2)SE16:V_T100C配置消息. 如图: [1]表示直接使用程序(Tcode)的消息类型[2]当当程序以BDC方式运行时的消息类型 [3]就是上图设置的允许的消息类型,可看到警告和关闭都没出现(T100C没允许)

同样在程序中避免使用泪水MESSAGE E017(ZFIMSG)而采用

CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE' EXPORTING

I_ARBGB = 'ZFIMSG' I_DTYPE = '' I_MSGNR = '017' IMPORTING

E_MSGTY = SY-MSGTY.

根据返回的SY-MSGTY去判断消息类型将更好些. 6实例介绍

PO在有发票校验后禁止修改价格,假设无PO release策略,使用User-exit步骤如下: (1)找合适的用户出口

发现EXIT_SAPMM06E_017比较合适,SMOD 输入enhancement name :MM06E005 (2)编写代码.

*&---------------------------------------------------------------------* *& Include ZXM06U42 * *&---------------------------------------------------------------------* DATA : ZWATEKPO like BEKPO ,

ZIEINFO LIKE EINFO OCCURS 0 WITH HEADER LINE, ZERMSG(73) TYPE C. TABLES EKBE .

***TEKPO records all the old PO item date .

*** I_EKPO records currently processed PO item .

READ TABLE TEKPO INTO ZWATEKPO WITH KEY EBELP = I_EKPO-EBELP . ***只对ME22N才生效.

CHECK SY-TCODE = 'ME22N '.

***EKBE是PO history 表,如有Q,R表示有发票校验历史,不允许更改价## SELECT SINGLE * FROM EKBE WHERE EBELN = I_EKPO-EBELn

AND EBELP = I_EKPO-EBELP

AND ( BEWTP = 'Q' OR BEWTP = 'R'). CHECK SY-SUBRC = 0 .

***如果SY-SUBRC =0表示发票已经校验,不允许更改价格,否则还是可更改价格## IF I_EKPO-NETPR <> ZWATEKPO-NETPR . *** Change e017(ZFIMSG) accordingly

* MESSAGE e017(ZFIMSG).\使用下面函数代替. CALL FUNCTION 'READ_CUSTOMIZED_MESSAGE' EXPORTING

I_ARBGB = 'ZFIMSG' I_DTYPE = '' I_MSGNR = '017' IMPORTING

E_MSGTY = SY-MSGTY. CHECK SY-MSGTY NE '-' . REFRESH ZIEINFO.

ZIEINFO-MSGID = 'ZFIMSG'. ZIEINFO-MSGNO = '017' . ZIEINFO-MSGV1 = 'VAR1'. ZIEINFO-MSGV2 = 'VAR2'. APPEND ZIEINFO .

CALL FUNCTION 'MESSAGE_GET_TEXT' EXPORTING

IEINFO = ZIEINFO ILANGU = SY-LANGU IMPORTING

ETEXT = ZERMSG .

MESSAGE ZERMSG TYPE SY-MSGTY . ENDIF.

***在大多数情况下追踪消息能发现问题所在,然而在一些特定情况下,SAP显示的消息似乎和实际业务并不符合.好比一个人咳嗽的厉害,以为是感冒结果其实不过是有写异物进入其喉咙而已.

14.使用用户授权

15.调用外部程序和程序动态生产 16.选择屏幕

17.使用程序运行变式

18.制作Tcode

二.加强篇.

1.CATT


abap三月通(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012课程设计模板

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: