ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

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

ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von maraminden (ForumUser / 5 / 0 / 0 ) »
Hallo zusammen :)

im Rahmen eines kleinen Programms muss ich mehrere Transaktionen aufrufen können und diese mit zuvor übergebenen Werten füllen. Das funktioniert an sich auch schon ganz gut, beim Aufruf der Transaktion MK03 werden bei mir allerdings die Absprungbuttons (grüner, gelber, roter Punkt) ausgegraut und sind nicht anwählbar.
Bild

Bei den anderen Transaktionen (MM01-MM03, ME11-Me13) werden der nur der Grüne und der Rote anwählbar, der Gelbe jedoch nicht.
Bild

In meinem Programm rufe ich die Transaktionen über den Funktionsbaustein ABAP4_CALL_TRANSACTION auf:

Code: Alles auswählen.

FORM help USING c_help.

  CASE c_help.
    WHEN 'MM01' OR 'MM02' OR 'MM03'.
      REFRESH bdc_tab.
      PERFORM dynpro USING:
        'X' 'SAPLMGMM' '0060',
*       ' ' 'BDC_OKCODE' ' ',
        ' ' 'RMMG1-MATNR' mat_io.
    WHEN 'ME11' OR 'ME12' OR 'ME13'.
      REFRESH bdc_tab.
      PERFORM dynpro USING:
        'X' 'SAPMM06I' '0100',
*        ' ' 'BDC_OKCODE' ' ',
        ' ' 'EINA-INFNR' mat_io.
    WHEN 'MK03'.
      REFRESH bdc_tab.
      PERFORM dynpro USING:
        'X' 'SAPMF02K' '0108',
*        ' ' 'BDC_OKCODE' ' ',
        ' ' 'RF02K-LIFNR' mat_io.
  ENDCASE.

  CALL FUNCTION 'ABAP4_CALL_TRANSACTION' STARTING NEW TASK 'TEST'
    DESTINATION 'NONE'
    EXPORTING
      tcode     = c_help
    TABLES
      using_tab = bdc_tab.

ENDFORM.                    "help
(Im Unterprogramm dynpro wird das bdc_tab mit den entsprechenden Daten versorgt.)

Hat jemand eine Idee wie ich die Buttons verfügbar machen kann? Wenn man die Transaktionen normal über EasyAccess aufruft ist auch alles ganz normal.

Vielen Dank!

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


Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

check doch mal bitte die SU53 nachdem du aus deinem Programm in die Transaktion abspringst. Sind doch eventuell Berechtigungsprüfungen fehlgeschlagen?
Du könntest auch einen kompletten Trace laufen lassen, während du dein Programm ausführst. dort siehst du dann auch ob alles klappt mit den Berechtigungen.
Ich würde den Fehler an dieser Stelle vermuten.
Was passiert wenn du im Einstiegsfenster mit Return oder dem grünen häkchen bestätigst?
Gruß,
der Matze

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von black_adept (Top Expert / 4136 / 131 / 956 ) »
Hallo Mara

du kannst das Verhalten ganz leicht nachvollziehen, wenn du z.B. die Transaktion nicht direkt sondern über die Transaktion SHDB ( Batch-Aufzeichnung ) startest. Dort solltest du erkennen, dass SAP selber dafür sorgt, dass im (normalen) Batchbetrieb der gelbe Button nicht verfügbar ist.


Somit ist die Lösung im Falle der MM03 recht einfach.
Irgendwo in deinem Programm wird ja dann "CALL TRANSACTION ... USING bdc_tab OPTIONS from opt..." stehen. Und hier solltest du dafür sorgen, dass das Feld "opt-nobinpt" mit "X" belegt ist ( und wenn du dabei bist kannst du auch opt-nobiend = X setzen) - dann sollte auch wieder der gelbe Button sichtbar sein. Wieder leicht nachvollziehbar in der SHDB, wenn du bei "New Recording" die Defaultbelegung der Parameter analog füllst.
shdb.jpg
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von maraminden (ForumUser / 5 / 0 / 0 ) »
Hallo nochmal und herzlichen Dank für eure Hilfe.
Thanatos82 hat geschrieben: check doch mal bitte die SU53 nachdem du aus deinem Programm in die Transaktion abspringst. Sind doch eventuell Berechtigungsprüfungen fehlgeschlagen?
Bild

Was für Schlüsse kann ich denn nun daraus ziehen bzw. was muss ich tun, damit's nicht mehr passiert?
Thanatos82 hat geschrieben:Was passiert wenn du im Einstiegsfenster mit Return oder dem grünen häkchen bestätigst?
Die Transaktion wird ganz normal durchgeführt, aktiv ist allerdings nur der grüne Zurück-Button. Bei bestätigen von Selbigem komme ich in meine eigene Transaktion zurück (also nicht in mk03).
black_adept hat geschrieben: Irgendwo in deinem Programm wird ja dann "CALL TRANSACTION ... USING bdc_tab OPTIONS from opt..." stehen.
Ich rufe ja die Transaktion über den FuBa ABAP4_CALL_TRANSACTION auf:

Code: Alles auswählen.

CALL FUNCTION 'ABAP4_CALL_TRANSACTION' STARTING NEW TASK 'TEST'
    DESTINATION 'NONE'
    EXPORTING
      tcode     = c_help
    TABLES
      using_tab = bdc_tab.
Das bdc_tab fülle ich mit Hilfe einer Hilfsfunktion:

Code: Alles auswählen.

FORM dynpro USING dynbegin fnam fval.
  CASE dynbegin.
    WHEN 'X'.
      CLEAR bdc_tab.
      bdc_tab-program = fnam.
      bdc_tab-dynpro = fval.
      bdc_tab-dynbegin = dynbegin.

      APPEND bdc_tab.

    WHEN OTHERS.
      CLEAR bdc_tab.
      bdc_tab-fnam = fnam.
      bdc_tab-fval = fval.

      APPEND bdc_tab.

  ENDCASE.
ENDFORM.    
Ein Aufruf sieht bspw. so aus:

Code: Alles auswählen.

CASE c_help.
    WHEN 'MM01' OR 'MM02' OR 'MM03'.
      REFRESH bdc_tab.
      PERFORM dynpro USING:
        'X' 'SAPLMGMM' '0060',
*       ' ' 'BDC_OKCODE' ' ',
        ' ' 'RMMG1-MATNR' mat_io.
Ich komme leider nicht darauf, wie ich auf diesem Wege an dieses Options-Feld komme (Sorry, ich bin blutiger Anfänger :/ )

Vielen Dank und viele Grüße!

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo maraminden,

SU53 reicht des Öfteren für eine Überprüfung der fehlgeschlagenen Berechtigungen nicht aus, da es nur die letzte fehlgeschlagene Berechtigungsprüfung anzeigt. Es können vorher aber noch 9 weitere auf die Nase gefallen sein. Daher ist es in solchen Fällen besser sich den gesamten Trace (ST01) aufzuzeichnen und anzuschauen.

zu dem Thema ABAP4_CALL_TRANSACTION: muss es denn über diesen Baustein gelöst werden? Was spricht dagegen beim Absprung in MM03 CALL TRANSACTION zu verwenden? Die dafür notwendigen Parameter übergibst du an die Transaktion mittels Prarameter-ID:

Code: Alles auswählen.

    FORM help USING c_help mat_io.

      CASE c_help.
        WHEN 'MM03'.
          SET PARAMETER ID 'MAT' FIELD mat_io.
         CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
        WHEN 'ME13'.     
          SET PARAMETER ID 'INF' FIELD mat_io.
         CALL TRANSACTION 'ME13' AND SKIP FIRST SCREEN.
      ENDCASE.

    ENDFORM.                    "help
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von JHM (Top Expert / 1213 / 2 / 202 ) »
maraminden hat geschrieben:Ich komme leider nicht darauf, wie ich auf diesem Wege an dieses Options-Feld komme
Der von dir verwendete FuBa bietet nich alle Optionen für CALL TRANSACTION. Aus der Hilfe zu CALL TRANSACTION:

OPTIONS FROM opt

Wirkung
Der Zusatz OPTIONS umfasst die Funktionalität der Zusätze MODE und UPDATE und bietet weitere Möglichkeiten zur Steuerung der Batch-Input-Verarbeitung. Die Steuerungsparameter werden in einer Struktur opt vom Typ CTU_PARAMS aus dem ABAP Dictionary angegeben. Die Struktur CTU_PARAMS hat die in der folgenden Tabelle gezeigten Komponenten:

Komponente Bedeutung
DISMODE Abspielmodus der Batch-Input-Verarbeitung. Werte wie beim Zusatz MODE.
UPMODE Verbuchungsmodus der Batch-Input-Verarbeitung. Werte wie beim Zusatz UPDATE.
CATTMODE Catt-Modus der Batch-Input-Verarbeitung. Der Ausdruck "Catt" bedeutet Computer Aided Testtool. Während Batch-Input im Wesentlichen der Datenübernahme dient, sind Catt-Abläufe als wieder verwendbare Tests komplexer Transaktionen vorgesehen. Werte: " " (kein Catt-Modus), "N" (Catt ohne Einzelbildsteuerung), "A" (Catt mit Einzelbildsteuerung).
DEFSIZE Markierung, ob die Bildschirmbilder der aufgerufenen Transaktion in der Standardfenstergröße angezeigt werden. Werte: "X" (Standardgröße), " " (aktuelle Größe).
RACOMMIT Markierung, ob die Anweisung COMMIT WORK die Batch-Input-Verarbeitung beendet oder nicht. Werte: " " (COMMIT WORK beendet die Verarbeitung), "X" ( COMMIT WORK beendet die Verarbeitung nicht).
NOBINPT Markierung für das Systemfeld sy-binpt. Werte: " " (sy-binpt enthält in der aufgerufenen Transaktion "X"), "X" (sy-binpt enthält in der aufgerufenen Transaktion " ").
NOBIEND Markierung für das Systemfeld sy-binpt. Werte: " " (sy-binpt enthält nach Ende der Batch-Input-Daten in der aufgerufenen Transaktion "X"), "X" (sy-binpt enthält nach Ende der Batch-Input-Daten in der aufgerufenen Transaktion " ").

Wenn du also das den Tipp von black_adept ausprobieren willst musst du CALL TRANSACTIOn direkt aufrufen. Den FuBa braucht man eigentlich auch nur im RFC-Umfeld.
Gruß Hendrik

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von maraminden (ForumUser / 5 / 0 / 0 ) »
Hi,

die Aufgabenstellung sah vor, dass die Transaktionen in einem neuen Modus aufgerufen werden. Der Weg über den FuBa war der einzige, den ich dafür gefunden habe. Wenn jemand weiß wie das ohne geht, bin ich für jegliche Lösungen komplett offen! :up:

Sähe das dann ungefähr so aus (?):

Code: Alles auswählen.

SET PARAMETER ID 'MAT' FIELD mat_io.
    CALL TRANSACTION 'MM03' 
    OPTIONS FROM opt 
        opt-nobinpt = "X"
        opt-nobiend = "X"             
    AND SKIP FIRST SCREEN.

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
guten Morgen,

ABAP4_CALL_TRANSACTION wäre schon der richtige Weg, wenn es darum geht die Transaktionen in einem neuen Modus zu öffnen. Ich schau mal, ob ich bei mir irgendwo ein Beispiel dazu finde...

noch was zu CALL TRANSACTION:
maraminden hat geschrieben: Sähe das dann ungefähr so aus (?):
nein, dein Beispiel passt nicht ganz. Einen Vorschlag für einen einfachen Aufruf der MM03 habe ich ja bereits unterbreitet. Es ist ein Zweizeiler, mehr ist an dieser Stelle auch nicht nötig. In deinem Code mischst du die Anweisungen OPTIONS FROM und SKIP FIRST SCREEN. Bei denen verhält es sich aber wie bei dem Highländer - es kann nur einen geben ;-) Schau dir dazu noch mal die Hilfe zu CALL TRANSACTION an, Zusätze 1 und 2
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hier noch ein Beispiel für ABAP4_CALL_TRANSACTION. Bei einfachen Selektionsbildschirmen kommt man auch hier ohne Batch-Input aus

Code: Alles auswählen.

 "Parameter-ID´s für den Transaktionsaufruf
DATA: l_spagpa TYPE STANDARD TABLE OF rfc_spagpa,
      wa_spagpa LIKE LINE OF l_spagpa,
      l_msgtext(80) TYPE c. "Nachricht aus dem TA-Aufruf

"Flag für das Überspringen des Selektionsbildes
CONSTANTS: con_skip TYPE c VALUE 'X'.

"Parameter-ID füllen
refresh l_spagpa.
wa_spagpa-parid = 'MAT'.
wa_spagpa-parval = mat_io.
APPEND wa_spagpa TO l_spagpa.

CASE c_help.
  WHEN 'MM01'.
    PERFORM call_ta USING l_spagpa
                          'MM01'
                          '' "<-- Selektionsbild wird angezeigt
                      CHANGING l_msgtext.
  WHEN 'MM02'.
    PERFORM call_ta USING l_spagpa 
                          'MM02'
                          con_skip
                      CHANGING l_msgtext.
  WHEN 'MM03'.
    PERFORM call_ta USING l_spagpa 
                          'MM03'
                          con_skip
                      CHANGING l_msgtext.
ENDCASE.

*&---------------------------------------------------------------------*
*&      Form  CALL_TA
*&---------------------------------------------------------------------*
*       ruft eine Transaktion im neuen Modus auf
*----------------------------------------------------------------------*
*      -->U_SPAGPA - Tabelle mit SPA/GPPA-Parametern
*      -->U_TCODE - aufzurufende Transaktion
*      <--C_MSGTEXT - Fehlernachricht
*----------------------------------------------------------------------*
FORM call_ta  USING u_spagpa TYPE STANDARD TABLE
                    u_tcode LIKE tstc-tcode
                    u_skip TYPE c
              CHANGING c_msgtext TYPE c.

  AUTHORITY-CHECK OBJECT 'S_TCODE'
           ID 'TCD' FIELD u_tcode.

  IF sy-subrc <> 0.
    MESSAGE w011(co) WITH u_tcode INTO c_msgtext.
    MESSAGE w011(co) WITH u_tcode.
    EXIT.
  ENDIF.

  CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
    STARTING NEW TASK u_tcode
    DESTINATION 'NONE'
    EXPORTING
      tcode                 = u_tcode
      skip_screen           = u_skip
    TABLES
      spagpa_tab            = u_spagpa
    EXCEPTIONS
      communication_failure = 1  MESSAGE c_msgtext
      system_failure        = 2  MESSAGE c_msgtext.

  IF sy-subrc NE 0.
    WRITE: c_msgtext.
  ELSE.
    c_msgtext = 'TA erfogreich aufgerufen'.
  ENDIF.

ENDFORM.                    "call_ta    

schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: ABAP4_CALL_TRANSACTION, Absprungbuttons ausgegraut

Beitrag von JHM (Top Expert / 1213 / 2 / 202 ) »
maraminden hat geschrieben:die Aufgabenstellung sah vor, dass die Transaktionen in einem neuen Modus aufgerufen werden. Der Weg über den FuBa war der einzige, den ich dafür gefunden habe. Wenn jemand weiß wie das ohne geht, bin ich für jegliche Lösungen komplett offen!
CALL TRANSACTION startet immer im selben Modus. Den neuen Modus bekommst du über STARTING NEW TASK beim FuBa ABAP4_CALL_TRANSACTION hin. Der FuBa hat aber nicht die von black_adept angegeben Paramter, um SAP mit zuteilen, das die TA nicht im BatchInput aufgerufen wird.

Wenn du beides brauchst, wirst du dir einen eigenen FuBa anlegen müssen, der dann auch die OPTIONS als Schnittstelle hat und mit beim CALL TRANSACTION verwendet. Am einfachsten du kopierst den vorhanden und baust deine Änderungen dort ein.
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4402
Views
CALL FUNCTION und CALL TRANSACTION
von phil1982 » 10.08.2007 11:00 • Verfasst in ABAP® für Anfänger
4
Antw.
5318
Views
CALL TRANSACTION
von Roddy » 27.01.2016 11:40 • Verfasst in ABAP® für Anfänger
5
Antw.
6328
Views
Call Transaction - wie F8 ?
von tomcat13 » 16.04.2007 14:09 • Verfasst in SAP - Allgemeines
3
Antw.
3754
Views
Call Transaction
von SaskuAc » 27.07.2015 11:18 • Verfasst in ABAP® für Anfänger
1
Antw.
1824
Views
Call Transaction
von Boon » 25.08.2014 15:33 • Verfasst in ABAP® für Anfänger

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.