Geschachtelte Tabelle

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

Geschachtelte Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) »
Sorry, muss euch nochmal was fragen:

und zwar lese ich in meinem Fuba mehrere Datein von AppServer.

Ich speichere diese während des lesen in einer Soli_Tab intern ab.

Nun möchte ich im Dict eine Tabelle definieren welche folgende Felder enthält:

Code: Alles auswählen.

MANDT	MANDT	CLNT	3	0	Mandant
DATEINAME	CHAR30	CHAR	30	0	                                                            
PFAD	LOCALFILE	CHAR	128	0	Lokale Datei für Upload bzw. Download
DATEI	SOLIX_TAB	TTYP	0	0	GBT: SOLIX als Tabellentyp
Aktivieren kann ich diese aber nicht, da der TTYP nicht gestattet ist: Tabellentyp SOLIX_TAB kann in DB-Tabelle Z_Tabelle nicht verwendet werden

Wie komm eich denn jetzt trotzdem zu meinem Ziel??

Danke bereits im Vorausm da ich denke für euch ist die Beantwortung dieser Frage ein Witz...

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


Re: Geschachtelte Tabelle

Beitrag von a-dead-trousers (Top Expert / 4412 / 224 / 1184 ) »
Hi!

Entweder du übernimmst die LINE aus SOLIX in deine Tabelle und legst alle ZEILEN deiner SOLIX_TAB ab, oder du wandelst die SOLIX_TAB in einen XSTRING um und legst diesen ab.
Wobei ich zweiteres empfehlen würde.
Hier hab ich noch kurz erklärt wie man das Umwandeln in XSTRING allgemein lösen kann.

lg ADT
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: Geschachtelte Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) »
Vielen Dank für die Antwort.

Auch wenn sie mich nicht zufrieden stellt. Dies liegtaber nicht an der Qualität deiner Antwort sondern eher daran, dass ich gehofft habe jetzt nicht alle aurufenden Programme auch noch anpassen zu müssen.
Diese bekommen derzeit nur eine Solix_tab als Rückgabe und nun muss ich diese auch alle umstellen.

vielen lieben dank!

Gib es für die Umwandlung in XString und zurück keinen fuba???

Re: Geschachtelte Tabelle

Beitrag von a-dead-trousers (Top Expert / 4412 / 224 / 1184 ) »
Hab dafür eine Klasse gefunden: CL_SWF_UTL_CONVERT_XSTRING
Im Umfeld von SOLIX, BDS, SO und ATTECHMENTS sollte es auch noch eine Klasse geben die spezielle einen Parameter vom Typ SOLIX_TAB anbietet.
Ich weiß aber leider nicht genau wie die heißt.
Kenny hat geschrieben:... sondern eher daran, dass ich gehofft habe jetzt nicht alle aurufenden Programme auch noch anpassen zu müssen.
Diese bekommen derzeit nur eine Solix_tab als Rückgabe und nun muss ich diese auch alle umstellen.
Leg dir doch einfach einen FuBa oder eine Klasse an, die die ganze Verarbeitung (Laden, Umwandeln und Ablegen) auf einmal erledigt. Dann musst du nicht mehr "alle" Stellen ändern.

Und für die Zukunft gewöhne dir einfach an solche Funktionen in eigenen Bausteinen (FuBa oder Klasse) zu kapseln. Auch wenn du nur das Coding eines Vorgängers ausbesserst: Das ist doch die beste Zeit ein Code-Refactoring zu machen, da sowieso jemand das Ganze im Anschluss testen muss und du nicht erst jemanden für den Test finden musst.

lg ADT
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: Geschachtelte Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) »
Cool, danke. Ich werde deinen Rat befolgen.

Ich habe die folgenden beiden Fubas gefunden:

'SCMS_BINARY_TO_XSTRING'
'SCMS_XSTRING_TO_BINARY'

höre sich doch gar net so schlecht an, oder?

Re: Geschachtelte Tabelle

Beitrag von a-dead-trousers (Top Expert / 4412 / 224 / 1184 ) »
Okay, die scheinen auch in Ordnung zu sein.
Ich verwend nur halt gern Klassen anstatt Funktionsbausteine. :wink:
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: Geschachtelte Tabelle

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
Hallo Kenny,

wenn du eine tiefe Struktur auf der SAP-Datenbank ablegen willst solltest du dir eine Clustertabelle nehmen und die Daten dort reinwerfen mittels EXPORT TO DATABASE.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Geschachtelte Tabelle - XSTRING

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
Was spricht dagegen, das Umwandeln in einen XSTRING und zurück per Transformation zu machen?
Also in etwa so:

Code: Alles auswählen.

CALL TRANSFORMATION ID SOURCE PARA = SOLIX_TAB
                       RESULT XML LV_XML.
und zurück

Code: Alles auswählen.

CALL TRANSFORMATION ID SOURCE XML LV_XML
                       RESULT PARA =  SOLIX_TAB.
Der "Name" des Parameters (oben PARA) ist, glaube ich Schall und Rauch, will sagen völlig egal.
Mit geschachtelten Tabellenstrukturen, die ich im DDIC anlege, klappt das wunderbar.
Oder gibt es Besonderheiten an SOLIX_TAB, die das erschweren?

Re: Geschachtelte Tabelle - XSTRING

Beitrag von a-dead-trousers (Top Expert / 4412 / 224 / 1184 ) »
GastX hat geschrieben:Der "Name" des Parameters (oben PARA) ist, glaube ich Schall und Rauch, will sagen völlig egal.
Ganz klares Nein! Wenn man die zuvor "exportierten" Daten wiederherstellen möchte BRAUCHT man diesen Parameter.
Besonders wenn man nach Jahren ein "altes" XML Dokument wiederfindet.
GastX hat geschrieben:Mit geschachtelten Tabellenstrukturen, die ich im DDIC anlege, klappt das wunderbar.
Oder gibt es Besonderheiten an SOLIX_TAB, die das erschweren?
Nein, die SOLIX_TAB kann man problemlos in ein XML Dokument umwandeln.
Einziger Nachteil ist, dass das Ergebnis dann einiges an unnötigen Overhead (XML Auszeichnung) beinhaltet der vorallem bei kleinen Datenmengen einen ziemlich hohen Anteil ausmacht.

Aber ansonsten hast du recht: Über Transformationen kann man sehr schnell nach XSTRING umwandlen.
Würde ich aber für diesen Anwendungsfall nicht empfehlen. Ist wirklich nur dann sinnvoll wenn man mehrere Datenfelder hat und diese zusammen ablegen möchte.
Weiters sollt man auch noch bedenken, dass man auf der Datenbank dann keine Abfragen mehr machen kann.
Im Fall von XSTRING geht das zwar auch nicht, aber wenn man z.b. nur einige einfache Datenfelder per XML ablegt, kann man per SELECT nicht mehr auf diese abfragen.
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: Geschachtelte Tabelle - XSTRING

Beitrag von GastX (Specialist / 277 / 4 / 18 ) »
a-dead-trousers hat geschrieben:
GastX hat geschrieben:Der "Name" des Parameters (oben PARA) ist, glaube ich Schall und Rauch, will sagen völlig egal.
Ganz klares Nein! Wenn man die zuvor "exportierten" Daten wiederherstellen möchte BRAUCHT man diesen Parameter.
Besonders wenn man nach Jahren ein "altes" XML Dokument wiederfindet.
Mein Fehler, stimmt natürlich. Wenn es darum geht, das auf die DB zu packen, könnte man den Parameternamen "sicherheitshalber" mit in eine Spalte schreiben, um eben diese Information programmunabhängig abzulegen. Korrigiert: ob man das PARA oder OTTO nennt ist egal, man muss es nur bei beiden Richtungen identisch benennen.
a-dead-trousers hat geschrieben: Einziger Nachteil ist, dass das Ergebnis dann einiges an unnötigen Overhead (XML Auszeichnung) beinhaltet der vorallem bei kleinen Datenmengen einen ziemlich hohen Anteil ausmacht.

Aber ansonsten hast du recht: Über Transformationen kann man sehr schnell nach XSTRING umwandlen.
Würde ich aber für diesen Anwendungsfall nicht empfehlen. Ist wirklich nur dann sinnvoll wenn man mehrere Datenfelder hat und diese zusammen ablegen möchte.
Weiters sollt man auch noch bedenken, dass man auf der Datenbank dann keine Abfragen mehr machen kann.
Im Fall von XSTRING geht das zwar auch nicht, aber wenn man z.b. nur einige einfache Datenfelder per XML ablegt, kann man per SELECT nicht mehr auf diese abfragen.
Richtig, das Verhältnis von Nutzlast zu Verwaltungsdaten ist bei XML nicht immer vorteilhaft. Was die Datenmengen angeht, kann man die natürlich noch eindampfen, indem man die CL_ABAP_GZIP zum Packen einsetzt.
Sofern es um ein reines Ablegen geschachtelter Tabellen geht, ist das so sehr generisch und mit recht wenig Programmieraufwand verbunden. Zugriffe per Select sind ohne ein Flachklopfen der Schachtelungen aber sowieso schwierig, oder? Zumindest, wenn man nach Einträgen in Subtabellen sucht.

Seite 1 von 1

Vergleichbare Themen

9
Antw.
10142
Views
Tabelle in Tabelle - geschachtelte Tabelle
von p.suedfeld » 08.09.2008 15:20 • Verfasst in ABAP® für Anfänger
8
Antw.
4742
Views
GELÖST - ADOBE Forms - geschachtelte Tabellen
von Xilukarim » 20.05.2019 15:25 • Verfasst in ABAP® Core
3
Antw.
2011
Views
Viele sehr tief geschachtelte IF...ENDIF's
von erp-bt » 26.09.2012 16:56 • Verfasst in SAP - Allgemeines
5
Antw.
1071
Views

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor 6 Stunden von rob_abc gelöst 8 / 6209
ABAP - Mail so10 Text
vor 22 Stunden von retsch 6 / 281

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

Nach MESSAGE TYPE E Felder entsperren
vor 6 Stunden von rob_abc gelöst 8 / 6209
ABAP - Mail so10 Text
vor 22 Stunden von retsch 6 / 281

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 5 Tagen von Manfred K. 1 / 1053
BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Wochen von snooga87 1 / 2872