ABAPCALL_FUNCTION_DYNAMIC - CALL FUNCTION DYNAMIC

CL_GUI_FRONTEND_SERVICES - Frontend Services   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CALL FUNCTION - parameter_tables

Kurzreferenz



Syntax

... [PARAMETER-TABLE ptab]
    [EXCEPTION-TABLE etab]... .

Zusätze:

1. ... PARAMETER-TABLE ptab ...

2. ... EXCEPTION-TABLE etab ...

Wirkung

Diese Zusätze ordnen mit Hilfe spezieller interner Tabellen ptab und etab den Formalparameterndes Funktionsbausteins Aktualparameter und den nicht-klassenbasierten Ausnahmen Rückgabewerte zu.

Zusatz 1

... PARAMETER-TABLE ptab ...

Wirkung

Mit PARAMETER-TABLE können allen Formalparametern des aufgerufenen Funktionsbausteins Aktualparameter zugeordnet werden. Für ptab muss einesortierte Tabelle vom Tabellentyp ABAP_FUNC_PARMBIND_TAB bzw. vom Zeilentyp ABAP_FUNC_PARMBIND aus derTypgruppeABAP angegeben werden. Die Tabelle muss beiAusführung der Anweisung CALL FUNCTION für jeden nicht-optionalen Formalparameter und kann für jeden optionalen Formalparameter genau eine Zeile enthalten. Die Spalten der Tabelle sind:

  • NAME vom Typ c der Länge 30
    für den Namen des jeweiligen Formalparameters inGroßbuchstaben. Die Angabe eines nicht vorhandenen Formalparameters führt zu einer behandelbaren Ausnahme.

  • KIND vom Typ i
    für die Art des Formalparameters. KIND muss den Wert einer der folgenden Konstanten der Typgruppe ABAP enthalten:
- ABAP_FUNC_EXPORTING für Eingabeparameter
- ABAP_FUNC_IMPORTING für Ausgabeparameter
- ABAP_FUNC_CHANGING für Ein-/Ausgabeparameter
- ABAP_FUNC_TABLES für Tabellenparameter

Falls die aus Sicht des Aufrufersangegebene Art nicht zur tatsächlichen Art des Formalparameters passt, kommt es zu einer behandelbaren Ausnahme.

  • VALUE vom Typ REF TO data
    als Zeiger auf einen passenden Aktualparameter. Das Datenobjekt, auf das die Referenzvariable in VALUE zeigt, wird dem in NAME angegebenen Formalparameter zugewiesen.

  • TABLES_WA vom Typ REF TO data
    als Zeiger auf einen passenden Arbeitsbereich, wenn die SpalteKIND den Wert ABAP_FUNC_TABLES enthält. Falls TABLES_WA nicht initial ist, wird das Datenobjekt, auf das die Referenzvariable in TABLES_WA zeigt, derKopfzeile des in NAME angegebenen Tabellenparameters übergeben.

Die Spalten NAME und KIND bilden den eindeutigen Schlüssel der Tabelle ptab.

Zusatz 2

... EXCEPTION-TABLE etab ...

Wirkung

Mit EXCEPTION-TABLE können Ausnahmen des aufgerufenen Funktionsbausteins, die imFunctionBuilder nicht als Ausnahmeklassen gekennzeichnet sind, Rückgabewerte zugewiesen werden. Für etab muss eineHash-Tabelle vom Tabellentyp ABAP_FUNC_EXCPBIND_TAB bzw. vom Zeilentyp ABAP_FUNC_EXCPBIND aus derTypgruppeABAP angegeben werden. Die Tabelle kann beiAusführung der Anweisung CALL FUNCTION für jede nicht-klassenbasierte Ausnahme des Funktionsbausteins genau eine Zeile enthalten. Die Spalten der Tabelle sind:

  • NAME vom Typ c der Länge 30
    für den Namen der jeweiligen Ausnahme bzw. error_message oder OTHERS in Großbuchstaben.

  • VALUE vom Typ i
    für den Zahlenwert, der nach Behandlung der in NAME angegebenen Ausnahme in sy-subrc zur Verfügung stehen soll.

  • MESSAGE vom Typ REF TO data
    (wird zurzeit noch nicht verwendet).

Die Spalte NAME ist der eindeutige Schlüssel der Tabelle etab.

Beispiel

Aufruf des Funktionsbausteins GUI_DOWNLOAD mit dynamischer Parameterübergabe. Der Name des Funktionsbausteinsist im String func angegeben und die Schnittstelle wird über die internen Tabellen ptab und etab versorgt.

DATA: line     TYPE c LENGTH 80,
      text_tab LIKE STANDARD TABLE OF line,
      filename TYPE string,
      filetype TYPE c LENGTH 10,
      fleng    TYPE i.

DATA: func TYPE string,
      ptab TYPE abap_func_parmbind_tab,
      ptab_line TYPE abap_func_parmbind,
      etab TYPE abap_func_excpbind_tab,
      etab_line TYPE abap_func_excpbind.

func = 'GUI_DOWNLOAD'.
filename = 'c:\temp\text.txt'.
filetype = 'ASC'.

ptab_line-name = 'FILENAME'.
ptab_line-kind = abap_func_exporting.
GET REFERENCE OF filename INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.

ptab_line-name = 'FILETYPE'.
ptab_line-kind = abap_func_exporting.
GET REFERENCE OF filetype INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.

ptab_line-name = 'DATA_TAB'.
ptab_line-kind = abap_func_tables.
GET REFERENCE OF text_tab INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.

ptab_line-name = 'FILELENGTH'.
ptab_line-kind = abap_func_importing.
GET REFERENCE OF fleng INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.

...

etab_line-name = 'OTHERS'.
etab_line-value = 10.
INSERT etab_line INTO TABLE etab.

CALL FUNCTION func
  PARAMETER-TABLE
    ptab
  EXCEPTION-TABLE
    etab.

CASE sy-subrc.
  WHEN 1.
    ...
  ...
ENDCASE.




ROGBILLS - Synchronize billing plans   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 7639 Date: 20120526 Time: 232542     triton ( 213 ms )