[ABAP] DMS: Infos zu Dokumenteninfosätzen lesen

Variante 1 (JOIN)

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_type TYPE draw-dokar OBLIGATORY DEFAULT 'XYZ'.
* Dokumentnummer, mit Suchhilfe auf Tabelle DRAW (Dokumentinformationssatz)
PARAMETERS: p_num TYPE draw-doknr OBLIGATORY DEFAULT '10000000001' MATCHCODE OBJECT /plmb/dir_elm.
* Dokumentversion
PARAMETERS: p_ver TYPE draw-dokvr OBLIGATORY DEFAULT '00'.
* Teildokument
PARAMETERS: p_part TYPE draw-doktl OBLIGATORY DEFAULT '000'.

START-OF-SELECTION.

  SELECT FROM draw AS dw
    INNER JOIN drad AS dd ON ( dw~dokar EQ dd~dokar AND dw~doknr EQ dd~doknr AND dw~dokvr EQ dd~dokvr AND dw~doktl EQ dd~doktl )
    INNER JOIN drat AS dt ON ( dw~dokar EQ dt~dokar AND dw~doknr EQ dt~doknr AND dw~dokvr EQ dt~dokvr AND dw~doktl EQ dt~doktl )
    LEFT OUTER JOIN dms_doc2loio AS l ON ( dw~dokar EQ l~dokar AND dw~doknr EQ l~doknr AND dw~dokvr EQ l~dokvr AND dw~doktl EQ l~doktl )
    LEFT OUTER JOIN dms_doc_files AS f ON ( dw~dokar EQ f~dokar AND dw~doknr EQ f~doknr AND dw~dokvr EQ f~dokvr AND dw~doktl EQ f~doktl )
    LEFT OUTER JOIN dms_ph_cd1 AS ph ON ( ph~loio_id EQ l~lo_objid )
    LEFT OUTER JOIN dms_phf_cd1 AS pf ON ( pf~phio_id EQ ph~phio_id )
    LEFT OUTER JOIN dms_phio2file AS o ON ( o~file_id EQ ph~prop08 )
    FIELDS dw~dokar,                    " Dokumentart
           dw~doknr,                    " Dokumentnummer
           dw~dokvr,                    " Dokumentversion
           dw~doktl,                    " Teildokument
           dw~dwnam,                    " Name des zuständigen Sachbearbeiters
           dw~adatum,                   " Ausgabedatum des Dokuments
           dw~document_info_record_key, " Dokumentinfosatzschlüssel konkatenierter Form
           dd~dokob,                    " Verknüpftes SAP-Objekt
           dd~obzae,                    " Zähler Key
           dd~objky,                    " Objektkey Dokumentenverwaltung
           dt~dktxt,                    " Beschreibung
           l~lo_objid,                  " Log.Dokument
           f~dappl,                     " WS-Appl.
           f~filename,                  " Dateiname
           ph~phio_id,                  " Phys.Dokument
           ph~stor_cat,                 " Kategorie
           pf~mimetype,                 " MIME Typ
           pf~file_size,                " Größe
           pf~file_name,                " Komponentenname
           pf~file_type,                " Übertragungsart
           o~file_id,                   " DMS: GUID für Zuordnung PHIO - Dateiname
           o~filename AS file_path      " Original zu Dokument
    WHERE dw~dokar EQ @p_type
      AND dw~doknr EQ @p_num
      AND dw~dokvr EQ @p_ver
      AND dw~doktl EQ @p_part
    INTO TABLE @DATA(it_di).

  cl_demo_output=>write_data( it_di ).

* HTML-Code vom Demo-Output holen
  DATA(lv_html) = cl_demo_output=>get( ).

* Daten im Inline-Browser im SAP-Fenster anzeigen
  cl_abap_browser=>show_html( EXPORTING title       = 'DMS'
                                        html_string = lv_html
                                        container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
  WRITE: space.

Variante 2 (CDS-View P_DOCUMENTINFORECORDATTACHMENT)

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_type TYPE draw-dokar OBLIGATORY DEFAULT 'XYZ'.
* Dokumentnummer, mit Suchhilfe auf Tabelle DRAW (Dokumentinformationssatz)
PARAMETERS: p_num TYPE draw-doknr OBLIGATORY DEFAULT '10000000001' MATCHCODE OBJECT /plmb/dir_elm.
* Dokumentversion
PARAMETERS: p_ver TYPE draw-dokvr OBLIGATORY DEFAULT '00'.
* Teildokument
PARAMETERS: p_part TYPE draw-doktl OBLIGATORY DEFAULT '000'.

START-OF-SELECTION.

  SELECT FROM p_documentinforecordattachment
    FIELDS *
    WHERE documentinforecorddoctype EQ @p_type
      AND documentinforecorddocnumber EQ @p_num
      AND documentinforecorddocversion EQ @p_ver
      AND documentinforecorddocpart EQ @p_part
    INTO TABLE @DATA(it_di).

  TRY.
* SALV-Table
      DATA: o_salv TYPE REF TO cl_salv_table.

      cl_salv_table=>factory( IMPORTING r_salv_table = o_salv
                              CHANGING  t_table      = it_di ).

* Grundeinstellungen
      o_salv->get_functions( )->set_all( abap_true ).
      o_salv->get_columns( )->set_optimize( abap_true ).
      o_salv->get_display_settings( )->set_list_header( 'DMS' ).
      o_salv->get_display_settings( )->set_striped_pattern( abap_true ).
      o_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ).

* Spaltenüberschriften: technischer Name und Beschreibungstexte, Short Text und Medium Text leer lassen für Autosize
      LOOP AT o_salv->get_columns( )->get( ) ASSIGNING FIELD-SYMBOL(<c>).
        DATA(o_col) = <c>-r_column.
        o_col->set_short_text( || ).
        o_col->set_medium_text( || ).
        o_col->set_long_text( |{ o_col->get_long_text( ) }| ).
      ENDLOOP.

      o_salv->display( ).
    CATCH cx_root INTO DATA(e_txt).
      WRITE: / e_txt->get_text( ).
  ENDTRY.

[ABAP] DMS: Dokumenteninfosätze lesen (CVAPI_DOC_GETDETAIL)

* Dokumentart (TA DC10, Tabelle TDWA)
PARAMETERS: p_type TYPE bapi_doc_aux-doctype OBLIGATORY.
* Dokumentnummer, mit Suchhilfe auf Tabelle DRAW (Dokumentinformationssatz)
PARAMETERS: p_num TYPE bapi_doc_aux-docnumber OBLIGATORY DEFAULT '10000000001' MATCHCODE OBJECT /plmb/dir_elm.
* Teildokument
PARAMETERS: p_part TYPE bapi_doc_aux-docpart OBLIGATORY DEFAULT '000'.
* Dokumentversion
PARAMETERS: p_ver TYPE bapi_doc_aux-docversion OBLIGATORY DEFAULT '00'.
 
START-OF-SELECTION.
* Dokumentinformationssatz
  DATA(lv_draw) = VALUE draw(
                              doknr = p_num
                              dokar = p_type
                              doktl = p_part
                              dokvr = p_ver
                            ).
 
  DATA: lv_psx_draw TYPE draw.
  DATA: lv_pfx_dktxt TYPE drat-dktxt.
  DATA: it_doc_files TYPE STANDARD TABLE OF cvapi_doc_file WITH DEFAULT KEY.
  DATA: it_doc_comp TYPE STANDARD TABLE OF cvapi_doc_comp WITH DEFAULT KEY.
  DATA: it_drap TYPE STANDARD TABLE OF drap WITH DEFAULT KEY.
  DATA: it_drad TYPE STANDARD TABLE OF drad WITH DEFAULT KEY.
  DATA: it_drat TYPE STANDARD TABLE OF drat WITH DEFAULT KEY.

* DVS: Detaildaten eines Dokuments ermitteln
  CALL FUNCTION 'CVAPI_DOC_GETDETAIL'
    EXPORTING
      pf_dokar        = lv_draw-dokar
      pf_doknr        = lv_draw-doknr
      pf_dokvr        = lv_draw-dokvr
      pf_doktl        = lv_draw-doktl
      pf_read_drad    = abap_true
      pf_read_drap    = abap_true
      pf_active_files = abap_true
    IMPORTING
      psx_draw        = lv_psx_draw
      pfx_description = lv_pfx_dktxt
    TABLES
      pt_files        = it_doc_files
      pt_comp         = it_doc_comp
      pt_drap         = it_drap
      pt_drad         = it_drad
      pt_drat         = it_drat
    EXCEPTIONS
      not_found       = 1
      no_auth         = 2
      error           = 3
      OTHERS          = 4.

  IF sy-subrc= 0.
    cl_demo_output=>write_data( lv_psx_draw ).
    cl_demo_output=>write_data( lv_pfx_dktxt ).
    cl_demo_output=>write_data( it_doc_files ).
    cl_demo_output=>write_data( it_doc_comp ).
    cl_demo_output=>write_data( it_drap ).
    cl_demo_output=>write_data( it_drad ).
    cl_demo_output=>write_data( it_drat ).
 
* HTML-Code vom Demo-Output holen
    DATA(lv_html) = cl_demo_output=>get( ).
 
* Daten im Inline-Browser im SAP-Fenster anzeigen
    cl_abap_browser=>show_html( EXPORTING title       = 'CVAPI_DOC_GETDETAIL'
                                          html_string = lv_html
                                          container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.
  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)
DMS_PH_CD1 (DVS: PHIOS der Hauptoriginale)
DMS_PHF_CD1 (DVS: PHIOS-Komponenten der Hauptoriginale (conv. document))
DMS_PH_HD1 (DVS: PHIOS der Zusatzoriginale)
DMS_PHF_HD1 (DVS: PHIOS-Komponenten der Zusatzdateien (help document))
DMS_DOC2LOIO (DVS: Verknüpfungstabelle DVS-Key <-> LOIO-ID)
DMS_DOC_FILES (DMS: Dateinamen für Dokumente)
DMS_PHIO2FILE (DMS: Dateinamen zu Phios)
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)
p_documentinforecordattachment (JOIN über alle relv. DMS-Tabellen)

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