E-Mail mit anhängenden ASCII-File

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

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

E-Mail mit anhängenden ASCII-File

Beitrag von Hein_Blöd ( / / 0 / 3 ) »
Wir möchten über den Fuba: SO_NEW_DOCUMENT_ATT_SEND_API1
ein E-Mail mit anhängender Textdatei erzeugen. Dies klappt auch ganz gut, bis darauf das die anhängende Textdatei leider kein Line-Feed oder auch File-End schreibt. Hat von Euch einer eine Idee wie ich dem Fuba überreden kann, dass er entsprechende Satzende-Kennzeichen setzen soll.

*----------------------------------------------------------------------*
FORM MAILVERS.
data: l_belnr(24) type c.

LOOP AT LT_IFACEDATA into wa_ifacedata.
write: wa_ifacedata-MENGE to l_menge left-justified,
wa_ifacedata-/bay0/dq_qtypack to l_qtypack left-justified.


concatenate wa_ifacedata-mblnr
wa_ifacedata-zeile
wa_ifacedata-mjahr
into l_BELNR.
* write line_feed to l_belnr+18(2). " geht leider nicht

concatenate wa_ifacedata-/BAY0/DQ_JOBNO
wa_ifacedata-/BAY0/DQ_PRODCOD
wa_ifacedata-/BAY0/DQ_PLANTCO
wa_ifacedata-/BAY0/DQ_ACTCODE
wa_ifacedata-BUDAT
wa_ifacedata-/BAY0/DQ_CONTCOD
wa_ifacedata-/BAY0/DQ_PRODIND
wa_ifacedata-/BAY0/DQ_RAWMATC
l_menge
wa_ifacedata-MEINS
l_qtypack
wa_ifacedata-/BAY0/DQ_CHRGFIN
wa_ifacedata-/BAY0/DQ_CHRGRAW
wa_ifacedata-/BAY0/DQ_LABDATE
wa_ifacedata-/BAY0/DQ_LABRESC
wa_ifacedata-/BAY0/DQ_LABRESL
l_belnr
into objbin-line separated by l_sep.
append objbin.
ENDLOOP.

move 'AGAN-Interface from BCS ' to objtxt.
append objtxt.
* Erstellen des zu versendenen Dokuments
Doc_chng-obj_name = 'download'.
concatenate 'goods-mvmt. from:' space sy-datum into doc_chng-obj_descr.

describe table objtxt lines tab_lines.
read table objtxt index tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + strlen( objbin ).

* Erstellen des Eintrages zum komprimierten Dokument
clear objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-Body_start = 1.
objpack-Body_num = Tab_lines.
objpack-doc_type = 'RAW'.
append objpack.

* Erstellen der Anlage für das Dokument

describe table objbin lines tab_lines.
objhead = 'Agan0001'. append objhead.

* Erstellen des Eintrags zur komprimierten Anlage
DESCRIBE TABLE objbin LINES tab_lines.
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_Num = tab_lines.
objpack-doc_type = 'TXT'.
objpack-obj_name = 'ANLAGE'.
objpack-obj_descr = 'AGAN0001'.
objpack-doc_size = Tab_lines * 255.
append objpack.

* Füllen der Empfängerliste
reclist-receiver = P_MAILA.
reclist-rec_type = 'U'.
append reclist.
reclist-receiver = P_MAILB.
reclist-rec_type = 'U'.
append reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = doc_chng
PUT_IN_OUTBOX = 'X'
* IMPORTING
* SENT_TO_ALL =
NEW_OBJECT_ID = Object_id
TABLES
PACKING_LIST = objpack
OBJECT_HEADER = objhead
CONTENTS_BIN = objbin
CONTENTS_TXT = objtxt
* CONTENTS_HEX = objhex
* OBJECT_PARA =
* OBJECT_PARB =
RECEIVERS = reclist
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
* DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
* PARAMETER_ERROR = 5
* X_ERROR = 6
* ENQUEUE_ERROR = 7
OTHERS = 8
.
CASE sy-subrc.
when 0.
LOOP AT LT_IFACEDATA into wa_ifacedata.
move 'X' to wa_ifacedata-/BAY0/DQ_MAILKZ.
modify /BAY0/DQ_AGAN_02 from wa_ifacedata.
commit work.
endloop.
WHEN 1.
WRITE: / text-883.
WHEN 2.
WRITE: / text-885.
WHEN 4.
WRITE: / text-887.
WHEN OTHERS.
WRITE: / text-888.
ENDCASE.
ENDFORM. " MAILVERS

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


Beitrag von Gast ( / / 0 / 3 ) »
Probier mal das hier:

Code: Alles auswählen.

CALL METHOD cl_abap_conv_in_ce=>uccp
  EXPORTING
    uccp = '0010'
  RECEIVING
    char = cr.
Damit bekommst Du die String-Repräsentation für Carriage-Return. Für Line-Feed müsste Du '0013' mitgeben. Die Zeichen kannst Du dann an das Ende der Zeilen konkatenieren. Das müsste funktionieren.

Beitrag von Hermann ( / / 0 / 3 ) »
Es geht noch einfacher:

Code: Alles auswählen.

 cr_lf = CL_ABAP_CHAR_UTILITIES=>CR_LF.
cr_lf ist als String definiert. Das am Ende der Zeile dranhängen und es funktioniert (hab mal eben einen Test gemacht):

Code: Alles auswählen.

DATA: lv_string TYPE string,
      cr_lf type string,
      data_tab type string_table.


cr_lf = CL_ABAP_CHAR_UTILITIES=>CR_LF.

CONCATENATE 'test' cr_lf 'test' INTO lv_string.

append lv_string to data_tab.

CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    filename                  = 'c:\temp\test'
    FILETYPE                  = 'ASC'
  changing
    data_tab                  = DATA_TAB
.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Hermann

Klassen sind leider auf 4.6B nicht bekannt

Beitrag von HEIN_BLÖD ( / / 0 / 3 ) »
Hallo,
vielen Dank für die Tipps. Leider habe ich unter dem bestehenden 4.6B - System die genannten Klassen nicht zur Verfügung :cry: . Habt Ihr noch andere Tipps?

Beitrag von Hermann ( / / 0 / 3 ) »
Na dann eben so:

Code: Alles auswählen.

DATA : BEGIN OF ENTER,
         X(2) TYPE X VALUE '0D0A',
       END OF ENTER.
'ENTER' kannst Du dann ebenso benutzen zum konkatenieren.

Hermann

Oh-Kay

Beitrag von HEIN_BLÖD ( / / 0 / 3 ) »
Danke hat geklappt!!!! :lol:

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1817
Views
PDF-File komprimieren und als Mail verschicken
von hezi » 14.10.2005 12:42 • Verfasst in ABAP® Core
3
Antw.
14678
Views
URL File-Server Internet File Download /Delet cl_http_client
von Luigi91 » 04.10.2016 08:28 • Verfasst in ABAP Objects®
3
Antw.
2111
Views
ASCII Zeichen
von gabrielgn » 12.06.2008 07:47 • Verfasst in ABAP® für Anfänger
9
Antw.
2706
Views
ASCII/BIN Art aus JPEG
von Ichse2 » 17.01.2020 13:17 • Verfasst in SAP - Allgemeines
6
Antw.
2269
Views
Tabelle als Ascii ausgeben
von BMWi801 » 05.03.2018 13:26 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

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