Prüfung des aufrufenden Programms

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Prüfung des aufrufenden Programms

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hallo liebe ABAP-User,

ich habe folgendes Problem:

Die Transaktion VL10 wird über 3 Varianten per Job gestartet. Hierbei werden für gefundene noch nicht belieferte Aufträge direkt Lieferungen mit der Tr. VL01N erzeugt.
Jetzt ist aber so das die obigen 3 Varianten in einer eigenen Customizing-Tabelle aktiviert bzw. inaktiviert werden können. Ist die Variant aktiviert so muß das Incoterm1-Feld geändert werden im Lieferbeleg-Kopf (LIKP-INCO1). Ich habe auch einen User-Exit gefunden in dem ich das entsprechend codiert habe.
Jetzt ist aber das Problem das diese Änderung des Incoterms nur durchgeführt werden soll wenn die Lieferungen über die VL10 angelegt werden.
Wenn also ein User über die VA01 einen Auftrag anlegt und diesen auch gleich beliefern möchte soll der Incoterm nicht über den User-Exit geändert werden.

Wie kann man das realisieren? Hat hier jemand eine Idee?

Mein Lösungsansatz bisher ist:
- in einem User-Exit der VL10 sichere ich mir die ausgewählte Variante mit dem User-Namen in eine transparente Tabelle. Vor der Sicherung lösche ich alle Einträge der transparenten Tabelle die den aktuellen Usernamen im Schlüssel haben

- im User-Exit der VL01N lese ich den Namen der benutzten Variante und prüfe ob diese aktiv oder inaktiv ist

- ist die Variante aktiv ändere ich den Incoterm1 und die Lieferung wird gesichert

Das funktioniert soweit ja... nur wie oben beschrieben wenn der gleiche User über die VA01 einen Auftrag beliefert wird auch der User-Exit der VL01N durchlaufen und dort wird dann wieder geprüft ob die Variante aktiv ist. UND DAS SOLL EBEN NICHT PASSIEREN!!!

Bin für jeden Lösungshinweis dankbar.
Chatty

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


Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Hallo chatty,

dir könnten vielleicht ganz einfach ein paar Systemfelder helfen:
SY-BATCH ==> Knz. Anwendung läuft im Batch, damit scheidet VA01 im Online aus
SY-CPROG ==> oberstes bzw. erstes Programm, bei VL10 ist das RVV50R10C

mfg dele

p.s.
Ich würde anstatt mit einer transparenten Tabelle mit "Export to Memory" arbeiten. Ist flexibler und schneller

Beitrag von chatty (Specialist / 114 / 0 / 0 ) »
Hallo Dele,

vielen Dank für deine Tips, das habe ich auch schon leider erfolglos probiert. Der User-Exit in der VL01N befindet sich in einem RFC-Funktionsbaustein und damit sind die Infos die ich ins Memory exportiere zu dem Zeitpunkt nicht vorhanden, die Felder der SYST enthalten nicht die benötigten Informationen die ich brauche.

Ich habe es jetzt wie folgt gelöst:
- in der VL10 wird der Transaktionscode "VL10X" in das Memory exportiert bevor die Transaktion VL01N aufgerufen wird.

- in der VL01N hole ich mir das Memory wieder nach dem der RFC-Funktionsbaustein aufgerufen wird und kann dann wenn im Memory "VL10X" drinsteht entsprechend reagieren

War eine ziemlich harte Nuss aber es funktioniert ;-)

Viele Grüße
Chatty

Seite 1 von 1

Vergleichbare Themen

11
Antw.
2964
Views
Aufrufe , eines Programms
von bohne » 15.02.2007 16:21 • Verfasst in ABAP® für Anfänger
1
Antw.
1219
Views
Wie änder ich den Titel eines Programms?
von Gast » 18.08.2005 17:57 • Verfasst in ABAP® Core
2
Antw.
1215
Views
Titel des Programms Sprachabhängig ändern
von abapfreshman » 05.07.2021 16:36 • Verfasst in ABAP® für Anfänger
9
Antw.
3143
Views
Variante YYY des Programms zabc ist veraltet
von ibo » 26.08.2015 15:41 • Verfasst in ABAP® für Anfänger
6
Antw.
5512
Views
Komplettes kopieren eines ABAP Programms
von commolus » 21.01.2013 13:12 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 7 Stunden von Bright4.5 3 / 1479
Regex in where
vor 8 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 23 Stunden von DeathAndPain 2 / 126

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.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 7 Stunden von Bright4.5 3 / 1479
Regex in where
vor 8 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 23 Stunden von DeathAndPain 2 / 126

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821