ABAP MESSAGE 关键字的使用方法

举报
汪子熙 发表于 2023/06/22 10:43:11 2023/06/22
【摘要】 ABAP message 关键字的作用是要么显示在当前用户的登录语言中,从数据库表 T100的msg字段中指定的短消息文本,要么显示作为消息的任何文本。以下是可用的变体:如果没有指定RAISING或INTO中的任何一个,语句MESSAGE将中断程序流并发送消息。该语句MESSAGE的基本形式的确切行为(即文本如何显示以及在MESSAGE语句之后程序流如何继续)取决于在msg或text中指定的...

ABAP message 关键字的作用是要么显示在当前用户的登录语言中,从数据库表 T100的msg字段中指定的短消息文本,要么显示作为消息的任何文本。

以下是可用的变体:

  1. 如果没有指定RAISING或INTO中的任何一个,语句MESSAGE将中断程序流并发送消息。该语句MESSAGE的基本形式的确切行为(即文本如何显示以及在MESSAGE语句之后程序流如何继续)取决于在msg或text中指定的消息类型,并且与上下文相关。

  2. 语句MESSAGE使用RAISING补充在函数模块或方法中触发非基于类的异常。如果未处理该异常,消息将以与未指定RAISING 补充时相同的方式发送。

  3. 如果指定了INTO补充,程序流不会被中断,而是将消息的短文本分配给一个字段。

MESSAGE 关键字执行后对应系统变量的值:
sy-msgid:在发送消息后,包含消息类别,并在发送任何文本后包含值"00"。
sy-msgno:在发送消息后,包含消息编号,并在发送任何文本后包含值"001"。
sy-msgty:包含发送消息或文本时使用的消息类型的标识符。
sy-msgv1到sy-msgv4:在发送消息后,按顺序包含在WITH补充后指定的数据对象的内容。在发送任何文本后,包含数据对象文本的前200个字符。

未使用 RAISING 或 INTO中的任何一个补充发送的消息是与用户进行交互的一种方式。除了类型为"X"的消息外,语句MESSAGE 应该仅在表示逻辑层中使用,而不应在应用逻辑层中使用。

如果使用SET LOCALE语句设置了文本环境,则显示消息的语言将忽略此设置。

当使用 DISPLAY LIKE dtype 变式时,当使用此补充时,将显示dtype中指定的消息类型的图标,而不是关联的图标。dtype预期是一个类似字符的数据对象,其中包含大写字母"A"、“E”、“I”、"S"或"W"中的一个值。

对于默认显示在对话框中的消息,短文本仍然会作为对话框显示。如果dtype包含"A"或"I",则类型为"E"或"W"的消息(除了PBO和LOAD-OF-PROGRAM的消息)将显示为对话窗口。类型为"S"的消息始终显示在状态栏中,与dtype无关。对于PBO和LOAD-OF-PROGRAM的类型为"I"的消息也是如此。类型为"X"的消息总是会引发运行时错误。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。