欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    SAPABAPDMS文档管理开发.doc

    • 资源ID:4220107       资源大小:164.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SAPABAPDMS文档管理开发.doc

    SAP ABAP DMS文档开发1. 用到的BAPI:BAPI_DOCUMENT_CREATE2 ,ZBAPI_DOCUMENT_CHECKOUTVIEW2,BAPI_DOCUMENT_DELETE_DIRECT2. 其中ZBAPI_DOCUMENT_CHECKOUTVIEW2是从标准的BAPI_DOCUMENT_CHECKOUTVIEW2改写(标准的在导出文档时,会自定义一个文档名称);改动代码如下:a) 新增函数组ZMM_CVBAPIb) 将LCVBAPITOP的定义对象拷贝到LZMM_CVBAPITOPc) 在LZMM_CVBAPITOP最后添加如下:INCLUDE lcvbapif01.INCLUDE lcvbapif02.INCLUDE lcvbapif03.INCLUDE lcvbapif04.INCLUDE lcvbapif05.INCLUDE lcvbapif06.INCLUDE lcvbapif07.d) 拷贝函数BAPI_DOCUMENT_CHECKOUTVIEW2到新ZBAPI_DOCUMENT_CHECKOUTVIEW2,添加IMPORT参ORFILENAME,并修改代码。3. 以下为参考代码:* 文档类型CONSTANTS: con_dokar(3) VALUE 'ZQX'.* 存储类别CONSTANTS: con_storage_cat(10) VALUE 'DMS_C1_ST'.FORM frm_creat_file.  DATA: lv_rc        TYPE i,        lt_filetable TYPE filetable WITH HEADER LINE.  DATA: lv_filename TYPE filep,        lv_path     TYPE filep.  DATA: lv_docnumber     TYPE bapi_doc_aux-docnumber.  DATA: ls_documentdata  TYPE bapi_doc_draw2,        ls_documentdatax TYPE bapi_doc_drawx2, "bapi_doc_draw2x,        lt_objectlinks   TYPE TABLE OF bapi_doc_drad WITH HEADER LINE,        lt_documentfiles TYPE TABLE OF bapi_doc_files2 WITH HEADER LINE,        ls_return        TYPE bapiret2.  DATA: t_tdwp TYPE TABLE OF tdwp WITH HEADER LINE.  DATA: name    TYPE draw-filep,        ext(64) TYPE c.  CALL METHOD cl_gui_frontend_services=>file_open_dialog    EXPORTING      window_title            = '选择文件'      default_extension       = '*'    CHANGING      file_table              = lt_filetable      rc                      = lv_rc    EXCEPTIONS      file_open_dialog_failed = 1     tl_error              = 2      error_no_gui            = 3      not_supported_by_gui    = 4      OTHERS                  = 9.  IF lt_filetable IS INITIAL.    EXIT.  ENDIF.  READ TABLE lt_filetable INDEX 1.*解析路径文件  PERFORM frm_split_path_file USING lt_filetable-filename        CHANGING lv_filename lv_path.  name = lv_filename.  WHILE name CA '.'.    SPLIT name AT '.' INTO ext name.  ENDWHILE.  CONCATENATE '.' name INTO name.  TRANSLATE name TO LOWER CASE.  CALL FUNCTION 'CV120_DOC_GET_APPL'    EXPORTING      pf_file  = name    TABLES      ptx_tdwp = t_tdwp.  IF t_tdwp IS INITIAL.    MESSAGE s001 WITH '不支持此类型文件'.  ENDIF.  READ TABLE t_tdwp INDEX 1.  ls_documentdata-documenttype    = con_dokar.  ls_documentdata-documentversion = '00'.  ls_documentdata-documentpart    = '000'.  ls_documentdata-description     = '凭证描述'.  ls_documentdata-username        = sy-uname.*  ls_documentdata-ecnumber        = '123'.  READ TABLE t_tdwp INDEX 1.  lt_documentfiles-documenttype    = 'ZQX'.  lt_documentfiles-storagecategory = con_storage_cat.  lt_documentfiles-wsapplication   = t_tdwp-dappl.  lt_documentfiles-docpath         = lv_path.  lt_documentfiles-docfile         = lv_filename.  lt_documentfiles-checkedin       = 'X'.  APPEND lt_documentfiles.  CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'    EXPORTING      documentdata   = ls_documentdata    IMPORTING      documentnumber = lv_docnumber      return         = ls_return    TABLES      objectlinks    = lt_objectlinks      documentfiles  = lt_documentfiles.  IF ls_return-type = 'E' OR lv_docnumber IS INITIAL.*    MESSAGE e001 WITH '上传文件出错,请联系管理员'.    MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number      WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.  ELSE.    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.    MESSAGE s001 WITH '上传成功'.  ENDIF.  wa_file-doc_id = lv_docnumber.  wa_file-dname = lv_filename.  wa_file-yk_planno = wa_xqjh_h-yk_planno.  wa_file-dtype = name.  wa_file-credat = sy-datum.  wa_file-ctime = sy-uzeit.  wa_file-cname = sy-uname.  APPEND wa_file TO it_file.  IF wa_xqjh_h-yk_planno IS NOT INITIAL.    MODIFY ztmm_xqjh_file FROM wa_file.    COMMIT WORK AND WAIT.  ENDIF.ENDFORM.                    " FRM_UPLOAD_FILE*&-*&      Form  frm_split_path_file*&-*       text拆分路径和文档名*-*  ->  p1        text*  <-  p2        text*-*FORM frm_split_path_file  USING uv_fullname CHANGING cv_filename cv_pathname.  DATA: lt_match TYPE match_result_tab,        ls_match LIKE LINE OF lt_match.  FIND ALL OCCURRENCES OF '' IN uv_fullname IN CHARACTER MODE RESULTS lt_match.  IF NOT lt_match IS INITIAL.    LOOP AT lt_match INTO ls_match.    ENDLOOP.    ADD 1 TO ls_match-offset.    cv_pathname = uv_fullname(ls_match-offset).    cv_filename = uv_fullname+ls_match-offset.  ENDIF.ENDFORM.*&-*&      Form  FRM_READ_FILE*&-*       text*-*  ->  p1        text*  <-  p2        text*-*FORM frm_read_file .  DATA: lv_file TYPE string VALUE 'C:XQJH1'.  DATA: lv_path TYPE string.  DATA: lv_result TYPE abap_bool.  DATA: lv_rc TYPE i.  DATA: lv_line TYPE i.  DATA: lv_originalpath TYPE bapi_doc_aux-filename,        lv_orfilename   TYPE bapi_doc_aux-filename.  DATA: ls_documentfile TYPE bapi_doc_files2,        ls_return       TYPE bapiret2.  lv_result = cl_gui_frontend_services=>directory_exist( directory = lv_file ).  IF lv_result <> 'X'.    CALL METHOD cl_gui_frontend_services=>directory_create      EXPORTING        directory                = lv_file      CHANGING        rc                       = lv_rc      EXCEPTIONS        directory_create_failed  = 1       tl_error               = 2        error_no_gui             = 3        directory_access_denied  = 4        directory_already_exists = 5        path_not_found           = 6        unknown_error            = 7        not_supported_by_gui     = 8        wrong_parameter          = 9        OTHERS                   = 10.    IF lv_rc <> 0 OR sy-subrc <> 0.      MESSAGE e001 WITH '文件路径拒绝访问'.    ENDIF.  ENDIF.  GET CURSOR LINE lv_line.  READ TABLE it_file INTO wa_file INDEX lv_line.  CONCATENATE lv_file '' INTO lv_originalpath.  lv_orfilename = wa_file-dname.  CALL FUNCTION 'ZBAPI_DOCUMENT_CHECKOUTVIEW2'    EXPORTING      documenttype    = con_dokar      documentnumber  = wa_file-doc_id      documentpart    = '000'      documentversion = '00'      documentfile    = ls_documentfile      originalpath    = lv_originalpath      orfilename      = lv_orfilename    IMPORTING      return          = ls_return.  IF ls_return IS NOT INITIAL.    MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number      WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.  ENDIF.  CONCATENATE lv_originalpath lv_orfilename INTO lv_path.  CALL METHOD cl_gui_frontend_services=>execute    EXPORTING      document               = lv_path      synchronous            = 'X'    EXCEPTIONS     tl_error             = 1      error_no_gui           = 2      bad_parameter          = 3      file_not_found         = 4      path_not_found         = 5      file_extension_unknown = 6      error_execute_failed   = 7      synchronous_failed     = 8      not_supported_by_gui   = 9      OTHERS                 = 10.  IF sy-subrc <> 0.* Implement suitable error handling here    MESSAGE s001 WITH '打开文档失败' DISPLAY LIKE 'E'.  ENDIF.ENDFORM.                    " FRM_READ_FILE*&-*&      Form  FRM_DOWN_FILE*&-*       text*-*  ->  p1        text*  <-  p2        text*-*FORM frm_down_file .  DATA: lv_filename TYPE string.  DATA: lv_path TYPE string.  DATA: lv_path_c(100) TYPE c.  DATA: lv_fullpath TYPE string.  DATA: lv_result TYPE abap_bool.  DATA: lv_rc TYPE i.  DATA: lv_line TYPE i.  DATA: lv_originalpath TYPE bapi_doc_aux-filename,        lv_orfilename   TYPE bapi_doc_aux-filename.  DATA: ls_documentfile TYPE bapi_doc_files2,        ls_return       TYPE bapiret2.  GET CURSOR LINE lv_line.  READ TABLE it_file INTO wa_file INDEX lv_line.  lv_filename = wa_file-dname.  CALL METHOD cl_gui_frontend_services=>file_save_dialog    EXPORTING      window_title              = '选择位置'*     default_extension         =      default_file_name         = lv_filename*     with_encoding             =*     file_filter               =*     initial_directory         =*     prompt_on_overwrite       = 'X'    CHANGING      filename                  = lv_filename      path                      = lv_path      fullpath                  = lv_fullpath    EXCEPTIONS     tl_error                = 1      error_no_gui              = 2      not_supported_by_gui      = 3      invalid_default_file_name = 4      OTHERS                    = 5.  IF sy-subrc <> 0.    EXIT.  ENDIF.  lv_result = cl_gui_frontend_services=>directory_exist( directory = lv_path ).  IF lv_result <> 'X'.    MESSAGE e001 WITH '文件路径不存在'.  ENDIF.  lv_originalpath = lv_path.  lv_orfilename = lv_filename.  CALL FUNCTION 'ZBAPI_DOCUMENT_CHECKOUTVIEW2'    EXPORTING      documenttype    = con_dokar      documentnumber  = wa_file-doc_id      documentpart    = '000'      documentversion = '00'      documentfile    = ls_documentfile      originalpath    = lv_originalpath      orfilename      = lv_orfilename    IMPORTING      return          = ls_return.  IF ls_return IS NOT INITIAL.    MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number      WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.  ELSE.    MESSAGE s001 WITH '下载成功'.  ENDIF.ENDFORM.                    " FRM_DOWN_FILE*&-*&      Form  FRM_DELETE_FILE*&-*       text*-*  ->  p1        text*  <-  p2        text*-*FORM frm_delete_file .  DATA: lv_line   TYPE i,        ls_return TYPE bapiret2.  CALL FUNCTION 'POPUP_TO_CONFIRM'    EXPORTING      titlebar              = '消息提示'      text_question         = '是否删除文档'      text_button_1         = '是'      text_button_2         = '否'      default_button        = '1'      display_cancel_button = ''      start_column          = 25      start_row             = 6*     popup_type            = 'ICON_MESSAGE_ERROR'    IMPORTING      answer                = lv_answer    EXCEPTIONS      text_not_found        = 1      OTHERS                = 2.  IF lv_answer <> '1'.    MESSAGE s001 WITH '用户取消操作' DISPLAY LIKE 'E'.    EXIT.  ENDIF.  GET CURSOR LINE lv_line.  READ TABLE it_file INTO wa_file INDEX lv_line.  CALL FUNCTION 'BAPI_DOCUMENT_ENQUEUE'    EXPORTING      documenttype    = con_dokar      documentnumber  = wa_file-doc_id      documentpart    = '000'      documentversion = '00'    IMPORTING      return          = ls_return.  IF ls_return IS NOT INITIAL.    MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number      WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.  ENDIF.  CALL FUNCTION 'BAPI_DOCUMENT_DELETE_DIRECT'    EXPORTING      documenttype    = con_dokar      documentnumber  = wa_file-doc_id      documentpart    = '000'      documentversion = '00'    IMPORTING      return          = ls_return.  CALL FUNCTION 'BAPI_DOCUMENT_DEQUEUE'    EXPORTING      documenttype    = con_dokar      documentnumber  = wa_file-doc_id      documentpart    = '000'      documentversion = '00'.  IF ls_return-type <> 'E'.    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.    DELETE it_file INDEX lv_line.    DELETE FROM ztmm_xqjh_file WHERE doc_id = wa_file-doc_id.    MESSAGE s001 WITH '删除成功'.  ELSE.    MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number      WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.  ENDIF.ENDFORM.                    " FRM_DELETE_FILE*&-*&      Form  FRM_DOUBLE_CLICK*&-*       text*-*  ->  p1        text*  <-  p2        text*-*FORM frm_double_click .  DATA: filed TYPE char20.  GET CURSOR FIELD filed.  IF filed = 'IT_FILE-DOC_ID'.    GET CURSOR LINE line.    READ TABLE it_file INDEX line.    SET PARAMETER ID 'CV1' FIELD it_file-doc_id.    SET PARAMETER ID 'CV2' FIELD con_dokar.    SET PARAMETER ID 'CV3' FIELD '00'.    SET PARAMETER ID 'CV4' FIELD '000'.    CALL TRANSACTION 'CV03N' AND SKIP FIRST SCREEN.  ENDIF.ENDFORM.                    " FRM_DOUBLE_CLICK

    注意事项

    本文(SAPABAPDMS文档管理开发.doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开