Bestellbestätigung und stat. Lieferdatum

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

SAP R/3 Materialwirtschaft: Einkauf, Bestandsführung, Rechnungsprüfung, Inventur, Bewertung, Leistungsabwicklung, Materialstamm...
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Bestellbestätigung und stat. Lieferdatum

Beitrag von ParLaMenT (ForumUser / 14 / 0 / 2 ) »
Guten Tag ABAP-Experten,

ich weiß nicht ob ich hier richtig bin, bin neu hier.

ich habe folgendes Problem:
Wenn eine Bestellung bestätigt wird und eine Bestellbestätigung angelegt bzw. geändert wird, dann soll das stat. Lieferdatum aktualiesiert werden.

Ich verwende das BADi ME_PROCESS_PO_CUST und hier die Methode CHECK.
Alles soweit so gut wenn dei Bestellbestätigung geändert wird, dann wird das stat. Lieferdatum aktualisiert.

ABER, sobald ich die Bestellung abspeichere und wieder erneut öffne dann ist das stat. Lieferdatum wieder das Alte.
In der Dynpro-Anzeige übernimmt er das Datum doch speichert es nicht in die Datenbank.

Ich habe es auch mit der Methode PROCESS_ITEM versucht, hier wird das stat. Lieferdatum auch in der Datenbank dann überschrieben.
Das Problem ist aber, dass die Methode nicht ausgeführt wird wenn man die Bestellbestätigung ändert.

Hat jemand eine Idee?

Anbei füge ich noch mein Codien ein.

Vielen Dank im Vorraus.

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.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Bestellbestätigung und stat. Lieferdatum

Beitrag von verzweifelt (ForumUser / 84 / 18 / 4 ) »
Hallo ,
wie du ja schon festgestellt hast, werden an die die Methode Check keine changing Parameter übergeben . Hier kann man ganz toll prüfen und Meldungen erzeugen, aber halt keine Daten ändern .
Vielleicht denkst du mal über einen RFC oder einen queued RFC nach .
Ich hab hier ein einfaches Beispiel gefunden
http://solidforms.de/aendern-von-daten- ... -mit-qrfc/
Wenn du dein Coding im einem RFC fähigen FuBa packst und den entsprechend aus der Methode Check aufrufst, könnte ich mir vorstellen, dass das dann passt .

Re: Bestellbestätigung und stat. Lieferdatum

Beitrag von ParLaMenT (ForumUser / 14 / 0 / 2 ) »
Hallo,

gibt es da keinen anderen Weg es zu lösen?

Code: Alles auswählen.

      mmpur_dynamic_cast cl_po im_header.
      cl_po->my_cust_firewall_on = mmpur_yes.
Dadurch wird ja die Änderung im Dynpro auch sichtbar.
Gibt es möglicherweise eine anderes Attribut den ich ändern muss, damit die Änderung gespeichert wird?

Vielen Dank im vorraus
Gregor

Re: Bestellbestätigung und stat. Lieferdatum

Beitrag von ParLaMenT (ForumUser / 14 / 0 / 2 ) »
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

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.

Re: Bestellbestätigung und stat. Lieferdatum

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
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
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?

Re: Bestellbestätigung und stat. Lieferdatum

Beitrag von ParLaMenT (ForumUser / 14 / 0 / 2 ) »
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?
Klar das Hoffen nicht ausreicheit, die Anwender müssen es noch testen.

Die Änderungen werden nur überschrieben wenn man das Lieferdatum oder das stat. Lieferdatum manuel ändert und zugleich eine Bestätigung erstellt bzw. ändert.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1244
Views
2
Antw.
3391
Views
Fakturadatum < Lieferdatum
von Niekohle » 27.04.2007 11:15 • Verfasst in Sales and Distribution
2
Antw.
2852
Views
4
Antw.
5359
Views
BAPI_PO_CHANGE lieferdatum in ekes ändern
von Bitfummler » 19.03.2013 19:20 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 12 Stunden von Bright4.5 1 / 262
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1900
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8505