通过ME_PROCESS_PO_CUST更新ME21n tcode中的字段时,无法使用。

问题描述 投票:0回答:1

我正试图修改 WEORA, BSTAEME21n t代码保存后。我把代码写在了 ME_PROCESS_PO_CUST BADI办法 CHECK:

DATA: lt_data TYPE PURCHASE_ORDER_ITEMS,
      lo_header TYPE REF TO CL_PO_HEADER_HANDLE_MM,
      lt_item TYPE REF TO IF_PURCHASE_ORDER_ITEM_MM,
      ls_get_item TYPE MEPOITEM,
      ls_set_item TYPE MEPOITEM,
      lv_firewall TYPE abap_bool.

  FIELD-SYMBOLS: <fs_data> TYPE PURCHASE_ORDER_ITEM.

  lt_data = im_header->get_items( ).

  READ TABLE lt_data ASSIGNING <fs_data> INDEX 1.
  IF <fs_data> IS ASSIGNED.
    lt_item = <fs_data>-item.
  ENDIF.

  ls_get_item = lt_item->get_data( ).

  ls_get_item-bstae = '0004'.
  ls_get_item-weora = abap_true.


  CALL METHOD lt_item->set_data
    EXPORTING
      im_data = ls_get_item.

我试着调试了一下,但在方法里面 set_data 有一个条件。

CHECK l_parent->my_ibs_firewall_on  EQ mmpur_yes OR
      l_parent->my_cust_firewall_on EQ mmpur_yes.

两者的值都是初始化的,所以它会中断,不会进入代码的其他部分。强制将它们设置为 true 使得所有的代码都能执行,但是字段的更新却无法进行。

看起来这个BADI并不工作,但我做了研究,大多数人都使用这个BADI来更新数据。EKPO 领域中 ME21n.

我的代码有什么问题吗?

有没有其他的出口可以让我用来更新字段?WEORABSTAE 交易编码 ME21N 保存时?

sap abap purchase-order badi
1个回答
0
投票

你必须调用方法SET_DATAX,然后SET_DATA。 SET_DATAX ,你将标记X到你想要更新的字段。

Regards,Umar Abdullah

© www.soinside.com 2019 - 2024. All rights reserved.