in klasse/mehod Tabele definiren

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

in klasse/mehod Tabele definiren

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hallo Experten,
ich versuche alte ABAP-Programm auf OO-Programm umschreiben. Ich bin neue bei OO.
ich habe im alte Programm Tabele definition:
DATA: BEGIN OF tt_werks,
werks TYPE werks_d,
name1 TYPE name1,
END OF tt_werks.
Data: gt_werks type standard table of tt_werks.

Die Tabelle wahrscheinlich brauche dan später noch mal.
Ich habe ein Klasse zcl_set_sel gemacht und da eine Methode:set_par.
Frage, wo ich diese Tabelle typisiren soll? und wie?
Wenn ich direckt in mehtode mache bekomme ich fehler.
(Der Typ "TT_WERKS" ist unbekannt.)

Kannn ich theortish in DICT anlegen, aber dann für verschiden Kunden ich dise Tabelle mit transportiren soll.
Was meinen sie ? Besser in DICT oder in Methode?

Danke

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


Re: in klasse/mehod Tabele definiren

Beitrag von lausek (ForumUser / 64 / 2 / 20 ) »
Die Frage, die noch zu klären ist: Wo soll dieser Typ überall eingesetzt werden?

Innerhalb der Methode? Dann reicht lokal aus
Innerhalb der Klasse? Dann kannst du ihn als Type der Klasse anlegen
Im gesamten System/in mehreren Programmen? Dann am besten ins Dictionary

Prinzipiell sind lokale Typdefinitionen in Methoden möglich. Deshalb kann ich den Fehler, den du bekommst, nicht ganz nachvollziehen. Poste hier bitte gleich mal den Code dazu.

EDIT: Ups, habs gerade bemerkt. Wenn du einen Typ definierst, musst du die Zeile mit TYPES einleiten - nicht mit DATA.
Zuletzt geändert von lausek am 24.07.2018 15:51, insgesamt 1-mal geändert.

Folgende Benutzer bedankten sich beim Autor lausek für den Beitrag:
autohandel7


Re: in klasse/mehod Tabele definiren

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
Verwende stattdessen diesen Aufbau:

Code: Alles auswählen.

TYPES: BEGIN OF ts_werks,
werks TYPE werks_d,
name1 TYPE name1,
END OF ts_werks. "Eine Struktudefinition
TYPES: tt_werks TYPE STANDARD TABLE OF ts_werks WITH DEFAULT KEY. "Eine Tabellentypdefinition
DATA: lt_werks TYPE tt_werks. "Die tatsächliche Variable

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

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: in klasse/mehod Tabele definiren

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
Hallo,

wenn die Methode den Tabellentyp nutzen soll, dann muss der Typ in der Klasse angelegt werden. Je nach Sichtbarkeit der Methode im PUBLIC/PROTECTED/PRIVATE Bereich

Code: Alles auswählen.

* Definitionsteil
PRIVATE SECTION.
types: begin of t_test,
matnr type matnr,
end of t_test.
types: tt_test type table of t_test.
methods test importing it_test type tt_test.

*Implemetationsteil
method test.
* Dein Code
endmethod
Es gibt 10 Menschen die binär verstehen :)

Re: in klasse/mehod Tabele definiren

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
class.JPG
4byte hat geschrieben:Hallo,

wenn die Methode den Tabellentyp nutzen soll, dann muss der Typ in der Klasse angelegt werden. Je nach Sichtbarkeit der Methode im PUBLIC/PROTECTED/PRIVATE Bereich

Code: Alles auswählen.

* Definitionsteil
PRIVATE SECTION.
types: begin of t_test,
matnr type matnr,
end of t_test.
types: tt_test type table of t_test.
methods test importing it_test type tt_test.

*Implemetationsteil
method test.
* Dein Code
endmethod

Danke, ich möchte gern, dass ich dise Tabelle in andere Methoden benutzen kann, aber ich verstehe nicht, wo ich das defenieren soll?
Sehe Bild. Ich kann in Interne Typen das machen, aber dann soll ich Tabelle in DICT anlegen.
Danke

Re: in klasse/mehod Tabele definiren

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
Komisch, bei mir heisst der Reiter nur "Typen" und ich kann die Sichtbarkeit selber wählen (was übersehe ich?)
Typen, die du für Parameter von Methoden benutzt, müssen natürlich auch für Aufrufer von Methoden verfügbar sein.
Wenn die Methode Public ist (wie Deine SET_PARAMETER), dann muss auch der Typ des Methodenparameter für den Aufrufer verfügbar sein, entweder in dem er als Typ in einer Klasse als PUBLIC definiert ist (mich irritiert weiterhin der Reiter >Interne< Typen) oder indem Du ihn im DDIC anlegst.

Re: in klasse/mehod Tabele definiren

Beitrag von a-dead-trousers (Top Expert / 4281 / 214 / 1140 ) »
autohandel7 hat geschrieben:Danke, ich möchte gern, dass ich dise Tabelle in andere Methoden benutzen kann, aber ich verstehe nicht, wo ich das defenieren soll?
Sehe Bild. Ich kann in Interne Typen das machen, aber dann soll ich Tabelle in DICT anlegen.
Wenn du den Typ für PUBLIC-Methoden brauchst, dann definiere in in der PUBLIC-Section.
Wenn du den Typ für PROTECTED-Methoden brauchst, dann definiere in in der PROTECTED-Section.
ODER
Definiere den Typ im DDIC (als Struktur und Tabellentyp)

Die besagten Sections erreichst du über das Menü->Springen->Abschnitte.
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.
1557
Views
mehrmal DB Tabele lesen
von autohandel7 » 15.07.2015 08:22 • Verfasst in ABAP® für Anfänger
12
Antw.
2921
Views
Dynamische Interne Tabele mit Kopfzeilen
von autohandel7 » 24.06.2015 13:13 • Verfasst in ABAP® für Anfänger
1
Antw.
2812
Views
Performance bei der Auswertung der Tabele BKPF und BSEG
von JürgenFFM » 18.10.2006 23:19 • Verfasst in ABAP® Core
1
Antw.
1139
Views
Excel lesen in ein Interne Tabele mit anderen Struktur
von autohandel7 » 20.08.2015 11:14 • Verfasst in ABAP® für Anfänger
1
Antw.
2020
Views
Lokale Klasse autom. in globale Klasse ändern
von JohnLocklay » 09.01.2019 09:10 • Verfasst in ABAP Objects®

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

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 168