Set Parameter / Call Transaction

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

Set Parameter / Call Transaction

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Hallo zusammen, ich möchte aus meinem Programm direkt in eine Standart-Transaktion springen und Felder mit Werten füllen.
Kann mir jemand sagen was hier falsch ist?

Code: Alles auswählen.

          SET PARAMETER ID 'ANR'  FIELD ld_AUFNR.
          CALL TRANSACTION 'CO27'. "AND SKIP FIRST SCREEN.
Ich habe es auch mit Submit versucht, aber auch ohne Erfolg

Code: Alles auswählen.

         SUBMIT PPIOM000
          AND RETURN
         WITH S_AUFNR-LOW EQ ld_AUFNR
         WITH P_PROFID = 000005.
Danke

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


Re: Set Parameter / Call Transaction

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Reportransaktionen übernehmen nur selten Set/Get-Parameter.
Der Submit-Aufruf muss so aussehen:

Code: Alles auswählen.

  SUBMIT ppiom000 
         WITH s_aufnr  = AUFNR
         WITH p_profid = 000005
         AND RETURN.
S_AUFNR ist eine Select-Option die durch eine
interne Tabelle abgebildet wird. Du übergibst
nur ein Feld in der Kopfzeile, der Körper bleibt
leer.

Re: Set Parameter / Call Transaction

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Ah okay, danke

Er Springt mir zwar in das richtige Programm, aber nicht in die richtige Transaktion. Dies ist ein gewaltiger Unterschied in der Darstellung.
Kann ich die Transaktion auch mitgeben?

Re: Set Parameter / Call Transaction

Beitrag von jocoder (Specialist / 338 / 3 / 101 ) »
Hallo Christof,

das geht ganz einfach. Transaktion aufrufen. Für jedes Feld die Hilfe F1 drücken.
Schau dir mal die Hilfe zum call Transaction Befehl an. Da wird dann erklärt,
wie das funktioniert.

Hierzu habe ich mal eine Klasse gebaut, die Transaktion automatisch aufrufen kann.
Du musst nur die Methode st_head zuerst aufrufen um das Dynpro und Programm zu setzen.
Dann für alle Felder, die du füllen willst, die Methode set_df aufrufen.
Am Schluss die Methode cl_tan aufrufen, dann wird die Transaktion aufgerufen.

Code: Alles auswählen.

class call_tan Definition.
  public section.
TYPES: tty_bcdata TYPE TABLE OF bdcdata.

* Dynprofeld setzen
  CLASS-METHODS set_df
    IMPORTING i_fnam TYPE any  " Feldname Batch-Input
      i_fval TYPE any                   " Feldwert
    CHANGING ct_bdcdata TYPE tty_bcdata. " Tabelle zur Übergabe an call transaction
* Kopf Transaktionsaufruf setzen
  CLASS-METHODS st_head
    IMPORTING i_pro TYPE any " Programmname
      i_dynpro TYPE any           " Dynpro-Nummer
    CHANGING ct_bdcdata TYPE tty_bcdata." Tabelle zur Übergabe an call transaction
* Transaktion aufrufen
  CLASS-METHODS cl_tan
    IMPORTING i_tcode TYPE tcode   " Transaktionscode
      i_defsize TYPE ctu_params-defsize " Mögliche Werte: A: mit Anzeige Bildschirmbilder, E: Anzeige, nur falls Fehler, N: Verarbeitung ohne Anzeige, P: mit Debugging
      it_bdc TYPE tty_bcdata                    " Tabelle zur Übergabe an call transaction
    EXPORTING e_messtab TYPE bdcmsgcoll " Meldungen
    EXCEPTIONS no_aut  " keine Berechtigung
       err_tan   " Fehler Transaktion
       ok.   " alles ok :-)
endclass.

class call_tan implementation.
  METHOD set_df.
* Dynprofeld setzen

  DATA: len       TYPE i,
           typ(1)    TYPE c,
           conv_exit TYPE tfdir-funcname,
           mengc(30) TYPE c,
           l_bcd TYPE bdcdata.

  l_bcd-fnam = i_fnam.

  DESCRIBE FIELD i_fval EDIT MASK     conv_exit
                        OUTPUT-LENGTH len
                        TYPE          typ.
  IF conv_exit <> space.
    WRITE i_fval TO l_bcd-fval(len) USING EDIT MASK conv_exit.
  ELSE.
    CASE typ.
      WHEN 's'.
* 2-Byte Int mit Vorz
        WRITE i_fval TO l_bcd-fval(len).
      WHEN 'D'.
*  "WHEN 'P'.mit unit
*  " Achtung dazu fehlt unit_feld:
*  " falls typen von DB ausgelesen werden die referenz steht mit drin
*  " referenz in eigener seqeuenz suchen und feld nehmen
*  " oder
*  " mit unit-feld übergeben
        IF NOT i_fval IS INITIAL.
          WRITE i_fval TO l_bcd-fval(len).
        ENDIF.
      WHEN 'P'.
* ohne unit !
        WRITE i_fval TO mengc(len).
        l_bcd-fval = mengc.
      WHEN OTHERS.
        l_bcd-fval = i_fval.
    ENDCASE.
  ENDIF.

  APPEND l_bcd TO ct_bdcdata.

  ENDMETHOD.

  METHOD cl_tan.

  DATA: lines       TYPE i,
        opt         TYPE ctu_params,
        gt_messtab  TYPE TABLE OF bdcmsgcoll.

*check authority
  CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
    EXPORTING
      tcode  = i_tcode
    EXCEPTIONS
      ok     = 0
      not_ok = 1
      OTHERS = 2.
  IF sy-subrc <> 0.
    RAISE no_aut.
  ENDIF.

  opt-updmode = 'S'.
  opt-defsize = i_defsize.
  opt-dismode = 'E'.

* Aufruf Transaktion
  CALL TRANSACTION i_tcode USING it_bdc
                           OPTIONS FROM  opt
                           MESSAGES INTO gt_messtab.
* Pruefen Fehlermeldung
  DESCRIBE TABLE gt_messtab LINES lines.
  READ TABLE gt_messtab INDEX lines INTO e_messtab.
  IF e_messtab-msgtyp = 'E' OR e_messtab-msgtyp = 'A'.
    RAISE err_tan.
  ENDIF.
  RAISE ok.

  ENDMETHOD.

  METHOD st_head.
* Kopf Transaktionsaufruf setzen
    FIELD-SYMBOLS: <bc> TYPE bdcdata.

    APPEND INITIAL LINE TO ct_bdcdata ASSIGNING <bc>.
    <bc>-program = i_pro.
    <bc>-dynpro = i_dynpro.
    <bc>-dynbegin = 'X'.

  ENDMETHOD.


endclass.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2447
Views
CALL TRANSACTION SET PARAMETER ID
von IMBIT » 02.04.2014 09:55 • Verfasst in ABAP® für Anfänger
2
Antw.
4450
Views
CALL TRANSACTION --> SET PARAMETER ID
von Bugfix13 » 24.07.2014 14:16 • Verfasst in ABAP® für Anfänger
2
Antw.
2012
Views
Call Transaction - Update Parameter
von Mr.Black » 12.06.2009 10:14 • Verfasst in ABAP® Core
3
Antw.
2202
Views
CALL TRANSACTION ohne Parameter-ID
von sapdepp » 06.03.2014 10:24 • Verfasst in ABAP® Core
5
Antw.
6878
Views
PARAMETER ID zu SE16 TABNAME - CALL TRANSACTION
von kylll » 24.03.2006 11:49 • Verfasst in ABAP® Core

Ü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

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141