so ohne weiteres wirst du das nicht erkennen können.
Eigentlich bleibt dir nicht viel anderes als jede position des materialbeleges zu prüfen und festzustellen, ob es einen gegensätzlichen Materialbeleg gibt, der im Feld SHKZG statt H ein S (oder umgekehrt) hat, desweiteren muss im LGORT des Stornobelegs der UMLGO des Ausgangsbeleg stehen (oder umgekehrt). Die Materialnummern, Mengen und Einheiten etc. sollten natürlich auch stimmen. So kannst du das identifizieren und wenn alle Positionen eine gegensätzliche Storno-Position haben den gesamten Beleg als storniert betrachten.
Wir haben mal für einen Kunden eingerichtet, dass bei einer Storno-Bewegung die MBLNR-MJAHR ins Feld XBLNR des Belegkopfes eingetragen wird. Das erleichtert die Suche natürlich ungemein, aber müsste halt auch erst programmiert werden und bringt dir zur momentanen Situation leider nichts.
Ich habe das jetzt so gelöst. Ich prüfe ob für den Beleg ein Beleg mit der Stornobelegart vorhanden ist, der in den Feldern LFBJA, LFBNR und LFPOS die Werte des Ursprungsbeleges besitzt. Ist aber nich besonders schnell.
Hallo Norbert,
sofern die Stornos mit der MBST vorgenommen werden, könntest Du noch den Transaktionscode in der MSEG abfragen. Vielleicht gibt das noch etwas Dampf auf den Kessel...
sofern du noch keinen Sekundärindex auf die benutzten Felder hast, könntest du auch noch sowas festlegen, dann geht die Abfrage auch schneller, da er dann keinen full-table-scan machen muss.
wenn eine Materialbelegsposition (MSEG) storniert wurde, gibt es immer einen entsprechende Storno-Position auf der MSEG. Diese Stornoposition enthält in den Feldern MSEG-SMBLN, MSEG-SMBLP und MSEG-SJAHR die Referenz auf die ursprüngliche Position, die storniert wurde.
D.h., wenn man prüfen will, ob eine Position über MBST oder MIGO storniert wurde, muss man nach einem entsprechenden MSEG-Satz mit MSEG-SMBLN = MSEG-MBLNR, MSEG-SJAHR = MSEG-MJAHR und MSEG-SMBLP = MSEG-ZEILE suchen. Für diese Selektion gibt es üblicherweise bereits den von SAP ausgelieferten Index "S" - die Suche sollte also sehr schnell sein.
Wenn mann wissen möchte, ob es sich bei einer Position um eine Stornoposition handelt, muss man nur prüfen, ob MSEG-SMBLN etc. gefüllt ist.
Die Variante von Thanatos82, nach entsprechenden Materialbelegen zu suchen, die genau die umgekehrten Daten enthalten, halte ich doch für gefährlich. Ggf. würden dann Belege als Storno angesehen werden, obwohl sie aus fachlicher Sicht keinen Storno zum ursprünglichen Beleg darstellen. Natürlich könnte man solche Belege auch als Storno betrachten, die echte Stornobeziehung ergibt sich m.E. aber nur über SMBLN, SJAHR und SMBLP. Gibt es einen solchen Beleg nicht, wurde nicht sauber über MBST bzw. MIGO storniert und der Anwender hat ggf. falsch gebucht.
Viele Grüße,
Lars
Folgende Benutzer bedankten sich beim Autor Sral für den Beitrag: Xilukarim