Interne Tabellen in csv-Format konvertieren

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

Interne Tabellen in csv-Format konvertieren

Beitrag von sapperlot (ForumUser / 6 / 0 / 0 ) »
Hallo

in einem Leseprogramm für Archivdateien habe ich interne Tabellen und die sollen mit dem Fub SAP_CONVERT_TO_CSV_FORMAT ins csv-Format konvertiert und dann mit ws_download auf den PC kopiert werden. Leider funzt das ganze nicht ganz so wie ich mir das vorstelle. Der Funktionsbaustein SAP_CONVERT_TO_CSV_FORMAT verabschiedet sich mit dem Laufzeitfehler UC_OBJECTS_NOT_CHARLIKE und zwar bei den internen Tabellen, die nicht nur aus zeichenartigen Datenobjekten bestehen (Bei der Tabelle VBUK geht die Konvertierung gut, bei der VBAK knallt es).
Die Definition der internen Tabellen sieht so aus:

DATA: XVBUK TYPE TABLE OF vbuk,
XNAST TYPE TABLE OF nast,
XVBAK TYPE TABLE OF vbak,
XVBAP TYPE TABLE OF vbap,

und werden so mit Inhalt gefüllt:

FORM GET_DATA.
FIELD-SYMBOLS: <ls_record> TYPE ANY.
ASSIGN gf_record_ref->* TO <ls_record>.
CASE ARC_BUFFER-RNAME.
WHEN 'VBUK'.
APPEND <ls_record> TO XVBUK.
WHEN 'VBAK'.
APPEND <ls_record> TO XVBAK.
WHEN 'VBFA'.
APPEND <ls_record> TO XVBFA.

Die Definition der internen Tabellen und das Befüllen geht somit recht elegant ohne grossen Schreibaufwand.
Aber wie bekomme ich das ohne grossen Aufwand mit den Tabellen hin, die nicht nur aus zeichenartigen Datenobjekten bestehen ?

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


Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo sapperlot,

wie der Fehler schon sagt, solltest du dir die Sturktur kopieren und aus den gepackten Feldern C-felder machen.

Kleiner Hinweis: WS_DOWNLOD soltest du durch den Aufruf CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD ersetzen (siehe Hilfe im FB).

MfG

Thomas

Beitrag von sapperlot (ForumUser / 6 / 0 / 0 ) »
Hallo Thomas,
erstmal vielen Dank dafür dass du dich mit meinem Problem beschäftigst.
Struktur kopieren ?? Meinst Du damit die Struktur der Tabellen (z.B. VBAK) mit der SE11 in eine z.B. ZZVBAK zu kopieren und alle gepackten Felder in CHAR-Felder zu ändern.
Ist die neue Struktur ZZVBAK dann nicht eine Struktur für eine Tabelle namens ZZVBAK ? Oder liege ich mit dem Ansatz SE11 total verkehrt ?

MfG
Fred

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo Fred,

das wäre der Versuch.

Struktur (Keine Tabelle) anlegen und aus allen gepackten Feldern C-Felder machen. ACHTUNF: Namen nicht verändern, sondern nur den Datentyp.

Bevor du dein Append machst sollte dann ein

Move-Correspondinf vbak to zvbak

erfolgen.

Dann die Struktur zvbak an deine interne tabelle anhängen.
Auch die Interne Tabelle sollte dann aber der Struktur ZVBAK entsprechen.

MfG

Thomas

Beitrag von sapperlot (ForumUser / 6 / 0 / 0 ) »
Hallo Thomas,

move-corresponding und anschliessender Append an die angepasste Struktur
funktioniert.

Vielen Dank nochmals !

Gruss Fred

Re: Interne Tabellen in csv-Format konvertieren

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Ich benutzte dafür gerne das RTTI und erzeuge pro Feld auf Basis des Typs die textliche Aufbereitung, die ich dann an die bisherige Ausgabezeile mit dem Trennzeichen anhänge:

Code: Alles auswählen.

* Strukturdefinition holen
lo_struct = cl_abap_structdescr=>describe_by_type(p_data = ls_data)

*feldweise die Struktur durchlaufen
LOOP AT lo_struct->components ASSIGNING <ls_component>.
* Zugriff auf das aktuelle Feld
  ASSIGN COMPONENT <ls_component>-name of STRUCTURE ls_data TO <lv_field>.

* Textaufbereitung je nach Typ 
  CASE <ls_component>-type_kind.
    WHEN cl_abap_structdescr=>typekind_char.
      lv_out = <lv_field>.
    WHEN ...
      lv_out = {Textaufbereitung}.
  ENDCASE.

* anhängen des aufbereiten Feldes an die Ausgabezeile
  CONCATENATE
    lv_line "Typ STRING ?!?
    lv_out
    SEPARATED BY lv_delim "z.B. ,;:<tab>
    INTO lv_line    
ENDLOOP.

* an die Ausgabetabelle anhängen
  INSERT lvl_line INTO TABLE lt_outtab.
PS:
Coding aus dem Kopf erstellt...
Sonderfälle, wie Mengen und Währungsbeträge wurden nicht betrachtet.
Gruß
Ereglam


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

Re: Interne Tabellen in csv-Format konvertieren

Beitrag von black_adept (Top Expert / 4133 / 130 / 956 ) »
Moin ereglam,
du hast schon gesehen, dass der Thread 15 Jahre alt ist?

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ereglam

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Interne Tabellen in csv-Format konvertieren

Beitrag von ewx (Top Expert / 4884 / 318 / 644 ) »
Aber schön, dass du wieder da bist, Ereglam! ;)

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 2):
ereglamIcke0801


Seite 1 von 1

Vergleichbare Themen

0
Antw.
3347
Views
Datum ins Interne Format konvertieren
von Ralph » 19.10.2007 14:56 • Verfasst in ABAP® für Anfänger
1
Antw.
2719
Views
Startroutine, 2 interne Tabellen, unterschiedliches Format
von PeterB » 19.08.2005 09:39 • Verfasst in Sonstige Module
1
Antw.
1378
Views
Konvertierung ins interne Format
von Gast » 15.11.2005 11:41 • Verfasst in ABAP® Core
0
Antw.
2864
Views
XML in interne Tabelle einlesen Camt.054 Format
von Big_Al » 19.03.2014 13:29 • Verfasst in ABAP® Core
3
Antw.
2967
Views

Über diesen Beitrag


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

Aktuelle Forenbeiträge

FOR mit CORRESPONDING
vor 2 Tagen von black_adept 9 / 1193
SALV: Titel zu lang
vor 2 Tagen von ralf.wenzel 3 / 189
Web Feature Services (WFS) im SAP
vor 5 Tagen von msfox 1 / 702
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 2500

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

FOR mit CORRESPONDING
vor 2 Tagen von black_adept 9 / 1193
SALV: Titel zu lang
vor 2 Tagen von ralf.wenzel 3 / 189
Web Feature Services (WFS) im SAP
vor 5 Tagen von msfox 1 / 702
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 2500

Unbeantwortete Forenbeiträge

Web Feature Services (WFS) im SAP
vor 5 Tagen von msfox 1 / 702
Erweiterung in ME51N/ME52N:
vor 3 Wochen von ABAPlerv 1 / 3030
Erweiterung in ME51N/ME52N:
vor 3 Wochen von ABAPlerv 1 / 2871