[ABAP] DMS: Dokumenteninfosätze löschen (BAPI_DOCUMENT_DELETE_DIRECT)

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_dtype TYPE bapi_doc_aux-doctype OBLIGATORY.
* Objekttyp (Material -> MARA)
PARAMETERS: p_otype TYPE bapi_doc_drad-objecttype OBLIGATORY DEFAULT 'MARA'.
* Objektkey (Material -> MATNR)
PARAMETERS: p_okey TYPE bapi_doc_drad-objectkey OBLIGATORY DEFAULT '000000001122334455'.

START-OF-SELECTION.

  DATA: it_doc_keys TYPE STANDARD TABLE OF bapi_doc_keys WITH DEFAULT KEY.
  DATA: lv_return   TYPE bapiret2.

* Determine Documents for an Object
  CALL FUNCTION 'BAPI_DOCUMENT_GETOBJECTDOCS'
    EXPORTING
      objecttype          = p_otype
      objectkey           = p_okey
      currentversionsonly = abap_false " alle Versionen lesen
      date                = sy-datum
    IMPORTING
      return              = lv_return
    TABLES
      documentlist        = it_doc_keys.

  IF lv_return-type CA 'EA'.
    WRITE: / lv_return-message.
  ELSE.
* Alle gefundenen Dokumenteninfosätze durchgehen
    LOOP AT it_doc_keys ASSIGNING FIELD-SYMBOL(<d>).
* Wenn Dokumenttyp gefunden
      IF <d>-documenttype = p_dtype.
        DATA: ret TYPE string.

* Abfrage zum Löschen
        CALL FUNCTION 'POPUP_TO_CONFIRM'
          EXPORTING
            titlebar              = 'Frage'
            text_question         = |Löschen DI { <d>-documentnumber } ?|
            display_cancel_button = abap_true
          IMPORTING
            answer                = ret.

        CASE ret.
          WHEN '1'.
* Ja --> löschen
* Delete document or set deletion indicator
            CALL FUNCTION 'BAPI_DOCUMENT_DELETE_DIRECT'
              EXPORTING
                documenttype    = <d>-documenttype
                documentnumber  = <d>-documentnumber
                documentpart    = <d>-documentpart
                documentversion = <d>-documentversion
              IMPORTING
                return          = lv_return.

            IF lv_return-type CA 'EA'.
* Rollback bei Fehler
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
            ELSE.
* Daten verbuchen
              CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                EXPORTING
                  wait = abap_true.
            ENDIF.
          WHEN OTHERS.

        ENDCASE.

      ENDIF.
    ENDLOOP.
  ENDIF.

[SAP] Dokumentenmanagement (DMS)

Transaktionen

CV01N (Dokument anlegen)
CV02N (Dokument ändern)
CV03N (Dokument anzeigen)
CV04N (Dokument suchen)
CV90 (Nummernkreise Dokumente)
DC10 (Dokumentarten definieren)
OACT (Pflege Kategorien)
S_ALR_87008829 (IMG-Aktivität: SIMG_VC_DVS30)
CC04 (Anzeigen Produktstruktur)
OAC0 (CMS Customizing Content Repositories)
CSADMIN (Content-Server-Administration)
SLG1 (Application-Log anzeigen)

  • Objekte: SDOK und SCMS

Tabellen

DRAW (Dokumentinformationssatz)
DRAD (Verknüpfung Dokument-Objekt)
DRAO (Originale für Dokumente)
DRAT (Kurztexte für Dokuinfosätze)
DRAP (Protokolldatei Dokument)
SDOKSTCAE (SDOK: Kategorie)
TDWA (Dokumentarten)
TDWAT (Beschreibungen für Dokumentart)
TDWO (Objektverknüpfung Dokumentenverwaltung)
TDWOT (Texte Objektverknüpfung Dokumentenverwaltung)
TDWP (Workstation-Applikationen)
TDWS (Dokumentstatus)
TDWST (Text für Dokumentstatus)

Views

ESD_DRAW (Sicht der Tabelle DRAW (DVS))
V_SDOKSTCA (Generated Table for View V_SDOKSTCA)
M_CV01O (Generierter View für Matchcode ID CV01 -O)

CDS-Views

shsm_drad_draw (Value help for search help CV01O)

Suchhilfen

/PLMB/DIR_ELM (Dokumentenverwaltung)

Paket

CV (Dokumentenverwaltung)

Programme

DMS_KPRO_READ (Originaldaten aus KPRO für ein Dokument ermitteln)
RSHTTP80 (Content Server Performance)
RSCMST (CMS: Test programs)

Business-Objekttypen

DRAW (Dokument)

Funktionsbausteine

CVAPI_DOC_GETDETAIL (DVS: Detaildaten eines Dokuments ermitteln)
CVAPI_DOC_CREATE (DVS: Dokument anlegen)

BAPIs

BAPI_DOCUMENT_CREATE
BAPI_DOCUMENT_CREATE2 (Create Document)
BAPI_DOCUMENT_CHANGE
BAPI_DOCUMENT_CHANGE2
BAPI_DOCUMENT_DELETE
BAPI_DOCUMENT_DELETE_DIRECT (Delete document or set deletion indicator)
BAPI_DOCUMENT_ENQUEUE
BAPI_DOCUMENT_DEQUEUE
BAPI_DOCUMENT_EXISTENCECHECK
BAPI_DOCUMENT_GETAPPLICATION
BAPI_DOCUMENT_GETDETAIL2 (Determine Detail Data for a Document)
BAPI_DOCUMENT_GETLIST
BAPI_DOCUMENT_GETOBJECTDOCS (Determine Documents for an Object)
BAPI_DOCUMENT_GETSTATUS
BAPI_DOCUMENT_SETSTATUS

Fiori App

Dokumente verwalten (F2733)

OData-Services

API_DMS_PROCESS_SRV (API für DMS)
API_CV_ATTACHMENT_SRV (Gateway: API für Anlagenservice)

Links