CSV String


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

CSV String

Beitragvon Django90 » 02.10.2017, 07:58

Guten Morgen liebes ABAP Forum,

Ich melde mich in gewohnter Regelmäßigkeit, um euch meine kleinen Probleme Vorzustellen.

Dieses mal will ich einen CSV String mit 8 integer Werte durch Semikolon getrennt, und summiert haben.

Ich habe da nun ein paar Fragen.

1. Was ist ein CSV String genau? Ein durch Komma getrennter Wert? Oder steckt da mehr dahinter?
2. Wie legt man so ein CSV String an?

Vielleicht hat ja jemand ein Muster für meine Aufgabenstellung, damit ich daran üben kann.

Ich wünsche euch einen schönen Wochenstart!
Django90
ForumUser
 
Beiträge: 18
Registriert: 21.09.2017, 13:03
Dank erhalten: 0 mal
Ich bin: sonstiges

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: CSV String

Beitragvon a-dead-trousers » 02.10.2017, 10:24

https://de.wikipedia.org/wiki/CSV_(Dateiformat)
EDIT: Die URL war nicht ganz korrekt.
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.07
Basis: 7.40

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
Django90
a-dead-trousers
Top Expert
 
Beiträge: 2688
Registriert: 07.02.2011, 13:40
Dank erhalten: 618 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon DeathAndPain » 02.10.2017, 14:27

Für den Fall, dass der Wikipedia-Artikel zu kompliziert rüberkommt: Eine CSV ist einfach eine primitive Textdatei, mit der Tabellen abgelegt werden. Jede Zeile der Datei ist eine Tabellenzeile; die Spalten der Tabelle werden durch ein Trennsymbol (meist Komma oder Semikolon) gekennzeichnet. Die erste Zeile dient oft als Überschrift.

Man kann also eine CSV-Datei ganz einfach mit dem Windows Notepad schreiben. Einfaches Beispiel:

Titel;Name;Einkommen
Gutsherr;Meyer;100000
Magd;Agathe;100
Hund;Bello;0

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
Django90
DeathAndPain
Specialist
 
Beiträge: 266
Registriert: 05.05.2006, 10:14
Dank erhalten: 65 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon a-dead-trousers » 03.10.2017, 09:37

Ich gebe zu, dass der Artikel etwas umfangreich ist, aber einen nicht ganz unwesentlichen Punkt hat DeathAndPain vergessen in seiner Kurzform zu erwähnen. Deswegen habe ich ja auch gleich den Link zum vollständigen Artikel gepostet.
Um Sonderzeichen innerhalb der Daten nutzen zu können (z. B. Komma in Dezimalzahlwerten), wird ein Feldbegrenzerzeichen (auch: Textbegrenzungszeichen) benutzt. Normalerweise ist dieser Feldbegrenzer das Anführungszeichen ". Wenn der Feldbegrenzer selbst in den Daten enthalten ist, wird dieser im Datenfeld verdoppelt (siehe Maskierungszeichen).

Für ein genaueres Verständnis, was das bedeutet, sei das Beispiel im Wiki Artikel erwähnt.
https://de.wikipedia.org/wiki/CSV_(Dateiformat)#Beispiel
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.07
Basis: 7.40

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
Django90
a-dead-trousers
Top Expert
 
Beiträge: 2688
Registriert: 07.02.2011, 13:40
Dank erhalten: 618 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon DeathAndPain » 04.10.2017, 10:15

Das gehört dann zu den Details, bei denen man sich dann an den Wikipedia-Artikel (oder andere Quellen) halten kann. Hier ging es ja erst mal darum, überhaupt ein Gefühl dafür zu entwickeln, was eine CSV-Datei ist. Wenn man nur den Namen hört und dann womöglich noch den Wikipedia-Artikel sieht, klingt das wie eine furchtbar komplizierte Sache, während CSV in Wahrheit zu den einfachsten Dateiformaten überhaupt gehört. Im Prinzip kann man in ABAP eine CSV-Datei ohne Hilfe von Funktionsbausteinen oder Methoden mit einfachen Befehlen selber bauen, auch wenn FBs und Methoden die Sache zuweilen einfacher machen mögen.

Bei den allermeisten CSV-Dateien, die mir bislang untergekommen sind, kommt das Trennzeichen auch nicht in den Nutzdaten vor. Soweit man die Chance dazu hat, bemüht man sich auch, das Trennzeichen entsprechend zu wählen, weswegen z.B. ich lieber Semikolon als Komma verwende, da nur sehr selten Nutzdaten dieses Zeichen verwenden.

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
Django90
DeathAndPain
Specialist
 
Beiträge: 266
Registriert: 05.05.2006, 10:14
Dank erhalten: 65 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon Django90 » 09.10.2017, 07:46

Guten Morgen,

Vielen Dank für die Antworten und Ratschläge.
Mein Zeil ist es so viel wie möglich "ohne" Funktionsbaustein zu bauen, damit ich den Kern und die Syntax verstehe.

Meine Aufgabenstellung ist, so wenig Quellcode wie möglich zu benutzen um eine einfache CSV. Datei anzulegen.
Es ist relativ kompliziert sich diese Informationen vom Internet/Foren zu ziehen, da man erst einmal den Hintergrund dessen Beispiele verstehen muss/sollte.

Vielleicht könnt ihr mir ja ein Beispiel geben, wie ich eine CSV. Datei anlege, ohne einen Funktionsbaustein zu benutzen.

Vielen Dank für eure Hilfe.

VG, Django90
Django90
ForumUser
 
Beiträge: 18
Registriert: 21.09.2017, 13:03
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: CSV String

Beitragvon DeathAndPain » 09.10.2017, 10:50

Bitteschön:

Code: Alles auswählen
REPORT ZTEST4.

TYPES: BEGIN OF TYPE_TABELLE,
         MATNR TYPE MATNR,
         MATKL TYPE MATKL,
       END OF TYPE_TABELLE.

DATA: TABELLE TYPE STANDARD TABLE OF TYPE_TABELLE WITH HEADER LINE,
      S TYPE STRING.

PARAMETERS DATEI TYPE STRING. " Dateiname

START-OF-SELECTION.

APPEND VALUE #( MATNR = '000000000000000001' MATKL = '000000001' ) TO TABELLE.
APPEND VALUE #( MATNR = '000000000000000002' MATKL = '000000001' ) TO TABELLE.
APPEND VALUE #( MATNR = '000000000000000003' MATKL = '000000002' ) TO TABELLE.

OPEN DATASET DATEI FOR OUTPUT IN TEXT MODE ENCODING UTF-8.

TRANSFER 'Materialnummer,Warengruppe' TO DATEI.

LOOP AT TABELLE.
  CONCATENATE TABELLE-MATNR ',' TABELLE-MATKL INTO S.
  TRANSFER S TO DATEI.
ENDLOOP.

CLOSE DATASET DATEI.

Aber Vorsicht: Der obenstehende Report schreibt Dir die CSV-Datei in das Dateisystem Deines SAP-Servers! Also beim Dateinamen einen sinnvollen Pfad angeben; Du (und Deinen Basis) willst keinen Datenmüll im root-Verzeichnis des Servers haben. Wenn der Server unter Linux läuft, ist ein Verzeichnis wie /tmp für Experimente empfehlenswert. Mit der Transaktion AL11 kannst Du Dir die Datei hinterher anschauen.

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
Django90
DeathAndPain
Specialist
 
Beiträge: 266
Registriert: 05.05.2006, 10:14
Dank erhalten: 65 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon Django90 » 09.10.2017, 11:41

Vielen Dank,

Du hast mir schon das ein oder andere mal geholfen.

Dank dir.
Django90
ForumUser
 
Beiträge: 18
Registriert: 21.09.2017, 13:03
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: CSV String

Beitragvon Abapanfänger » 12.10.2017, 07:47

Hallo Django

Ich würde dir auch den Befehl DATASET empfehlen.
Da ich das Gefühl habe das du auch relativ neu im ABAP bist gebe ich dir noch den Tipp dir den Befehl zu merken.

"DATASET" bietet einige Funktionen die ziemlich praktisch sind.

Bsp. Falls du einen Job einplanen möchtest, wird es schwer mit der FUBA "GUI_DOWNLOAD" ein File herunterzuladen. In solchen Fälle kann man "DATASET " das file erstellen und Daten ablegen.

Beste Grüsse,
ein weiterer Neuling :D
Abapanfänger
ForumUser
 
Beiträge: 25
Registriert: 11.08.2015, 12:33
Dank erhalten: 0 mal
Ich bin: Student/in

Re: CSV String

Beitragvon ralf.wenzel » 12.10.2017, 16:34

Abapanfänger hat geschrieben:Falls du einen Job einplanen möchtest, wird es schwer mit der FUBA "GUI_DOWNLOAD" ein File herunterzuladen.


Nein.


Ralf
Bild Ralf WenzelHeuristika
SAP-Development • Datenschutzberatung
PublikationenUngarische NotationXing
ralf.wenzel
Top Expert
 
Beiträge: 2636
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 116 mal
Ich bin: Freiberufler/in

Re: CSV String

Beitragvon DeathAndPain » 12.10.2017, 17:21

Kannst Du ein bisschen ausführlicher werden, lieber Ralf? Ich wüsste auch nicht, wie ein Hintergrundjob, dem gar kein GUI zur Verfügung steht, mit dem FUBA "GUI_DOWNLOAD" erfolgreich sein soll.
DeathAndPain
Specialist
 
Beiträge: 266
Registriert: 05.05.2006, 10:14
Dank erhalten: 65 mal
Ich bin: Entwickler/in

Re: CSV String

Beitragvon ralf.wenzel » 13.10.2017, 07:52

Wenn ich (ohne technische Hilfsmittel) fliegen will, ist das nicht schwierig, sondern schlichtweg nicht möglich. Für den hier geschilderten Sachverhalt gilt Vergleichbares.

Normalerweise behelfe ich mir damit, die Dateien online hochzuladen und in einer Clustertabelle zu speichern, um dann den Hintergrundprozess zu starten, der die Verarbeitung übernimmt.


Ralf
Bild Ralf WenzelHeuristika
SAP-Development • Datenschutzberatung
PublikationenUngarische NotationXing
ralf.wenzel
Top Expert
 
Beiträge: 2636
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 116 mal
Ich bin: Freiberufler/in

Re: CSV String

Beitragvon DeathAndPain » 17.10.2017, 16:39

Wenn ich (ohne technische Hilfsmittel) fliegen will, ist das nicht schwierig, sondern schlichtweg nicht möglich. Für den hier geschilderten Sachverhalt gilt Vergleichbares.

Mit anderen Worten, es war eine Spitzfindigkeit, weil er umgangssprachlich "schwer" und nicht "unmöglich" geschrieben hat (wobei jedem Leser klar war, was er gemeint hat). Alles klar, weiß ich Bescheid.

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
ralf.wenzel
DeathAndPain
Specialist
 
Beiträge: 266
Registriert: 05.05.2006, 10:14
Dank erhalten: 65 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
gelöst Protokoll vergangener RFC Aufrufe
vor 16 Stunden von Dele 3 Antw.
BREAK-POINT-IDs verwenden
vor 15 Stunden von ralf.wenzel 2 Antw.
MEREQ001 Zusatzfelder ausblenden
vor 3 Tagen von SAP4Echo 0 Antw.
gelöst Z Tabelle Key Feld ändern
vor 3 Tagen von DeathAndPain 3 Antw.
gelöst Funktionsbaustein EXIT_SAPLCORF_404 in Transaktion COR6N
vor 20 Stunden von SAP_ENTWICKLER 2 Antw.

  Ähnliche Beiträge beta
zeilenumbruch im string
26.04.2013, 11:58 von Katsche 4 Antw.
XML-File per URL in string
03.10.2007, 16:28 von kobi 0 Antw.
..als String aufbereiten
28.05.2008, 13:24 von supermario73 5 Antw.
String bearbeiten
23.04.2010, 10:57 von TWP 5 Antw.
SPLIT/STRING
25.07.2012, 17:31 von nicetoknow 3 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!