standard table vs. sorted table

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

standard table vs. sorted table

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin moin,

ich hab gerade nen Knoten im Hirn, vielleicht kann mir einer von euch helfen.

Ich habe eine SORTED TABLE, auf die ich mit einem Feldsymbol zeige, welches den Namen der Tabelle enthält. Diese Tabelle wird gefüllt durch den FuBau 'GET_CONVERTED_TAB_REMOTE'. Was der macht, ist unwichtig - wichtig ist nur, dass der die Ergebnistabelle mit TABLES zurückgibt. Darum kann man nur Standard-Tabellen angeben.

Nun habe ich das Problem: Deklariere ich das Feldsymbol als TYPE TABLE, nimmt des den Typ der angegebenen Tabelle an (SORTED TABLE), die kann ich aber dem Funktionsbaustein nicht übergeben. Deklariere ich das Feldsymbol als TYPE STANDARD TABLE, kriege ich einen Typkonflikt, weil ich eine SORTED TABLE übergeben will.

Ich will NICHT zwei Tabellen definieren und mir einen Wolf kopieren. Gibt es irgendeine andere Möglichkeit, wie ich das löse?

Kurz zum Hintergrund (ich beschränke mich auf das Wesentliche):

Code: Alles auswählen.

data:
  mm_tables   TYPE STANDARD TABLE OF tabname.
  mara        TYPE SORTED TABLE OF mara "Die Namensgleichheit ist Absicht!
         WITH UNIQUE KEY mandt matnr,

FIELD-SYMBOLS:
  <table> TYPE TABLE.  "= SORTED TABLE, weil die Tabellen in mm_tables alle SORTED sind und sein sollen

  append 'MARA' to mm_tables.

  LOOP AT mm_tables ASSIGNING FIELD-SYMBOL(<mm_table>). "Durchläuft die einzelnen Tabellennamen

    ASSIGN (<mm_table>) TO <table>.   "Kurzdump wenn <table> vom Typ STANDARD TABLE ist

    CALL FUNCTION 'GET_CONVERTED_TAB_REMOTE'
      EXPORTING
        host                  = quellsystem
        table_name            = <mm_table>
        get_systab            = abap_true
      IMPORTING
        rfc_error_text        = msgtxt
      TABLES
        tablebox              = <table>.  "muss(!) STANDARD TABLE sein!!! (Sonst streikt schon die Syntaxprüfung)
  endloop.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: standard table vs. sorted table

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
ralf.wenzel hat geschrieben:Gibt es irgendeine andere Möglichkeit, wie ich das löse?
Hast du mal:

Code: Alles auswählen.

FIELD-SYMBOLS: <table> TYPE ANY TABLE.
versucht?

Dürfte die Syntaxprüfung überstehen. Wobei es weiterhin ein TypKonflikt beim FuBa-Aufruf geben sollte, da du immer noch eine SORTED itab und keine STANDARD itab an den FuBa übergibst. Das ist mMn auch mittels Fieldsymbols nicht realisierbar, da der zugrundeliegende Typ der itab durch das FieldSymbole nicht geändert wird.
Gruß Hendrik

Re: standard table vs. sorted table

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
In der Vererbung dürfen sich SORTED und STANDARD TABLE auch noch als INDEX TABLE deklarieren.
Das ändert aber leider nichts daran, dass TABLES immer einen STANDARD TABLE braucht.
Du wirst dir wohl oder übel "einen Wolf kopieren" müssen.
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: standard table vs. sorted table

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
JHM hat geschrieben:
ralf.wenzel hat geschrieben:Gibt es irgendeine andere Möglichkeit, wie ich das löse?
Hast du mal:

Code: Alles auswählen.

FIELD-SYMBOLS: <table> TYPE ANY TABLE.
versucht?

Dürfte die Syntaxprüfung überstehen. Wobei es weiterhin ein TypKonflikt beim FuBa-Aufruf geben sollte, da du immer noch eine SORTED itab und keine STANDARD itab an den FuBa übergibst. Das ist mMn auch mittels Fieldsymbols nicht realisierbar, da der zugrundeliegende Typ der itab durch das FieldSymbole nicht geändert wird.
Habe ich natürlich versucht, aber durch den Inhalt "MARA" (Tabelle vom Typ SORTED) wird das Feldsymbol auch implizit auf SORTED gesetzt.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: standard table vs. sorted table

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Guten Abend Ralf,

falls das Thema trotz des Wochenendes noch aktuell ist.

Du hast ja deine MARA-Tabelle als "SORTED TABLE" definiert, was dir wichtig zu sein scheint und was dir nachher beim FuBa Probleme bereitet.
Da du ja nun keine 2. Tabelle definineren und umkopieren möchtest - hast du evtl. die Wahl die Definition deiner MARA-Tabelle noch ein wenig zu beeinflussen?

Ich würde dann eine doppelt indizierte Tabelle vorschlagen: Etwa so

Code: Alles auswählen.

DATA: sflight TYPE STANDARD TABLE OF sflight WITH EMPTY KEY
                                             WITH UNIQUE SORTED KEY sort_key COMPONENTS mandt connid carrid  fldate.
Damit behältst du deine sortierte Tabelle aber kannst sie gleichzeitig dem FuBa direkt übergeben. Allerdings müsstest du evtl. dort, wo du die "sortiert"-Eigenschaft der Tabelle benötigst etwas anpassen um auf den SecondaryKey zuzugreifen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: standard table vs. sorted table

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Den Typ SORTED TABLE wollte ich haben, damit ein LOOP AT ... WHERE gescheit funktioniert. Inzwischen habe ich alles auf 80er Jahre umgestrickt: Aufsetzpunkt suchen mit READ ... BINARY SEARCH uns dann ein LOOP AT ... FROM.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4720
Views
sorted table, hashed table: Übergabe Workarea -> Performa
von Jürgen Fischer » 30.01.2006 08:09 • Verfasst in ABAP® Core
2
Antw.
4718
Views
Position ändern Table Control Standard SAP
von Lucyalison » 13.07.2016 12:54 • Verfasst in Dialogprogrammierung
11
Antw.
11740
Views
Table Extension für die Erweitrung der Standard BAPIs für SD
von Ali » 26.05.2004 17:41 • Verfasst in ABAP® Core
44
Antw.
10202
Views
INTO CORRESPONDING FIELDS OF TABLE VS. INtO TABLE
von Bright4.5 » 07.12.2018 13:22 • Verfasst in ABAP® für Anfänger
11
Antw.
4835
Views
table to CSV
von Abapsocke » 18.02.2019 11:29 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140