Lt. Hinweis 2398371 - Verwendung von Feldern auf Positionsebene (z.B. Werk) für die Nachrichtenfindung, ist es zwar grundsätzlich möglich, Felder aus der Bestellposition in die Zugriffsfolgen der Nachrichtenfindung einzufügen, jedoch werden diese nicht befüllt und sind somit zur Findung von Nachrichtenkonditionen unbrauchbar.
Auszug aus HW 2398371:
Symptom
für die Nachrichtenfindung im MM-Einkaufsbereich möchten Sie Felder auf Positionsebene verwenden, z.B. Werk, Warengruppe usw. Sie fügen das entsprechende Feld zur Zugriffsfolge hinzu und pflegen dafür einen Konditionssatz, aber der Nachrichtensatz wird weiterhin nicht gefunden.
Bei der Nachrichtenfindung wird nicht auf die Daten der einzelnen Positionen des Einkaufsbelegs (z.B. Tabelle EKPO oder EKET) zugegriffen, da die Werte in den positionsbezogenen Tabellenfeldern (z.B. EKPO-WERKS) von Position zu Position unterschiedlich sein können. Daher füllt das System das Feld auf Positionsebene (z.B. Werk usw.) nicht, so dass es den darauf basierenden Konditionssatz nicht finden kann.
Auflösung
In der SAP-Standardsoftware gibt es keine direkt unterstützte Lösung.
Bei der Lösung handelt es sich um ein Beratungsthema. Die folgenden Informationen sollen Ihnen die Richtung geben, aber keine konkrete Beratungslösung bereitstellen und diese für Ihre eigene Verantwortung verwenden:
Folgen Sie z.B. einer ähnlichen Logik wie im SAP-Hinweis 39462 erwähnt und RVCOMFZZ FORM USEREXIT_KOMKBEA_FILL für benutzerdefiniertes ABAP-Coding, z.B. Speicherzuordnung ( '(SAPLMEPO)POT[]' ) oder ein direktes SQL-Lesen von EKPO-Daten aus der Datenbank.
Eine solche "Beraterlösung" soll im folgenden kurz vorgestellt werden. Folgendes Szenario sei gegeben:
Die Nachrichtenfindung soll in Abhängigkeit des Lieferwerkes erfolgen. Da dieses - wie richtig im o.g. Hinweis beschrieben - von Position zu Position unterschiedlich sein kann, soll es explizit aus der ersten Position der Bestellung gezogen werden.
Eine entsprechende Zugriffsfolge inkl. Nachrichten-Konditionstabelle sei bereits im Customizing angelegt worden und das Feld in der für die Bestellnachrichten relevanten Kommunikationsstruktur KOMKBEA heiße WERKS.
Das Customizing zur Nachrichtenfindung in der Bestellung findet sich im IMG unter Materialwirtschaft - Einkauf - Nachrichten - Ausgabesteuerung
Um nun das Feld WERKS in der Kommunikationsstruktur KOMKBEA im Rahmen der Nachrichtenfindung zu befüllen, muss es über einen Userexit versorgt werden. Hierzu sind gewisse Grundkenntnisse in der ABAP/4-Entwicklung vonnöten. Der entsprechende Userexit befindet sich im Programm RVCOMFZZ, Form USEREXIT_KOMKBEA_FILL.
Ein Mustercoding zur Bedienung der oben beschriebenen Anforderung könnte so aussehen:
*---------------------------------------------------------------------*
* FORM USEREXIT_KOMKBEA_FILL *
*---------------------------------------------------------------------*
* This userexit can be used to move additional fields into the *
* communication table which is used for application EA *
*---------------------------------------------------------------------*
FORM userexit_komkbea_fill.
* Werk aus der ersten Bestell-Position holen und in
* passendes Feld in Struktur KOMKBEA abfüllen
SELECT WERKS FROM EKPO INTO COM_KBEA-WERKS "Feldname aus Zugriffsfolge
WHERE EBELN = COM_EKKO-EBELN UP TO 1 ROWS
ORDER BY EBELP ASCENDING.
ENDSELECT.
* COM_KBEA-ZZFIELD1 = COM_EKKO-field.
ENDFORM.
Im Ergebnis wird das Feld WERKS im Zuge der Nachrichtenfindung befüllt und der Zugriff auf werksabhängige Nachrichtenkonditionen ist möglich.