PDF-File im Email lässt sich nicht öffnen

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

PDF-File im Email lässt sich nicht öffnen

Beitrag von Anchi (ForumUser / 11 / 0 / 0 ) »
Hallo zusammen,

vielleicht kann mir jemand von Euch helfen :lol:

Ich verschicke Emails mit den FB SO_NEW_DOCUMENT_ATT_SEND_API1.
Die Emails enthalten verschiedene Anhänge: ein Excel-File und ein PDF-File.
Das Excel-File wird richtig erstellt und lässt sich auch öffnen.
Beim Öffnen des PDF-Files kommt aber ein Fehler, dass Adobe Reader den Anhang nicht öffnen konnte, weil entweder der Dateityp nicht unterstützt wird oder die Datei beschädigt ist (z.B. wenn sie als Mail-Anhang verschickt und nicht richtig dekodiert wurde).

Kann es sein, dass es an der OBJBIN liegt? Denn wenn ich jeden Anhang einzeln versende, gibt es kein Problem. Wenn ich aber beide Dateitypen in einer Mail verschicke, enthält ja die OBJBIN logischerweise beide Dateiinhalte.
Und die PDF-Datei lässt sich nicht mehr öffnen.
Muss man in diesem Fall noch irgendetwas beachten??

Wäre super wenn jemand helfen könnte!

Gruß
Anchi

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


Beitrag von mazu (ForumUser / 68 / 2 / 1 ) »
Hi,
welches Attachementt fügts du denn zuerst an?
Hatte das mal mit 2 PDF - eines ging, das andere nicht.

Probier mal folgendermassen:
DESCRIBE TABLE I_OBJTXT LINES W_TAB_LINES.
READ TABLE I_OBJBIN INTO W_OBJBIN INDEX W_TAB_LINES.
W_OBJPACK-DOC_SIZE = ( W_TAB_LINES - 1 )
* 255
+ STRLEN( W_OBJBIN ).
W_DOC_SIZE = W_DOC_SIZE +W_OBJPACK-DOC_SIZE.
W_OBJPACK-TRANSF_BIN = 'X'.
W_OBJPACK-HEAD_START = 1.
W_OBJPACK-HEAD_NUM = 0.
W_OBJPACK-BODY_START = W_BODY_START.

*-- Startrow für ein eventuelles Folgeattachement sichern
W_BODY_START = W_BODY_START + W_TAB_LINES.
W_OBJPACK-BODY_NUM = W_TAB_LINES.

W_OBJPACK-DOC_TYPE = W_ATT_TYPE.
W_OBJPACK-OBJ_NAME = 'ATTACHMENT'.
CLEAR W_OBJPACK-OBJ_DESCR.

Beitrag von Anchi (ForumUser / 11 / 0 / 0 ) »
Hi,

danke erstmal! Ich probier das gleich mal aus!

Zur Info, ich füge zuerst das Excel-File an.
Ich habs auch schon andersrum versucht. Dann lässt sich das PDF zwar öffnen, aber im Excel-File erscheinen nur irgendwelche Formatierungszeichen....

Beitrag von mazu (ForumUser / 68 / 2 / 1 ) »
Hi,

das sagt mir, das beim weiteren Anfügen der Fehler ist !
Irgendwo gibts da wohl neen Rechenfehler beim Anfügen an die OBJIN,,...

Beitrag von Anchi (ForumUser / 11 / 0 / 0 ) »
Hi hi,
soweit hat es jetzt geklappt! Beide Attachments lassen sich öffnen!
Danke für den guten Tipp!
Leider habe ich jetzt ein weiteres Problem:
Das PDF-Attachment enthält jetzt alle Seiten mindestens vierfach. :roll:
Eigentlich enthält das PDF nur 3 Seiten. Die wiederholen sich jetzt.
Das ist mir jetzt irgendwie zu hoch :shock:

Beitrag von mazu (ForumUser / 68 / 2 / 1 ) »
Hi,
kontroliere mal die OBJBIN (also die Inhaltstabelle - da wird jetzt also mehrfach reingeschrieben hintereinander).
Die PDFs waren ja definitv beide ok.
Irgendwo dreht sich da was mehrfach, vielleicht ein Loop.


....
*-- Write Packing List (Main) ........................................*
DESCRIBE TABLE I_OBJTXT LINES W_TAB_LINES.
READ TABLE I_OBJTXT INTO W_OBJTXT INDEX W_TAB_LINES.
W_DOCDATA-DOC_SIZE = ( W_TAB_LINES - 1 )
* 255
+ STRLEN( W_OBJTXT ).
CLEAR W_OBJPACK-TRANSF_BIN.
W_OBJPACK-HEAD_START = 1.
W_OBJPACK-HEAD_NUM = 0.
W_OBJPACK-BODY_START = 1.
W_OBJPACK-BODY_NUM = W_TAB_LINES.
W_OBJPACK-DOC_TYPE = 'RAW'.
APPEND W_OBJPACK TO I_OBJPACK.

*-- Attachments erzeugen .............................................*
W_BODY_START = 1.
W_DOC_SIZE = 0.
....
....
* PDF-Daten in Objekttabelle einstellen ..............................*
PERFORM CONVERT_TO_OBJBIN
TABLES
I_PDF
I_OBJBIN.
W_ATT_TYPE = 'PDF'. " Format einstellen

....

*-- Create Message Attachment
*-- Write Packing List (Attachment)
DESCRIBE TABLE I_OBJBIN LINES W_TAB_LINES.
READ TABLE I_OBJBIN INTO W_OBJBIN INDEX W_TAB_LINES.
W_OBJPACK-DOC_SIZE = ( W_TAB_LINES - 1 )
* 255
+ STRLEN( W_OBJBIN ).
W_DOC_SIZE = W_DOC_SIZE + W_OBJPACK-DOC_SIZE.
W_OBJPACK-TRANSF_BIN = 'X'.
W_OBJPACK-HEAD_START = 1.
W_OBJPACK-HEAD_NUM = 0.
W_OBJPACK-BODY_START = W_BODY_START.

*-- Startrow für ein eventuelles Folgeattachement sichern
W_BODY_START = W_BODY_START + W_TAB_LINES.
W_OBJPACK-BODY_NUM = W_TAB_LINES.

W_OBJPACK-DOC_TYPE = W_ATT_TYPE.
W_OBJPACK-OBJ_NAME = 'ATTACHMENT'.
CLEAR W_OBJPACK-OBJ_DESCR.

....

APPEND W_OBJPACK TO I_OBJPACK.
* Attachementinhalte sammeln.......................................*
LOOP AT I_OBJBIN INTO W_OBJBIN.
APPEND W_OBJBIN TO I_OBJBIN_TOTAL.
ENDLOOP.

....


*-- Mail senden
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = W_DOCDATA
PUT_IN_OUTBOX = 'X'
TABLES
PACKING_LIST = I_OBJPACK
OBJECT_HEADER = I_OBJHEAD
CONTENTS_BIN = I_OBJBIN_TOTAL
CONTENTS_TXT = I_OBJTXT
RECEIVERS = I_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.





FORM CONVERT_TO_OBJBIN
TABLES
P_PDF STRUCTURE W_PDF
P_OBJBIN STRUCTURE W_OBJBIN.

DATA: L_HFELD(1600) TYPE C,
L_OFFSET TYPE P,
L_TABIX LIKE SY-TABIX,
L_MAX TYPE I,
L_LINECOUNT_SOURCE TYPE I,
L_LENGTH_SOURCE TYPE I,
L_LENGTH_TARGET TYPE I.


* Zeilenlänge und -anzahl der Quell-Tabelle...........................*
DESCRIBE FIELD W_PDF LENGTH L_LENGTH_SOURCE.
DESCRIBE TABLE P_PDF LINES L_LINECOUNT_SOURCE.

* Zeilenlänge der Ziel-Tabelle
DESCRIBE FIELD W_OBJBIN LENGTH L_LENGTH_TARGET.

* Die maximale Zielgröße wird durch das Feld l_hfeld begrenzt.........*
L_MAX = L_LENGTH_TARGET + L_LENGTH_SOURCE.
IF L_MAX > 1600.
PERFORM FEHELR.
'CONVERT PDF ABORTED - Max. Zielgrösse überschritten'
'' '' '' '' '' '' '' '' ''.
EXIT.
ENDIF.

REFRESH P_OBJBIN.
LOOP AT P_PDF INTO W_PDF.
L_TABIX = SY-TABIX.
MOVE W_PDF TO L_HFELD+L_OFFSET.
IF L_TABIX = L_LINECOUNT_SOURCE. " Letzte Row der Sourcetab?
L_LENGTH_SOURCE = STRLEN( W_PDF ).
ENDIF.
L_OFFSET = L_OFFSET + L_LENGTH_SOURCE.
WHILE L_OFFSET GE L_LENGTH_TARGET.
CLEAR W_OBJBIN.
W_OBJBIN = L_HFELD(L_LENGTH_TARGET).
APPEND W_OBJBIN TO P_OBJBIN.
SHIFT L_HFELD BY L_LENGTH_TARGET PLACES.
L_OFFSET = L_OFFSET - L_LENGTH_TARGET.
ENDWHILE.
IF L_TABIX = L_LINECOUNT_SOURCE. " Letzte Row der Sourcetab?
IF L_OFFSET GT 0.
CLEAR W_OBJBIN.
W_OBJBIN = L_HFELD(L_OFFSET).
APPEND W_OBJBIN TO P_OBJBIN.
ENDIF.
ENDIF.
ENDLOOP.

ENDFORM. "CONVERT_TO_OBJBIN

Beitrag von mazu (ForumUser / 68 / 2 / 1 ) »
Hi, die datendeklarationen hab ich dir auch mal geschickt...könnten helfen...gib bescheid, ob es funzt...

DATA:
I_OBJHEAD TYPE TABLE OF SOLISTI1,
I_OBJBIN TYPE TABLE OF SOLISTI1,
I_OBJBIN_TOTAL TYPE TABLE OF SOLISTI1,
I_OBJTXT TYPE TABLE OF SOLISTI1,
I_OBJTXT_TEMP TYPE TABLE OF SOLISTI1,
I_RECLIST TYPE TABLE OF SOMLRECI1,
I_OBJPACK TYPE TABLE OF SOPCKLSTI1,
I_PDF TYPE TABLE OF TLINE,
I_OTF TYPE TABLE OF ITCOO,
I_TLINE TYPE TABLE OF TLINE,
I_MAILTEXT_INFO TYPE TABLE OF TLINE,
W_DOCDATA LIKE SODOCCHGI1,
W_OBJHEAD TYPE SOLISTI1,
W_OBJBIN TYPE SOLISTI1,
W_OBJTXT TYPE SOLISTI1,
W_RECLIST TYPE SOMLRECI1,
W_OBJPACK TYPE SOPCKLSTI1,
W_PDF TYPE TLINE,
W_TLINE TYPE TLINE,
W_MAILTEXT_INFO TYPE TLINE,
W_ATT_TYPE LIKE SOODK-OBJTP,
W_TAB_LINES TYPE I,
W_DOC_SIZE(12) TYPE N,
W_DOC_SIZE_MAX(12) TYPE N,
W_BODY_START TYPE I,
W_NUMBYTES TYPE I,
W_MAIL_LINE_COUNT TYPE I,
W_RQIDENT LIKE TSP01-RQIDENT,

Beitrag von Anchi (ForumUser / 11 / 0 / 0 ) »
Hi!

Nachdem ich so einiges probiert hab, weiss ich jetzt, woran es liegt!!
Die OBJBIN isses nicht! :idea: Es liegt an den Spool-Aufträgen, die ich erzeute und aus denen ich das PDF generiere.
Im FB CREATE_SPOOL_OTF kann ein Kennzeichen mitgegeben werden, dass den Spool-Auftrag abschliesst. Solange dieses Kennzeichen nicht sitzt, fügt das Spool-System automatisch weitere Aufträge an, die dieselben Attribute haben.

Trotzdem viiieeelen Dank für die Hilfe!!!!

Gruß
anchi

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2025
Views
Liste (DOC-File) im Unicode System versenden (eMail).
von niko022 » 16.01.2007 10:28 • Verfasst in ABAP Objects®
3
Antw.
29558
Views
URL File-Server Internet File Download /Delet cl_http_client
von Luigi91 » 04.10.2016 08:28 • Verfasst in ABAP Objects®
0
Antw.
6560
Views
1
Antw.
3639
Views
ALV lässt Eingaben verschwinden
von Neuling_20 » 26.03.2013 13:44 • Verfasst in ABAP® für Anfänger
6
Antw.
11535
Views
Enhancement lässt sich nicht bearbeiten
von MartinZapf » 13.11.2014 09:49 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Ermittlung der Arbeitstage (Mosid)
vor 7 Stunden von DeathAndPain 3 / 44162
LSMW-Problem
vor 7 Stunden von DeathAndPain gelöst 6 / 2011
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 2050

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.