ME21N ME22N 修改創建採購訂單字段值(基於GR的發票校驗的標識)(創建和修改都會觸發)

使用badi ME_PROCESS_PO_CUST,前臺和bapi都會進去

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進入的增強

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.

發佈了45 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章