ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

使用badi ME_PROCESS_PO_CUST,前台和bapi都会进去
ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)
METHOD if_ex_me_process_po_cust~process_item.
DATA: ls_mepoitem TYPE mepoitem,
ls_mepoheader TYPE mepoheader,
ls_customer TYPE mepo_badi_exampl,
ls_tbsg TYPE tbsg,
a_meins TYPE mara-meins,
dt_meins TYPE mara-meins.
DATA: l_head TYPE REF TO if_purchase_order_mm ,
l_bklas TYPE mbew-bklas .
INCLUDE mm_messages_mac.

ls_mepoitem = im_item->get_data( ).
l_head = im_item->get_header( ).
ls_mepoheader = l_head->get_data( ).

"通信公司检查UB订单必须输入发货存储地点
IF ls_mepoheader-bukrs+0(1) = '4' AND ls_mepoheader-bsart = 'UB' AND ls_mepoitem-reslo IS INITIAL.
mmpur_message 'E' 'OO' '000' '请输入发货存储地点' '' '' ''.
ENDIF.

*cyl 贵阳去掉基于gr的发票校验
data:
lt_zpo_create type table of zpo_create,
ls_zpo_create type zpo_create.

select *
into corresponding fields of table lt_zpo_create
from zpo_create.

read table lt_zpo_create into ls_zpo_create
with key bsart = ls_mepoheader-bsart bukrs = ls_mepoheader-bukrs lifnr = ls_mepoheader-lifnr ekorg = ls_mepoheader-ekorg.
if sy-subrc = 0.
CLEAR ls_mepoitem-WEBRE.
im_item->set_data( ls_mepoitem ).
endif.

ENDMETHOD.

下面这个只有bapi才会进去,前台不会进去
修改和创建的bapi进入的增强
ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

ME21N ME22N 修改创建采购订单字段值(基于GR的发票校验的标识)(创建和修改都会触发)

method if_ex_me_bapi_po_create_02~inbound.
data:
ls_item type line of bapimepoitem_tp,
lt_zpo_create type table of zpo_create,
ls_zpo_create type zpo_create.

select *
into corresponding fields of table lt_zpo_create
from zpo_create.

read table lt_zpo_create into ls_zpo_create
with key bsart = ch_poheader-DOC_TYPE bukrs = ch_poheader-COMP_CODE lifnr = ch_poheader-VENDOR ekorg = ch_poheader-PUR_GROUP.
if sy-subrc = 0.
ls_item-gr_basediv = space.
modify TABLE ch_item from ls_item TRANSPORTING gr_basediv.
endif.

endmethod.