首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MIRO中的E错误消息之后启用输入错误字段?

在MIRO中的E错误消息之后启用输入错误字段?
EN

Stack Overflow用户
提问于 2016-12-10 23:55:05
回答 1查看 5K关注 0票数 1

我正在通过BADI MRM_HEADER_CHECK在tx中开发一个验证,当字段"reference“已经被使用时,我会显示一条消息。消息的类型为E,这将禁用屏幕上的每个字段,因此用户无法返回到该字段来修复其值。

FYI:

  • 我必须显示消息类型E,因为我想阻止所有字段,除了两个红色包围的字段。我看到这个人的建议是这样的:
  • 如果我把断点放在SY-DINNR等于6000。
  • 在我的BADI代码中,LOOP AT SCREEN没有看到我想禁用的字段名。
  • MESSAGE <msg> TYPE 'S' DISPLAY LIKE 'E'也不起作用

我无法修改BADI代码之外的代码,例如在PAI和PBO模块中:

代码语言:javascript
复制
CHAIN.
  fields: f1,f2,f3.
  MODULE <mod name>.
ENDCHAIN.

这是我的BADI代码:

代码语言:javascript
复制
*This field symbol have the values of inputs.
ASSIGN ('(SAPLMR1M)RBKPV') TO <fs_rbkpv>. 
IF <fs_rbkpv>-XBLNR = lwa_bkpf-xblnr.
  MESSAGE lc_message TYPE 'E'.
ENDIF.

有什么想法吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-12-11 18:03:58

这是不可能的。无法从BAdI访问屏幕字段,因此您应该使用CHAIN...ENDCHAIN语句增强标准PBO代码,或者找到另一个用户exit/BAdI。

就我个人而言,我建议你不要想得太多,不要过于复杂,而只是简单地使用:

代码语言:javascript
复制
MESSAGE 'Your Message' TYPE 'W' DISPLAY LIKE 'E'.

它将显示通常的错误信息,留下屏幕字段自由输入。无论如何,发票将不会保存,直到所有的屏幕字段将是有效的,无论他们是否禁用。

为什么不使用由I_RBKPV提供的标准接口MRM_HEADER_CHECK:

代码语言:javascript
复制
IF i_rbkpv-xblnr = lwa_bkpf-xblnr AND sy-tcode = 'MIRO'.
 ...
ENDIF.

通过字段符号直接访问内存是不安全的,不应该在没有必要的地方使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41081575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档