Array oder List? Aber wie?

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

Array oder List? Aber wie?

Beitrag von philfiat (ForumUser / 8 / 0 / 0 ) »
Hallo,

ich bin absoluter ABAP-Neueinsteiger...
Ich brauche ein Konstrukt, mit dem ich eine unbestimmte Menge gleicher Objekte (von mir in ABAP implementiert) verwalten kann, vergleichbar zu Array oder jeglichen Arten von Listen in anderen Sprachen. Ich habe schon mitbekommen, dass es sowas bei ABAP nicht gibt.
Mein Funktionsbaustein sollte dieses Konstrukt als Exportparameter haben.

Wie löst man so etwas in ABAP? Ich freue mich auch über jeden Beispielcode.

MfG und vielen Dank,

Philfiat

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


Re: Array oder List? Aber wie?

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

es gibt in ABAP etwas, das nennt sich interne Tabelle, welche mit Listen in anderen Programmen grob vergleichbar sind.
Deklariert werden sie u.a. so:

Code: Alles auswählen.

DATA:
  lt_data TYPE [STANDARD|SORTED|HASH] TABLE OF {zeiletyp}.
Für {zeilentyp} lassen sich alle möglichen Arten von Typen, z.B. aus dem Data DICTIONARY oder selbst Erstellte verwenden.

Zum Arbeiten mit diesen interen Tabellen benutzt man u.a. folgende Befehle
  • LOOP AT {table}
  • READ TABLE {table}
  • INSERT, DELETE, MODIFY
Die SAP ABAP-Hilfe ist recht hilfreich, um sich mit den Befehlen vertraut zu machen und auch Beispiele zu finden sind.

Andererseits wurden hier im Forum bzw. bei http://www.apentia-forum.de diverse Bücher empfohlen, die für Einsteiger interessant sind. Wichtigster Verlag ist http://www.sap-press.de.
Gruß
Ereglam


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

Re: Array oder List? Aber wie?

Beitrag von philfiat (ForumUser / 8 / 0 / 0 ) »
Hallo Ereglam,

die interne Tabelle habe ich jetzt soweit aufgebaut. Allerdings finde ich es sehr gewöhnungsbedürftig, da ich meine Objekte erst in einer Zeile (hat bei mir nur ein Feld) ablegen muß, welche ich dann an die Tabelle anhänge. Ist diese Vorgehen soweit korrekt?

Wie kann ich jetzt dem FuBa verklickern, dass er diese interne Tabelle als EXPORT PARAMETER verwenden soll? Damit meine ich nicht die Zuweisung der aufgebauten internen Tabelle an den Export Parameter sondern die Deklaration an sich.

Gruß

Philfiat

Re: Array oder List? Aber wie?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
philfiat hat geschrieben:Hallo Ereglam,

die interne Tabelle habe ich jetzt soweit aufgebaut. Allerdings finde ich es sehr gewöhnungsbedürftig, da ich meine Objekte erst in einer Zeile (hat bei mir nur ein Feld) ablegen muß, welche ich dann an die Tabelle anhänge. Ist diese Vorgehen soweit korrekt?

Wie kann ich jetzt dem FuBa verklickern, dass er diese interne Tabelle als EXPORT PARAMETER verwenden soll? Damit meine ich nicht die Zuweisung der aufgebauten internen Tabelle an den Export Parameter sondern die Deklaration an sich.

Gruß

Philfiat
Du kannst in solchen Fällen, wo der Zeilentyp ein elementares Feld ist, diesen auch direkt einfügen:

Code: Alles auswählen.

INSERT {feld} INTO TABLE {tabelle}.
Da bei Funktionsbausteinen die Parameterart TABLES nicht mehr verwendet werden soll, musst Du bei der Typisierung des EXPORT-Parameters ein Tabellentyp angeben. Hier bietet sich an, einen Tabellentyp im DDIC anzulegen, der als Zeilentyp den gleichen Typ hat, wie deine interne Tabelle.

Da Du nun einen Tabellentyp hast, solltest Du diesen auch für die Typisierung Deiner internen Tabelle verwenden, um hier konsistent zu bleiben.

PS:
meinst Du mit Objekt Referenzen auf Objektinstanzen (TYPE REF TO {objekt})?
Gruß
Ereglam


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

Re: Array oder List? Aber wie?

Beitrag von philfiat (ForumUser / 8 / 0 / 0 ) »
Hallo,

ich bin jetzt gerade dabei einen Tabellentyp im Dictionary anzulegen, leider gibt es noch ein paar Probleme mit meinen Berechtigungen...
Kann ich im Reiter "Zeilentyp" einfach meine Klasse als "Referenztyp" | "Referenzierter Typ" angeben? -Die Klasse ist allerdings lokal in meinem Paket.
meinst Du mit Objekt Referenzen auf Objektinstanzen (TYPE REF TO {objekt})?
Ja, genau das meinte ich.

Gruß

Philifiat

Seite 1 von 1

Vergleichbare Themen

7
Antw.
4588
Views
Array in SAP???
von Tigermoon » 13.01.2006 09:49 • Verfasst in ABAP® für Anfänger
0
Antw.
1906
Views
webformular checkboxen als array?
von nils » 01.07.2007 16:57 • Verfasst in Web-Dynpro, BSP + BHTML
1
Antw.
2729
Views
Array-Fetch mit Umbenennen
von Snooze » 08.08.2005 17:16 • Verfasst in ABAP® Core
1
Antw.
1604
Views
Werte in Array und jeden verarbeiten
von stony007_de » 10.01.2014 17:50 • Verfasst in ABAP® für Anfänger
2
Antw.
1836
Views
Attachment list
von Gast » 23.12.2005 15:38 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Programm anlegen mit Vorlage
vor 2 Stunden von DeathAndPain 2 / 46
IT0024 Qualifikationen CP-ID
vor 2 Stunden von DeathAndPain 2 / 293
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 35
Bedarfszusammenfassung "Einzelbedarfe"
vor 6 Stunden von harri 2 / 1222

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.

Aktuelle Forenbeiträge

Programm anlegen mit Vorlage
vor 2 Stunden von DeathAndPain 2 / 46
IT0024 Qualifikationen CP-ID
vor 2 Stunden von DeathAndPain 2 / 293
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 35
Bedarfszusammenfassung "Einzelbedarfe"
vor 6 Stunden von harri 2 / 1222

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 35
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3214
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9804