Problem FM 'ABAP4_CALL_TRANSACTION'

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von Rick (ForumUser / 6 / 3 / 0 ) »
Hallo zusammen,

ich habe ein Problem beim Aufruf des Funktionsbausteines 'ABAP4_CALL_TRANSACTION'.

Code: Alles auswählen.

CLEAR wa_spagpa.
wa_spagpa-parid = 'FELD_ID'.
wa_spagpa-parval = 'VALUE'.
 APPEND wa_spagpa TO tab_spagpa.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION' DESTINATION rfcdest
        EXPORTING
          TCODE                         = 'TCODE'
*          SKIP_SCREEN                   = 'X'
          MODE_VAL                      = 'E'
          UPDATE_VAL                    = 'A'
*        IMPORTING
*          SUBRC                         =
        TABLES
*          USING_TAB                     = 
          SPAGPA_TAB                    = tab_spagpa
          MESS_TAB                      = mess_tab
        EXCEPTIONS
          communication_failure = 1 MESSAGE msg_text
          system_failure        = 2 MESSAGE msg_text
          CALL_TRANSACTION_DENIED       = 3
          TCODE_INVALID                 = 4
          OTHERS                        = 5 .
Warum genau dieser Funktionsbaustein? Ich möchte aus einem Report heraus eine Transaktion in einem anderen System aufrufen und benötige hierfür auch gleichzeitig die Mitgabe der RFC-Destination. Weiterhin möchte ich Eingabefelder mit Werten vorbelegen sowie einen Funktionscode übergeben.
Dieses soll jedoch über die Tabelle tab_spagpa an den Funktionsbaustein geschehen. Die Übergabe per Batch-Input (USING_TAB) ist nicht möglich, da im Ablauf der aufgerufenen Transaktion ein COMMIT-WORK durchgeführt wird und die Transaktion somit sofort unterbrochen wird und zum aufrufenden Report zurückkehrt ohne Fehlerbenachrichtigungen oder Dump (CALL TRANSACTION Problem).
Wie kann ich also einen Funktionscode an tab_spagpa übergeben damit ich eingegebene Werte (z.B. 'BDC_OKCODE' '=ANZE' in der Übergabe bei USING_TAB) im ersten Screen bestätigen kann. Wie ich Werte an Eingabefelder übergebe ist mir bekant. Es geht lediglich um die Eingabe von Funktionscodes und Bestätigungseingaben und ob dieses überhaupt möglich ist.
Vielen Dank schonmal fürs geduldige durchlesen und ich hoffe natürlich das Problem so genau wie möglich beschrieben zu haben.
Gruß
Rick
"Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist" -Henry Ford-

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


Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also einen OK-Code kannst du nicht mitgeben - aber die SET / GET Parameter im Einstiegsbild der Transaktion die du aufrufen willst - insofern es dort SET / GET Parameter hat. Dafür ist Tabelle SPAGPA_TAB da.
Mit dem Zusatz - skip first screen - verzweigst du dann direkt in die TA - so als wenn du Call Transaction tcode and skip first screen in deinem Programm machst , wenn die Parameter gesetzt sind. Siehe dazu die Docu des FUBA wie du das mit dem Skip - machst.
Damit kannst du dann letztendlich die TA im entfernten System anstarten - aber was du nicht kannst - ist das navigieren innerhalb der TA - wenn dies nach dem überspringen des Einstiegsbildes erforderlich ist.
Aber schau doch einfach mal - ob es für deine TA / Anwendung eventuell einen BAPI gibt den du nutzen kannst ohne das du die TA aufrufen musst. Dazu wäre es aber wichtig genauer zu wissen was passieren soll.

gruss
thanks Jens

Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von Rick (ForumUser / 6 / 3 / 0 ) »
Hallo Sali,
danke für die zügige Antwort.
Ich glaube hiermit hast Du mir die Frage bereits beantwortet falls keine weiteren Eindrücke kommen:
also einen OK-Code kannst du nicht mitgeben - aber die SET / GET Parameter im Einstiegsbild der Transaktion die du aufrufen willst - insofern es dort SET / GET Parameter hat. Dafür ist Tabelle SPAGPA_TAB da.
Die entsprechenden Felder der TA zu füllen funktioniert durch Mitgabe von ID und Value in der Tabelle tab_spagpa. Mir ging es lediglich um die Mitgabe von Funktionscode und zugehörigen Bestätigungseingaben um die Ablauflogik der gerufenen TA anzustoßen.
Aber schau doch einfach mal - ob es für deine TA / Anwendung eventuell einen BAPI gibt den du nutzen kannst ohne das du die TA aufrufen musst. Dazu wäre es aber wichtig genauer zu wissen was passieren soll.
Ich benötige die TA um Usern die, entsprechend der im Report ausgewählten, Parameter anzeigen zu können. In der Ablauflogik der TA ist jedoch der erste Dynpro als Eingabe wichtig und muss durchlaufen werden. Hierzu benötige ich dann die Eingabe von Funktionscode und zugehörige Bestätigungen. Bei normalem Ablauf der TA würde das Eingabefeld gefüllt und anschließend per 'ANZE' (Button/Eingabe/Menüklick) in das nächste Dynpro per Ablauflogik desselben Programmes verzweigt werden.

Sorry das ich leider nicht näher ins Detail gehen kann um welche TA es sich handelt.
"Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist" -Henry Ford-

Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

aber du kannst dem FUBA die Batch Input Tabelle der TA mitgeben - also kannst du auch verzweigen durch "indirekte" Mitgabe der OK-Codes. Ob du alles aber so mitgeben kannst was du dann für den weiteren Ablauf brauchst - na das wirst du ja dann schon noch feststellen. Einfach mal die TA aufzeichnen - BI Tabelle füllen und FUBA mitgeben.

Gruss

Folgende Benutzer bedankten sich beim Autor jensschladitz für den Beitrag:
Rick

thanks Jens

Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von Rick (ForumUser / 6 / 3 / 0 ) »
Hallo Sali,
aber du kannst dem FUBA die Batch Input Tabelle der TA mitgeben - also kannst du auch verzweigen durch "indirekte" Mitgabe der OK-Codes.
Die Anwendung der Batch-Input-Tabelle ist nicht möglich. Wie ich oben beschrieben habe ist die Anwendung der USING_TAB damit verbunden, das es bei der aufrufenden TA zu einem sofortigen Abbruch kommt sobald ein COMMIT-WORK durchlaufen wird. Bei einem normalen Aufruf einer TA per CALL TRANSACTION der Parameter RACOMMIT mit versorgt werden der dieses abbrechen unterbindet. Den gibt es bei diesem Funktionsbaustein aber nicht. Die Kombination von USING_TAB und SPAGPA_TAB ist auch nicht möglich und führt zu demselben Problem.
Würde nur gerne Wissen ob ich Funktionscode und Bestätigungen per SET (in der SPAGPA_TAB) übergeben kann.
Danke für die schnelle Antwort.
Gruß
Rick
"Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist" -Henry Ford-

Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Hallo Rick,

hast du (Entwickler)Zugriff auf das Zielsystem? Falls ja kopiere dir doch den FuBa und ändere ihn minimal ab, damit ra_commit = 'X' übergeben wird und nimm den kopierten FuBa.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Rick

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Problem FM 'ABAP4_CALL_TRANSACTION'

Beitrag von Rick (ForumUser / 6 / 3 / 0 ) »
Hallo black_adept,
warum sind die naheliegendsten Probleme immer am schwersten zu lösen. :-) Vielen Dank.
Könnte ich so durchführen, allerdings nur im System von dem aus aufgerufen wird. was ja auch eigentlich ausreichend wäre.
Damit könnte diese Frage eigentlich geschlossen werden.
Ich möchte jedoch noch gerne Wissen ob es trotzdem möglich wäre eine Übergabe über die SPAGPA_TAB (SET ID und VALUE) zu realisieren für den Funktionscode. Bin bisher nur über SET PF-STATUS space. gestolpert, was mir allerdigns für diesen FuBa nicht viel bringt.
Falls dort niemand etwas zu sagen kann werde ich diese Frage in naher Zukunft für geschlossen erklären.
Danke.
Gruß
Rick
"Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist" -Henry Ford-

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2199
Views
Problem mit Call Transaction und den unterschdl. Modi
von svenk » 09.04.2008 12:09 • Verfasst in ABAP® für Anfänger
1
Antw.
6172
Views
CALL FUNCTION und CALL TRANSACTION
von phil1982 » 10.08.2007 11:00 • Verfasst in ABAP® für Anfänger
1
Antw.
3573
Views
CALL TRANSACTION mit BDC
von BubbleSort » 25.07.2018 10:48 • Verfasst in ABAP® Core
4
Antw.
6531
Views
CALL TRANSACTION
von Roddy » 27.01.2016 11:40 • Verfasst in ABAP® für Anfänger
3
Antw.
6009
Views
Call Transaction
von Dörk » 01.03.2007 06:03 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.