Code: Alles auswählen.
METHOD if_ex_me_process_po_cust~check.
DATA: itab_po_items TYPE purchase_order_items,
po_item_ref TYPE LINE OF purchase_order_items,
po_item TYPE mepoitem,
itab_po_schedule TYPE purchase_order_schedules,
po_schedule TYPE LINE OF purchase_order_schedules,
itab_po_conf TYPE STANDARD TABLE OF uekes,
itab_po_conf2 TYPE STANDARD TABLE OF uekes,
po_conf TYPE uekes,
item_data TYPE meposchedule,
cl_po TYPE REF TO cl_po_header_handle_mm.
CLEAR itab_po_items.
itab_po_items = im_header->get_items( ).
LOOP AT itab_po_items INTO po_item_ref.
CLEAR itab_po_conf.
CLEAR itab_po_conf2.
po_item = po_item_ref-item->get_data( ).
CALL FUNCTION 'ME_CONFIRMATION_TABLES'
EXPORTING
i_ebeln = po_item-ebeln
i_ebelp = po_item-ebelp
i_meins = po_item-meins
TABLES
xekes = itab_po_conf
yekes = itab_po_conf2.
IF NOT itab_po_conf IS INITIAL.
SORT itab_po_conf BY etens DESCENDING.
READ TABLE itab_po_conf INTO po_conf INDEX 1.
CLEAR itab_po_schedule.
itab_po_schedule = po_item_ref-item->get_schedules( ).
LOOP AT itab_po_schedule INTO po_schedule.
item_data = po_schedule-schedule->get_data( ).
IF item_data-slfdt <> po_conf-eindt.
mmpur_dynamic_cast cl_po im_header.
cl_po->my_cust_firewall_on = mmpur_yes.
item_data-slfdt = po_conf-eindt.
po_schedule-schedule->set_data( item_data ).
cl_po->my_cust_firewall_on = mmpur_no.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDMETHOD.
Code: Alles auswählen.
mmpur_dynamic_cast cl_po im_header.
cl_po->my_cust_firewall_on = mmpur_yes.
Code: Alles auswählen.
METHOD if_ex_me_process_po_cust~post.
DATA: itab_po_items TYPE purchase_order_items,
po_item_ref TYPE LINE OF purchase_order_items,
po_item TYPE mepoitem,
itab_po_schedule TYPE purchase_order_schedules,
po_schedule TYPE LINE OF purchase_order_schedules,
itab_po_conf TYPE STANDARD TABLE OF uekes,
itab_po_conf2 TYPE STANDARD TABLE OF uekes,
po_conf TYPE uekes,
item_data TYPE meposchedule,
cl_po TYPE REF TO cl_po_header_handle_mm.
CLEAR itab_po_items.
itab_po_items = im_header->get_items( ).
LOOP AT itab_po_items INTO po_item_ref.
CLEAR itab_po_conf.
CLEAR itab_po_conf2.
po_item = po_item_ref-item->get_data( ).
CALL FUNCTION 'ME_CONFIRMATION_TABLES'
EXPORTING
i_ebeln = po_item-ebeln
i_ebelp = po_item-ebelp
i_meins = po_item-meins
TABLES
xekes = itab_po_conf
yekes = itab_po_conf2.
IF NOT itab_po_conf IS INITIAL.
SORT itab_po_conf BY etens DESCENDING.
READ TABLE itab_po_conf INTO po_conf INDEX 1.
CLEAR itab_po_schedule.
itab_po_schedule = po_item_ref-item->get_schedules( ).
LOOP AT itab_po_schedule INTO po_schedule.
item_data = po_schedule-schedule->get_data( ).
IF item_data-slfdt <> po_conf-eindt.
mmpur_dynamic_cast cl_po im_header.
cl_po->my_cust_firewall_on = mmpur_yes.
item_data-slfdt = po_conf-eindt.
po_schedule-schedule->set_data( item_data ).
UPDATE eket SET slfdt = item_data-slfdt
WHERE ebeln = item_data-ebeln
AND ebelp = item_data-ebelp
AND etenr = item_data-etenr.
cl_po->my_cust_firewall_on = mmpur_no.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDMETHOD.
Hoffen allein reicht oft nicht aus.ParLaMenT hat geschrieben:Hallo zusammen,
ich habe nun die Methode POST verwendet und dort ein UPDATE Befehl eingefügt.
Ist zwar keine perfekte Lösung, aber es funktioniert, und da das statistische Lieferdatum nur die Grundlage für die Lieferantenbewertung ist, hoffe ich, dass es keine Auswirkungen auf das System haben wird.
Im Anhang noch mein Codieng.
Viele Grüße
Gregor
Klar das Hoffen nicht ausreicheit, die Anwender müssen es noch testen.Unit605 hat geschrieben: Hoffen allein reicht oft nicht aus.
1. Direkt updates auf SAP Tabellen sollte man tunlichst vermeiden, wenn immer es geht (manchmal kann man es leider nicht vermeiden)
2. Ich wuerde diese Aenderung intensiv testen....besonders Aenderungen an der EKET im Standard.
3. insbesondere daraufhin: Wird die gemachte Aenderungen vielleicht vom Standard nachtraeglich geandert?!?!? Also ein erneutes update auf die EKET?