Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Bapi_document_create2.

Former Member
0 Likes
2,057

Hi Experts,

I am trying to create a document for DMS(Document Management System) and i have written code and i am able to create document and can be seen in "CV03n" but i am not able to create attachment for that particular Document from presentation server which is in C Drive.Below is the code please help me in figuring out the correct solution.

 

DATA: LS_DOC    LIKE BAPI_DOC_DRAW2,

       LS_RETURN LIKE BAPIRET2.

DATA: LF_DOCTYPE    LIKE BAPI_DOC_DRAW2-DOCUMENTTYPE,

       LF_DOCNUMBER  LIKE BAPI_DOC_DRAW2-DOCUMENTNUMBER,

       LF_DOCPART    LIKE BAPI_DOC_DRAW2-DOCUMENTTYPE,

       LF_DOCVERSION LIKE BAPI_DOC_DRAW2-DOCUMENTTYPE.

DATA: LT_FILES      LIKE BAPI_DOC_FILES2 OCCURS 0 WITH HEADER LINE,

       LT_DRAT       LIKE BAPI_DOC_DRAT OCCURS 0 WITH HEADER LINE,

       LT_DRAD       LIKE BAPI_DOC_DRAD OCCURS 0 WITH HEADER LINE.

LS_DOC-DOCUMENTTYPE    = 'DRW'.

LS_DOC-DOCUMENTVERSION = '00'.

LS_DOC-DOCUMENTPART    = '000'.

LS_DOC-DOCUMENTNUMBER  = '*'.

LS_DOC-STATUSEXTERN    = 'WR'.

LS_DOC-LABORATORY      = '002'.

LS_DOC-STATUSLOG = 'Test'.

REFRESH LT_FILES.

CLEAR LT_FILES.

LT_FILES-DOCUMENTTYPE = 'DRW'.

LT_FILES-DOCUMENTPART = '000'.

LT_FILES-DOCUMENTVERSION = '00'.

LT_FILES-SOURCEDATACARRIER = 'INTERNET'.

LT_FILES-STORAGECATEGORY = 'VAULT1'.

LT_FILES-DOCPATH = 'C:\temp\'.

LT_FILES-DOCFILE = 'developer05.pdf'.

LT_FILES-WSAPPLICATION = 'PDF'.

APPEND LT_FILES.

CLEAR LT_DRAT.

REFRESH LT_DRAT.

LT_DRAT-LANGUAGE = 'EN'.

LT_DRAT-DESCRIPTION = 'Testing document from bapi'.

APPEND LT_DRAT.

CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'

   EXPORTING

     DOCUMENTDATA         = LS_DOC

   IMPORTING

     DOCUMENTTYPE         = LS_DOC-DOCUMENTTYPE

     DOCUMENTNUMBER       = LS_DOC-DOCUMENTNUMBER

     DOCUMENTPART         = LS_DOC-DOCUMENTPART

     DOCUMENTVERSION      = LS_DOC-DOCUMENTVERSION

     RETURN               = LS_RETURN

   TABLES

     DOCUMENTDESCRIPTIONS = LT_DRAT

     DOCUMENTFILES        = LT_FILES.

*BREAK-POINT.

IF LS_RETURN-TYPE CA 'EA'.

   ROLLBACK WORK.

   WRITE : LS_RETURN-MESSAGE.

ELSE.

   CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

     EXPORTING

       WAIT = 'X'.

ENDIF.

DATA: WA_DOKNR TYPE DOKNR.

GET PARAMETER ID 'CV1' FIELD WA_DOKNR.

CALL FUNCTION 'BAPI_DOCUMENT_CHECKIN2'

   EXPORTING

     DOCUMENTTYPE    = 'DRW'

     DOCUMENTNUMBER  = WA_DOKNR

     DOCUMENTPART    = '000'

     DOCUMENTVERSION = '00'

     HOSTNAME        = ''

     STATUSINTERN    = ''

     STATUSEXTERN    = ''

     STATUSLOG       = ''

   IMPORTING

     RETURN          = LS_RETURN

   TABLES

     DOCUMENTFILES   = LT_FILES.

WRITE LS_DOC-DOCUMENTNUMBER.


Thanks.

4 REPLIES 4
Read only

former_member201275
Active Contributor
0 Likes
1,713

I think your LT_FILES-STORAGECATEGORY should be = 'DMS_C1_ST', and not 'VAULT1'?

Read only

0 Likes
1,713

Hi Glen,

As you have suggested i have tried but it is not working.

Read only

former_member201275
Active Contributor
0 Likes
1,713

another idea...

try put your complete path in DOCFILE i.e.

LT_FILES-DOCPATH = 'C:\temp\'.

LT_FILES-DOCFILE = ''C:\temp\developer05.pdf'.

(found similar example on our system).

Read only

0 Likes
1,713

As you have suggested i have tried but it is not working.