Changingparameter und Tabellenparameter

Alle Fragen rund um Basisthemen
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Changingparameter und Tabellenparameter

Beitrag von meocon (ForumUser / 38 / 1 / 0 ) »
Hallo,
weiß jemand, was der Unterschied zwischen Tabellenparameter und Changingparameter von einem Funktionsbaustein ist.

Vielen Dank für die Hinweise

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


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo meocon,

TABLES-Parameter erlauben nur Tabellen, CHANGING-Parameter dagegen jede Art von Parameter. Abgesehen davon sollen TABLES-Parameter laut SAP nicht mehr benutzt werden, weil z.B. keine SORTED- oder HASH-Tabellen mit TABLES übergeben werden dürfen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von meocon (ForumUser / 38 / 1 / 0 ) »
Hi ereglam,
Danke für die Antwort.
ereglam hat geschrieben:Hallo meocon,
Abgesehen davon sollen TABLES-Parameter laut SAP nicht mehr benutzt werden, weil z.B. keine SORTED- oder HASH-Tabellen mit TABLES übergeben werden dürfen.
Wo hast Du diese Info gelesen? Kannst Du mir die Quelle geben. Das interessiert mich auch.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
SAP Hilfe hat geschrieben:Der TABLES-Zusatz

Aus Kompatibilitätsgründen zu vorhergehenden Releases ist in der Parameterschnittstelle folgender Zusatz vor den Zusätzen USING und CHANGING erlaubt:

FORM <subr> TABLES ... <itabi> [TYPE <t>|LIKE <f>] ...

Die Formalparameter <itabi> werden als interne Standard-Tabellen mit Kopfzeile definiert. Wenn eine interne Tabelle ohne Kopfzeile als Aktualparameter für solche einen Formalparameter verwendet wird, wird im Unterprogramm eine lokale Kopfzeile für den Formalparameter generiert. Wird eine interne Tabelle mit Kopfzeile als Aktualparameter verwendet, werden der Tabellenkörper und der Tabellenarbeitsbereich an das Unterprogramm übergeben. Bei mit TABLES definierten Formalparametern ist keine Wertübergabe möglich. Um auf die Komponenten strukturierter Zeilen zuzugreifen müssen auch TABLES-Parameter entsprechend typisiert werden.

Seit Release 3.0 sollte statt des TABLES-Zusatzes immer USING oder CHANGING mit der entsprechenden Typisierung für interne Tabellen verwendet werden, wobei aus Performance-Gründen bei internen Tabellen möglichst keine Wertübergabe definiert werden sollte.
fett-Setzung von mir...

Die entsprechende Ausführung zu Funktionen finde ich jetzt nicht auf die Schnelle, bin mir aber sicher, es irgendwo gelesen zu haben. Für Methoden gibt es ja auch kein TABLES, daher vielleicht in diesem Zusammenhang
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von meocon (ForumUser / 38 / 1 / 0 ) »
Hi ereglam,
Alles klar. ich glaube Du hast recht.
Ich habe außerdem andere spezifische Frage. Vielleicht kannst Du mir helfen. Kann ein normaler Funktionsbaustein auf die SAP-Businesse-Objekte zugreifen ohne BAPI aufzurufen?
ereglam hat geschrieben:
SAP Hilfe hat geschrieben:Der TABLES-Zusatz

Aus Kompatibilitätsgründen zu vorhergehenden Releases ist in der Parameterschnittstelle folgender Zusatz vor den Zusätzen USING und CHANGING erlaubt:

FORM <subr> TABLES ... <itabi> [TYPE <t>|LIKE <f>] ...

Die Formalparameter <itabi> werden als interne Standard-Tabellen mit Kopfzeile definiert. Wenn eine interne Tabelle ohne Kopfzeile als Aktualparameter für solche einen Formalparameter verwendet wird, wird im Unterprogramm eine lokale Kopfzeile für den Formalparameter generiert. Wird eine interne Tabelle mit Kopfzeile als Aktualparameter verwendet, werden der Tabellenkörper und der Tabellenarbeitsbereich an das Unterprogramm übergeben. Bei mit TABLES definierten Formalparametern ist keine Wertübergabe möglich. Um auf die Komponenten strukturierter Zeilen zuzugreifen müssen auch TABLES-Parameter entsprechend typisiert werden.

Seit Release 3.0 sollte statt des TABLES-Zusatzes immer USING oder CHANGING mit der entsprechenden Typisierung für interne Tabellen verwendet werden, wobei aus Performance-Gründen bei internen Tabellen möglichst keine Wertübergabe definiert werden sollte.

Seite 1 von 1

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