OAOR
自定义CLASS NAME T-CODE:SBDSV1, BDS_LOCL 的维护视图
T-CODE:SBDSV1,BDS_LOCL 的维护视图
T-CODE:OAC2,SAP ArchiveLink:全局文档类型
T-CODE:OAC3,SAP ArchiveLink:链接
T-CODE:SWO1, 业务对象制作程序
FUNCTION zrawstr_http_create.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(IV_RAWSTR) TYPE ZFILE_CONTENT
*" REFERENCE(IV_SAPOBJID) TYPE SAPB-SAPOBJID
*" REFERENCE(IV_MIMETP) TYPE BDS_MIMETP DEFAULT 'application/pdf'
*" REFERENCE(IV_OBJECT) TYPE SAEANWDID DEFAULT 'ZEIS_DOC'
*" REFERENCE(IV_DOC_TYPE) TYPE SAEDOKTYP DEFAULT 'PDF'
*" REFERENCE(IV_FILENAME) TYPE TOAAT-FILENAME
*" REFERENCE(IV_DESCR) TYPE TOAAT-DESCR
*" EXPORTING
*" REFERENCE(EV_UUID) TYPE SYSUUID_C32
*" TABLES
*" T_OAURI STRUCTURE TOAURI
*" EXCEPTIONS
*" ERROR_SCMS_HTTP_CREATE
*" ERROR_ARCHIV_CONNECTION_INSERT
*" ERROR_ARCHIVOBJECT_GET_URI
*"----------------------------------------------------------------------
DATA: lw_sdokcntbin TYPE sdokcntbin,
lt_sdokcntbin TYPE STANDARD TABLE OF sdokcntbin,
lv_length TYPE i,
lv_index TYPE i VALUE 0,
lv_rest_len TYPE i,
lv_arc_doc_id TYPE toav0-arc_doc_id,
lv_sapobjid TYPE sapb-sapobjid,
lv_object_id TYPE toav0-object_id.
lv_length = xstrlen( iv_rawstr ).
lv_rest_len = lv_length.
WHILE lv_rest_len >= 1022.
lw_sdokcntbin-line = iv_rawstr+lv_index(1022).
APPEND lw_sdokcntbin TO lt_sdokcntbin.
lv_rest_len = lv_rest_len - 1022.
lv_index = lv_index + 1022.
CLEAR: lw_sdokcntbin.
ENDWHILE.
IF lv_rest_len > 0.
lw_sdokcntbin-line = iv_rawstr+lv_index(lv_rest_len).
APPEND lw_sdokcntbin TO lt_sdokcntbin.
CLEAR: lw_sdokcntbin.
ENDIF.
TRY.
CALL METHOD cl_system_uuid=>if_system_uuid_static~create_uuid_c32
RECEIVING
uuid = ev_uuid.
CATCH cx_uuid_error .
ENDTRY.
CALL FUNCTION 'SCMS_HTTP_CREATE'
EXPORTING
crep_id = 'C1'
doc_id = ev_uuid
mimetype = iv_mimetp
length = lv_length
TABLES
data = lt_sdokcntbin[]
EXCEPTIONS
bad_request = 1
unauthorized = 2
forbidden = 3
conflict = 4
internal_server_error = 5
error_http = 6
error_url = 7
error_signature = 8
error_parameter = 9
blocked_by_policy = 10
OTHERS = 11.
IF sy-subrc NE 0.
RAISE error_scms_http_create.
ENDIF.
lv_arc_doc_id = ev_uuid.
CALL FUNCTION 'ARCHIV_CONNECTION_INSERT'
EXPORTING
archiv_id = 'C1' "'CS' UPD BY HANDZJD 20210820
arc_doc_id = lv_arc_doc_id
ar_object = 'ZALL'
object_id = iv_sapobjid
sap_object = iv_object
doc_type = iv_doc_type
filename = iv_filename
descr = iv_descr
creator = sy-uname
EXCEPTIONS
error_connectiontable = 1
OTHERS = 2.
IF sy-subrc NE 0.
RAISE error_error_archiv_connection_insert.
ENDIF.
* TOA01连接表1 TOAAT Table to store the File attributes
lv_object_id = iv_sapobjid.
CALL FUNCTION 'ARCHIVOBJECT_GET_URI'
EXPORTING
objecttype = iv_object
object_id = lv_object_id
TABLES
uri_table = t_oauri
EXCEPTIONS
error_archiv = 1
error_communicationtable = 2
error_kernel = 3
error_http = 4
error_dp = 5
OTHERS = 6.
IF sy-subrc <> 0.
RAISE error_archivobject_get_uri.
ENDIF.
ENDFUNCTION.