SAP Jobsuche bei DV-Treff


Suchen
M&Mler
  • M&Mler
  • SAP Forum - Guru Thema Starter
vor 9 Jahre
Hallo zusammen

wir haben ein paar tausend Materialien mit Dispomerkmal ND.

Dummerweise hatten die Materialien noch eine Dispoliste als man das Merkmal gesetzt hat.

Ergebnis: Dispoliste vorhanden, der MRP irgnoriert das Material jedoch und löscht die Listen entsprechend nicht.

Manuell bekommt man das in der MD05 per "Dispoliste --> löschen --> ja" hin. Leider klappt das bei mir nicht per batch-input, da er die Dynpros nicht richtig "findet" ?!?

In der MD08 (RMMDKP01) kann ich nicht vernünftig eingrenzen, ohne zuvor eine Massenpflege der Materialstämme durchzuführen (Dummy Disponent zuordnen)

Keines der Materialien hängt in einer Stückliste oder ist sonstwie aktiv.

Reicht es wenn ich einfach die Einträge aus der MDKP & MDTC (bzw. MDTB) lösche?

Grüße

Alpmann
vor 9 Jahre
Hallo M&Mler,

nimm doch einfach die Transaktion MD08 (Reorg Dispolisten).

Dort kannst du nach Werk bzw. nach Werk/Disponent eingrenzen und alle Dispolisten löschen. Sofern ihr das in eurerm nächlichen MRP Lauf eingestellt habt, werden alle Dispolisten wieder neu erstellt.

Mit freundlichen Grüßen

Matthias Alpmann

Alpmann
vor 9 Jahre
Hallo M&Mler,

das eben war natürlich Blödsinn. Die MD08 war ja nicht die Wahl der Dinge... Bin wohl schon beim Vatertag 😁.

Über den Funktionsbaustein DELETE_MRP_LIST kannst du Dispolisten löschen. Leider ist der Funktionsbaustein nicht RFC fähig. Sonst hatte man dies über ein kleines VBA Programm machen können.

Wenn du mit SE38 Erfahrung hast, dann kannst du dier hierfür ein kleines Programm schreiben. Aus der MARC die Materialnummern selektieren (DISMM = 'ND') und dann aus der

Tabelle MDKP über MATNR/PLWRK die DTNUM holen und zu jedem Treffer den Funktionsbaustein DELETE_MRP_LIST aufrufen.

So ein kleines Helferlein macht programmiert durchaus Sinn, da ja täglich die User wieder neue inaktive Materialnummern nachlegen können.

Einfach so die Tabelleninhalte löschen würde ich nicht.

Mit freundlichen Grüßen

Matthias Alpmann

rick
  • rick
  • SAP Forum - Guru
vor 9 Jahre
Hallo,

ich verstehe eigentlich nicht wieso die MD08 (bzw. der Report RMMDKP01) nicht die Wahl der Dinge sein sollte. Üblicherweise stellt man ja sicher, dass jedes Material in definierten Abständen geplant wird. Damit ist auch definiert wann man die veralteten Dispolisten löschen kann.

Gruß,

Rick

M&Mler
  • M&Mler
  • SAP Forum - Guru Thema Starter
vor 9 Jahre
Den FuBA hatte ich leider nicht gefunden...Probiere ich aber gleich mal aus.

// Nachtrag

Der Fuba erinnert mich stark an meine erste Lösung "einfach die Tabelle MDTC löschen" ;-)

Das Problem sind >5 Mio MARC und > 20 Mio VBAP Sätze (pro Jahr). Entsprechend massive Laufzeiten erzeugt man, wenn man mit der großen Keule Daten bereinigen will.

Da wird jeder Query zum Performance-Thema.

Danke für die Antwort

M&Mler
  • M&Mler
  • SAP Forum - Guru Thema Starter
vor 9 Jahre
Lösung:

... nicht schön aber funktioniert einwandfrei.

Das Ganze mit nem Klicker "TESTLAUF" und ALV Ausgabe.


  SELECT a~matnr a~werks b~dtnum b~cflag INTO CORRESPONDING FIELDS OF TABLE gt_mrp
    FROM MARC AS a
      inner join MDKP as b
        ON  a~matnr = b~matnr
        AND a~werks = b~plwrk
    WHERE
          a~dismm = 'ND'
      AND b~DTART = 'MD'.

...

LOOP AT gt_mrp ASSIGNING <fs_mrp>.
"Dispolisten löschen
ALL FUNCTION 'DELETE_MRP_LIST'
  EXPORTING
    ICFLAG        = <fs_mrp>-CFLAG
    IDTNUM        = <fs_mrp>-DTNUM
    .
"Jetzt noch MDKP löschen
 DELETE FROM MDKP WHERE 
      DTART = 'MD'
  AND MATNR = <fs_mrp>-matnr
  AND PLWRK = <fs_mrp>-werks
 .

...
ENDLOOP.

-->Fertig