cancel
Showing results for 
Search instead for 
Did you mean: 

create document using BAPI_DOCUMENT_CREATE2

Former Member
0 Kudos

Hi Experts,

i am using BAPI_DOCUMENT_CREATE2 to create document like transaction CV01N. When i create it through CV01N, it is fine and I can see the attached file.

but when i run my program, the document is created without attached file. can anyone have some solutions for me? following is the code.

REPORT ztest_fw.

DATA:

lv_docnum TYPE BAPI_DOC_AUX-DOCNUMBER,

LW_DOCDATA TYPE BAPI_DOC_DRAW2,

LW_RETURN TYPE BAPIRET2,

LW_DSP TYPE BAPI_DOC_DRAT,

LW_OBJLINK TYPE BAPI_DOC_DRAD,

LW_DOCFILE TYPE BAPI_DOC_FILES2,

LT_DSP TYPE STANDARD TABLE OF BAPI_DOC_DRAT,

LT_OBJLINK TYPE STANDARD TABLE OF BAPI_DOC_DRAD,

LT_DOCFILE TYPE STANDARD TABLE OF BAPI_DOC_FILES2.

START-OF-SELECTION.

CLEAR LW_DOCDATA.

LW_DOCDATA-DOCUMENTTYPE = 'DRW'.

LW_DOCDATA-documentversion = '00'.

LW_DOCDATA-documentpart = '000'.

LW_DOCDATA-laboratory = '001'.

CLEAR LW_DSP.

LW_DSP-DESCRIPTION = 'Test created by Fang wei-SD'.

LW_DSP-LANGUAGE = 'E'.

APPEND LW_DSP TO LT_DSP.

LW_DOCFILE-DOCFILE = 'D:\Function study\Inbound & Outbound IDoc user exits.pdf'.

  • LW_DOCFILE-ORIGINALTYPE = '1'.

LW_DOCFILE-STORAGECATEGORY = 'SAP-SYSTEM'.

  • LW_DOCFILE-STORAGECATEGORY = 'DMS_C1_ST'.

LW_DOCFILE-WSAPPLICATION = 'PDF'.

LW_DOCFILE-LANGUAGE = 'E'.

LW_DOCFILE-CHECKEDIN = 'X'.

LW_DOCFILE-ACTIVE_VERSION = 'X'.

APPEND LW_DOCFILE TO LT_DOCFILE.

CLEAR LW_OBJLINK.

LW_OBJLINK-OBJECTTYPE = 'IFLOT'.

LW_OBJLINK-OBJECTKEY = '1350'.

LW_OBJLINK-DOCUMENTDIRECTION = 'X'.

APPEND LW_OBJLINK TO LT_OBJLINK.

CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'

EXPORTING

DOCUMENTDATA = LW_DOCDATA

IMPORTING

DOCUMENTNUMBER = lv_docnum

RETURN = LW_RETURN

TABLES

DOCUMENTDESCRIPTIONS = LT_DSP

OBJECTLINKS = LT_OBJLINK

DOCUMENTFILES = LT_DOCFILE.

IF LW_RETURN-TYPE CA 'EA'.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

MESSAGE ID LW_RETURN-ID

TYPE LW_RETURN-TYPE

NUMBER LW_RETURN-NUMBER.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

.

CLEAR lw_return.

CALL FUNCTION 'BAPI_DOCUMENT_CHECKIN2'

EXPORTING

DOCUMENTTYPE = 'DRW'

DOCUMENTNUMBER = lv_docnum

DOCUMENTPART = '000'

DOCUMENTVERSION = '00'

IMPORTING

RETURN = lw_return

TABLES

DOCUMENTFILES = lt_docfile

.

IF LW_RETURN-TYPE CA 'EA'.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

MESSAGE ID LW_RETURN-ID

TYPE LW_RETURN-TYPE

NUMBER LW_RETURN-NUMBER.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

.

WRITE: / 'document number = ', lv_docnum.

ENDIF.

ENDIF.

Accepted Solutions (0)

Answers (1)

Answers (1)

christoph_hopf
Advisor
Advisor
0 Kudos

Hi Wei,

based on your description I would kindly ask you to check if the flag 'USE KPRO' is set for the document type 'DRW'. Because as storage category you hand over the value 'SAP-SYSTEM' and this is not a KPRO storage category. So if the 'USE KPRO' flag is set then this original won't be displayed in CV03N.

Is there maybe a difference in display between transaction CV02N and CV03N?

Best regards,

Christoph

Former Member
0 Kudos

Hi,

that problem has been solved. but new one comes out.

my program works fine when execute on line. but it failed when execute in background. it always said that "Error while checking in and storing: &"

ID 26

number 253

does anyone face the same problem?