1

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

ME_PROCESS_PO_CUST在方法中使用了 BAdI,POST但它不更新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.
4

2 回答 2

0

FUNCTION EXIT_SAPMM06E_017 用于 EKET 更新。

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

干杯:)

于 2019-06-28T09:25:55.120 回答
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中。

于 2019-08-05T20:59:50.253 回答