Ansicht
Dokumentation
BAPI_DOCUMENT_CHANGE2 - Dokument ändern
Fill RESBD Structure from EBP Component Structure BAL_S_LOG - Application Log: Log header dataDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Mit diesem Funktionsbaustein können Sie Dokumentinfosätze ändern und Originaldateien in die SAP-Datenbank, in einen Tresor oder in ein Archiv einchecken.
Einschränkungen
- Massen-CheckIn wird nicht unterstützt
- Mit der Tabelle DocumentStructurekönnen Sie eine evtl. vorhandene Dokumentstückliste erweitern bzw. eine neue anlegen.
Die Objekte des Änderungsdienstes (DOCBOMCHANGENUMBER, DOCBOMVALIDFROModer DOCBOMREVISONLEVEL) beziehen sich ausschließlich auf die Bearbeitung der Dokumentstückliste. Um die eigentlichen Änderungen zu finden, löst das System bei der Eingabe einer Änderungsnummer zunächst eine eventuell vorhandene Stückliste zum entsprechenden Gültigkeitsdatum auf und vergleicht die existierenden Positionen mit den unter DocumentStructure angegebenen. Wird keine Bewertung der Änderungsobjekte vorgenommen, gelten die Positionen in der Tabelle DocumentStructureals der neue Stand der Stückliste zum Tagesdatum. Um alle Positionen einer Stückliste zu löschen, kann eine Dokumentstruktur mit genau einem Eintrag übergeben werden, dessen Löschkennzeichen aktiv ist und der die Dokumentnummer '*' enthält.
Die Dokumentschlüsselfelder sind ebenfalls Schlüssel für die Stücklistenpositionen. Ein Dokument darf nicht an mehreren Positionen verwendet werden.
Hinweise
Folgende Daten können außer den Dokumentdaten noch geändert werden:
- Objektverknüpfungen
Wenn Sie den SAP 3D Visual Enterprise Viewer integriert haben, können Sie mit diesem BAPI Objektverknüpfungen zu Arbeitsplänen und Instandhaltungsaufträgen anlegen, um Ersatzteile als 2-D-Bilder und 3-D-Szenen darzustellen und visuelle Arbeitsanleitungen abzuspielen. Weitere Informationen erhalten Sie in der Dokumentation zum Parameter OBJECTLINKS.
- Klassifizierungen und Merkmalbewertungen
- Dokumenten-Langtexte
- Dokumentenstrukturen (Dokumentenstückliste)
- Originale
Beispiel
Beispielprogramm
*************
**benötigte Variablen definieren
************
* Dokumentendaten (Nummer, Version, Änderungsnummer etc.)
* mit denen das Objekt eindeutig identifiziert wird
DATA: ls_doc LIKE bapi_doc_draw2,
* Kennzeichen für Änderungsrelevanz
ls_docx LIKE bapi_doc_drawx2,
* Bapi-Returnstruktur
ls_return LIKE bapiret2,
* Originale
lt_files LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,
* Kurztexte
lt_drat LIKE bapi_doc_drat OCCURS 0 WITH HEADER LINE,
* Objektverknüpfungen
lt_drad LIKE bapi_doc_drad OCCURS 0 WITH HEADER LINE.
*******************************************
** Zuweisen der Dokumentdaten (welches Dokument soll geändert werden)
******************************************
ls_doc-documenttype = 'DRW'.
ls_doc-documentnumber = 'DOKUMENTNUMMER'.
ls_doc-documentversion = '00'.
ls_doc-documentpart = '000'.
************************************************************************
**1. Beispiel:
** Änderung an den DIS- Daten durchführen
*a) Löschmarkierung setzen
*ein 'X' setzen, um anzuzeigen, dass Änderung auch geändert wird
ls_docx-deleteindicator = 'X'.
*Änderung durchführen
ls_doc-deleteindicator = 'X'.
*b) Neue Werte für Deskription und laboratory setzen
*neue Werte einschreiben
ls_doc-description = 'Getriebe'.
ls_doc-laboratory = '002'.
*ein 'X' setzen um anzuzeigen,dass Änderung besteht
ls_docx-description = 'X'.
ls_docX-laboratory = 'X'.
************************************************************************
*2. Beispiel: Objektverknüpfungen
*a) Objektverknüpfungen hinzufügen
*interne Tabelle und Kopfzeile bereinigen
CLEAR lt_drad.
REFRESH lt_drad.
*Objekttyp und Objektschlüssel an interne Tabelle lt_drad anhängen
lt_drad-objecttype = 'MARA'.
lt_drad-objectkey = '0817'.
APPEND lt_drad.
*b) bestehende Objektverknüpfungen löschen
*deletevalue muss gesetzt werden, um diesen bestimmten nachfolgenden *Datensatz zu löschen
lt_drad-DELETEVALUE = 'X'.
lt_drad-objecttype = 'MARA'.
lt_drad-objectkey = '0817'.
APPEND lt_drad.
************************************************************************
*4. Beispiel: Originale
*a) Originale hinzufügen
* Ablagekategorie festlegen in diesem Bsp 'SAP-DB'
lt_files-storagecategory = 'DMS_C1_ST'.
*Original festlegen das hochgeladen wird
lt_files-docfile = 'n:\handout.doc'.
*Falls das Original in die alte Ablage eingecheckt werden soll muß hier zusätzlich
* die Zuweisung
* lt_files-originaltype = '1'. " oder '2' erfolgen
append lt_files.
********************************************************************
** BAPI aufrufen, der das Dokument ändert
********************************************************************
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
IMPORTING: return = ls_return
TABLES: objectlinks = lt_drad
documentfiles = lt_files.
** Fehler aufgetreten?
IF ls_return-type CA 'EA'.
ROLLBACK WORK.
MESSAGE ID '26' TYPE 'I' NUMBER '000'
WITH ls_return-message.
ELSE.
**damit die Änderungen auch gespeichert werden, braucht man ein:
COMMIT WORK.
ENDIF.
###################################################################################################################################
Parameter
ACCEPT_EMPTY_BOMCAD_MODE
CHARACTERISTICVALUES
CLASSALLOCATIONS
COMPONENTS
DOCBOMCHANGENUMBER
DOCBOMREVISIONLEVEL
DOCBOMVALIDFROM
DOCUMENTDATA
DOCUMENTDATAX
DOCUMENTDESCRIPTIONS
DOCUMENTFILES
DOCUMENTNUMBER
DOCUMENTPART
DOCUMENTSTRUCTURE
DOCUMENTTYPE
DOCUMENTVERSION
HOSTNAME
LONGTEXTS
OBJECTLINKS
PF_FTP_DEST
PF_HTTP_DEST
RETURN
SENDCOMPLETEBOM
Ausnahmen
Funktionsgruppe
CVBAPIVendor Master (General Section) Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 11556 Date: 20240523 Time: 095827 sap01-206 ( 107 ms )