USEREXIT_CUST_MATERIAL_READ

SAP R/3 Vertrieb: Auftragsverwaltung, Versand und Transport, Fakturierung, Kreditmanagement, Außenhandel/Zoll...
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

USEREXIT_CUST_MATERIAL_READ

Beitrag von Fredi (ForumUser / 42 / 0 / 0 ) »
Hallo,

stehe vor einem kleinen Problem.

Ich habe im USEREXIT_CUST_MATERIAL_READ eine vom Standard abweichende Logik definiert. Wann immer eine Partnerrolle ZK vorkommt, soll diese für die Kunden-Material-Infosatz-Findung herangezogen werden (statt der Partnerrolle AG). Das klappt auch soweit gut.

Hier ein Auszug aus dem Userexit:

FORM USEREXIT_CUST_MATERIAL_READ USING US_KUNNR.
* US_KUNNR = xxxx-zzfield1.
break-point.
loop at xvbpa where parvw = 'ZK'.
sy-subrc = 0.
if xvbpa-kunnr NE kuagv-kunnr.
US_KUNNR = xvbpa-kunnr.
endif.
endloop.
ENDFORM.

Jetzt habe ich nur folgendes Problem bzw. Aufgabenstellung: Wann immer sich der Warenempfänger ändert, ändert sich auch die Partnerolle ZK. Ich möchte also, daß bei einer Änderung des WE die Kunden-Material-Infosatz-Findung neu angestoßen wird.

Im Programm SAPFV45P wird die Form RV_CUSTOMER_MATERIAL_READ aufgerufen. Wo kann ich denn am besten sagen, daß, wenn sich der WE ändert genau diese Form nochmal aufgerufen wird. Und außerdem kann es ja sein, daß dann schon einige spezielle Felder (wie z.B. vbap-kdmat schon gefüllt sind). Mir ist der USEREXIT_SOURCE_DETERMINATION aufgefallen. Der wird wohl auch immer angestoßen, wenn man den WE ändert und der kümmert sich dann u.a. um die neue Werks-Findung. Habt ihr ein Idee? Freue mich auf Antworten. Gerne mit Coding. (bin ja eigentlich kein ABAP-Entwickler)

Gruß, Fredi

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Hermann ( / / 0 / 3 ) »
Kannst Du mir mal sagen, wo Du diese Exit-Namen herhast? Die habe ich bisher nicht gefunden.

Evtl. kann man den EXIT_SAPLV46H_002 heranziehen und da drin den Fuba RV_CUSTOMER_MATERIAL_READ aufrufen:

Code: Alles auswählen.

 CALL FUNCTION 'RV_CUSTOMER_MATERIAL_READ'
       EXPORTING
            CMR_KDMAT      = VBAP-KDMAT
            CMR_KUNNR      = DA_KUNNR
            CMR_MATNR      = VBAP-MATNR
            CMR_VKORG      = VBAK-VKORG
            CMR_VTWEG      = VBAK-VTWEG
            CMR_SPART      = VBAK-SPART
       IMPORTING
            CMR_KNMT       = KNMT
       EXCEPTIONS
            KNMT_NOT_FOUND = 1.
Hermann

Beitrag von Fredi (ForumUser / 42 / 0 / 0 ) »
Hallo Hermann,

also der Userexit USEREXIT_CUST_MATERIAL_READ kommt aus dem Programm SAPMV45A.


RV_CUSTOMER_MATERIAL_READ kommt wie gesagt aus dem Programm SAPFV45P. Hier wird dann in den Userexit verzweigt.

Die Hauptfrage ist eigentlich: Wie kriege ich es hin, daß der FuBa aufgerufen wird, wenn der WE sich ändert.

Danke und Gruß,

Markus

Beitrag von Hermann ( / / 0 / 3 ) »
Glaube nicht, daß man das so ohne weiteres über einen User-Exit hinbekommt, denn wie willst Du wissen, das der aktuelle Warenempfänger geändert wurde? Dazu müsstest Du die aktuelle Struktur (XVBPA) und die alte Struktur (YVBPA) am 'Wickel' haben um entsprechend zu vergleichen, bzw. die Dynprostruktur RV02P, Feld WEUPD (hat sich Warenempfänger geändert).
Ich wüsste leider keinen User-Exit, wo Du an diese Struktur(en) rankommst.
Du könntest allerdings den RV_CUSTOMER_MATERIAL_READ grundsätzlich aufrufen?!

Hermann

Beitrag von Fredi (ForumUser / 42 / 0 / 0 ) »
Hallo Hermann,

danke für Deine Unterstützung.

Klar den RV_CUSTOMER_MATERIAL_READ kann ich nochmal aufrufen. Problem ist nur, daß dann schon einige Werte gefüllt sind (KDMAT etc). Außerdem arbeitet er dann immer noch mit dem "alten" Warenempfänger. Warum auch immer. Wo würdest Du den RV_CUSTOMER_MATERIAL_READ erneut aufrufen. ich hatte an USEREXIT_SOURCE_DETERMINATION gedacht. Wird u.a. immer dann aufgerufen, wenn das System z.B. ein Werk neu ermittelt, weil der WE geändert wurde. Hast Du noch ne andere Idee.

Gruß,

Fredi

Beitrag von Hermann ( / / 0 / 3 ) »
Nein, momentan leider nicht. Ich würde Dir empfehlen, dort den Aufruf reinzumachen und zu testen, ob das Deine Anforderungen abdeckt. Falls nicht, muss man nochmals nachschauen, ob man nicht doch eine bessere Stelle für den Aufruf findet.
Evtl. könnte man über einen 'dirty assign' auch auf Daten ausserhalb der eigentlichen Exit-Schnittstelle zugreifen, um feststellen zu können, ob sich der WE geändert hat. Dazu würde ich aber nur im 'äußersten Notfall' raten.

Hermann

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2776
Views
fetch material group,material account 3010 and Plant(WERKS)
von dragospirnut1 » 05.07.2017 12:27 • Verfasst in ABAP Objects®
6
Antw.
2708
Views
0
Antw.
1458
Views
Suche Unterstützung für 3-4 Stunden im FI-Cust. im Rhein-M
von Johannes » 15.12.2005 23:37 • Verfasst in Financials
8
Antw.
8072
Views
Übersicht aller Cust. Tabellen und deren Änderungstrans.
von Spookykid » 08.07.2011 09:26 • Verfasst in SAP - Allgemeines

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.