Submit Message und Dynpro abfangen

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Submit Message und Dynpro abfangen

Beitrag von kaufikauf (ForumUser / 15 / 4 / 0 ) »
Hey an alle!

Vielleicht hat ja jemand die Lösung für folgendes Problem:

Ich rufe per SUBMIT ein Programm auf und übergebe Parameter:

Code: Alles auswählen.

 SUBMIT zzhu_wareneingang USING SELECTION-SCREEN '1000'
                               WITH so_exidv IN gr_exidv
                               WITH gp_bwart = '101'
                               WITH gp_werks = gs_vekp-vegr2
                               WITH gp_lgort = 'FL01'
                               WITH gp_frbnr = gv_frbnr
                               WITH gp_datum = sy-datum
                               AND RETURN.
Nun gibt es leider beim Testen den Fall, dass er eine Message Typ A auswirft, was das aufrufende Programm beendet, und nicht nur den SUBMIT.
Desweiteren gibt er manchmal ein Fehlerprotokoll an (was zwar richtig is) jedoch den Benutzer zwingt den "Zurück" Button zu benutzen, es wäre hilfreich dies abzufangen.

Habe zwar online schon was dazu gefunden, dass man sowas wohl mit CALL TRANSACTION machen könnte, aber das hat meinen Horizont leider total überstiegen :D.

PS: Große Veränderungen im SUBMIT Programm sind leider nicht möglich, da viele andere Programme es auch verwenden.

Ich bedanke mich bei euch im Voraus schonmal!

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


Re: Submit Message und Dynpro abfangen

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Das mit dem Fehlerprotokoll kannst du mit Exporting list to memory abfangen (siehe Online Doku).

Das mit Message type A ist schieriger. Am einfachsten wäre es, in das aufgerufene Programm einen neuen optionalen Parameter einzubauen, der Message Type A umsteuert zu Leave PROGRAM.

Eine andere Lösung ist vermutlich zu aufwendig (funktioniert aber):
Einen RFC-fähigen Funktionsbaustein schreiben, der den Report mit gewünschten Parametern aufruft (ggf. auch mit Exporting list to memory).
Das rufende Programm darf den RFC-Baustein aber nicht "normal" aufrufen, sondern wie folgt:

Code: Alles auswählen.

    call function 'Z_RFC_SUBMIT'
         destination           'NONE'
         starting new task     taskid
         performing            receive_submit   on end of task
         exporting ...........
         tables      ...........
         exceptions
              system_failure             = 01 message ....
              communication_failure = 02 message .....
              others                          = 03.
Bei Interesse mal die Doku dazu lesen. In der Routine receive_submit werden die Daten mit "Receive results from ..." empfangen.
Fehler kann man abfangen, muss man aber nicht.

Re: Submit Message und Dynpro abfangen

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Da wirst du wohl oder übel das aufgerufene Programm ändern müssen.
Denn: Mit Submit (oder auch CALL TRANSACTION) wird die komplette Verarbeitung an das aufgerufene Programm übergegeben und dieses ist fortan für die richtige Verarbeitung zuständig.

CALL TRANSACTION wird dir bei diesem Problem vermutlich auch nicht helfen können, da damit nur die Abfolge der Arbeitsschritte (BCDATA) übergeben wird. Willst du aber, dass der Benutzer von sich aus noch etwas im aufgerufenen Programm einstellen soll, kannst du es nur bis zu diesem Punkt übergeben und alles weitere muss wieder der Benutzer erledigen. Auch das wegklicken der Protokollmeldung.
Du kannst ja testweise mal versuchen einen Transaktionscode für das aufgerufene Programm anlegen und dann einen Durchlauf mit dem Transaktionsrekorder aufzeichen.
http://help.sap.com/saphelp_nw70/helpda ... ontent.htm
Am Ende kannst du dann ein Programm generieren lassen das alle notwendigen Anweisungen enthält.
Aber Achtung: GUI-Controls lassen sich damit nicht aufzeichnen!

Meine Empfehlung ist eine Änderung des Aufrufers:
Einen zusätzlichen Paramter einbauen

Code: Alles auswählen.

PARAMETERS pa_dark TYPE abap_bool NO-DISPLAY.
und alle Messages

Code: Alles auswählen.

MESSAGE ... TYPE 'A'.
in

Code: Alles auswählen.

IF pa_dark EQ abap_true.
  MESSAGE ... TYPE 'S' DISPLAY-LIKE 'A'.
ELSE.
  MESSAGE ... TYPE 'A'.
ENDIF.
Und was halt sonst noch anfällt.
Nur wenn dann beim Submit der Parameter PA_DARK gesetzt wurde wird die Spezialverarbeitung durchgeführt. Dann muss man auch keine Verrenkungnen in anderen Programmen mehr anstellen. Weiters ist es auch relativ Änderungssicher, da sich z.B. Dynpros oder deren Abfolge ja mal Ändern können und dann muss man auch die BCDATA in allen so implementierten Aufrufern ändern.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

6
Antw.
3898
Views
Abfangen von Dynpros bei Reportaufruf über Submit
von dontonno » 23.11.2012 11:56 • Verfasst in ABAP® Core
2
Antw.
1937
Views
Fehler abfangen mit SUBMIT oder CALL TRANSACTION
von Barney » 07.09.2015 16:16 • Verfasst in ABAP® für Anfänger
2
Antw.
1938
Views
Feld in Dynpro ablesen und abfangen
von annaarnst » 03.09.2008 17:40 • Verfasst in ABAP® Core
6
Antw.
5284
Views
Dynpro PBO Fehler Message
von Gast » 15.12.2005 19:23 • Verfasst in Dialogprogrammierung
2
Antw.
5114
Views
Message in interne Tabelle statt auf Dynpro
von codierknecht » 23.03.2007 09:46 • 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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1387
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2792
Daten an Tabelle binden
vor 8 Stunden von Lukas Sanders 2 / 869
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 426

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1387
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2792
Daten an Tabelle binden
vor 8 Stunden von Lukas Sanders 2 / 869
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 426

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2461
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9046