SAP Jobsuche bei DV-Treff
saplex
  • saplex
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Hallo,

ich wollte ein Query generieren, bei dem ich an Hand einer Bestellnummer sehe, ob der Wareneingang bereits stattgefunden hat.

Es soll ohne den Materialbeleg funktionieren, rein über die Bestellnummer.

Nach Eingabe der Bestellnummer sollen, sowohl die gelieferten, als auch die noch nicht gelieferten Positionen angezeigt werden. In meinen Versuchsreihen wurden immer nur gelieferte Positionen angezeigt.

Ich hatte bereits ein Query mit der MSEG erstellt, welches auch halbwegs funktioniert, jedoch ist die Performance ziemlich schlecht, obwohl mit dem Jahr und der Bestellnummer schon relativ schnell Ergebnisse dargestellt werden sollten.

Förderer

mxstml
vor 5 Jahre
Hi,

hast Du in deinem Query einen Inner-Join verwendet?

Falls Ja: Versuch mal einen Left-Outer-Join, das könnte helfen auch die nicht belieferten Positionen auszugeben.

Gruß

Nordwolf
vor 5 Jahre
Hallo,

welche Tabellen liest du denn aktuell?

Wenn es nur um die Info zum Wareneingang ja oder nein geht, würde ich die EKBE auswerten.

Entweder du baust sie mit dran und filterst auf BWA 101 (und andere in Frage kommende) oder du fragst nur über ein Zusatzfeld ab, ob es zu Beleg+Posnummer einen Eintrag mit BWA 101 gibt.

Nachtrag: Du könntest auch auf das Endlieferkennzeichen prüfen, wenn die Aussage reicht, ob die Position vollständig beliefert wurde. Das findest du bereits in der EKPO.

Gruß,

Nordwolf

saplex
  • saplex
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Hallo,

ich hatte bisher kein Join, da ich lediglich mit einer Tabelle gearbeitet habe (MSEG).

Die EKBE alleine funktioniert nicht, da ich die Bestellnummer als Suchkriterium verwenden möchte. Wenn ich die MSEG mit der EKBE verknüpfe, dann ein Inner-Join oder Left-Outer-Join verwende, kommt es trotzdem zu einer längeren Laufzeit (ca. 30s).

Zudem werden nur bereits gelieferte Positionen angezeigt, nicht die offenen.

Ich verwende folgende Datenfelder:

Bestellnummer

Nummer des Materialbelegs

Buchungsdatum im Beleg

Materialnummer

Endlieferungskennzeichen

Positionsnummer des Einkaufsbelegs

Wareneingang unbewertet

Vorgangsart Bestellentwicklung

Nordwolf
vor 5 Jahre
Versteh ich nicht... die EKBE hat die Bestellnummer doch als Schlüssel (EKBE-EBELN). Wieso startest du mit der MSEG, wenn du über die Bestellnummer suchen möchtest? Den zugehörigen Materialbeleg findest du dann auch in der EKBE. Wenn du weitere Infos zum Beleg brauchst, kannst du dazu dann die MSEG joinen... aber ich würde hier auf jeden Fall von den Tabellen mit Bestellungen aus starten.
saplex
  • saplex
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Mein Fehler, ich hatte gedacht, dass die EKBE-EBELN nicht die Bestellnummer, sondern die Materialbelegnummer sei.

Dann wäre nun das einzige Problem, dass die noch nicht gelieferten Positionen nicht angezeigt werden...

Ich verstehe nicht, wieso das der Fall ist, da ich ja nicht auf irgendwas derartiges selektiere. Meine Vermutung geht eher dahin, dass ich grundlegend was falsch mache, entweder die Tabelle oder was anderes...

Nordwolf
vor 5 Jahre
Nee, das passt. Habe gerade selber nochmal getestet. Die EKBE enthält natürlich nur Werte, wenn es auch eine Bestellentwicklung gibt. Wenn die Position noch unbebucht ist, erscheint sie hier nicht. 😒

Daher bietet sich ein Join von EKPO zu EKBE an. Die EKPO liefert dir alle Positionen der Bestellung und über die EKBE (left outer Join!) kannst du je Position dazulesen, ob es einen Wareneingang gibt.

Das müsste dann aber hoffentlich passen.

Gruß, Nordwolf

saplex
  • saplex
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Die EKPO reicht theoretisch schon aus, ich habe jedenfalls alle Infos die ich wollte.

Komischerweise werden mir jedoch immer zwei Zeilen mit der selben Bestellposition angezeigt, fern ein Wareneingang verzeichnet wurde.

Quasi so:

Bestellung 1 | Pos 10 | Artikel 1 | 08.01.2018 | geliefert

Bestellung 1 | Pos 10 | Artikel 1 | 08.01.2018 | leer

Bestellung 1 | Pos 20 | Artikel 2 | 08.01.2018 | leer

Bestellung 1 | Pos 30 | Artikel 3 | 08.01.2018 | geliefert

Bestellung 1 | Pos 30 | Artikel 3 | 08.01.2018 | leer

Position 20 wäre ein Beispiel, wenn kein WE stattfand.

Ich will, dass jede Position nur eine Zeile einnimmt.

saplex
  • saplex
  • SAP Forum - Neuling Thema Starter
vor 5 Jahre
Erledigt, ich musste nur die Vorgangsart 2 von meinen Ergebnissen ausschließen, dann klappt es.

Ich danke euch für die Hilfe.