bapiret2消息未显示

2020-08-20 12:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我实际上是在Class中执行bapiret2,下面是我为bapiret插入的以下代码。

系统字段sy-msgv1似乎不起作用,因为消息为空(检查屏幕截图)

我有什么不好?

 ES_BAPIRET2导出类型BAPIRET2
 数据:lv_type TYPE sy-msgty。
 数据:lv_id类型sy-msgid。
 数据:lv_no TYPE sy-msgno。
 数据:lv_v1类型sy-msgv1。
 数据:lv_v2类型sy-msgv2。


 es_bapiret2-type = lv_type。
 es_bapiret2-id = lv_id。
 es_bapiret2-number = lv_no。
 es_bapiret2-message_v1 = lv_v1。
 es_bapiret2-message_v2 = lv_v2。

 IF IV_MAX_ROWS GT 0。
 es_bapiret2-type ='S'。
 es_bapiret2-id ='找到输入行'。
 es_bapiret2-message_v1 ='已找到输入行记录'。

 选择曼特·埃伯恩·贝达特bsart lifnr waers knumv
 从ekko到表it_zheader的对应字段,直到IV_MAX_ROWS ROWS。

(2.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我实际上是在Class中执行bapiret2,下面是我为bapiret插入的以下代码。

系统字段sy-msgv1似乎不起作用,因为消息为空(检查屏幕截图)

我有什么不好?

 ES_BAPIRET2导出类型BAPIRET2
 数据:lv_type TYPE sy-msgty。
 数据:lv_id类型sy-msgid。
 数据:lv_no TYPE sy-msgno。
 数据:lv_v1类型sy-msgv1。
 数据:lv_v2类型sy-msgv2。


 es_bapiret2-type = lv_type。
 es_bapiret2-id = lv_id。
 es_bapiret2-number = lv_no。
 es_bapiret2-message_v1 = lv_v1。
 es_bapiret2-message_v2 = lv_v2。

 IF IV_MAX_ROWS GT 0。
 es_bapiret2-type ='S'。
 es_bapiret2-id ='找到输入行'。
 es_bapiret2-message_v1 ='已找到输入行记录'。

 选择曼特·埃伯恩·贝达特bsart lifnr waers knumv
 从ekko到表it_zheader的对应字段,直到IV_MAX_ROWS ROWS。

(2.8 kB)
付费偷看设置
发送
3条回答
葫芦娃快救爷爷
1楼 · 2020-08-20 13:36.采纳回答

1。 消息变量在哪里填充(lv_type,lv_id,lv_no,lv_v1,lv_v2)? 它不会显示在您的编码中。

  • 这些值是否来自实际的自定义消息或标准定义的消息,也就是说,您在lv_id,lv_no中插入的值在ABAP存储库中是否存在?
" ...
 数据:lv_type TYPEsy-msgty。
 数据:lv_id TYPEsy-msgid。
 数据:lv_no TYPEsy-msgno。
 数据:lv_v1 TYPEsy-msgv1。
 数据:lv_v2 TYPEsy-msgv2。

 es_bapiret2-type = lv_type。
 es_bapiret2-id = lv_id。
 es_bapiret2-number = lv_no。
 es_bapiret2-message_v1 = lv_v1。
 es_bapiret2-message_v2 = lv_v2。

 " ... 

2。在这一部分中,您"手动"填充消息变量,它们不基于现有的ABAP存储库消息。

  • ID不是一个 真实的消息ID代码,而是您将其误用作消息内容。
  • MESSAGE_V1被误用作"其他"消息内容,而通常应将其替换为动态值,以替代静态消息中的占位符 内容以提供有关错误的详细信息,例如物料号,订单号,字段名称等。
  • ES_BAPIRET2在填充新值之前也不会清除,导致"混合" 消息。
  • 在您手动设置消息内容的情况下,未设置MESSAGE,例如,不是基于ABAP存储库消息。
" ...
 如果是IV_MAX_ROWS GT0。
   es_bapiret2-type ='S'。
   es_bapiret2-id ='找到输入行'。
   es_bapiret2-message_v1 ='已找到输入行记录'。

   从ekko选择mandt ebeln bedat bsart lifnr waers knumv
   表it_zheader的对应字段,最多IV_MAX_ROWS行。
 " ... 

3。如果要替换ABAP存储库消息中的占位符,则可以使用MESSAGE语句或FM BALW_BAPIRETURN_GET1

4。查看本教程,以学习更多有关如何创建自定义消息类和消息的信息。 作为占位符以及如何用动态值替换这些占位符;以及如何在编码中使用所有这些占位符:

5。还搜索有关bapiret2的其他问题和答案 结构,以及如何填充和使用它们:

Violet凡
2楼-- · 2020-08-20 13:33

MESSAGE为空,因为您没有填写

如果要填充它:

消息ID lv_id类型lv_type NUMBER lv_no WITH lv_v1 lv_v2
     
骆驼绵羊
3楼-- · 2020-08-20 13:53

正确使用BAPIRET2消息;

TYPE-消息类型(S,E,A,X,I,W)

ID-包含您的消息的消息类

NUMBER-使用的消息类别中的消息编号

消息-实际消息

MESSAGE_V1 =消息变量1

MESSAGE_V2 =消息变量2

MESSAGE_V3 =消息变量3

MESSAGE_V4 =消息变量4

然后,您可以像这样填充BAPIRET2:

消息ID lv_id
    TYPE lv_type
  NUMBER lv_no
    与lv_v1 lv_v2
    我还怀疑"找到的输入行"是有效的消息类。

一周热门 更多>