事务ME51N的badi ME_PROCESS_REQ_CUST问题

2020-08-25 23:26发布

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

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


嗨,技术专家

要求:在t代码me51n中,当用户选择物料并按Enter键时,需要获取mm03中该物料的长文本(基本文本)并显示在me51n项目文本中。

我的一段代码:

 数据:tline的lt_line类型表,
         ls_line类型为tline,
          gs_item类型mereq_item,
          g_matnr输入thead-tdname,
          g_fname输入thead-tdname,
          mmpur_textlines的gt_line类型表,
          gs_line类型mmpur_textlines,
          g_longtext类型参考if_longtexts_mm。

   调用方法im_item-> get_data
   接收
     re_data = gs_item。

   g_matnr = gs_item-matnr。


   调用函数" READ_TEXT"
     出口
      客户= sy-mandt
       id ='GRUN'
       语言= sy-langu
       名称= g_matnr
       对象="材料"
     桌子
       行= lt_line
    例外情况
      id = 1
      语言= 2
      名称= 3
      not_found = 4
      对象= 5
      reference_check = 6
      错误_访问_存档= 7
      其他= 8
             。
   如果sy-subrc <> 0。
  消息ID sy-msgid类型sy-msgty编号sy-msgno
          与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

 在lt_line处循环进入ls_line。
 将对应的ls_line移动到gs_line。
 将gs_line附加到gt_line。
 * gt_line [] = lt_line []。
 结束循环。

 调用方法im_item-> if_longtexts_mm〜set_text
   出口
     im_tdid ='B01'
     im_textlines = gt_line
     。
 

我正在使用Badi ME_PROCESS_REQ_CUST方法PROCESS_ITEM。

我面临的问题是,当我输入材料并按Enter键时,它将陷入无休止的循环(即无法看到输出)。

任何人都可以建议我哪里出了问题,或者是否需要用其他方法编写逻辑。

任何建议将不胜感激。

T&R,

Vinit

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

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


嗨,技术专家

要求:在t代码me51n中,当用户选择物料并按Enter键时,需要获取mm03中该物料的长文本(基本文本)并显示在me51n项目文本中。

我的一段代码:

 数据:tline的lt_line类型表,
         ls_line类型为tline,
          gs_item类型mereq_item,
          g_matnr输入thead-tdname,
          g_fname输入thead-tdname,
          mmpur_textlines的gt_line类型表,
          gs_line类型mmpur_textlines,
          g_longtext类型参考if_longtexts_mm。

   调用方法im_item-> get_data
   接收
     re_data = gs_item。

   g_matnr = gs_item-matnr。


   调用函数" READ_TEXT"
     出口
      客户= sy-mandt
       id ='GRUN'
       语言= sy-langu
       名称= g_matnr
       对象="材料"
     桌子
       行= lt_line
    例外情况
      id = 1
      语言= 2
      名称= 3
      not_found = 4
      对象= 5
      reference_check = 6
      错误_访问_存档= 7
      其他= 8
             。
   如果sy-subrc <> 0。
  消息ID sy-msgid类型sy-msgty编号sy-msgno
          与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

 在lt_line处循环进入ls_line。
 将对应的ls_line移动到gs_line。
 将gs_line附加到gt_line。
 * gt_line [] = lt_line []。
 结束循环。

 调用方法im_item-> if_longtexts_mm〜set_text
   出口
     im_tdid ='B01'
     im_textlines = gt_line
     。
 

我正在使用Badi ME_PROCESS_REQ_CUST方法PROCESS_ITEM。

我面临的问题是,当我输入材料并按Enter键时,它将陷入无休止的循环(即无法看到输出)。

任何人都可以建议我哪里出了问题,或者是否需要用其他方法编写逻辑。

任何建议将不胜感激。

T&R,

Vinit

付费偷看设置
发送
5条回答
小灯塔
1楼-- · 2020-08-25 23:47

仅当导入参数IM_COUNT(迭代计数器)的值为1时才执行代码。这将避免在处理过程中发生无限循环。

Wiki帖子[购买要求。 使用BADI的订单项数据处理-ME_PROCESS_REQ_CUST | http://wiki.sdn.sap。 com/wiki/display/ABAP/购买 需求 Line 项目数据操作使用 BADI - + ME_PROCESS_REQ_CUST]将很有帮助。

问候,维诺德

jovirus
2楼-- · 2020-08-25 23:50

嗨,维诺德,这需要成为本地创建的属性吗? 我做了同样的事情,并在头方法中也设置了im_count = 1的值。 但是,这似乎对我没有用。 您能帮忙吗

小熊yu生菜
3楼-- · 2020-08-25 23:58

已解决

clasier
4楼-- · 2020-08-26 00:06

HI VINEET,

在我的情况下,我给了im-count = 1,但我遇到了无限循环,请指导我

此致

JP

太Q了
5楼-- · 2020-08-25 23:52

嗨Vinod,如何设置Attribute的值im_count? 。 我需要使用哪种方法填充。

一周热门 更多>