我正试图修改 WEORA
, BSTAE
在 ME21n
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
.
我的代码有什么问题吗?
有没有其他的出口可以让我用来更新字段?WEORA
和 BSTAE
交易编码 ME21N
保存时?
你必须调用方法SET_DATAX,然后SET_DATA。 SET_DATAX ,你将标记X到你想要更新的字段。
Regards,Umar Abdullah