Original in einem Dokumenteninfosatz ändern

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

Getting started ... Alles für einen gelungenen Start.
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

Original in einem Dokumenteninfosatz ändern

Beitrag von ergocanis (ForumUser / 1 / 0 / 0 ) »
Hallo zusammen,

EDIT: Lösung habe ich selber gefunden: Die application_id und file_id müssen vorher über BAPI_DOCUMENT_GETDETAIL2 für lt_files ausgelesen werden. Dann klappt das Überschreiben der Originale mit BAPI_DOCUMENT_CHECKIN_REPLACE2.

Ich möchte gerne ein Original (PDF-Datei) bei einem bestehenden Dokumenteninfosatz durch eine neuere Version austauschen.

Dazu wollte ich den Funktionsbaustein BAPI_DOCUMENT_CHANGE2 nutzen. Dieser kann laut Beschreibung das auch:
Mit diesem Funktionsbaustein können Sie Dokumentinfosätze ändern und Originaldateien in die SAP-Datenbank, in einen Tresor oder in ein Archiv einchecken. [...]
Folgende Daten können außer den Dokumentdaten noch geändert werden:
• Originale
Dafür habe ich das Dokument so abgelegt, dass es gelesen werden kann.

Code: Alles auswählen.

DATA: lt_files TYPE TABLE OF bapi_doc_files2 WITH HEADER LINE.
lt_files-docfile          = 'mypath\STEVENS_TEST.pdf' .
lt_files-storagecategory  = 'Z_TEST'.
lt_files-wsapplication    = 'PDF'.
lt_files-statusintern     = 'FR'.
lt_files-originaltype     = '00001'.
APPEND lt_files.
Die Daten für den Dokumenteninfosatz habe ich auch.

Code: Alles auswählen.

DATA: ls_doc TYPE bapi_doc_draw2.
ls_doc-documenttype     = 'CWZ'.
ls_doc-documentnumber   = 'STEVEN_TEST'.
ls_doc-documentpart     = '000'.
ls_doc-documentversion  = '00'.
ls_doc-createdate       = sy-datum.
ls_doc-username         = sy-uname.
Mit diesem Aufruf will ich das Original ersetzen.

Code: Alles auswählen.

CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
  EXPORTING
    documenttype    = ls_doc-documenttype
    documentnumber  = ls_doc-documentnumber
    documentpart    = ls_doc-documentpart
    documentversion = ls_doc-documentversion
    documentdata    = ls_doc
    documentdatax   = ls_docx
*   HOSTNAME        =
*   DOCBOMCHANGENUMBER         =
*   DOCBOMVALIDFROM =
*   DOCBOMREVISIONLEVEL        =
*   SENDCOMPLETEBOM = ' '
*   PF_FTP_DEST     = ' '
*   PF_HTTP_DEST    = ' '
*   CAD_MODE        = ' '
*   ACCEPT_EMPTY_BOM           = ' '
  IMPORTING
    return          = ls_return
  TABLES
*   CHARACTERISTICVALUES       =
*   CLASSALLOCATIONS           =
*   DOCUMENTDESCRIPTIONS       =
*   OBJECTLINKS     =
*   DOCUMENTSTRUCTURE          =
    documentfiles   = lt_files
*   LONGTEXTS       =
*   COMPONENTS      =
  .
Es legt aber immer nur ein weiteres Original ab, statt das vorhandene zu ersetzen

(1) Ich dachte Anhand des der Zusatz lt_files-originaltype = '00001'. lässt sich unterscheiden welches Original zu ersetzen ist. Die Tabelle DMS_DOC_FILES unterscheidet die Originale durch das FILE_IDX Feld, dafür finde ich aber keine Option.

(2) Selbst wenn das Dokument vorher mit BAPI_DOCUMENT_GET_DETAIL ausgelesen wurde, ändert das nichts.

(3) BAPI_DOCUMENT_CHECKIN_REPLACE2 habe ich auch probiert fügt auch nur ein weiteres Original hinzu.

(4) Der Dokumenteninfosatz wurde zuvor mit BAPI_DOCUMENT_CREATE2 angelegt. Eventuell wurde dabei nicht alle Daten mitgegeben? Aber die Anlage ist erfolgreich, daher denke ich das weniger.

(5) Vielleicht muss man im ls_docx angeben, dass man das Original verändern möchte, aber die Beschreibung haben mir nicht geholfen und folgende Einstellungen brachten auch nicht das gewünschte Ziel:

Code: Alles auswählen.

DATA: ls_docx TYPE bapi_doc_drawx2.
ls_docx-docfile1        = abap_true.
ls_docx-datacarrier1    = abap_true.
ls_docx-wsapplication1  = abap_true.
ls_docx-filesize1       = abap_true.
Ich hoffe, ich habe mein Problem verständlich erklärt und genug Informationen geliefert. Anhand der BAPI "Dokumentation" und was mir das Internet so hergab, kam ich leider nicht auf eine Lösung.

Gesamtziel (zum Verständnis): Das Programm soll im Hintergrund ablaufen und anhand von vorliegenden Daten gleichnamige DIS erzeugen und die Dateien anhängen. Dieser Part funktioniert, weswegen ich ihn nicht näher erläutert habe.

Viele Grüße
Steven

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


Seite 1 von 1

Vergleichbare Themen

0
Antw.
1785
Views
IView-Link auf DMS-Original und Dokument
von shapoc » 10.05.2006 10:26 • Verfasst in Java & SAP®
3
Antw.
566
Views
Dokumenteninfosatz BAPI_DOCUMENT_CREATE2
von ABAPlerv » 23.08.2022 09:07 • Verfasst in ABAP® für Anfänger
2
Antw.
325
Views
Dokumenteninfosatz cv01n
von BecomingAnAbapGuru » 11.10.2022 12:31 • Verfasst in ABAP® für Anfänger
0
Antw.
1271
Views
Original zu Dokument aus interner Tabelle anlegen
von shapoc » 20.09.2006 11:01 • Verfasst in SAP - Allgemeines

Über diesen Beitrag

ergocanis

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.