涉及表 TOAHR HR管理级的容器表
*根据员工号判断文件是否存在
CALL FUNCTION 'HR_IMAGE_EXISTS'
EXPORTING
p_pernr = L_PERNR
P_TCLAS = 'A'
* P_BEGDA = '18000101'
* P_ENDDA = '99991231'
IMPORTING
P_EXISTS = P_EXISTS
P_CONNECT_INFO = connect_info
EXCEPTIONS
ERROR_CONNECTIONTABLE = 1
OTHERS = 2
.
根据返回的信息,下载二进制文件流
REFRESH: lt_sdokcntbin.
CALL FUNCTION 'SCMS_DOC_READ'
EXPORTING
stor_cat = space
crep_id = connect_info-archiv_id
doc_id = connect_info-arc_doc_id
TABLES
ACCESS_INFO = lt_ACCESS_INFO[] "文件信息
content_bin = lt_sdokcntbin[] "二进制文件流
EXCEPTIONS
bad_storage_type = 1
bad_request = 2
unauthorized = 3
comp_not_found = 4
not_found = 5
forbidden = 6
conflict = 7
internal_server_error = 8
error_http = 9
error_signature = 10
error_config = 11
error_format = 12
error_parameter = 13
error = 14
OTHERS = 15.
下载函数二
* call function 'SCMS_AO_TABLE_GET'
* exporting
* arc_id = connect_info-archiv_id
* doc_id = connect_info-arc_doc_id
* COMP_ID = L_COMP_ID
* IMPORTING
* LENGTH = l_binlength
* tables
* data = binarchivobject
* EXCEPTIONS
* ERROR_HTTP = 1
* ERROR_ARCHIV = 2
* ERROR_KERNEL = 3
* ERROR_CONFIG = 4
* OTHERS = 5
二进制流可以直接使用gui_DOWNLOAD 下载
将二进制转换为十六进制
* 将二进制流转换为十六进制
DATA:L_BUFFER TYPE XSTRING.
READ TABLE lt_ACCESS_INFO INTO lS_ACCESS_INFO INDEX 1.
l_binlength = lS_ACCESS_INFO-COMP_SIZE.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = l_binlength
IMPORTING
BUFFER = L_BUFFER
tables
binary_tab = lt_sdokcntbin[]
EXCEPTIONS
FAILED = 1
OTHERS = 2
.
转换为base64
* 十六进制转base64
CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'
EXPORTING
input = L_BUFFER
IMPORTING
OUTPUT = LS_DATA-PHOTO