Werte im User-Exit in DB-Tabelle schreiben

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

Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Hallo zusammen,

ich möchte im User-Exit USEREXIT_PRICING_PREPARE_TKOMP im Programm MV45AFZZ ein Feld in der Auftragsposition befüllen und auch in die DB schreiben.

Das Feld ist aus der Tabelle VBAP und heißt ZZ_ISCORRECT. Ich hätte jetzt gedacht, dass wenn ich das Feld in der gleichnamigen Workarea in dem User-Exit belege, dann würde der Wert beim Speichern des Auftrags auch in die Datenbank übernommen werden. Also

Code: Alles auswählen.

vbap-zz_iscorrect = 'X'.
Der Code wird durchlaufen, habe es mir im Debugger angeschaut. Leider erscheint der gesetzte Wert nicht in der Datenbanktabelle.

Muss ich hier noch extra einen Befehl zum Speichern ausführen?

Danke für Hilfe und Gruß

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


Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Die Lösung ist natürlich ganz klar

Code: Alles auswählen.

UPDATE vbap FROM vbap.
=)

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
:cry: :cry: :cry: :cry:
Die Lösung ist keine Lösung!!
Was machste denn, wenn der Anwender die Materialnummer ändert, das Werk und den Lagerort und hinterher die Frage "Möchten Sie Sichern?" mit "Nein" beantwortet??

Code: Alles auswählen.

vbap-updkz = 'U'.
Siehe auch hier: http://tricktresor.de/content/index.php?navID=53&aID=66

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Hallo ewx,

danke für deinen Hinweis. In deinem beschriebenen Fall würde der User-Exit aufgerufen werden, der Wert neu ermitteln und in die Datenbank geschreiben werden. Aber sogar auch die Werte die der Anwender geändert hat, obwohl er es gar nicht speichern wollte. Das ist natürich fatal.

Ok, also anstelle meines Codes, setze ich das Updatekennzeichen auf U, sollte der Anwender speichern, wird es in die Datenbank geschrieben. Richtig?

Kannst du mir noch kurz mitteilen, wann ich in die X-Tabelle z.B. xvbap und wann in vbap schreiben sollte?

Danke und Gruß

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Hi!
achamees hat geschrieben:In deinem beschriebenen Fall würde der User-Exit aufgerufen werden, der Wert neu ermitteln und in die Datenbank geschreiben werden. Aber sogar auch die Werte die der Anwender geändert hat, obwohl er es gar nicht speichern wollte. Das ist natürich fatal.
In MEINEM beschriebenen Fall? Was meinst du?
achamees hat geschrieben:Ok, also anstelle meines Codes, setze ich das Updatekennzeichen auf U, sollte der Anwender speichern, wird es in die Datenbank geschrieben. Richtig?

Eeeexakt.
achamees hat geschrieben:Kannst du mir noch kurz mitteilen, wann ich in die X-Tabelle z.B. xvbap und wann in vbap schreiben sollte?
Wenn du in deinem Exit die VBAP im Zugriff hast (...MOVE_TO_VBAP, ...CHECK_VBAP etc), und es wird ein Feld in der VBAP geändert, dann merkt das Programm normalerweise, dass sich zu vorher etwas geändert hat und setzt das UPDKZ automatisch.
Wenn du z.B. im ...SAVE_DOCUMENT_PREPARE ganze Positionen ändern möchtest, dann musst du natürlich die XVBAP bearbeiten und auch entsprechend das UPDKZ setzen.

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Mit deinem beschriebenen Fall meine ich:
Was machste denn, wenn der Anwender die Materialnummer ändert, das Werk und den Lagerort und hinterher die Frage "Möchten Sie Sichern?" mit "Nein" beantwortet??
Ok, also in meinem User-Exit User-Exit USEREXIT_PRICING_PREPARE_TKOMP habe ich nach meinem Verständnis die vbap im Zugriff, also kann ich dort ja auch einzelne Felder verändern. Frage mich nur, warum er dann nicht beim Speichern des Auftrags in die Datenbank geschrieben wird.

Hast du da vielleicht noch eine Idee?

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
achamees hat geschrieben:Mit deinem beschriebenen Fall meine ich:
Was machste denn, wenn der Anwender die Materialnummer ändert, das Werk und den Lagerort und hinterher die Frage "Möchten Sie Sichern?" mit "Nein" beantwortet??
danke für deinen Hinweis. In deinem beschriebenen Fall würde der User-Exit aufgerufen werden, der Wert neu ermitteln und in die Datenbank geschreiben werden. Aber sogar auch die Werte die der Anwender geändert hat, obwohl er es gar nicht speichern wollte. Das ist natürich fatal.
ja genau.


Ok, also in meinem User-Exit User-Exit USEREXIT_PRICING_PREPARE_TKOMP habe ich nach meinem Verständnis die vbap im Zugriff, also kann ich dort ja auch einzelne Felder verändern. Frage mich nur, warum er dann nicht beim Speichern des Auftrags in die Datenbank geschrieben wird.

Hast du da vielleicht noch eine Idee?
der erwähnte Exit hat ja - wie der Name bereits sagt - nichts mit der VBAP zu tun, sondern lediglich mit der Preisfindung für die Auftragsposition. In dem Fall hast du denke ich den falschen Exit am Wickel.

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Naja, ich denke nicht. Denn es funktioniert ja. Er setzt in dem Exit immer die den richtigen Eintrag in der VBAP. Mein Exit muss immer jedoch immer vor jeder Ausführung der Preisfindung aufgerufen werden, da dort alle benötigten Infos vorliegen.

Die Frage ist, warum speichert er den Wert an der Stelle nicht in die Datenbank? Kann ich das Updatekennzeichen an der Stelle manuell setzen?

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Es stehen zwar die richtigen Daten in der VBAP, also die für die aktuelle Position, aber es wird halt hinterher nicht abgefragt, ob sich in der VBAP etwas geändert hat. Die XVBAP müsste aber dann auch richtig "positioniert" sein, so dass du das UPDKZ hier setzen könntest.
Das sind dann aber wahrscheinlich die Art von Programmierungen, die den Anwender verwirren, denn wahrscheinlich muss er nur einmal in eine Position springen, du setzt das Update-Flag und der Anwender wundert sich, warum er die Frage "Wollen Sie sichern?" bekommt, obwohl er gar nichts geändert hat.
Kann sein, dass ich mich irre, probier's aber auf jeden Fall mal aus...

Re: Werte im User-Exit in DB-Tabelle schreiben

Beitrag von achamees (ForumUser / 11 / 0 / 0 ) »
Stimmt schon, aber der User-Exit sollte doch nur aufgerufen werden, wenn sich irgendwas verändert, denn nur dann würde die Preisfindung neu angestoßen werden.

Ich probier mal und melde mich.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
528
Views
2
Antw.
1425
Views
Werte bei BDC in ein tabel Control schreiben
von errorist » 24.06.2008 11:24 • Verfasst in ABAP® für Anfänger
4
Antw.
1960
Views
Ausgewählte Werte aus F4-Hilfe in Variable schreiben
von Tgut » 06.02.2014 15:34 • Verfasst in ABAP® für Anfänger
5
Antw.
836
Views
2
Antw.
7178
Views
in interne Tabelle schreiben
von anki_86 » 25.06.2007 08:53 • Verfasst in ABAP® für Anfänger

Ü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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 606
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2235
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8827