Транзакции:
OAAD - «Документы администрирования ArchiveLink» можно использовать для просмотра документов.
OAOH - «ArchiveLink архивация и присвоение» можно сохранить свой документ
SWO1 - Построитель бизнес объектов
В системе есть несколько групп функций для работы с ArchiveLink. Я использовал следующие:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
save_doc IMPORTING IV_AR_OBJECT TYPE SAEOBJART "Вид документа IV_SAP_OBJEC TYPE SAEANWDID "Идентификатор объекта сформированный "Согласно OBJECT_ID " можно сделать самим, можно сгенерить "ФМ ARCHIV_POPUP_OBJECT_KEY IV_OBJECT_ID TYPE SAEOBJID "Объект( для HR скорее всего PREL ) IV_ARCHIV_ID TYPE SAEARCHIVI "Имя репозитария IV_DOCUMENT TYPE XSTRING OPTIONAL "Документ в формате xstring IV_NO_COMMIT TYPE ABAP_BOOL DEFAULT ABAP_TRUE EXPORTING EV_ARCHIV_DOC_ID TYPE SAEARDOID " сюда передаем UUID конкретного файла, "Полученный из ФМ ARCHIV_CREATE_TABLE. Он будет нужен, чтобы потом считать именно этот документ "Его надо будет сохранить, например, в поле ИТ EXEPTIONS ERROR_ARCHIV ERROR_COMMUNICATIONTABLE ERROR_UPLOAD ERROR_KERNEL BLOCKED_BY_POLICY. METHOD save_doc. DATA lv_path TYPE sapb-sappfad. DATA lt_archivobject TYPE ebpp_inv_docdetail_t. DATA lt_toaom TYPE toaom_tty. DATA lv_ar_object TYPE saeobjart. DATA lv_sap_object TYPE saeanwdid. lv_ar_object = iv_ar_object. lv_sap_object = iv_sap_object. "Данные по типу документа из настроечной таблицы CALL FUNCTION 'ARCHIV_METAINFO_GET' EXPORTING active_flag = 'X' ar_object = lv_ar_object sap_object = lv_sap_object TABLES toaom_fkt = lt_toaom EXCEPTIONS OTHERS = 0. READ TABLE lt_toaom ASSIGNING FIELD-SYMBOL(<ls_toaom>) INDEX 1. CHECK sy-subrc = 0. DATA ls_outdoc TYPE toadt. CALL FUNCTION 'ARCHIV_CREATE_TABLE' EXPORTING ar_object = lv_ar_object " SAEOBJART * DEL_DATE = object_id = iv_object_id sap_object = lv_sap_object * FLENGTH = doc_type = <ls_toaom>-doc_type document = iv_document * MANDT = SY-MANDT * VSCAN_PROFILE = '/SCMS/KPRO_CREATE' * FILENAME = ' ' * DESCR = ' ' IMPORTING outdoc = ls_outdoc * TABLES * ARCHIVOBJECT = * BINARCHIVOBJECT = EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_connectiontable = 3 error_kernel = 4 error_parameter = 5 error_user_exit = 6 error_mandant = 7 blocked_by_policy = 8 OTHERS = 9. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. CASE sy-subrc. WHEN 1. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_archiv. WHEN 2. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_communicationtable. WHEN 3. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_kernel. WHEN 4. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING blocked_by_policy. WHEN 5. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING others_. ENDCASE. IF iv_no_commit = abap_false. COMMIT WORK. ENDIF. ev_archiv_doc_id = ls_outdoc-arc_doc_id. ENDMETHOD. |
Откроем документ на чтение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
METHOD display. DATA lt_dispdocs TYPE TABLE OF toadi. DATA lv_returncode TYPE string. CALL FUNCTION 'ARCHIVOBJECT_DISPLAY' EXPORTING archiv_doc_id = iv_archiv_doc_id * ARCHIV_DOC_INDEX = ' ' archiv_id = iv_archiv_id * OBJECTTYPE = ' ' object_id = iv_object_id ar_object = iv_ar_object * LANGUAGE = ' ' * SIGN = ' ' * WINDOW_ID = ' ' * WINDOW_TITLE = ' ' * DOC_TYPE = ' ' * POSITIONINALFFILE = ' ' * NOGET = ' ' * PATHOFFILE = ' ' * EOF = ' ' * DALENGTH = ' ' * PFSTATUS = ' ' * REPORT = ' ' * MULTIPLE = ' ' IMPORTING returncode = lv_returncode TABLES dispdocs = lt_dispdocs EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_kernel = 3 OTHERS = 4. IF sy-subrc <> 0. CASE sy-subrc. WHEN 1. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_archiv. WHEN 2. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_communicationtable. WHEN 3. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_kernel. ENDCASE. ENDIF. ENDMETHOD. |
Удалим:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
METHOD delete. CALL FUNCTION 'ARCHIV_DELETE_META' EXPORTING archiv_id = iv_archiv_id arc_doc_id = iv_arc_doc_id ar_object = iv_ar_object delete_flag = iv_delete_flag object_id = iv_object_id sap_object = iv_sap_object * CLIENT = * SINGLE_ENTRY = ' ' * DOCUMENTCLASS = * NO_AUTH_CHECK = * IMPORTING * ALL_CONNECTIONS_DELETED = EXCEPTIONS error_connectiontable = 1 error_parameter = 2 error_archiv = 3 error_kernel = 4 error_communicationtable = 5 error_authority = 6 OTHERS = 7. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. IF iv_no_commit = abap_false. COMMIT WORK. ENDIF. ENDMETHOD. |
Если привязываем документ к конкретной записи ИТ, не забываем удалять вложение, при удалении ИТ.