采购订单交货日期已通过BAdI更改,但未反映在表格中

时间:2019-06-27 14:54:52

标签: sap abap

我需要更新采购订单的交货日期。

我在ME_PROCESS_PO_CUST方法中使用了POST BAdI,但它不更新EKET表中的日期,仅更新了屏幕上的日期。

这是方法POST中的代码:

 CALL METHOD im_header->get_data
   RECEIVING
     re_data = ls_header_data.

  lt_items = im_header->get_items( ).


  LOOP AT lt_items INTO ls_items.

    lo_item = ls_items-item.
    ls_dati = lo_item->get_data( ).
    lt_schedule = lo_item->get_schedules( ).


    LOOP AT lt_schedule INTO ls_schedule.

      lo_schedule = ls_schedule-schedule.
      ls_meposchedule = lo_schedule->get_data( ).

      IF lv_data GE ls_meposchedule_pai-eindt.
        ls_meposchedule-eindt = lv_data.
      ENDIF.

      lo_schedule->set_data( ls_meposchedule ).

    ENDLOOP.

  ENDLOOP.

2 个答案:

答案 0 :(得分:0)

FUNCTION EXIT_SAPMM06E_017用于EKET更新。

您需要更新(SAPLMEPO)ETT []表,因为您可以在那里找到PO的更改。

干杯:)

答案 1 :(得分:0)

尝试以下代码:

METHOD if_ex_me_process_po_cust~process_schedule.

  DATA: lv_eindt TYPE eket-eindt VALUE '20190731'.

  DATA(ls_schedule)  = im_schedule->get_data( ).
  DATA(lr_item)      = im_schedule->get_item( ).
  DATA(ls_item)      = lr_item->get_data( ).

  ls_item-eindt = lv_eindt.
  lr_item->set_data( ls_item ).

ENDMETHOD.

并将其放入方法IF_EX_ME_PROCESS_PO_CUST~PROCESS_SCHEDULE中。