SAPABAPDMS文档管理开发_第1页
SAPABAPDMS文档管理开发_第2页
SAPABAPDMS文档管理开发_第3页
SAPABAPDMS文档管理开发_第4页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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

2、lcvbapif01.INCLUDE lcvbapif02.INCLUDE lcvbapif03.INCLUDE lcvbapif04.INCLUDE lcvbapif05.INCLUDE lcvbapif06.INCLUDE lcvbapif07.d)拷贝函数BAPI_DOCUMENT_CHECKOUTVIEW2到新ZBAPI_DOCUMENT_CHECKOUTVIEW2,添加 IMPORT参 ORFILENAME,并修改代码。1/143. 以下为参考代码:* 文档类型CONSTANTS:con_dokar ( 3)VALUE 'ZQX' .* 存储类别CONSTANTS:c

3、on_storage_cat( 10)VALUE 'DMS_C1_ST'.2/14FORM frm_creat_file.DATA:lv_rcTYPE i ,lt_filetableTYPEfiletableWITHHEADER LINE.DATA:lv_filenameTYPE filep,lv_pathTYPE filep.DATA:lv_docnumberTYPE bapi_doc_aux - docnumber.DATA:ls_documentdataTYPEbapi_doc_draw2 ,ls_documentdataxTYPE bapi_doc_drawx2 ,&q

4、uot;bapi_doc_draw2x,lt_objectlinksTYPE TABLEOFbapi_doc_dradWITHHEADER LINE,lt_documentfilesTYPE TABLE OFbapi_doc_files2WITHHEADER LINE,ls_returnTYPE bapiret2.DATA:t_tdwpTYPE TABLEOFtdwpWITHHEADER LINE.DATA:nameTYPEdraw- filep,ext ( 64)TYPE c .CALL METHOD cl_gui_frontend_services=>file_open_dialog

5、EXPORTINGwindow_title=' 选择文件 'default_extension='*'CHANGINGfile_table=lt_filetablerc=lv_rcEXCEPTIONSfile_open_dialog_failed=1cntl_error=2error_no_gui=3not_supported_by_gui=4OTHERS=9.IFlt_filetableISINITIAL .EXIT.ENDIF.READ TABLE lt_filetableINDEX1.3/14* 解析路径文件PERFORMfrm_split_path_fi

6、leUSING lt_filetable- filenameCHANGING lv_filenamelv_path .name= lv_filename .WHILEname CA'.' .SPLIT nameAT'.'INTO ext name.ENDWHILE.CONCATENATE'.'nameINTO name.TRANSLATE nameTOLOWER CASE.CALL FUNCTION 'CV120_DOC_GET_APPL'EXPORTINGpf_file=nameTABLESptx_tdwp=t_tdwp .IF

7、t_tdwpISINITIAL .MESSAGEs001WITH' 不支持此类型文件' .ENDIF.READ TABLE t_tdwpINDEX1.ls_documentdata - documenttype=con_dokar .ls_documentdata - documentversion='00' .ls_documentdata - documentpart='000'.ls_documentdata - description=' 凭证描述 ' .ls_documentdata - username=sy - un

8、ame.*ls_documentdata-ecnumber='123'.READ TABLE t_tdwpINDEX1.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_documen

9、tfiles- checkedin= 'X'.4/14APPEND lt_documentfiles.CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'EXPORTINGdocumentdata=ls_documentdataIMPORTINGdocumentnumber=lv_docnumberreturn=ls_returnTABLESobjectlinks=lt_objectlinksdocumentfiles=lt_documentfiles.IFls_return- type='E'OR lv_docnumber

10、ISINITIAL .*MESSAGEe001WITH ' 上传文件出错 , 请联系管理员 '.MESSAGEID ls_return - id TYPE ls_return - type NUMBER ls_retu rn - numberWITH ls_return- message_v1ls_return- message_v2ls_return-message_v3ls_return- message_v4.ELSE.CALLFUNCTION 'BAPI_TRANSACTION_COMMIT'.MESSAGEs001WITH' 上传成功 '

11、; .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_fileTOit_file.IFwa_xqjh_h - yk_plannoISNOT INITIAL .MODIFY ztmm_xqjh_fil

12、eFROM wa_file.COMMIT WORK AND WAIT.ENDIF.5/14ENDFORM."FRM_UPLOAD_FILE*&-*&Formfrm_split_path_file*&-*text 拆分路径和文档名*-*->p1text*<-p2text*-*FORM frm_split_path_fileUSING uv_fullnameCHANGING cv_filenamecv_pathname.DATA:lt_matchTYPE match_result_tab,ls_matchLIKELINEOFlt_match .FIND

13、ALLOCCURRENCESOF''INuv_fullnameINCHARACTERMODERESULTS lt_match .IFNOT lt_matchISINITIAL .LOOP ATlt_matchINTOls_match .ENDLOOP.ADD 1TOls_match - offset.cv_pathname=uv_fullname ( ls_match - offset).cv_filename=uv_fullname+ls_match- offset.ENDIF.ENDFORM.*&-*&FormFRM_READ_FILE*&-*tex

14、t*-*->p1text*<-p2text*-*FORM frm_read_file.DATA:lv_fileTYPEstringVALUE 'C:XQJH1' .DATA:lv_pathTYPEstring .DATA:lv_resultTYPE abap_bool .DATA:lv_rcTYPE i .DATA:lv_lineTYPEi .6/14DATA:lv_originalpathTYPE bapi_doc_aux - filename ,lv_orfilenameTYPEbapi_doc_aux - filename .DATA:ls_documentf

15、ileTYPE bapi_doc_files2,ls_returnTYPE bapiret2.lv_result=cl_gui_frontend_services=>directory_exist(directory=lv_file).IFlv_result<>'X' .CALLMETHOD cl_gui_frontend_services=>directory_createEXPORTINGdirectory=lv_fileCHANGINGrc=lv_rcEXCEPTIONSdirectory_create_failed=1cntl_error=2er

16、ror_no_gui=3directory_access_denied=4directory_already_exists=5path_not_found=6unknown_error=7not_supported_by_gui=8wrong_parameter=9OTHERS=10.IFlv_rc<>0OR sy - subrc<>0.MESSAGEe001WITH' 文件路径拒绝访问' .ENDIF.ENDIF.GET CURSOR LINElv_line.READ TABLE it_fileINTOwa_fileINDEXlv_line.CONCA

17、TENATElv_file''INTOlv_originalpath.lv_orfilename=wa_file- dname.CALL FUNCTION 'ZBAPI_DOCUMENT_CHECKOUTVIEW2'EXPORTINGdocumenttype=con_dokar7/14documentnumber=wa_file- doc_iddocumentpart='000'documentversion='00'documentfile=ls_documentfileoriginalpath=lv_originalpatho

18、rfilename= lv_orfilenameIMPORTINGreturn=ls_return .IFls_returnISNOT INITIAL .MESSAGEIDls_return- idTYPEls_return- typeNUMBER ls_return - numberWITH ls_return- message_v1ls_return- message_v2ls_return-message_v3ls_return- message_v4.ENDIF.CONCATENATElv_originalpathlv_orfilenameINTO lv_path .CALL METH

19、OD cl_gui_frontend_services=>executeEXPORTINGdocument= lv_pathsynchronous='X'EXCEPTIONScntl_error= 1error_no_gui=2bad_parameter=3file_not_found=4path_not_found=5file_extension_unknown= 6error_execute_failed=7synchronous_failed= 8not_supported_by_gui=9OTHERS= 10.IF sy- subrc <> 0.* I

20、mplement suitableerror handling hereMESSAGEs001WITH' 打开文档失败 'DISPLAYLIKE'E' .ENDIF.8/14ENDFORM."FRM_READ_FILE*&-*&FormFRM_DOWN_FILE*&-*text*-*->p1text*<-p2text*-*FORM frm_down_file.DATA:lv_filenameTYPE string .DATA:lv_pathTYPEstring .DATA:lv_path_c ( 100)TYPE c

21、.DATA:lv_fullpathTYPE string .DATA:lv_resultTYPEabap_bool .DATA:lv_rc TYPEi .DATA:lv_lineTYPEi .DATA:lv_originalpathTYPE bapi_doc_aux - filename ,lv_orfilenameTYPE bapi_doc_aux - filename .DATA:ls_documentfileTYPE bapi_doc_files2 ,ls_returnTYPE bapiret2 .GET CURSOR LINElv_line.READ TABLE it_fileINTO

22、wa_fileINDEXlv_line.lv_filename=wa_file - dname.CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGwindow_title=' 选择位置 '*default_extension=default_file_name=lv_filename*with_encoding=*file_filter=*initial_directory=*prompt_on_overwrite='X'CHANGINGfilename=lv_filename9/

23、14path= lv_pathfullpath= lv_fullpathEXCEPTIONScntl_error= 1error_no_gui= 2not_supported_by_gui= 3invalid_default_file_name= 4OTHERS= 5.IFsy- subrc<>0.EXIT.ENDIF.lv_result=cl_gui_frontend_services=>directory_exist(directory=lv_path).IFlv_result<>'X' .MESSAGEe001WITH' 文件路径不存

24、在' .ENDIF.lv_originalpath=lv_path .lv_orfilename=lv_filename.CALL FUNCTION 'ZBAPI_DOCUMENT_CHECKOUTVIEW2'EXPORTINGdocumenttype=con_dokardocumentnumber=wa_file- doc_iddocumentpart='000'documentversion='00'documentfile=ls_documentfileoriginalpath=lv_originalpathorfilename=l

25、v_orfilenameIMPORTINGreturn=ls_return.IFls_returnISNOT INITIAL .MESSAGEIDls_return- idTYPEls_return- typeNUMBER ls_return - numberWITH ls_return- message_v1ls_return- message_v2ls_return-message_v3ls_return- message_v4.ELSE.10/14MESSAGEs001WITH' 下载成功 ' .ENDIF.ENDFORM."FRM_DOWN_FILE*&

26、;-*&FormFRM_DELETE_FILE*&-*text*-*->p1text*<-p2text*-*FORM frm_delete_file.DATA:lv_lineTYPE i ,ls_returnTYPEbapiret2.CALL FUNCTION 'POPUP_TO_CONFIRM'EXPORTINGtitlebar='消息提示'text_question=' 是否删除文档 'text_button_1=' 是 'text_button_2=' 否 'default_but

27、ton='1'display_cancel_button=''start_column=25start_row=6*popup_type='ICON_MESSAGE_ERROR'IMPORTINGanswer=lv_answerEXCEPTIONStext_not_found=1OTHERS=2.IFlv_answer<>'1' .MESSAGEs001WITH' 用户取消操作 'DISPLAYLIKE'E' .EXIT.ENDIF.11/14GET CURSOR LINElv_line

28、.READ TABLE it_fileINTOwa_fileINDEXlv_line.CALL FUNCTION 'BAPI_DOCUMENT_ENQUEUE'EXPORTINGdocumenttype=con_dokardocumentnumber=wa_file- doc_iddocumentpart='000'documentversion='00'IMPORTINGreturn=ls_return.IFls_returnISNOT INITIAL .MESSAGEIDls_return- idTYPEls_return- typeNUMB

29、ER ls_return - numberWITH ls_return - message_v1 ls_return - message_v2 ls_return - message_v3 ls_return - message_v4.ENDIF.CALL FUNCTION 'BAPI_DOCUMENT_DELETE_DIRECT'EXPORTINGdocumenttype=con_dokardocumentnumber=wa_file- doc_iddocumentpart='000'documentversion='00'IMPORTINGreturn=ls_return.CALL FUNCTION 'BAPI_DOCUMENT_DEQUEUE'EXPORTINGdocumenttype=con_dokardocumentnumber=wa_file - doc_iddocumentpart='

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论