当前位置: 首页 > article >正文

获取上传至DMS服务器上文件的URL

  • 文件上传
     DATA: lv_class    TYPE toadv-doc_type,
          lv_objectid TYPE sapb-sapobjid.

  CALL FUNCTION 'ZARCHIV_CREATE_DIALOG_META'
        EXPORTING
          archiv_id                = 'Z1'               "内容存储库ID
          ar_object                = 'ZALLFILES'        "文档类型
*         DEL_DATE                 = ' '
*         NOTE                     = ' '
          object_id                = lv_objectid          "对象标识
          sap_object               = 'BUS1001' "T_ZTFILE001-SAP_OBJECT "对象类型
*         FILE                     = pv_path
          document_class           = lv_class           "文档类,后缀名
*         COMMIT_FLAG              = ' '
*         VSCAN_PROFILE            = '/SCMS/KPRO_CREATE'
*         FILE_DESCR_POP_SUP       = ' '
        IMPORTING
          archiv                   = lv_archiv_id       "内容存储库ID
          archiv_doc_id            = lv_archiv_doc_id   "文档ID
          documentclass            = lv_documentclass   "文档类
*         TABLES
*         OUTDOCTAB                =
        CHANGING
          infiletab                = lt_file
        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.
        IF sy-subrc = 1.
          MESSAGE '选择的文件不存在'(029) TYPE 'S' DISPLAY LIKE 'E'.
        ELSE.
          MESSAGE '上传失败,请重新上传文件'(030) TYPE 'S' DISPLAY LIKE 'E'.
        ENDIF.
      ENDIF.
  • 文件下载
  
CALL METHOD cl_gui_frontend_services=>file_save_dialog
        EXPORTING
          default_extension    = lv_doc_type1       "默认保存文件格式
          default_file_name    = lv_filename   "默认文件名称
        CHANGING
          filename             = lc_filename   "默认文件名称
          path                 = lc_path       "文件路径
          fullpath             = lc_fullpath   "文件路径
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          not_supported_by_gui = 3
          OTHERS               = 4.
   CALL FUNCTION 'ARCHIVOBJECT_GET_TABLE'
        EXPORTING
          archiv_id       = 'Z1'
          document_type   = lv_doc_type
          archiv_doc_id   = gs_matnritem-zfileguid
        IMPORTING
          binlength       = lv_lenth
        TABLES
          binarchivobject = lt_bin.
 lv_input_length =  lv_lenth.
  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
        EXPORTING
          input_length = lv_input_length
        IMPORTING
          buffer       = lv_file
        TABLES
          binary_tab   = lt_bin
        EXCEPTIONS
          failed       = 1
          OTHERS       = 2.

    cl_gui_frontend_services=>gui_download(
      EXPORTING
        filename                  = iv_filename
        filetype                  = 'BIN'
        bin_filesize              = xstrlen( lv_file )
      CHANGING
        data_tab                  = lt_data[]
      EXCEPTIONS
        OTHERS = 1
    ).
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 
      sy-msgv4 RAISING download_error.
    ENDIF.
  • 获取文件URL
 CALL FUNCTION 'SCMS_AO_URL_READ'
      EXPORTING
        arc_id        = archiv_id
        doc_id        = archiv_doc_id
        comp_id       = ' '
        document_type = document_class
        loc_info      = 'F'
        http_url_only = 'X'
      IMPORTING
        url           = absolute_uri
      EXCEPTIONS
        OTHERS        = 1.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING others .
    ENDIF.

    ARCHIVOBJECT_GET_URI

生成URL的时候 SCMS_URL_GENERATE会调用SCMS_URL_SIGN函数这是其中默认这是了URL的生效时间为两小时

如果需要失效时间延长会设置URL永久有效, 可以去修改函数SCMS_URL_GENERATE的参数DURATION 或EXPIRATION ,DURATION最大时间是999999,若需要永久有效,则需要设置EXPIRATION的时间,这时系统会忽略DURATION的参数,

具体可参考:2501205 - 如何修改内容服务器 URL 中的过期参数 - SAP for Me

 


http://www.kler.cn/a/369790.html

相关文章:

  • 00 嵌入式知识-目录篇
  • 多级反馈队列
  • Docker方式部署ClickHouse
  • 使用JavaScript进行网页设计
  • 传输层协议TCP详解(上篇)
  • Java程序员如何获得高并发经验?
  • Apache paimon 优化
  • 图为大模型一体机新探索,赋能智能家居行业
  • Linux系统下minio设置SSL证书进行HTTPS远程连接访问
  • 深入理解gPTP时间同步过程
  • Lua 从基础入门到精通(非常详细)
  • ipad-make-sense:首个支持 iPad 的开源数据标注工具
  • 基于ESP32的RGB便携式视频灯
  • 2.Linux按键驱动-创建字符设备,通过应用程序读取按键值
  • 算法复杂度概述
  • MySql中的锁的分类
  • C++学习:类和对象(一)
  • 使用Python读取word表格里的数据,存为excel表格,以此来解决word表格复制到excel表格一个单元格变过个单元格的问题
  • react18中react-thunk实现公共数据仓库的异步操作
  • 【Vue】audio标签播放amr音频文件