Difference between revisions of "SAP ABAP ARCHIVE LINK"
From SapWiki
Line 70: | Line 70: | ||
===Sin dialogo=== | ===Sin dialogo=== | ||
+ | ====FM ARCHIV_CREATE_TABLE==== | ||
+ | ====Programa Ejemplo==== | ||
<nowiki> | <nowiki> | ||
DATA: gt_file_table TYPE filetable, "Uploaded file information | DATA: gt_file_table TYPE filetable, "Uploaded file information |
Revision as of 20:19, 15 December 2023
Contents
Tabla de documentos
TOA01, ejemplo
SAP_OBJECT BUS1309 OBJECT_ID 2000000172RBJ ARCHIV_ID ZP ARC_DOC_ID 00505682475E1EDBBAD007C24499CD17 AR_OBJECT EDXISFOPDF AR_DATE 20210721 DEL_DATE RESERVE PDF
Verificar conexión
reporte RSCMSTBT - Verificar acceso con offset y longitud
Subir archivo
Con dialogo
FORM f_cargar_documento USING p_data TYPE ty_data CHANGING p_archiv_doc_id. DATA: l_archiv_id TYPE toaom-archiv_id VALUE 'ZE', l_ar_object TYPE toaom-ar_object, l_object_id TYPE sapb-sapobjid, l_sap_object TYPE toaom-sap_object VALUE 'ZBUS1309', l_archiv_doc_id TYPE toav0-arc_doc_id. CLEAR p_archiv_doc_id. MOVE p_data-clase_docto TO l_ar_object. MOVE p_data-arc_doc_id TO l_archiv_doc_id. l_object_id = g_object_id. CALL FUNCTION 'ARCHIV_CREATE_DIALOG_META' EXPORTING archiv_id = l_archiv_id ar_object = l_ar_object * DEL_DATE = ' ' * NOTE = object_id = l_object_id sap_object = l_sap_object * FILE = ' ' * COMMIT_FLAG = ' ' * VSCAN_PROFILE = '/SCMS/KPRO_CREATE' * FILE_DESCR_POP_SUP = ' ' IMPORTING * ARCHIV = archiv_doc_id = l_archiv_doc_id * DOCUMENTCLASS = * TABLES * OUTDOCTAB = * CHANGING * INFILETAB = EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_connectiontable = 3 error_kernel = 4 error_parameter = 5 error_scanqueue = 6 canceled_by_user = 7 blocked_by_policy = 8 OTHERS = 9. IF sy-subrc <> 0. * Implement suitable error handling here MESSAGE i000(0k) WITH 'Error en Subir Archivo a Archive Link' DISPLAY LIKE 'E'. ENDIF. MOVE l_archiv_doc_id TO p_archiv_doc_id. ENDFORM. " F_VER_DOCUMENTO
Sin dialogo
FM ARCHIV_CREATE_TABLE
Programa Ejemplo
DATA: gt_file_table TYPE filetable, "Uploaded file information gt_content TYPE soli_tab, "Uploaded files content g_len TYPE i. "File length DATA: g_ext TYPE sood1-file_ext, "File extension g_fname TYPE sood1-objdes. "File name data: g_archiv_id TYPE saearchivi, "Archive connection ID g_xstring TYPE xstring, "File in Xstring g_out TYPE i, g_arc_doc_id TYPE saeardoid. "Archive document ID DATA gt_content1024 TYPE TABLE OF tbl1024. "RAW 1024 format data : g_obj TYPE toav0-sap_object value 'BUS1309', "Business object type g_obj_ty TYPE toaom-ar_object value 'ZBPCR057', "Archive document type g_OBJECT_ID type TOA01-OBJECT_ID. g_ext = 'PDF'. CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' EXPORTING buffer = g_xstring IMPORTING output_length = g_len TABLES binary_tab = gt_content1024. DATA: lv_doc_typ TYPE toadv-doc_type, lv_arc_length TYPE sapb-length. CALL FUNCTION 'ARCHIV_CONNECTDEFINITION_GET' EXPORTING objecttype = g_obj documenttype = g_obj_ty client = sy-mandt IMPORTING archivid = g_archiv_id EXCEPTIONS nothing_found = 1 OTHERS = 2. lv_doc_typ = g_ext. "File extension lv_arc_length = g_len. "File length CALL FUNCTION 'ARCHIVOBJECT_CREATE_TABLE' EXPORTING archiv_id = g_archiv_id document_type = lv_doc_typ length = lv_arc_length IMPORTING archiv_doc_id = g_arc_doc_id TABLES binarchivobject = gt_content1024 EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_kernel = 3 OTHERS = 4. DATA: lv_doc_type TYPE toadv-doc_type, lv_file_name TYPE toaat-filename, lv_object_no TYPE sapb-sapobjid. lv_doc_type = g_ext. "File type PDF lv_file_name = g_fname. "File Name lv_object_no = g_OBJECT_ID. CALL FUNCTION 'ARCHIV_CONNECTION_INSERT' EXPORTING archiv_id = g_archiv_id arc_doc_id = g_arc_doc_id ar_object = g_obj_ty object_id = lv_object_no sap_object = g_obj doc_type = lv_doc_type filename = lv_file_name descr = space creator = sy-uname EXCEPTIONS error_connectiontable = 1 OTHERS = 2.
Bajar archivo
ARCHIV_GET_TABLE
DATA: l_sapobj LIKE toa01-sap_object VALUE 'BUS1309', l_objid LIKE toa01-object_id VALUE '%6527124%', l_archiv LIKE toa01-archiv_id VALUE 'ZP', l_object LIKE toa01-ar_object VALUE 'ZAFISH46'. SELECT * INTO CORRESPONDING FIELDS OF TABLE t_alf FROM toa01 WHERE sap_object = l_sapobj AND object_id LIKE l_objid AND archiv_id = l_archiv AND ar_object = l_object. IF sy-subrc = 0. DATA: l_tabix LIKE sy-tabix, w_toaat TYPE toaat. LOOP AT t_alf INTO w_alf. l_tabix = sy-tabix. CLEAR w_toaat. SELECT SINGLE * INTO w_toaat FROM toaat WHERE arc_doc_id = w_alf-arc_doc_id. w_alf-responsable = w_toaat-creator. * w_alf-bp_emp = wa_alv-object_id+12(10). w_alf-filename = w_toaat-filename. w_alf-descr = w_toaat-descr. MODIFY t_alf FROM w_alf INDEX l_tabix. REFRESH :t_arc_obj, t_binarc_obj. CALL FUNCTION 'ARCHIV_GET_TABLE' EXPORTING ar_object = w_alf-ar_object object_id = w_alf-object_id sap_object = l_sapobj IMPORTING length = ld_len * BINLENGTH = TABLES archivobject = t_arc_obj binarchivobject = t_binarc_obj EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_connectiontable = 3 error_kernel = 4 error_parameter = 5 not_unique = 6 OTHERS = 7. IF sy-subrc <> 0. * Implement suitable error handling here * error = c_x. ENDIF. move ld_len to slen. CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING input_length = slen * FIRST_LINE = 0 * LAST_LINE = 0 IMPORTING buffer = p_xstring TABLES binary_tab = t_binarc_obj EXCEPTIONS failed = 1 OTHERS = 2. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.
ARCHIVOBJECT_GET_TABLE
DATA it_binarchivobject TYPE TABLE OF tbl1024 WITH HEADER LINE. DATA lv_document_type LIKE toadd-doc_type. DATA lv_string TYPE string. DATA lv_da2048 TYPE text2048. DATA lv_length TYPE sapb-length. lv_document_type = ls_toa01-ar_object. CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE' EXPORTING archiv_id = ls_toa01-archiv_id document_type = lv_document_type archiv_doc_id = ls_toa01-arc_doc_id IMPORTING binlength = lv_length TABLES binarchivobject = it_binarchivobject EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_kernel = 3 OTHERS = 4.
Ver documento
FORM f_ver_documento . DATA: l_archiv_id TYPE toaom-archiv_id VALUE 'ZE', l_ar_object TYPE toaom-ar_object, l_object_id TYPE sapb-sapobjid, l_sap_object TYPE toaom-sap_object VALUE 'ZBUS1309', l_archiv_doc_id TYPE toav0-arc_doc_id. MOVE wa_data-clase_docto TO l_ar_object. MOVE wa_data-arc_doc_id TO l_archiv_doc_id. l_object_id = g_object_id. CALL FUNCTION 'ARCHIVOBJECT_DISPLAY' EXPORTING archiv_doc_id = l_archiv_doc_id archiv_id = l_archiv_id object_id = l_object_id ar_object = l_ar_object EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_kernel = 3 OTHERS = 4. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFORM. " F_VER_DOCUMENTO
Borrar archivo
CALL FUNCTION 'ARCHIV_DELETE_META' EXPORTING client = sy-mandt archiv_id = gs_ds_rebj_do-archiv_id arc_doc_id = gs_ds_rebj_do-arc_doc_id ar_object = gs_ds_rebj_do-ar_object object_id = gs_ds_rebj_do-object_id sap_object = gs_ds_rebj_do-sap_object delete_flag = 1 IMPORTING all_connections_deleted = lv_all_connections_deleted EXCEPTIONS error_connectiontable = 1 error_parameter = 2 error_archiv = 3 error_kernel = 4 error_communicationtable = 5 error_authority = 6 OTHERS = 7.
Notas
Para análisis, poner un break-point en la función HTTP2_GET (todas las funciones pasan por ahí!!!)