Dokumente aus Dokumentenvewaltung als Mailanhang versenden

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

Dokumente aus Dokumentenvewaltung als Mailanhang versenden

Beitrag von Babsa (ForumUser / 5 / 1 / 0 ) »
Hallo,

ich möchte aus einem Funktionsbaustein heraus Dokumente (Word, Excel, PDF, JPEG, TIF) aus der Dokumentenverwaltung lesen und über das BCS per Mail versenden. Ich habe aber leider keine Ahnung wie ich die Dokumente als Datei aus der Dokumentenverwaltung lesen kann. Und ob ich die Dateien dann mit Methoden der Klasse cl_bcs_convert noch umwandeln muss, bevor ich sie mit 'CALL METHOD document->add_attachment' als Anhang an mein Dokument hänge. Geht das überhaupt mit Bildern?

Im Voraus vielen Dank für Eure Hilfe.
Gruß Wolfgang

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


Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
Wo sind die diese Dokumente denn konkret abgelegt? Archivsystem? Verzeichnis auf Applikations-Server?

Bzgl. der Anhänge kannst du die Dokumenten-Daten binär versenden

Code: Alles auswählen.

...add_attachment(
                     i_attachment_type = 'BIN'
                     ...

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Babsa (ForumUser / 5 / 1 / 0 ) »
Die Dokumente werden via Knowledge Provider auf dem zugeordneten Content Repository abgelegt. Und das ist auf der SAP Datenbank.
Gruß Wolfgang

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von zzcpak (Expert / 673 / 5 / 68 ) »
wie man von dort Dokumente/Anlagen wieder lesen kann, wäre z.B. in folgendem Blog beschrieben:

https://blogs.sap.com/2016/02/25/how-to ... tachments/

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
eine Lösung hätte ich hier
https://www.abapforum.com/forum/viewtop ... =15#p82352
anzubieten.
1. PhioID des Dokuments ermitteln.
2. Dokument laden (e.g. SCMS_DOC_READ)
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Babsa (ForumUser / 5 / 1 / 0 ) »
Die Infos aus dem blog helfen mir leider nicht weiter. Wenn ich das richtig verstehe, werden hier Dokumente aus einem Archiv gelesen. Für die Dokumente der Dokumentenverwaltung finde ich in der Tabelle TOAOM keine passenden Einträge. Für die Dokumentenverwaltung ist mit der Transaktion OAC0 ein Content Repository hinterlegt. Und einen Bezug zu der Tabelle TOAOM kann ich werder zu diesem Eintrag noch zu der Dokumentenart finden.
Der Hinweis mit dem Fuba SCMS_DOC_READ ist eigentlich vielversprechender. Ich bekomme allerdings die Aussnahme Meldungsnr. 1R512 'Fehler beim Import von physischem Dokument (DMS_C1, ) aus Clustertabelle' wenn ich ihn aufrufe. Ich habe leider keine Ahnung was ich da falsch mache. So rufe ich den Funktionsbaustein auf
CALL FUNCTION 'SCMS_DOC_READ'
EXPORTING
* MANDT = SY-MANDT
stor_cat = t_drawx-stor_cat
* CREP_ID = ' '
doc_id = ' '
PHIO_ID = t_drawx-phio_id
SIGNATURE = ' '
* SECURITY = ' '
* NO_CACHE = ' '
RAW_MODE = 'X'
* IMPORTING
* FROM_CACHE =
* CREA_TIME =
* CREA_DATE =
* CHNG_TIME =
* CHNG_DATE =
* STATUS =
* DOC_PROT =
TABLES
* ACCESS_INFO =
* CONTENT_TXT =
CONTENT_BIN = t_CONTENT_BIN

* EXCEPTIONS
und hatte gehofft, dass das Dokument in der Tabelle t_CONTENT_BIN steht. Was mach ich hier falsch? Fehlt ein Parameter? Oder hab ich die Tabelle falsch deklariert? data t_CONTENT_BIN type STANDARD TABLE OF SDOKCNTBIN.
Gruß Wolfgang

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
ich habe ein Dokument mit folgenden Inputparametern in unserem System erfolgreich lesen können:

Code: Alles auswählen.

STOR_CAT = DMS_C1_CON
CREP_ID 
DOC_ID = 005056A2761A1ED69DB28737F0C3309D
PHIO_ID
SIGNATURE = X
SECURITY = r
NO_CACHE
RAW_MODE
Die Schnittstelle des Bausteins ist überwiegend identisch mit dem Baustein SCMS_DOC_READ_FILE.
Man kann hier einen Breakpoint setzten anschliessend ein Dokument aus der CV03N aufrufen.
Im debugging kann man nun erkennen, mit welchen Parametern der Baustein versorgt wird. :wink:
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Babsa (ForumUser / 5 / 1 / 0 ) »
Danke,
hat jetzt funktioniert. Nachdem mit der doc_id die phio_id zugeordnet hat es funktioniert. Jetzt habe ich aber das nächste Problem: Ich rufe den Fuba mit dem Parameter raw_mode = 'X' auf und bekomme das Ergebnis in einer Tabelle vom Typ sdokcntbin. Die kann ich aber nicht für die Methode add_attachment verwenden da der typ nicht kompatibel mit dem Parameter i_att_content_hex ist. Bei den Methoden
(x)string_to_soli(x) ist es das gleiche. Wie bekomme denn den Inhalt einer Tabelle vom Typ sdokcntbin in eine Tabelle vom Typ SOLIX_TAB?
Gruß Wolfgang

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Prima.
dann hier die Anpassung des Inhalts aus dem Archiv für das attachment:
https://www.abapforum.com/forum/viewtop ... 330#p79315

Testprogramm :

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST_SCMS_DOC_READ                                         *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ztest_scms_doc_read.

DATA lt TYPE TABLE OF sdokcntbin.
DATA t_info TYPE TABLE OF scms_acinf.
DATA s_info TYPE scms_acinf.
DATA l_scat TYPE sdokstca-stor_cat VALUE 'DMS_H1_ST'.
DATA doc_id TYPE saeardoid VALUE '36525E1F45052040BA0C11A1A12F882F'.


CALL FUNCTION 'SCMS_DOC_READ'
  EXPORTING
*   MANDT                       = SY-MANDT
    stor_cat                    = l_scat
*   CREP_ID                     = ' '
    doc_id                      = doc_id
*   PHIO_ID                     =
    SIGNATURE                   = 'X '
*   SECURITY                    = ' '
*   NO_CACHE                    = ' '
    raw_mode                    = 'X'
* IMPORTING
*   FROM_CACHE                  =
*   CREA_TIME                   =
*   CREA_DATE                   =
*   CHNG_TIME                   =
*   CHNG_DATE                   =
*   STATUS                      =
*   DOC_PROT                    =
 TABLES
    access_info                 = t_info
    content_bin                 = lt
 EXCEPTIONS
   bad_storage_type            = 1
   bad_request                 = 2
   unauthorized                = 3
   comp_not_found              = 4
   not_found                   = 5
   forbidden                   = 6
   conflict                    = 7
   internal_server_error       = 8
   error_http                  = 9
   error_signature             = 10
   error_config                = 11
   error_format                = 12
   error_parameter             = 13
   error                       = 14
   OTHERS                      = 15
          .
IF sy-subrc <> 0.
ENDIF.

DATA lbuffer TYPE xstring.
DATA contents_hex TYPE solix_tab.
DATA numbytes TYPE i.
*DATA: BEGIN OF lt_pdf OCCURS 0,
*t(134),
*END OF lt_pdf.

READ TABLE t_info INTO s_info INDEX 1.

numbytes = s_info-comp_size.

* I_tab nach Xstring
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
  EXPORTING
    input_length = numbytes
  IMPORTING
    buffer       = lbuffer
  TABLES
    binary_tab   = lt
  EXCEPTIONS
    failed       = 1
    OTHERS       = 2.

IF sy-subrc <> 0.
ENDIF.

* Xstring nach Itab

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING
    buffer     = lbuffer
  TABLES
    binary_tab = contents_hex[].

data fn type string value 'c:\temp\scms_file.txt'.
CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    BIN_FILESIZE                    = numbytes
    filename                        = fn
    FILETYPE                        = 'BIN'
*   APPEND                          = ' '
*   WRITE_FIELD_SEPARATOR           = ' '
*   HEADER                          = '00'
*   TRUNC_TRAILING_BLANKS           = ' '
*   WRITE_LF                        = 'X'
*   COL_SELECT                      = ' '
*   COL_SELECT_MASK                 = ' '
*   DAT_MODE                        = ' '
*   CONFIRM_OVERWRITE               = ' '
*   NO_AUTH_CHECK                   = ' '
*   CODEPAGE                        = ' '
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = '#'
*   WRITE_BOM                       = ' '
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'
*   WK1_N_FORMAT                    = ' '
*   WK1_N_SIZE                      = ' '
*   WK1_T_FORMAT                    = ' '
*   WK1_T_SIZE                      = ' '
*   WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*   SHOW_TRANSFER_STATUS            = ABAP_TRUE
* IMPORTING
*   FILELENGTH                      =
  tables
    data_tab                        = contents_hex[]
*   FIELDNAMES                      =
 EXCEPTIONS
   FILE_WRITE_ERROR                = 1
   NO_BATCH                        = 2
   GUI_REFUSE_FILETRANSFER         = 3
   INVALID_TYPE                    = 4
   NO_AUTHORITY                    = 5
   UNKNOWN_ERROR                   = 6
   HEADER_NOT_ALLOWED              = 7
   SEPARATOR_NOT_ALLOWED           = 8
   FILESIZE_NOT_ALLOWED            = 9
   HEADER_TOO_LONG                 = 10
   DP_ERROR_CREATE                 = 11
   DP_ERROR_SEND                   = 12
   DP_ERROR_WRITE                  = 13
   UNKNOWN_DP_ERROR                = 14
   ACCESS_DENIED                   = 15
   DP_OUT_OF_MEMORY                = 16
   DISK_FULL                       = 17
   DP_TIMEOUT                      = 18
   FILE_NOT_FOUND                  = 19
   DATAPROVIDER_EXCEPTION          = 20
   CONTROL_FLUSH_ERROR             = 21
   OTHERS                          = 22
          .
IF sy-subrc <> 0.
ENDIF.
gruß Jens

Tip: wenn man binäre Daten anhängt, muss man auch die Datenmenge übergeben.

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
Babsa

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Tron hat geschrieben:Tip: wenn man binäre Daten anhängt, muss man auch die Datenmenge übergeben.
Das ist nicht nur ein Tipp, sondern essentiell. Sonst werden am Dateiende NULL-Byte Zeichen angehängt die eventuell zu Fehlern in der weiteren Verarbeitung durch andere Programme führen. Das gilt übrigens auch für Textdateien, die bei Fehlen der Längenangabe dann Leerzeichen am Dateiende dazubekommen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Dokumente aus Dokumentenvewaltung als Mailanhang versend

Beitrag von Babsa (ForumUser / 5 / 1 / 0 ) »
Danke Jens,

hat super geklappt. Habe mit PDF und JPG getestet, hat alles funktioniert. Nur bei Word gab es Probleme beim öffnen. Das war ein docx Dokument, mit add attachment kann man aber nur 3-stellig mitgeben.
Gruß Wolfgang

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1154
Views
OTF als Mailanhang
von jig » 25.04.2005 14:49 • Verfasst in ABAP® Core
3
Antw.
3578
Views
ADOBE Form PDF als Mailanhang
von formulator » 08.11.2007 11:49 • Verfasst in ABAP® Core
0
Antw.
1776
Views
SAPconnect - Sapscript Formulare als TIFF im Mailanhang
von willi100 » 04.10.2011 17:05 • Verfasst in SAP - Allgemeines
8
Antw.
5665
Views
Dokumente zu Material
von Gottschall » 29.10.2013 20:08 • Verfasst in ABAP® für Anfänger
0
Antw.
6579
Views
Anzahl Dokumente auf dem ADS
von Sebastian82 » 28.10.2021 13:35 • 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

Regex in where
Gestern von tar 8 / 483
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1710
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 366
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 604

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.

Aktuelle Forenbeiträge

Regex in where
Gestern von tar 8 / 483
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1710
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 366
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 604

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Tagen von snooga87 1 / 292
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3485
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 10027