CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Mark4068 » Wed Nov 09, 2016 4:31 pm

Hallo zusammen,

wir versenden hier aus einer Bestellung mit dem Medium 7 externe Mails.
Funktioniert soweit auch alles ganz gut.

Jetzt kommen aber Anhänge mit ins Spiel...docx und xlsx.
Diese habe ich über den FB SO_ATTACHMENT_READ ausgelesen und alles soweit gefunden;
Übergabetabellen objcont und objhead. Daten sehen zwar etwas wenig aus, aber gut.

Wenn ich diese Daten nun in der Methode add_attachment aber übergebe, bekomme ich immer
beim öffnen der Dateien den Fehler, dass die Dateiendung nicht passt, da der i_attachment_type nur 3 Stellen übernimmt!

Kann mir mal einer erklären, wie ich die aktuellen Dokumententypen ebenso in eine Mail bekomme?
Es kann doch nicht sein, dass nur alte Versionen verschickt werden können.
Klasse wäre natürlich vielleicht auch ein paar Codesnipsel, wie ihr das gelöst habt. :lol:

Vielen Dank schon mal im Voraus.
Stefan
Mark4068
...
...
 
Posts: 111
Joined: Tue Sep 02, 2008 12:13 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Tron » Thu Nov 10, 2016 9:47 am

Moin.
Customize doch mal im view V_TOADD die Einträge:
DOCX application/vnd.openxmlformats-officedocument.wordprocessingml.document
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Es handelt sich hier um sogenannte MIME-Types.
(Es gibt jedoch mehrere Tabellen, in denen diese Mimes deklariert werden. )
gruß Jens
http://help.sap.com/SAPHELP_NWPI71/help ... ontent.htm
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Mark4068 » Thu Nov 10, 2016 10:58 am

Hallo Jens,

danke für den Tipp.

Aber was kann ich damit anfangen?
Denn die Methode nimmt deswegen im Übergabeparameter i_attachment_type doch
nur 3 Zeichen auf...

Ich sehe zwar in unserem System, dass in diesem View die Dokumententype DOCX und XLSX
gepflegt sind, weiss aber leider nicht, wie ich das nutzen könnte.

Kannst du mir sagen/zeigen, wie du diesen View nutzt?

Viele Grüsse
Stefan
Mark4068
...
...
 
Posts: 111
Joined: Tue Sep 02, 2008 12:13 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Tron » Thu Nov 10, 2016 6:06 pm

Ahhh.
Die möglichen Typen für i_attachment_type stehen Inder Tabelle TSOTD.
Offensichtlich funktioniert aber auch PDF.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. ALI                        X          X      ABAPList-Dokument
  2. ARC                        X                 Archivobjekt (Image)
  3. BCS                                   X      Externe Dokumentablage
  4. BIN                        X                 Binäres Dokument
  5. DLI                        X                 Verteilerliste
  6. EXT                        X    X            PC-Dokument
  7. FAX                        X          X      Telefax
  8. FOL                        X                 Mappe
  9. GRA                        X          X      SAP-Graphik
  10. OBJ                        X                 Business Objekt
  11. OFO                                   X      Object folder
  12. OTF                                   X      OTF-Dokument
  13. R3I                                   X      IDoc
  14. RAW   X                    X                 SAP-Editor-Dokument
  15. SCR                        X                 SAPscript-Dokument
  16. URL                                          Link ins Inter-/Intranet
  17. WIM                                   X      Workitem
  18. XXL                        X          X      Dokument für Listviewer
  19.  
GeSHi ©


nimm hier am besten EXT.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *    *     add list attachment to document
  2.       CONCATENATE 'Rechnung:' vbeln '.xlsx' INTO lv_attname.
  3.       document->add_attachment( i_attachment_type    = 'EXT'
  4.                                 i_attachment_subject = lv_attname
  5.                                 i_att_content_hex    = contents_hex ).
  6.  
GeSHi ©


Kannst du mir sagen/zeigen, wie du diesen View nutzt?

Ja mit Transaktion SM30 kann man Werte hinzufügen und ändern. Praktisch Customizing.
gruß Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Mark4068 » Thu Nov 10, 2016 6:37 pm

Hallo Jens,

das mit dem zuordnen von DOCX/XLSX funktioniert so aber nicht,
denn der Objekttyp ist nur dreistellig.
Oder was meinst du mit
Ja mit Transaktion SM30 kann man Werte hinzufügen und ändern. Praktisch Customizing.


Und wie du richtig bemerkst, geht in der Methode am besten PDF...nützt mir bloss nichts,
wenn die User Word- bzw. Excelfiles anhängen.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *    *     add list attachment to document
  2.       CONCATENATE 'Rechnung:' vbeln '.xlsx' INTO lv_attname.
  3.       document->add_attachment( i_attachment_type    = 'EXT'
  4.                                 i_attachment_subject = lv_attname
  5.                                 i_att_content_hex    = contents_hex ).
GeSHi ©


Der attachment_type übernimmt nur 3 Characters, ich brauch aber 4!
Und das müsste doch irgendwie gehen...

Viele Grüsse
Stefan
Mark4068
...
...
 
Posts: 111
Joined: Tue Sep 02, 2008 12:13 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Tron » Fri Nov 11, 2016 10:36 am

Moin Stefan.
Der attachment_type übernimmt nur 3 Characters, ich brauch aber 4!
Und das müsste doch irgendwie gehen...

Der Attachment type ist nicht verantwortlich für die Extension XLSX oder DOCX.
Ein funktionierendes Beispiel:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.       DATA filename TYPE string VALUE 'C:\Temp\export.xlsx'.
  2.       DATA flen TYPE i.
  3.  
  4.       CALL FUNCTION 'GUI_UPLOAD'
  5.         EXPORTING
  6.           filename                = filename
  7.           filetype                = 'BIN'
  8.         IMPORTING
  9.           filelength              = flen
  10.         TABLES
  11.           data_tab                = contents_hex
  12.         EXCEPTIONS
  13.           file_open_error         = 1
  14.           file_read_error         = 2
  15.           no_batch                = 3
  16.           gui_refuse_filetransfer = 4
  17.           invalid_type            = 5
  18.           no_authority            = 6
  19.           unknown_error           = 7
  20.           bad_data_format         = 8
  21.           header_not_allowed      = 9
  22.           separator_not_allowed   = 10
  23.           header_too_long         = 11
  24.           unknown_dp_error        = 12
  25.           access_denied           = 13
  26.           dp_out_of_memory        = 14
  27.           disk_full               = 15
  28.           dp_timeout              = 16
  29.           OTHERS                  = 17.
  30.  
  31.       IF sy-subrc <> 0.
  32.       ENDIF.
  33.  
  34. data l_size type sood-OBJLEN.
  35. l_size = flen.
  36.  
  37. *     add list attachment to document
  38.       document->add_attachment( i_attachment_type    = 'BIN'
  39.                                 i_attachment_subject = 'expo.xlsx'
  40.                                 I_ATTACHMENT_SIZE    =  l_size
  41.                                 i_att_content_hex    = contents_hex ).
  42.  
GeSHi ©


Das Öffnen der xlsx-Datei schlug vermutlich fehl,
da die exakte Dateilänge nicht richtig berechnet wurde !

gruß Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Mark4068 » Fri Nov 11, 2016 6:20 pm

Hallo Jens,

das mit dem Konvertieren in BIN funktioniert wunderbar, vorausgesetzt ich lade die Datei hoch
und habe diese bereits als Binärdatei.
Herzlichen Dank dafür.

Mein Problem ist aber nun das finden der Dateien... :shock:
Vielleicht kannst du mir noch einen Tipp zu dem FB 'SO_ATTACHMENT_READ' geben, den ich
hierfür verwende.
Ich suche nach Dateianhängen an einer Mail.
Ich gebe dem FB die object_id und die attach_id des Anhangs mit.
FB läuft ohne Fehler durch, bringt aber z.B. bei einem Excel in der objcont so etwas kryptisches wie:
&SO_KProObjectID=SOFFLOIO 005056B04BF91ED6AA861842827B8862

und in der objhead:
&SO_FILENAME=TEST.xls
&SO_FORMAT=BIN

Mach ich da etwas falsch bei dem FB? Denn wenn ich die Datei öffne (das funktioniert!)
habe ich genau die Information wie oben drin stehen und nicht wie original 4 Zeilen :roll:

Soll das ein Verweis auf die Datei sein? Wird die Datei noch in einer anderen Form abgelegt?
Ich such mir mittlerweile nen Wolf, die Daten zu finden... :cry:

Besten Dank bereits im Voraus für deinen Tipp.

Viele Grüsse und ein schönes Wochenende
Stefan
Mark4068
...
...
 
Posts: 111
Joined: Tue Sep 02, 2008 12:13 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Tron » Sat Nov 12, 2016 2:14 pm

...
Du möchtest die Anlagen Deiner (internen) Mails lesen, oder die der anderen User ?
http://www.tricktresor.de/blog/posteing ... len-lesen/

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.      :
  2.  
  3.  
  4.   hex_0d        TYPE x VALUE '0D',
  5.   hex_0a        TYPE x VALUE '0A',
  6.   hex_return(2) TYPE x VALUE '0D0A',
  7.  
  8.   BEGIN OF t_test OCCURS 0,
  9.     line(255),
  10.   END OF t_test,
  11.      :
  12.  
GeSHi ©

austauschen gegen
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.      :
  2. constants:  hex_return(2) TYPE c value %_CR_LF.
  3.   BEGIN OF t_test OCCURS 0,
  4.     line(255),
  5.   END OF t_test,
  6.      :
  7.  
GeSHi ©


gruß Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Mark4068 » Mon Nov 14, 2016 12:22 pm

Hallo Jens,

danke für das Coding....aber ich glaube, wir reden aneinander vorbei.

Mit deinem Programm finde ich "nur" den Mailtext:
Nachricht_mail.PNGMailtext(4.59 KiB) Noch nie heruntergeladen

Was ich aber suche, sind die Anhänge (gelb markiert):
Screenshot_office.PNGSAP-Office Anhänge(9.37 KiB) Noch nie heruntergeladen

und diese finde ich mit deinen vorgeschlagenen Programmen leider nicht.
Daher auch in der letzten Nachricht die Frage mit den dem attachment_type.
Aber nachdem das mit den BIN-Dateien funktioniert, wäre ich glücklich, wenn du jetzt noch eine Lösung hättest, wie ich diese Anhänge als BIN-Dateien finde. :oops:

Viele Grüsse
Stefan
Mark4068
...
...
 
Posts: 111
Joined: Tue Sep 02, 2008 12:13 pm

Re: CL_DOCUMENT_BCS - ADD_ATTACHMENT - DOCX/XLSX

Postby Tron » Mon Nov 14, 2016 1:40 pm

...
Mit deinem Programm finde ich "nur" den Mailtext:

ist mir bekannt, jedoch geht es von dort aus weiter zu den Anlagen der Mail (so vorhanden).

Die besondere Herausforderung besteht darin, das Du normalerweise keine Mails und Anhänge anderer User lesen kannst (darfst) , you know ?
Folglich muß man sich mehr Mühe geben an alle Attachments zu kommen. :wink:
(wollte nur, das Du das weißt).

Fortsetzung heute abend...

gruß Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Next

Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 9 guests