Variablen und Strukturken in größere Struktur übergeben.

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Variablen und Strukturken in größere Struktur übergeben.

Beitrag von lav007 (ForumUser / 4 / 3 / 0 ) »
Servus zusammen,

habe folgende Frage:

Ich habe in einer Ausgabe - Klasse einen Strukturtyp erschaffen:
Types: begin of ts_complete_table,
wi_nummer TYPE tabelle1-wi_nummer,
wi_text TYPE tabelle1-wi_text,
ab_person TYPE tabelle2-ab_person,
cd_datum TYPE tabelle3-cd_datum,
end of ts_complete_table.

types: tt_complete_table type table of ts_complete_table WITH DEFAULT KEY.

data: gt_complete_table type tt_complete_table.
In einer anderen Klasse hole ich mit allmöglichen Selects die nötigen Inhalte raus. Dabei werden diese Inhalte einmal in Strukturen und ein mal in Variablen gespeichert:
gs_tabelle1, die unter anderem wi_nummer und wi_text beinhaltet, aber auch andere Komponente. Hier also eine Struktur.
gv_ab_person und gv_cd_datum also Variablen, da nur diese Inhalte mich interessieren und die komplette Information übernehmen wäre unsinnig.

So die Daten sind der Zweiten Klasse sind nun da. Da die Variablen private sind, kreiere ich die get_methoden um an sie ran zukommen.

Mittels eines Loops Versuche ich gt_complete_table zu befüllen.

Doch genau da versage ich:

loop at class2_instanzen ASSIGNING FIELD-SYMBOL(<lo_class2_instanzen>).

Append LINES OF <lo_class2_instanzen>->get_gs_tabelle1( ) to gt_complete_table .
...
endloop.

Bloß kriege ich die Message:

Der Ergebnistyp von "get_gs_tabelle1" ist nicht in den Typ von "gt_complete_table" konvertierbar.

Ich bin 100% Anfänger und blicke nicht alle Sachen durch und nenne womöglich Sachen falsch. Aber ich hoffe ihr könnt verstehen, was ich gemeint habe und könnt mir helfen.

Ich bin euch im voraus dankbar...

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


Re: Variablen und Strukturken in größere Struktur übergeben.

Beitrag von ralf.wenzel (Top Expert / 3934 / 200 / 281 ) »
1. Du deklarierst globale Tabellen in einer Methode? Du kennst offenbar den Unterschied zwischen einem Attribut und einer Variablen nicht. Das hat mit ABAP nichts zu tun, aber du vermischst hier Prozedurales und Objektorientiertes. Das ist nicht gut. Tipp: Lies mal den Artikel zur Ungarischen Notation (in meiner Signatur verlinkt).

2. Der Typ des Returning-Parameters ist eine Tabelle vom gleichen Typ deiner Zieltabelle? Nur dann geht APPEND LINES OF. Da ich den deklarativen Teil der Methode nicht kenne, kann ich das nicht sehen.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Variablen und Strukturken in größere Struktur übergeben.

Beitrag von lav007 (ForumUser / 4 / 3 / 0 ) »
ralf.wenzel hat geschrieben:1. Du deklarierst globale Tabellen in einer Methode? Du kennst offenbar den Unterschied zwischen einem Attribut und einer Variablen nicht. Das hat mit ABAP nichts zu tun, aber du vermischst hier Prozedurales und Objektorientiertes. Das ist nicht gut. Tipp: Lies mal den Artikel zur Ungarischen Notation (in meiner Signatur verlinkt).

2. Der Typ des Returning-Parameters ist eine Tabelle vom gleichen Typ deiner Zieltabelle? Nur dann geht APPEND LINES OF. Da ich den deklarativen Teil der Methode nicht kenne, kann ich das nicht sehen.

Hallo Herr Wenzel,

zunächst danke ich Ihnen für die schnelle Rückmeldung.

1. In wie fern vertausche ich Prozedurales und Objektorientiertes? Ich erstelle zwei Klassen die, die eine Klasse ist rein für Datenmanagement zuständig und die zweite besorgt die Information. Die Informationsbeschaffung erfolgt in aufgeteilte Methoden. Das ist reine Trennung der Daten von Prozeduren.
Dass ich Variable und Attribut verwechsle ist bei mir normal, mach ich seit der Unizeit ;)

2. Also tabelle1 hat viel mehr Spalten alt die tabelle2. Deshalb muss ich aus tabelle2 nur einige Elemente in die tabelle1 mergen(übertragen)....

danke für ihre Aufmerksamkeit

Re: Variablen und Strukturken in größere Struktur übergeben.

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Wenn ich das ganze richtig verstanden habe ist das Ergebnis von

Code: Alles auswählen.

<lo_class2_instanzen>->get_gs_tabelle1( ).
eine Struktur.
Dann wäre der korrekte Aufruf

Code: Alles auswählen.

Append <lo_class2_instanzen>->get_gs_tabelle1( ) to gt_complete_table.
Also ohne LINES OF.

Kleiner Tipp meinerseits im Umgang mit Strukturen:
Wenn man unterschiedliche Daten-Felder im Programm für ein und denselben Schlüssel speichern möchte aber die ganzen Daten zentral in einer Tabelle sein sollen, bieten sich Struktur INCLUDES mit ALIAS-Namen an:

Code: Alles auswählen.

TYPES: 
  BEGIN OF ts_person,
    vname TYPE string,
    nname TYPE string,
  END OF ts_person.
TYPES: 
  BEGIN OF ts_address,
    street TYPE string,
    postal TYPE string,
  END OF ts_address.
TYPES:
  BEGIN OF ts_company,
    id TYPE string.
    INCLUDE TYPE ts_person AS boss RENAMING WITH SUFFIX b.
    INCLUDE TYPE ts_person AS employee RENAMING WITH SUFFIX e.
    INCLUDE TYPE ts_address AS address.
TYPES END OF ts_company.
DATA: lt_company TYPE SORTED TABLE OF ts_company WITH UNIQUE KEY ID.
FIELD-SYMBOLS: <ls_company> TYPE ts_company.

APPEND INITIAL LINE TO lt_company ASSIGNING <ls_company>.
* Zugriff auf den VNAME des BOSS.
<ls_company>-bvname = ...
<ls_company>-boss-vname = ...

* Zugiff auf die STREET der ADDRESS.
ls_company-address-street = ...
ls_company-street = ...
Damit kann man dann z.B. ganz schnell Methoden wie GET_BOSS oder GET_EMPLOYEE schreiben die als Rückgabe ein TS_PERSON liefern und als Eingabe eine ID erwarten. Die Daten kommen aber aus der kombinierten Struktur.

Code: Alles auswählen.

METHOD get_boss.
  READ TABLE lt_company ASSIGNING <ls_company> WITH KEY id = i_id.
  IF sy-subrc EQ 0.
    r_boss = <ls_company>-boss.
  ENDIF.
ENDMETHOD.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
lav007

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

4
Antw.
1883
Views
aus PMD heraus eigene Variablen an Sapscript übergeben
von sapdepp » 16.09.2014 14:54 • Verfasst in ABAP® für Anfänger
3
Antw.
2855
Views
Struktur übergeben
von erzoo24 » 06.07.2015 14:45 • Verfasst in ABAP® für Anfänger
4
Antw.
4258
Views
VBA RFC Export Struktur übergeben
von punkjunk » 31.10.2014 09:34 • Verfasst in ABAP® für Anfänger
0
Antw.
922
Views
FuBa zum übergeben der PSP-Struktur an MS Project
von Johannes » 30.10.2005 13:38 • Verfasst in Financials
10
Antw.
1085
Views

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 254
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3180
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9773