如何通过 ME_PROCESS_PO_CUST 更改 PO 交货日期?

How to change PO delivery date via ME_PROCESS_PO_CUST?

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

我在 POST 方法中使用了 ME_PROCESS_PO_CUST BAdI 但它不会更新 EKET table 中的日期,只会更新屏幕上的日期.

这是方法中的代码 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.

FUNCTION EXIT_SAPMM06E_017 用于 EKET 更新。

你需要更新 (SAPLMEPO)ETT[] table,因为你可以在那里找到采购订单的变化。

干杯 :)

试试这个代码:

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.