Ungewollte Leerzeichen in CSV Thema ist als GELÖST markiert

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

Ungewollte Leerzeichen in CSV

Beitrag von andipalamos (ForumUser / 5 / 1 / 0 ) »
Hallo alle zusammen,

verzeiht mir bitte, wenn das eine dumme Fragen ist, aber ich probiere mich erst seit ein paar Wochen an ABAP und finde im Netz einfach nicht passendes dazu.

ich habe eine Anforderung aus dem Inhalt einer internen Tabelle eine .CSV-Datei zu erstellen und diese an eine E-Mail anzuhängen.
Es funktioniert auch alles wie gewollt bis auf den Inhalt in der CSV Datei und zwar enthält der Inhalt meiner ersten Spalte ab der zweiten Zeile bis zur letzten gefüllten Zeile eine große Anzahl an Leerzeichen, wie im angehängten Image zu sehen.
Bild

So sollte es aussehen:
Bild

Für die Befüllung der CSV-Datei verwendet ich den CONCATENATE-Befehl
Ich bin mir ziemlich sicher, dass dieser Fehler durch die Verwendung der Methode

Code: Alles auswählen.

CL_ABAP_CHAR_UTILITIES=>NEWLINE
ausgelöst wird, aber ich finde trotz intensiver suche im Netz keine andere Möglichkeit einen Zeilenumbruch zu erzeugen.

Code: Alles auswählen.

 Loop At TAB into wa_TAB.

    CONCATENATE wa_tab-spalte1 wa_tab-spalte2 wa_tab-spalte3 CL_ABAP_CHAR_UTILITIES=>NEWLINE into l_inhalt_csv SEPARATED BY ';'.

    l_w_attachment-line = l_inhalt_csv.
    APPEND l_w_attachment TO l_i_attachment.

  Endloop.
Um die Leerzeichen zu entfernen habe ich bereits die Befehle FIND, REPLACE, SHIFT und LEFT DELETING verwendet. Für den Zeilenumbruch habe ich auch schon versucht den Datentyp als xstring zu definieren, damit bekomme ich aber immer einen Syntaxfehler, dass in CONCATENATE dieser Datentyp nicht erlaubt ist.

Wie werde ich die Leerzeichen los?


Re: Ungewollte Leerzeichen in CSV

Beitrag von Thanatos82 (Expert / 699 / 32 / 122 ) »
Hi,

lass den Zeilenumbruch einfach mal weg.
Durch den APPEND wird ja jedes mal eine neue Zeile in die Tabelle eingefügt. Das sollte m.M.n. eigentlich genügen.
Gruß,
der Matze

Re: Ungewollte Leerzeichen in CSV

Beitrag von andipalamos (ForumUser / 5 / 1 / 0 ) »
hey,
das habe ich auch ausprobiert, aber in dem fall fügt er mir den gesamten Inhalt in eine Zeile.


Grüße

Re: Ungewollte Leerzeichen in CSV

Beitrag von Thanatos82 (Expert / 699 / 32 / 122 ) »
Hm,

wärst du so nett die Struktur der Übergabetabelle und den Exportbefehl zu posten? Ich vermute, dass da ein Fehler drin ist.
Gruß,
der Matze

Re: Ungewollte Leerzeichen in CSV

Beitrag von black_adept (Top Expert / 3471 / 68 / 681 ) »
Hallo Andi,

probier folgendes Vorgehen.

1.) Concateniere alle deine Daten in einen langen String inkl. des Zeilenumbruchs ( warum eigentlich nicht CR_LF sondern NEWLINE ?) Damit hast du all deine Daten dann ohne die Leerzeichen vorhanden.
2.) Wandle diesen langen String in eine Tabelle um, die du als Attachment versenden kannst. Ich nehme mal an dass du eine Tabelle vom Type SOLIX benötigst --> verwende die Methode CL_BCS_CONVERT=>STRING_TO_SOLIX
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ungewollte Leerzeichen in CSV

Beitrag von andipalamos (ForumUser / 5 / 1 / 0 ) »
hey,
ich hoffe ich habe dich jetzt richtig verstanden :)

für den email versand benutze ich die klasse cl_bcs und definiere die Tabelle und die Struktur folgendermaßen:

Code: Alles auswählen.

DATA: l_i_attachment TYPE soli_tab.
DATA: l_w_attachment TYPE LINE OF soli_tab.

Und so sieht mein Export aus:

Code: Alles auswählen.

"Erstellt E-Mail-Objekt
l_o_send_request = CL_BCS=>CREATE_PERSISTENT( ).

"Angaben zum Versender
l_o_sender = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( 'test@test.de' ).
l_o_send_request->set_sender( i_sender = l_o_sender ).

"Angaben zum Empfänger
l_o_recipient = cl_cam_address_bcs=>create_internet_address( 'test@test.de' ).
l_o_send_request->add_recipient(
i_recipient = l_o_recipient
i_copy = ''  " CC indi
).

"Angaben zum Kopieempfänger
l_o_recipient = cl_cam_address_bcs=>create_internet_address( 'test@test.de' ).
l_o_send_request->add_recipient(
i_recipient = l_o_recipient
i_copy = 'X'
).

"Dokument erstellen
l_o_document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = l_it_contents
i_subject = l_subject
).

"Dokument anhängen
l_o_document->add_attachment(
i_attachment_type = 'CSV'
i_attachment_subject = datei_name
i_att_content_text = l_i_attachment
).

l_o_send_request->set_document( l_o_document ).

"E-Mail verschicken
l_v_ret = l_o_send_request->send( ).

Re: Ungewollte Leerzeichen in CSV

Beitrag von andipalamos (ForumUser / 5 / 1 / 0 ) »
hallo black_adept,
wie bekomme ich den gesamten inhalts des loops in einen gesamtstring?
der loop überschreibt mir den inhalt des strings mit dem nächsten durchlauf im loop mit den neuen inhalten.

viele grüße

Re: Ungewollte Leerzeichen in CSV

Beitrag von black_adept (Top Expert / 3471 / 68 / 681 ) »
concatenate gesamtstring neue zeile into gesamtstring

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ungewollte Leerzeichen in CSV

Beitrag von andipalamos (ForumUser / 5 / 1 / 0 ) »
Vielen Dank,
funktioniert jetzt perfekt.

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Parallele Aufrufe verhindern?
vor 14 Stunden von Garfield 5 / 1419
diverse Fragen zu ABAP
vor 2 Tagen von Kudert777 5 / 102

Vergleichbare Themen

Vererbung - Ungewollte Referenz auf Oberklasse
von der_neuling » 22.02.2021 12:12
Ungewollte Listausgabe nach Dynpro
von mawi » 05.06.2007 17:14
REPLACE von Leerzeichen
von dingo » 26.03.2009 08:07
Leerzeichen löschen
von MarkusW » 28.02.2007 15:27
Leerzeichen ausgeben
von Gast » 29.08.2005 11:39