首页 > 解决方案 > 通过 Web 服务上传 DMS 文档

问题描述

有人可以解释如何通过休息服务上传 DMS 文件。我正在使用 BAPI_DOCUMENT_CREATE2 就像一些指南建议的那样,但我看不到如何在服务器上获取文件。

如果您查看我在下面链接的指南,他会传递文件名,但不会传递内容。谁能解释一下他是如何获得内容的?

顺便说一句,我不能使用网关,所以我只使用 SICF 服务。

https://blogs.sap.com/2016/08/22/upload-document-into-dms-server-using-net-weaver-gateway/

"Variables
DATA: LS_DOCDATA     TYPE BAPI_DOC_DRAW2.
DATA: LS_OBJECTLINK  TYPE BAPI_DOC_DRAD.
DATA: LT_OBJECTLINKS TYPE TABLE OF BAPI_DOC_DRAD.
DATA: LS_OBJECTDESCR TYPE BAPI_DOC_DRAT.
DATA: LT_OBJECTDESCR TYPE TABLE OF BAPI_DOC_DRAT.
DATA: LS_OBJECTFILE  TYPE BAPI_DOC_FILES2.
DATA: LT_OBJECTFILES TYPE TABLE OF BAPI_DOC_FILES2.
DATA: LV_DOCTYPE     TYPE DOKAR.
DATA: LV_DOCNUMBER   TYPE DOKNR.
DATA: LV_DOCPART     TYPE DOKTL_D.
DATA: LV_DOCVERSION  TYPE DOKVR.

" SET VALUES
LS_DOCDATA-DOCUMENTTYPE = 'DRW'.
LS_DOCDATA-DOCUMENTVERSION = '00'.
LS_DOCDATA-DOCUMENTPART = '000'.
LS_DOCDATA-LABORATORY = '001'.

LS_OBJECTDESCR-DESCRIPTION  = 'test dms doc'.
LS_OBJECTDESCR-LANGUAGE     = 'E'.
LS_OBJECTDESCR-LANGUAGE_ISO = 'EN'.
APPEND LS_OBJECTDESCR TO LT_OBJECTDESCR.

LS_OBJECTFILE-ORIGINALTYPE      = '1'.
LS_OBJECTFILE-SOURCEDATACARRIER = 'SAP-SYSTEM'.
LS_OBJECTFILE-CREATED_BY        = SY-UNAME
LS_OBJECTFILE-DOCFILE           =  'test'.
LS_OBJECTFILE-WSAPPLICATION     = 'JPG'.
APPEND LS_OBJECTFILE TO LT_OBJECTFILES.

LS_OBJECTLINK-OBJECTTYPE    = 'EQUI'.
LS_OBJECTLINK-OBJECTKEY     = '000000000210100004'.
APPEND LS_OBJECTLINK TO LT_OBJECTLINKS.

" CREATE ATTACHMENT
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
  EXPORTING
    DOCUMENTDATA         = LS_DOCDATA
    HOSTNAME             = SY-HOST
    PF_FTP_DEST          = 'SAPFTPA'
    PF_HTTP_DEST         = 'SAPHTTP'
  IMPORTING
    DOCUMENTTYPE         = LV_DOCTYPE
    DOCUMENTNUMBER       = LV_DOCNUMBER
    DOCUMENTPART         = LV_DOCPART
    DOCUMENTVERSION      = LV_DOCVERSION
    RETURN               = LT_RETURN
  TABLES
    DOCUMENTDESCRIPTIONS = LT_OBJECTDESCR
    OBJECTLINKS          = LT_OBJECTLINKS
    DOCUMENTFILES        = LT_OBJECTFILES.

IF SY-SUBRC <> 0.
  MESSAGE 'Error uploading attachment' TYPE 'E'.
ENDIF.

" COMMIT
COMMIT WORK.

标签: abapnetweaver

解决方案


您应该给出文件路径和存储类别。这应该可以解决问题。

LS_OBJECTFILE-ORIGINALTYPE      = '001'. "**
LS_OBJECTFILE-storagecategory   = 'DMS_C1_ST'.. "**
LS_OBJECTFILE-CREATED_BY        = SY-UNAME
LS_OBJECTFILE-DOCFILE           =  IV_SLUG. "path that comes from the OData service.
LS_OBJECTFILE-WSAPPLICATION     = 'JPG'.
APPEND LS_OBJECTFILE TO LT_OBJECTFILES.

推荐阅读