SAP Jobsuche bei DV-Treff
Mac_Gyver86
vor 14 Jahre

Hallo zusammen,

ich komme bei einem SAP Query nicht weiter und hoffe dass mir hier jemand einen Tipp geben kann.

Folgendes:

Es sollen Vertriebsbelge mit einer zusätlichen Information aus dem Kundenstamm ausgegeben werden. Ein Kunde hat verschiedene Partnerrollen z.B. AG (Auftraggeber) WE (Warenempfänger) P1 (zuständiger Mitarbeiter) p2 (zuständiger Außendienst) Die Vertriebsbelege sollen jetzt ausschließlich mit der Partnerrolle P1 ausgegeben werden und wenn diese nicht vorhanden ist bleibt die Spalte leer.

 

Aktuell:

Das System listet den Auftrag 4 mal auf, da 4 Partnerrollen vorhanden sind

 

Soll Lösung:

Das System listet den Auftrag nur einmal mit der Rolle P1 auf und wenn diese nicht vorhanden ist bleibt das Feld einfach leer

 

Hat hier jemand eine Lösung? Ich habe bereits versucht mit Lokalen Felder oder gar Zusatzfelder und ABAP Coding zu arbeiten komme aber nciht auf das gewünschte Ergebnis.

 

Viele Grüße

Mac_Gyver86

ereuss
vor 14 Jahre

Hallo Mac_Gyver86,

nimm doch das Feld 'Partnerrolle' in die Selektion mit auf und frage nach der Partnerrolle P1 ab. Dann sollte der Auftrag auch nur noch 1x ausgegeben werden. Aussdem solltest Du (wenn nicht schon gemacht) einen left-outer Join auf die Tabelle VBPA machen, damit auch Aufträge selektiert werden, bei den es keine Partnerrolle P1 gibt.

Gruss

Eugen

Mac_Gyver86
vor 14 Jahre

Guten Morgen Eugen,

das Feld Partnerrolle habe ich schon einmal mit in die Selektion aufgenommen aber dann kommen nur Vertriebsbelge bei denen auch eine Partnerrolle P1 existiert. Es gibt auch Kundenstammdaten ohne P1 Einträge und diese Vertriebsebelge möchte ich auch sehen. Das mit den Left outer join ist eine gute Idee aber leider hat das bei mir nichts gebracht. Die Ausgabe hat sich nach dieser Einstellung überhaupt nicht geändert.

Kann es sein, dass der Left outer join unserer SAP Branchenlösung defekt ist und durch ein Ticket von der SAP korrigiert werden muss oder ist die Funktion SAP Standard und müsste demnach auf der ganzen Welt falsch sein... das kann cih mir aber nicht vorstellen :)

Viele Grüße
Mac_Gyver86

 

ereuss
vor 14 Jahre

Hallo Mac_Gyver86,

der Left outer Join ist die Art der Verknüpfung zwischen Tabellen. Die ist immer vorhanden.

Welche Tabellen hast Du miteinander verknüpft ? Müsste ja etwa so aussehen: VBAK/VBAP -> VBPA (Left outer Join) -> KNA1.

Andere Möglichkeit: nur VBAK/VBAP im Infoset verknüpfen, ein Zusatzfeld im Infoset definieren und dort über Coding die Daten über Partnerrolle und Kundenstamm dazulesen.

Gruss

Eugen

Mac_Gyver86
vor 14 Jahre
Hallo Eugen,

ich habe nun endlich die Lösung.

Ich habe die KNVV (Kunden Stammdaten) mit der KNVP (Partnerrollen) verknüpft.

Damit ich keine doppelten Einträge erhalte, habe ich im INFOSET die KNVP als Zusatztabelle mit der KNVV verknüpft. Der Select ist dann so aufgebaut, dass die Partnerrolle 'P1' fest definiert ist. Dadurch wird nur diese Partnerrolle ausgegeben falls vorhanden.

Viele Grüße
Mac_Gyver86