SAP Jobsuche bei DV-Treff


Suchen
Christian75
vor 13 Jahre
Hallo,

folgendes Problem:
Ich will doppelte Planaufträge bis zu einem bestimmten Datum zusammenfassen.
Dazu selektiere ich alle Planaufträge aus PLAF in eine interne Tabelle t_plaf und sortiere nach matnr und plnum.

Jetzt hab ich eine Logik geschrieben, die doppelte Aufträge zusammenfasst, den ersten (ältesten) erhöht (ändert) und den Rest löscht.
Das Programm ändert aktuell aber auch noch alle Single-Planaufträge (also einzelne), was es aber nicht braucht, da die Menge nicht geändert wird...aber es schlägt natürlich unheimlich auf die Performance, da ca. 95% der Aufträge nicht doppelt sind.

Jetzt würde ich gerne, bevor ich meine Summierung und Änderung über FUBA´s durchlaufe, aus der internen Tabelle t_plaf alle Single-Zeilen löschen...
Aber wie mache ich das am besten?

Danke für jede Hilfe,
Christian
ahelm
vor 13 Jahre
Hallo, ich würde das in etwa so aufbauen (in Pseudocode):

loop at T_PLAF.
  TABIX = SY-TABIX.
  if LETZE_MATERIALNUMMER = T_PLAF-MATNR.
*    Aufträge zusammenfassen
  elseif TABIX > 1.
*    Andere Materialnummer, letzten Auftrag löschen
    TABIX = TABIX - 1.
    delete T_PLAF index TABIX.
  endif.
endloop.
* Letzte Zeile muss hier noch behandelt werden ...

mfg Andreas