* 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 ).
* Dateien zum Dokumenteninfosatz durchloopen und anhand der physischen IDs
* die URLs für den Zugriff auf das Archivsystem holen
LOOP AT it_doc_files ASSIGNING FIELD-SYMBOL(<f>).
DATA(lv_urls) = VALUE sdokcompurls( ).
DATA(lv_document_url) = CONV saeuri( '' ).
DATA(lv_phioobj) = VALUE sdokobject( class = 'DMS_PCD1' " Tabelle: SDOKIOCL -> DMS_PCD1 (DMS: Physikalische Objekt für Haupt-Originale)
objid = <f>-ph_objid ). " PHIO-ID
* Liefert URL zum Lesen eines physischen Dokuments am Frontend
CALL FUNCTION 'SDOK_PHIO_GET_URL_FOR_GET'
EXPORTING
object_id = lv_phioobj
IMPORTING
urls = lv_urls
document_url = lv_document_url
EXCEPTIONS
not_existing = 1
not_authorized = 2
no_content = 3
bad_storage_type = 4
no_urls_available = 5
OTHERS = 6.
IF sy-subrc = 0.
cl_demo_output=>write_data( lv_urls ).
cl_demo_output=>write_data( lv_document_url ).
ENDIF.
ENDLOOP.
* 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.