SAP 员工照片批量上传下载

11 篇文章 0 订阅

涉及表 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

完整实现代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随记随心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值