Unexpected word "EXPORTING" in functional method call

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Unexpected word "EXPORTING" in functional method call

Beitrag von mclb (ForumUser / 3 / 0 / 0 ) »
Hi,

ich bekomme obige Fehlermeldung in folgender Konstellation und versteh nicht so recht wieso.

Klasse ZCL_DB_CONNECTOR_SPECIAL (erbt von ZCL_D_CONNECTOR_TEMPLATE)
Method get_conditions (Inhalt egal)

Klasse ZCL_APPLICATION
Attribut

Code: Alles auswählen.

mo_db_connector TYPE REF TO zcl_db_connector_template.
Method load_conditions

Code: Alles auswählen.

me->get_db_connector( )->get_conditions(
  exporting
    i_customer_id = i_customer_id
  importing
    et_conditions = lt_conditions
).
Method get_db_connector (returning zcl_db_connector_special)

Code: Alles auswählen.

ro_db_connector ?= me->mo_db_connector.
Sobald die Methode get_conditions Importing- und Exporting-Parameter hat, kommt die Fehlermeldung. Bei nur Importing- und/oder Returning-Parameter funktionierts.

Hat da jemand ne Erklärung dafür? Der functional call ist ja eigentlich der get_db_connector und nicht der get_conditions.

Danke

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


Re: Unexpected word "EXPORTING" in functional method call

Beitrag von black_adept (Top Expert / 4066 / 120 / 933 ) »
http://help.sap.com/saphelp_nw70/helpdata/en/08/d27c03b81011d194f60000e8353423/frameset.htm hat geschrieben:Functional Methods

Functional methods are methods with any number of IMPORTING parameters and one RETURNING parameter.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Unexpected word "EXPORTING" in functional method call

Beitrag von mclb (ForumUser / 3 / 0 / 0 ) »
Ja, soweit wars mir schon klar ...

Der functional call ist halt die Methode get_db_connector, die auch einfach nur einen Returning-Parameter hat.
Die Methode get_conditions ist ja eigentlich kein functional call, die hat keinen Returning-Parameter, sondern einige Importing- und Exporting-Parameter. Ich seh eigentlich keinen Grund, wieso man das nicht verketten können sollte.

Re: Unexpected word "EXPORTING" in functional method call

Beitrag von a-dead-trousers (Top Expert / 4371 / 222 / 1174 ) »
Wie black_adept schon geQuotet hat: Sobald die Schlüsselwörter (Exporting/Changing usw.) beteiligt sind ist es keine Funktionale Methode mehr. Und ich glaub das gilt immer für den ganzen Ausdruck.

lg
ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Unexpected word "EXPORTING" in functional method call

Beitrag von mclb (ForumUser / 3 / 0 / 0 ) »
Wenn das stimmt, dass sich diese Restriktion immer auf den gesamten Ausdruck auswirkt, dann wurde das ja wieder mal echt toll eingebaut!

Re: Unexpected word "EXPORTING" in functional method call

Beitrag von black_adept (Top Expert / 4066 / 120 / 933 ) »
Mclb: Nicht meckern, sondern die Hilfe mal vollständig lesen zu functional calls. Da steht nämlich auch folgendes:
This notation is currently supported:

· for the source field of the MOVE statement
· in arithmetic expressions of the COMPUTE statement
· in logical expressions
· in the CASE statement of the CASE control structure
· in the WHEN statement of the CASE control structure
· in the WHERE condition of the statements LOOP AT, DELETE and MODIFYfor internal tables
The functional method is entered instead of an operand. When the statement is executed, the method is called and the RETURNING parameter passed back is used as the operand.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Unexpected word "EXPORTING" in functional method call

Beitrag von a-dead-trousers (Top Expert / 4371 / 222 / 1174 ) »
black_adept hat geschrieben:Mclb: Nicht meckern, sondern die Hilfe mal vollständig lesen zu functional calls.
Naja. Da muss ich Mclb etwas verteidigen.
Dass

Code: Alles auswählen.

ld_xyz = me->get_db_connector( )->get_conditions();
funktioniert, aber

Code: Alles auswählen.

    me->get_db_connector( )->get_conditions(
      exporting
        i_customer_id = i_customer_id
      importing
        et_conditions = lt_conditions
    ).
nicht funktioniert, geht aus dieser Beschreibung in der Hilfe NICHT hervor.
Da muss man zusätzlich wissen, dass es sich in diesem Fall um die KURZFORM von

Code: Alles auswählen.

CALL METHOD ...
    exporting
      ...
    importing
      ...
handelt.

lg ADT

EDIT:
ABAP ist IMHO sowieso die mit Abstand undurchsichtigste Programmiersprache, wenn man nur die unterschiedlichen Syntax-Notationen nimmt. Ganz zu schweigen von den unzähligen Schlüsselwörtern die es in dieser Form bei fast keiner anderen Sprache gibt.
Teilweise sogar in "falschem" englisch:
Der Zusatz OCCURRENCE bei FIND und REPLACE durfte eine zeitlang auch als OCURRENCE geschrieben werden.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1306
Views
Word mit CALL METHOD OF verlassen ohne zu sichen...
von fip » 18.07.2007 14:38 • Verfasst in ABAP® Core
1
Antw.
5489
Views
Call Method - Funktionsweise?
von ostpower » 30.03.2010 15:30 • Verfasst in ABAP® für Anfänger
3
Antw.
3506
Views
Remote Method Call
von Beni » 24.03.2005 07:45 • Verfasst in ABAP Objects®
0
Antw.
1144
Views
Call Method asynchrone
von mano79 » 24.10.2018 08:40 • Verfasst in ABAP® für Anfänger
0
Antw.
1834
Views
Web Dynpro Call Method
von Ippoo » 05.09.2012 16:10 • Verfasst in ABAP® für Anfänger

Ü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.