ich baue einen Datenbestand in einer internen Tabelle auf, die später als CSV ausgegeben wird. Dazu rufe ich den FuBa SAP_CONVERT_TO_CSV_FORMAT auf. Nach der Bearbeitung prüfe ich die Ausgabedatei. Alle Spalten sind gefüllt. Dann füge ich eine Header-Zeile, getrennt mit ; an den Anfang der Tabelle. Es sind noch immer alle Zeilen gefüllt. Da die letzte Spalte 'unendlich' groß wurde, habe ich CRLF angefügt, cl_abap_char_utilities=>cr_lf. Auch danach sind alle Spalten der Tabelle gefüllt. Dann verschicke ich die Tabelle als Excel per Mail und wenn ich die Excel-Datei öffne ist ab der zweiten Zeile die erste Spalte leer, scheinbar durch den CR_LF.
es ist nichts verschoben, nur ab der zweiten Zeile ist die erste Spalte, immer die nach dem CR_LF, leer. Löscht der CR_LF die Spalte? Ohne den CR_LF ist die letzte Spalte sehr breit.
Die konvertierte Datei wird erst mit SCMS_FTEXT_TO_BINARY umformatiert und dann mit lx_document->add_attachment unter der Formatangabe CSV an die Mail gehängt. Ist das das Problem? Muss nach der Umformatierung eine andere Formatangabe her?
Ich habe den Aufruf des FuBa's SCMS_FTEXT_TO_BINARY einmal deaktiviert. Da war das Sheet ganz leer. Ich habe keine Idee mehr.
das Phänomen ist wirklich eigenartig.
Muss es unbedingt im Binary-Format sein?
Die BCS Klassen bieten für die Erstellung von Anhängen auch andere Möglichkeiten.
Ich habe es in einem Programm für einen Kunden so umgesetzt, dass ich die Tabelle erst als string erstelle inkl. dem CR_LF. Das wird dann ein richtig übel langer String. Dann nehme ich die Methode "cl_document_bcs=>string_to_soli( string_variable ). um das ganze in eine SOLI-TAB zu konvertieren. der CR_LF ist dabei automatisch der Zeilentrenner.
Anschließend dann deine genutzte Methode add_attachment und im Typ CSV und im content_text die Soli_tab übergeben.
Damit fahre ich ziemlich gut und die Daten kommen auch inkl. CR_LF richtig an.