ABAPCALL_FUNCTION_DESTINATION_PARA - CALL FUNCTION DESTINATION PARA

ROGBILLS - Synchronize billing plans   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CALL FUNCTION - DESTINATION parameter_list

Kurzreferenz



Syntax

... [EXPORTING  p1 = a1 p2 = a2 ...]
    [IMPORTING  p1 = a1 p2 = a2 ...]
    [CHANGING   p1 = a1 p2 = a2 ...]
    [TABLES     t1 = itab1 t2 = itab2 ...]
    [EXCEPTIONS [exc1 = n1 exc2 = n2 ...]
               [system_failure        = ns [MESSAGE smess]]
                [communication_failure = nc [MESSAGE cmess]]
                [resource_failure      = nr]
                [OTHERS = n_others]].

Zusätze:

1. EXPORTING  p1 = a1 p2 = a2 ...

2. IMPORTING  p1 = a1 p2 = a2 ...

3. CHANGING   p1 = a1 p2 = a2 ...

4. TABLES     t1 = itab1 t2 = itab2 ...

5. EXCEPTIONS exc1 = n1 exc2 = n2 ...

Wirkung

Mit diesen Zusätzen werden den Formalparametern des remote aufgerufenen Funktionsbausteins Aktualparameterund nicht-klassenbasierten Ausnahmen Rückgabewerte zugeordnet. Die Zusätze haben im Wesentlichen dieselbe Bedeutung wie beim generellenFunktionsbausteinaufruf.

Beim RFC wird jedoch im Unterschied zum generellen Funktionsbausteinaufruf die Anbindung an falsch angegebeneFormalparameter prinzipiell ignoriert. Zusätzlich steuert die Angabe des Zusatzes EXCEPTIONS,ob eine klassenbasierte Ausnahmebehandlung durchgeführt wird oder nicht (seit Release 7.1, EhP1). Dies und einige weitere Unterschiede sind im Folgenden beschrieben.

Zusatz 1

EXPORTING  p1 = a1 p2 = a2 ...

Zusatz 2

IMPORTING  p1 = a1 p2 = a2 ...

Zusatz 3

CHANGING   p1 = a1 p2 = a2 ...

Wirkung

Bezüglich der Zusätze EXPORTING, IMPORTING und CHANGING gelten folgende Unterschiede:

  • Bei zeichenartigen Formalparametern kann der Aktualparameter kürzer als der Formalparameter sein.Ein kürzerer Aktualparameter wird im gerufenen Funktionsbaustein bei der Eingabe rechts mit Leerzeichen aufgefüllt und bei der Ausgabe rechts abgeschnitten.
  • Referenzvariablendürfen weder direkt noch als Komponenten von tiefen Strukturen übergeben werden. Die Übergabe von Tabellen mittiefen Zeilentypen, tiefen Strukturen und Strings sind dagegen wie beim generellen Funktionsbausteinaufruf erlaubt.
  • Bei der Übergabe von internen Tabellen mit nicht-eindeutigenTabellenschlüsseln bleibt die Reihenfolge der duplikativen Zeilen bezüglich dieser Schlüssel nicht erhalten.


Zusatz 4

TABLES  t1 = itab1 t2 = itab2 ...

Wirkung

Bei TABLES zur Übergabe an Tabellenparameter gibt es den Unterschied, dass nur Tabellen mitflachen Zeilentypen und ohnesekundäre Tabellenschlüssel übergeben werden können und dass eine eventuell vorhandeneKopfzeile nicht übergeben wird.

Hinweise

  • Solange nicht basXML alsRFC-Protokoll eingestelltist, wird für TABLES-Parameter implizit das klassische binäre RFC-Protokoll verwendetund nicht das XML-Format xRFC, das ansonsten für tiefe Typen verwendet wird. Die Übergabeinterner Tabellen über TABLES-Parameter kann in diesem Fall und in Abhängigkeitvon den übergebenen Daten daher erheblich schneller sein als bei der Übergabe über andere Parameter.
  • Inzwischen wird basXMLals einheitliches Format für alle Arten der RFC-Kommunikation empfohlen. basXML ist derzeit nochperformanter als xRFC, was sich in Zukunft aber ändern wird. Der Zusatz TABLES ist damit nur noch für RFMs notwendig, die momentan sehr kritisch bezüglich der Performance sind.


Zusatz 5

EXCEPTIONS exc1 = n1 exc2 = n2 ...

Wirkung

Der Zusatz EXCEPTIONS steuert beim RFC welche Art der Ausnahmebehandlung ausgeführt wird:

Empfohlen wird die klassenbasierte Ausnahmebehandlung, bei der alle klassenbasierten Ausnahmen, diebei Ausführung des RFC auftreten, zum Aufrufer transportiert und dort in einer TRY-Kontrollstrukturbehandelt werden können. Neben den klassenbasierten Ausnahmen, die von einem remote aufgerufenenFunktionsbaustein ausgelöst werden können, kann die RFC-Schnittstelle weitere Ausnahmen auslösen, die alle Unterklassen vonCX_REMOTE_EXCEPTION sind:

  • Ausnahmen der Klasse CX_CONNECTIVITY_ERROR.Solche Ausnahmen werden durch alle Fehler ausgelöst, die beim Verbindungsaufbau, bei der Zuordnung von Ressourcen oder in der Kommunikationsschicht auftreten .

Wenn ein remote aufgerufener Funktionsbaustein während der klassenbasierten Ausnahmebehandlung eine klassische Ausnahme auslöst, wird diese auf eine klassenbasierte Ausnahme der KlasseCX_CLASSIC_EXCEPTION abgebildet, deren Attribut EXCEPTION_NAME den Namen der Ausnahme enthält.

Die nicht-klassenbasierte Ausnahmebehandlung funktioniert im Wesentlichen wie beim generellen Funktionsbausteinaufruf, wobei hier zusätzlich diespeziellen AusnahmenSYSTEM_FAILURE, COMMUNICATION_FAILURE und RESSOURCE_FAILURE angegeben werden können, um dieAusnahmen zu behandeln, die von der RFC-Schnittstelle selbst ausgelöst werden. Hinter der Angabedieser Ausnahmen kann zusätzlich ein optionaler Zusatz MESSAGE angegeben werden. Tritteine der speziellen klassischen Ausnahmen system_failure oder communication_failure auf, wird die erste Zeile des zugehörigenKurzdumpsin das Feld smess bzw. cmess gestellt, das flach und zeichenartig sein muss. Wenn einremote aufgerufener Funktionsbaustein während der nicht-klassenbasierten Ausnahmebehandlung eineklassenbasierte Ausnahme auslöst, wird diese nicht transportiert, sondern führt im RFC-Serverzu einem Laufzeitfehler mit zugehörigem Datenbank-Rollback und zur vordefinierten klassischen Ausnahme SYSTEM_FAILURE im RFC-Client.

Hinweise

  • Vor Release 7.1, EhP1 wurde die klassenbasierte Ausnahmebehandlung noch nicht unterstützt. Esfand immer eine klassische Ausnahmebehandlung statt. Wenn der Zusatz EXCEPTIONS nicht angegeben war, führte jede Ausnahme zu einem Laufzeitfehler im RFC-Client.
  • Eine Angabe von error_message hinter EXCEPTIONS hat beim RFC keine Wirkung.
  • Wenn die klassische Ausnahme SYSTEM_FAILURE durch das Senden einerNachricht vom Typ"A", "E" oder "X" ausgelöst wird, enthält das Feld smess bei Angabe von MESSAGE den Kurztext der Nachricht.

Beispiel

Siehe Ausnahmebehandlung beim RFC.


ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 11694 Date: 20120526 Time: 232533     triton ( 302 ms )