*& Report Name : /EUTIN/ARCHIVELINK_DOC2XSTRING *& Title : ABAP-Demo: Archive - Convert Document to XSTRING *& Developer : Michael Eutin - 06.12.2025 *& Development Class : $TMP *& Description : *& Convert archived document (binary format) into XSTRING *& *&---------------------------------------------------------------------* *& CHANGE HISTORY *&---------------------------------------------------------------------* *& Date Description *&---------------------------------------------------------------------* *& *& *& *&---------------------------------------------------------------------* REPORT /eutin/archivelink_doc2xstring NO STANDARD PAGE HEADING LINE-SIZE 1023. PARAMETERS: p_arobj TYPE toa01-ar_object, p_objid TYPE saeobjid, p_sapobj TYPE toa01-sap_object. START-OF-SELECTION. PERFORM main. *&---------------------------------------------------------------------* *& Form main *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* FORM main. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *--- ensure all mandatory parameters are provided IF p_arobj IS INITIAL OR p_objid IS INITIAL OR p_sapobj IS INITIAL. MESSAGE 'Bitte alle Felder füllen!' TYPE 'S' DISPLAY LIKE 'E'. RETURN. ENDIF. *---check customizing (OAC3) DATA lt_toaom_fkt TYPE STANDARD TABLE OF toaom WITH DEFAULT KEY. CLEAR lt_toaom_fkt[]. CALL FUNCTION 'ARCHIV_METAINFO_GET' EXPORTING * ACTIVE_FLAG = ' ' ar_object = p_arobj sap_object = p_sapobj * SUPPRESS_LOG = ' ' TABLES toaom_fkt = lt_toaom_fkt[] EXCEPTIONS error_connectiontable = 1 error_parameter = 2 OTHERS = 3. IF sy-subrc IS NOT INITIAL OR lt_toaom_fkt[] IS INITIAL OR lt_toaom_fkt[ 1 ]-archiv_id IS INITIAL OR lt_toaom_fkt[ 1 ]-doc_type IS INITIAL. MESSAGE 'Bitte Customizing prüfen (OAC3)!' TYPE 'S' DISPLAY LIKE 'E'. RETURN. ENDIF. *--- retrieve binary data from archived object and convert into XSTRING DATA: lt_bin_data TYPE STANDARD TABLE OF tbl1024 WITH DEFAULT KEY, lv_length TYPE i VALUE 0. CLEAR: lt_bin_data[], lv_length. CALL FUNCTION 'SCMS_AO_TABLE_GET' EXPORTING arc_id = lt_toaom_fkt[ 1 ]-archiv_id doc_id = p_objid IMPORTING length = lv_length TABLES data = lt_bin_data[] EXCEPTIONS error_http = 1 error_archiv = 2 error_kernel = 3 error_config = 4 OTHERS = 5. IF sy-subrc IS INITIAL AND lv_length IS NOT INITIAL. DATA lv_xstring TYPE xstring. CLEAR lv_xstring. CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING input_length = lv_length IMPORTING buffer = lv_xstring TABLES binary_tab = lt_bin_data[] EXCEPTIONS failed = 1 OTHERS = 2. ENDIF. IF sy-subrc IS INITIAL AND lv_xstring IS NOT INITIAL. BREAK-POINT ##NO_BREAK. MESSAGE 'XSTRING erfolgreich ausgelesen' TYPE 'S'. ELSE. MESSAGE 'XSTRING konnte nicht ausgelesen werden!' TYPE 'S' DISPLAY LIKE 'E'. ENDIF. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ENDFORM. *--- The End!