SAPABAPDMS文档管理开发.docx

上传人:b****5 文档编号:7423690 上传时间:2023-01-23 格式:DOCX 页数:18 大小:56.27KB
下载 相关 举报
SAPABAPDMS文档管理开发.docx_第1页
第1页 / 共18页
SAPABAPDMS文档管理开发.docx_第2页
第2页 / 共18页
SAPABAPDMS文档管理开发.docx_第3页
第3页 / 共18页
SAPABAPDMS文档管理开发.docx_第4页
第4页 / 共18页
SAPABAPDMS文档管理开发.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

SAPABAPDMS文档管理开发.docx

《SAPABAPDMS文档管理开发.docx》由会员分享,可在线阅读,更多相关《SAPABAPDMS文档管理开发.docx(18页珍藏版)》请在冰豆网上搜索。

SAPABAPDMS文档管理开发.docx

SAPABAPDMS文档管理开发

SAP-ABAP-DM文S档管理开发

SAPABAPDMS文档开发

1.用到的BAPI:

BAPI_DOCUMENT_CREATE2,

ZBAPI_DOCUMENT_CHECKOUTV,IEWB2API_DOCUMENT_DELETE_DIRECT

2.

a)

b)

c)

其中ZBAPI_DOCUMENT_CHECKOUTV是IE从W标2准的

BAPI_DOCUMENT_CHECKOUTV改IE写W(2标准的在导出文档时,会自定义一个文档名称);改动代码如下:

新增函数组ZMM_CVBAPI

将LCVBAPITOP的定义对象拷贝到LZMM_CVBAPITOP

在LZMMCVBAPITO最P后添加如下:

INCLUDElcvbapif01.

INCLUDElcvbapif02.

INCLUDElcvbapif03.

INCLUDElcvbapif04.

INCLUDElcvbapif05.

INCLUDElcvbapif06.

INCLUDElcvbapif07.

d)拷贝函数BAPI_DOCUMENT_CHECKOUTVIEW2到新ZBAPI_DOCUMENT_CHECKOUTV,IE添W加2IMPORT参ORFILENAM,E并修改代码。

 

3.以下为参考代码:

*文档类型

CONSTANT:

Scon_dokar(3)VALUE'ZQX'.

*存储类别

CONSTANT:

Scon_storage_cat(10)VALUE'DMS_C1_ST'.

FORMfrmcreatfile

DATA:

lvrc

TYPEi,

ltfiletable

TYPEfiletableWITHHEADERLINE.

DATA:

lv_filenameTYPE

filep,

lv_path

TYPEfilep.

DATA:

lvdocnumber

TYPEbapidocaux-docnumber.

DATA:

lsdocumentdata

TYPEbapidocdraw2,

lsdocumentdataxTYPEbapidocdrawx2,"bapidocdra

w2x,

lt_objectlinks

TYPETABLEOFbapi_doc_dradWIT

HHEADERLINE,

lt_documentfilesTYPETABLEOFbapi_doc_files2WITHHEADERLINE,

ls_returnTYPEbapiret2.

DATA:

t_tdwpTYPETABLEOFtdwpWITHHEADERLINE.

DATA:

name

TYPEdraw-filep

ext(64)TYPEc.

IFltfiletable[]

ISINITIAL.

EXIT.

ENDIF.

READTABLElt_filetable

CALLMETHODclguifrontendservices=>fileopendialog

EXPORTING

windowtitle

='选择文件'

defaultextension

CHANGING

 

filetable

=ltfiletable[]

rc

=lv_rc

EXCEPTIONS

fileopendialogfailed

=1

cntlerror

=

2

errornogui

=3

notsupportedbygui

=4

OTHERS=9.

 

*解析路径文件

PERFORMfrmsplitpathfileUSINGltfiletable

-filename

CHANGINGlv_filenamelv_path.

INDEX1.

name=lv_filename.

WHILEnameCA'.'.

SPLITnameAT'.'INTOextname.ENDWHIL.E

CONCATENATE'.'nameINTOname.TRANSLATEnameTOLOWERCASE.

CALLFUNCTION'CV120_DOC_GET_APPL'

EXPORTING

pffile

=name

TABLES

ptx_tdwp

=t_tdwp.

IFttdwp[]IS

INITIAL.

MESSAGEs001

WITH'

不支持此类型文件'.

ENDIF.

READTABLEt_tdwpINDEX1.

lsdocumentdata

-documenttype

=condokar.

lsdocumentdata

-documentversion

='00'.

lsdocumentdata

-documentpart

='000'.

lsdocumentdata

-description

='凭证描述'.

lsdocumentdata

-username

=sy-uname.

ls_documentdata-ecnumber='123'.

 

READTABLEt_tdwpINDEX1.

ltdocumentfiles

-documenttype

='ZQX'.

ltdocumentfiles

-storagecategory

=constoragecat.

ltdocumentfiles

-wsapplication

=ttdwp-dappl.

ltdocumentfiles

-docpath

=lvpath.

ltdocumentfiles

-docfile

=lvfilename.

ltdocumentfiles

-checkedin

='X'.

APPENDltdocumentfiles.

 

CALLFUNCTION'BAPIDOCUMENTCREAT

E2'

EXPORTIN

G

documentdata

=lsdocumentdata

IMPORTIN

G

documentnumber=

lvdocnumber

return=lsreturn

TABLESobjectlinks=lt_objectlinksdocumentfiles=lt_documentfiles.

IFls_return-type='E'ORlv_docnumberISINITIAL.*MESSAGEe001WITH'上传文件出错,请联系管理员'.

MESSAGEIDls_return-idTYPEls_return-typeNUMBERls_return-number

WITHls_return-message_v1ls_return-message_v2ls_return-message_v3ls_return-message_v4.

ELSE.

CALLFUNCTION'BAPI_TRANSACTION_COMMI.T'MESSAGEs001WITH'上传成功'.

ENDIF.

wafile

-docid=

lv_docnumber.

wafile

-dname=

lvfilename.

wafile

-ykplanno

=waxqjhh-ykplanno.

wafile

-dtype=

name.

wa_file-credat=sy-datum.

wa

file

-ctime=

sy-

uzeit.

wa

file

-cname=

sy-

uname.

APPENDwa_fileTOit_file

 

IFwaxqjhh-ykplannoIS

NOTINITIAL.

MODIFYztmmxqjhfile

FROMwafile.

COMMITWORKANDWAIT.

ENDIF.

ENDFOR.M"FRM_UPLOAD_FILE

*&

*

*&Formfrm_split_path_file

*&

*

*text拆分路径和文档名

FORMfrm_split_path_fileUSINGuv_fullnameCHANGINGcv_filenamecvpathname.

DATA:

lt_matchTYPEmatch_result_tab,ls_matchLIKELINEOFlt_match.

FINDALLOCCURRENCESOF'\'INuv_fullnameINCHARACTERMO

DERESULTSltmatch

IFNOTltmatch

IS

INITIAL.

LOOPATlt_

match

INTOls_match.

ENDLOO.P

ADD1TO

lsmatch-offset.

cv_pathname

=uv_

fullname(ls_match-offset).

cvfilename

=uv

fullname+lsmatch

-offset.

ENDIF.

ENDFOR.M

*&

*

*&FormFRM_READ_FILE

*&

*

*text

*

*

-->

p1

text

*

<--

p2

text

 

FORMfrm_read_file

DATA:

lvfileTYPEstring

VALUE'C:

\XQJH1'

DATA:

lvpathTYPEstring.

DATA:

lvresultTYPEabapbool.

DATA:

lvrcTYPEi.

DATA:

lvlineTYPEi.

DATA:

lvoriginalpathTYPE

bapidocaux-filename,

lv_orfilename

TYPEbapi_doc_aux-filename.

DATA:

lsdocumentfileTYPE

bapidocfiles2,

ls_returnTYPEbapiret2

lv_result=cl_gui_frontend_services=>directory_exist(directory=lv_file).

IFlvresult<>'X'.

CALLMETHODclguifrontendservices

=>directorycreate

EXPORTING

directory

=lvfile

CHANGING

rc=lvr

c

EXCEPTIONS

directorycreatefailed

=1

cntl_error

=2

errornogui

directory_access_denied=

4

directoryalreadyexists

=5

pathnotfound

=6

unknown_error

=7

not_supported_by_gui=8

wrong_parameter=9

OTHERS=10.IFlv_rc<>0ORsy-subrc<>0.

MESSAGEe001WITH'文件路径拒绝访问'.

ENDIF.

ENDIF.

GETCURSORLINE

lvline.

READTABLEit_file

INTO

wa_file

INDEXlv_line.

CONCATENATElv_file'\'INTOlv_originalpath.lv_orfilename=wa_file-dname.

CALLFUNCTION'ZBAPI_DOCUMENT_CHECKOUTVIEW2'EXPORTING

documenttype

=condokar

documentnumber

=wafile-docid

documentpart

='000'

documentversion

='00'

documentfile

=lsdocumentfile

originalpath

=lv_originalpath

orfilename

=lvorfilename

IMPORTING

return

=ls_return.

IFls_returnISNOT

INITIAL.

MESSAGEIDls_return-idTYPEls_return-typeNUMBERls_ret

urn-number

WITHlsreturn-messagev1lsreturn-messagev2lsreturn

-message_v3ls_return-message_v4.

ENDIF.

 

CONCATENATElv_originalpath

lv_orfilename

INTO

lv_path.

CALLMETHODcl_gui_frontend_

services=>execute

EXPORTING

document

=

lvpath

synchronous

='X'

EXCEPTIONS

cntlerror

=1

errornogui

=2

badparameter

=3

file_not_found

=

4

pathnotfound

=

5

fileextensionunknown

=6

errorexecutefailed

=7

synchronousfailed

=8

not_supported_by_gui

=9

OTHERS

=

10.

IFsy-subrc<>0.

*Implementsuitableerror

handlinghere

MESSAGEs001WITH'打开文档失败'

DISPLAY

LIKE'E'.

ENDIF.

ENDFOR.M"FRM_READ_FILE

*&

*-->p1text

*<--p2text

*

FORMfrm_down_file

DATA:

lvfilenameTYPEstring.

DATA:

lvpath

TYPEstring.

DATA:

lvpathc

(100)TYPE

c.

DATA:

lvfullpath

TYPEstring.

DATA:

lvresult

TYPEabapbool.

DATA:

lv_rcTYPEi.

DATA:

lv_line

TYPEi.

DATA:

lvoriginalpath

TYPE

bapidocaux-filename,

lv_orfilename

TYPEbapi_doc_aux-filename.

DATA:

lsdocumentfile

TYPE

bapidocfiles2,

ls_returnTYPEbapiret2

GETCURSORLINE

lvline.

READTABLEit_file

INTO

wa_file

INDEXlv_line.

lv_filename=wa_file-dname.

CALLMETHODcl_gui_frontend_services=>file_save_dialogEXPORTING

windowtitle='选择位置

*

defaultextension=

defaultfilename

=

lvfilename

*

with_encoding

=

*

filefilter

=

*

initialdirectory=

*

promptonoverwrite=

'X'

CHANGING

filename

=lv_filename

path

=lvpath

fullpath

lv_fullpath

EXCEPTIONS

cntlerror

=1

errornogui

=2

notsupportedbygui

=

3

invaliddefaultfilename

=4

OTHERS

=5.

IFsy

-subrc<>0.

EXIT.

ENDIF.

lv_result=cl_gui_frontend_services=>directory_exist(directory=lvpath).

IFlv_result<>'X'.MESSAGEe001WITH'文件路径不存在'.

ENDIF.

lvoriginalpath

=lvpath.

lvorfilename

=lvfilename.

CALLFUNCTION'ZBAPI_DOCUMENT_CHECKOUTVIEW2'EXPORTING

documenttype

=condokar

documentnumber

=wafile-docid

documentpart

='000'

documentversion

='00'

documentfile

=ls_documentfile

originalpath

=lvoriginalpath

orfilename

=lvorfilename

IMPORTING

return=ls_return

IFls_returnISNOTINITIAL.

MESSAGEIDls_return-idTYPEls_return-typeNUMBERls_return-number

WITHls_return-message_v1ls_return-message_v2ls_return-message_v3ls_return-message_v4.

ELSE.

MESSAGEs001WITH'下载成功'.

ENDIF.

ENDFOR.M

"FRMDOWNF

ILE

*&

*

*&

Form

FRMDELETEFILE

*&

text

*-->p1text

*<--p2text

*

*

FORMfrm_delete_file.

DATA:

lv_lineTYPEi,

ls_returnTYPEbapiret2.

titlebar

='消息提示'

textquestion

='是否删除文档'

CALLFUNCTION'POPUP_TO_CONFIRM'

textbutton1

='是'

textbutton2

='否'

defaultbutton

='1'

displaycancelbutton

startcolumn

=25

startrow=

6

popup_type

IMPORTING

'ICON_MESSAGE_ERROR'

answer

lv_answer

EXCEPTIONS

text_not_found

OTHERS

2.

IFlvanswer<>'1'.

MESSAGEs001WITH'用户取消操作'DISPLAYLIKE'E'.

EXIT.

GETCURSORLINE

lvline.

READTABLEit_file

INTO

wa_file

INDEXlv_line.

ENDIF.

documenttype

=con

dokar

documentnumber

=wafile

-docid

documentpart

='000'

documentversion

=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1