Interne Tabelle in CSV: CSV Daten untereinander auflisten

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

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

Interne Tabelle in CSV: CSV Daten untereinander auflisten

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey,

Ich wandle mit Hilfe des Fuba "SAP_CONVERT_TO_CSV_FORMAT" eine interne Tabelle in eine CSV DATEI um.
In der CSV stehen die Daten nebeneinander, für die weitere Verarbeitung müssen diese jedoch wie in einer Tabelle untereinander erfasst werden.

Habe versucht zeichweise durchzuloopen und bei Leerzeichen diese mit einem Zeilenumbruch zu ersetzen.
Die einzelnen Daten werden nämlich nur mit ; separiert.

Leider erhalte ich beim oben genannten Fuba eine interne Tabelle und bei diesen ist kein Teilzugriff möglich ... und das Ganze funktioniert so nicht.

Kennt jemand eine Möglichkeit das zu berwerkstelligen?

Danke schonmal für eure Tipps!

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


Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Thomas R. (Expert / 754 / 74 / 34 ) »
Hallo Dyrdek,
versuche doch einmal die Zeilen jeweils mit SPLIT aufzuteilen.
MfG
Thomas R.

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von black_adept (Top Expert / 3950 / 105 / 886 ) »
Hallo Dyrdek,

dieses Thema hatten wir schon mal. http://www.abapforum.com/forum/viewtopi ... =1&t=20921
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey,

Danke für eure Antworten.
@Thomas R. Wo kann ich das Split einbauen? Als Seperator im Fuba leider nicht, da sonst alle Werte so separiert werden (Vorname, Nachname, etc.).
Diese sollen in einer Zeile bleiben und nur Datensätze sozusagen, also ein neuer Mitarbeiter, dann mit seinen Infos in die nächste Zeile.

@black_adept Danke. Habe mir den Post mal angeschaut aber dabei geht es soweit ich das sehe um eine reine Umwandlung in CSV wie sie bei mir bereits stattfindet. Da erfolgt glaube ich keine Formatierung so wie es bei mir geschehen müsste. Aber danke für den Post ich werd mich nochmal umschauen.

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Thomas R. (Expert / 754 / 74 / 34 ) »
Hallo Dyrdek,
nach dem FuBa loopst Du über die Rückgabetabelle mit den Zeilen und teilst jede Zeile mit Split auf und hängst das Ergebnis an eine Ergebnistabelle.
MfG
Thomas R.

Folgende Benutzer bedankten sich beim Autor Thomas R. für den Beitrag:
Dyrdek


Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey Thomas R.,

Alles klar. Habe gerade nochmal debuggt um mir die Ergebnistabelle anzuschauen die ich vom Fuba bekomme.
Darin stehen die Daten wie folgt:
Zeile 1: Hans Maier;00000890;PW
Zeile 2: Jürgen Müller; 00000969;PW

Tut mir leid falls ich da auf dem Schlauch stehe, aber wie füge ich hier das Split ein? Hänge ich das als Text hinten an und beim öffnen der CSV wird es als Zeilenumbruch erkannt?

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von black_adept (Top Expert / 3950 / 105 / 886 ) »
Öhm - die Zeilen sehen doch gut aus. Wie genau sollte denn das Beispiel aussehen? Bzw. - warum wandelst du es erst in ein CSV um, wenn du am Ende gar kein CSV haben willst?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey black_adept,

Doch doch, ich brauch am Ende schon eine CSV.

So sieht die Tabelle aus dem Fuba aus:
Zeile 1: Hans Maier;00000890;PW
Zeile 2: Jürgen Müller; 00000969;PW

So sieht die CSV aus wenn ich Sie später in einem Texteditor öffne.
Hans Maier;00000890;PW Jürgen Müller; 00000969;PW

Im Texteditor steht alles in einer Zeile. :/


Ich poste hier mal kurz mein Coding:

Code: Alles auswählen.

          CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
            EXPORTING
              i_field_seperator    = ';'
            TABLES
              i_tab_sap_data       = gt_csv
            CHANGING
              i_tab_converted_data = lt_converted_tab1
            EXCEPTIONS
              conversion_failed    = 1
              OTHERS               = 2.

          IF sy-subrc <> 0.

          ENDIF.

Code: Alles auswählen.

          lt_converted_tab2 = "lt_converted_tab1.


          gr_document->add_attachment(
            EXPORTING
              i_attachment_type     =  'csv'
              i_attachment_subject  =  'CSV-Datei'
              i_att_content_text     =  lt_converted_tab2
                  ).
Mir ist gerade aufgefallen das im zweiten Coding das ich gepostet habe die Tabelle aus dem Fuba noch in eine andere übergeben wird, da sonst die Methode "add_attachment" nicht funktioniert da der Tabellentyp nicht stimmt. Dieser muss soli_tab sein.
Aber auch diese Tabelle die schließlich als Attachment angehängt wird sieht vom Inhalt aus wie die direkt aus dem Fuba. Zudem kann ich ohne die Umwandlung die CSV nicht versenden.

In einer Excel-Datei wird es zudem genauso angezeigt, also in einer einzelnen Zeile, ... :( Habe ich gerade noch getestet.

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von black_adept (Top Expert / 3950 / 105 / 886 ) »
Aha - so langsam kommen wir also zu des Pudels Kern.

Lösung: 1.) CSV -> String und danach 2.) String -> SOLI_TAB

1.) Stichworte: LOOP, CONCATENATE, CL_ABAP_CHAR_UTILITIES=>CR_LF
2.) Stichworte: Klasse CL_BCS_CONVERT

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Aha - so langsam kommen wir also zu des Pudels Kern.

Lösung: 1.) CSV -> String und danach 2.) String -> SOLI_TAB

1.) Stichworte: LOOP, CONCATENATE, CL_ABAP_CHAR_UTILITIES=>CR_LF
2.) Stichworte: Klasse CL_BCS_CONVERT
Ok, danke. Werde ich mir gleich mal zu Gemüte führen. :)

In der Zwischenzeit haben mir die beiden Threads hier weitergeholfen.
https://archive.sap.com/discussions/thread/287732
https://archive.sap.com/discussions/thread/94661

Da wird ein NEW_LINE Zeichen eingefügt. Komischerweise funktioniert das in Excel und dem WordPad aber nicht im normalen Texteditor.
Da die CSV später als Serienbrief verarbeitet werden soll bin ich mir nicht sicher ob das Ergebnis aktuell reicht.

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Hey,

Also die aktuelle Lösung mit den Zeilenumbrüchen in Excel und WordPad reicht für unsere Zwecke aus.

Danke black_adept und Thomas R. für eure Zeit und Hilfe :)

Re: Interne Tabelle in CSV: CSV Daten untereinander aufliste

Beitrag von JHM (Top Expert / 1189 / 1 / 196 ) »
Dyrdek hat geschrieben:Da wird ein NEW_LINE Zeichen eingefügt. Komischerweise funktioniert das in Excel und dem WordPad aber nicht im normalen Texteditor.
Weiterbildungslink: https://de.wikipedia.org/wiki/Zeilenumb ... enumbruchs
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2833
Views
Daten aus DB-Tabelle in interne Tabelle kopieren
von b0rsti » 07.02.2008 10:52 • Verfasst in ABAP® für Anfänger
2
Antw.
1464
Views
HTTP-Daten als interne Tabelle
von quercus » 04.11.2005 11:02 • Verfasst in ABAP® Core
2
Antw.
1282
Views
ALV - Doppelklick - Tabelle auflisten und zurück
von wreichelt » 10.11.2016 11:34 • Verfasst in ABAP® Core
4
Antw.
2230
Views
Felder einer Tabelle auflisten
von robz » 09.11.2006 15:52 • Verfasst in ABAP® Core

Ü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.