‎2011 Jan 13 12:45 PM
Hi guys , I am uploading multiple files in DMS using bapi_document_create2. It is working perfectly fine.
But the problem is when i want to download particular file from multiple uploaded files . i am not able to download selected files but a whole bunch of files of 'SAME' extension. Like if i have uploaded two doc files , two xls file. now when i click on single xls file to download two files are being download.
Kindly help.
‎2011 Jan 22 6:59 AM
The Problem has been Solved.... Posting the solution..
REPORT ZDHRUVDOWNLOADTEST.
DATA : L_PFX_FILE TYPE DRAW-FILEP.
DATA : WA_PS_COUNT_DF TYPE DMS_CHECKOUT_DEF,
WA_PS_DOC_FILE TYPE DMS_DOC_FILE,
WA_DRAW TYPE DRAW,
WA_DMS_PHIO TYPE DMS_PHIO,
WA_FRONTEND TYPE DMS_FRONTEND_DATA,
WA_FILE TYPE DRAW-FILEP,
IT_DOC_FILE TYPE STANDARD TABLE OF CVAPI_DOC_FILE,
WA_DOC_FILE TYPE CVAPI_DOC_FILE,
WA_PSX_DRAW TYPE DRAW,
WA_PATH TYPE DRAW-FILEP,
WA_CHECK1 TYPE DRAW-DAPPL.
DATA : WA_L_F TYPE DBMSGORA-FILENAME,
WA_FILENAME TYPE SDBAH-ACTID,
WA_EXT TYPE SDBAD-FUNCT.
DATA TEMP TYPE DRAW-FILEP.
*BREAK-POINT.
CALL FUNCTION 'CVAPI_DOC_GETDETAIL'
EXPORTING
PF_DOKAR = 'ZMM'
PF_DOKNR = '0000000000000010000000056'
PF_DOKVR = '00'
PF_DOKTL = '000'
PF_READ_KPRO = 'X'
* PF_READ_DRAT = 'X'
IMPORTING
PSX_DRAW = WA_PSX_DRAW
* PFX_DESCRIPTION =
TABLES
PT_FILES = IT_DOC_FILE
* PT_COMP =
* PT_DRAP =
* PT_DRAD =
* PT_DRAT =
EXCEPTIONS
NOT_FOUND = 1
NO_AUTH = 2
ERROR = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
BREAK-POINT.
LOOP AT IT_DOC_FILE INTO WA_DOC_FILE.
CALL FUNCTION 'SPLIT_FILENAME' " to get the file extention
EXPORTING
LONG_FILENAME = WA_DOC_FILE-FILENAME
IMPORTING
PURE_FILENAME = WA_FILENAME
PURE_EXTENSION = WA_EXT
.
TRANSLATE WA_EXT TO UPPER CASE.
WA_CHECK1 = WA_EXT.
CONCATENATE WA_FILENAME '.' WA_EXT INTO WA_FILENAME.
WA_PATH = WA_FILENAME.
CONCATENATE 'abc' WA_DOC_FILE-APPNR into TEMP.
CALL FUNCTION 'CV120_DOC_GET_FILE'
EXPORTING
PF_DTTRG = 'DEFAULT'
* PF_PATH = 'C:\DOCUMENTS AND SETTINGS\AUDITOR\DESKTOP\'
PF_FILE = TEMP
PF_DAPPL = WA_DOC_FILE-DAPPL "WA_check1
* PF_MASK1 =
PF_MASK2 = '*.*'
PF_MODE = 'S'
* PF_TITLE = ''
* PF_HOSTNAME = ' '
IMPORTING
PFX_FILE = L_PFX_FILE
* PFX_MASK_CHANGE =
EXCEPTIONS
WRONG_APPL = 1
ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WA_L_F = L_PFX_FILE.
*BREAK-POINT.
CLEAR : WA_FILENAME.
CLEAR : WA_EXT.
CALL FUNCTION 'SPLIT_FILENAME' " to get the file extention
EXPORTING
LONG_FILENAME = WA_L_F
IMPORTING
PURE_FILENAME = WA_FILENAME
PURE_EXTENSION = WA_EXT.
WA_PS_COUNT_DF-KPRO_USE = 'X'.
WA_PS_COUNT_DF-COMP_GET = 'X'.
WA_PS_DOC_FILE-LANGU = 'EN'.
WA_PS_DOC_FILE-FILENAME = WA_L_F.
WA_PS_DOC_FILE-DAPPL = WA_DOC_FILE-DAPPL."WA_EXT.
WA_DRAW-DOKAR = 'ZMM'.
WA_DRAW-DOKNR = '10000000055'.
WA_DRAW-DOKVR = '00'.
WA_DRAW-DOKTL = '000'.
WA_DRAW-DOKST = 'FR'.
WA_DMS_PHIO-LO_INDEX = WA_DOC_FILE-APPNR.
WA_DMS_PHIO-LO_OBJID = WA_DOC_FILE-LO_OBJID.
WA_DMS_PHIO-PH_OBJID = WA_DOC_FILE-PH_OBJID.
WA_DMS_PHIO-PH_INDEX = WA_DOC_FILE-APPNR.
WA_DMS_PHIO-LANGU = 'EN'.
WA_DMS_PHIO-STATUS_NR = '000'.
WA_DMS_PHIO-FILENAME = WA_DOC_FILE-FILENAME.
WA_DMS_PHIO-ACTIVE_VERSION = 'X'.
WA_DMS_PHIO-DELETE_FLAG = 'X'.
WA_DMS_PHIO-PROTECTED = 'X'.
WA_DMS_PHIO-DEFAULT_LANGU = 'X'.
WA_DMS_PHIO-FILE_ID = WA_DOC_FILE-FILE_ID.
WA_DMS_PHIO-STORAGE_CAT = 'ZDMS'.
WA_FRONTEND-FRONTEND_TYPE = 'PC'.
WA_FRONTEND-HOSTNAME = 'DEFAULT'.
WA_FRONTEND-WINSYS = ' WN32'.
CALL FUNCTION 'CV120_DOC_CHECKOUT_VIEW'
EXPORTING
PS_COUT_DEF = WA_PS_COUNT_DF
PF_TCODE = 'CV03'
PS_DOC_FILE = WA_PS_DOC_FILE
PS_DRAW = WA_DRAW
PS_PHIO = WA_DMS_PHIO
PS_FRONTEND = WA_FRONTEND
PF_STD_URL = 'X'
IMPORTING
PFX_FILE = WA_FILE
* PFX_URL =
* PFX_USE_LAST =
* TABLES
* PT_COMPONENTS =
* PT_DRAZ =
* PTX_CONTENT =
EXCEPTIONS
ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.Some Variables and code is useless in this u just need to rectify... thanks
‎2011 Jan 22 6:59 AM
The Problem has been Solved.... Posting the solution..
REPORT ZDHRUVDOWNLOADTEST.
DATA : L_PFX_FILE TYPE DRAW-FILEP.
DATA : WA_PS_COUNT_DF TYPE DMS_CHECKOUT_DEF,
WA_PS_DOC_FILE TYPE DMS_DOC_FILE,
WA_DRAW TYPE DRAW,
WA_DMS_PHIO TYPE DMS_PHIO,
WA_FRONTEND TYPE DMS_FRONTEND_DATA,
WA_FILE TYPE DRAW-FILEP,
IT_DOC_FILE TYPE STANDARD TABLE OF CVAPI_DOC_FILE,
WA_DOC_FILE TYPE CVAPI_DOC_FILE,
WA_PSX_DRAW TYPE DRAW,
WA_PATH TYPE DRAW-FILEP,
WA_CHECK1 TYPE DRAW-DAPPL.
DATA : WA_L_F TYPE DBMSGORA-FILENAME,
WA_FILENAME TYPE SDBAH-ACTID,
WA_EXT TYPE SDBAD-FUNCT.
DATA TEMP TYPE DRAW-FILEP.
*BREAK-POINT.
CALL FUNCTION 'CVAPI_DOC_GETDETAIL'
EXPORTING
PF_DOKAR = 'ZMM'
PF_DOKNR = '0000000000000010000000056'
PF_DOKVR = '00'
PF_DOKTL = '000'
PF_READ_KPRO = 'X'
* PF_READ_DRAT = 'X'
IMPORTING
PSX_DRAW = WA_PSX_DRAW
* PFX_DESCRIPTION =
TABLES
PT_FILES = IT_DOC_FILE
* PT_COMP =
* PT_DRAP =
* PT_DRAD =
* PT_DRAT =
EXCEPTIONS
NOT_FOUND = 1
NO_AUTH = 2
ERROR = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
BREAK-POINT.
LOOP AT IT_DOC_FILE INTO WA_DOC_FILE.
CALL FUNCTION 'SPLIT_FILENAME' " to get the file extention
EXPORTING
LONG_FILENAME = WA_DOC_FILE-FILENAME
IMPORTING
PURE_FILENAME = WA_FILENAME
PURE_EXTENSION = WA_EXT
.
TRANSLATE WA_EXT TO UPPER CASE.
WA_CHECK1 = WA_EXT.
CONCATENATE WA_FILENAME '.' WA_EXT INTO WA_FILENAME.
WA_PATH = WA_FILENAME.
CONCATENATE 'abc' WA_DOC_FILE-APPNR into TEMP.
CALL FUNCTION 'CV120_DOC_GET_FILE'
EXPORTING
PF_DTTRG = 'DEFAULT'
* PF_PATH = 'C:\DOCUMENTS AND SETTINGS\AUDITOR\DESKTOP\'
PF_FILE = TEMP
PF_DAPPL = WA_DOC_FILE-DAPPL "WA_check1
* PF_MASK1 =
PF_MASK2 = '*.*'
PF_MODE = 'S'
* PF_TITLE = ''
* PF_HOSTNAME = ' '
IMPORTING
PFX_FILE = L_PFX_FILE
* PFX_MASK_CHANGE =
EXCEPTIONS
WRONG_APPL = 1
ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WA_L_F = L_PFX_FILE.
*BREAK-POINT.
CLEAR : WA_FILENAME.
CLEAR : WA_EXT.
CALL FUNCTION 'SPLIT_FILENAME' " to get the file extention
EXPORTING
LONG_FILENAME = WA_L_F
IMPORTING
PURE_FILENAME = WA_FILENAME
PURE_EXTENSION = WA_EXT.
WA_PS_COUNT_DF-KPRO_USE = 'X'.
WA_PS_COUNT_DF-COMP_GET = 'X'.
WA_PS_DOC_FILE-LANGU = 'EN'.
WA_PS_DOC_FILE-FILENAME = WA_L_F.
WA_PS_DOC_FILE-DAPPL = WA_DOC_FILE-DAPPL."WA_EXT.
WA_DRAW-DOKAR = 'ZMM'.
WA_DRAW-DOKNR = '10000000055'.
WA_DRAW-DOKVR = '00'.
WA_DRAW-DOKTL = '000'.
WA_DRAW-DOKST = 'FR'.
WA_DMS_PHIO-LO_INDEX = WA_DOC_FILE-APPNR.
WA_DMS_PHIO-LO_OBJID = WA_DOC_FILE-LO_OBJID.
WA_DMS_PHIO-PH_OBJID = WA_DOC_FILE-PH_OBJID.
WA_DMS_PHIO-PH_INDEX = WA_DOC_FILE-APPNR.
WA_DMS_PHIO-LANGU = 'EN'.
WA_DMS_PHIO-STATUS_NR = '000'.
WA_DMS_PHIO-FILENAME = WA_DOC_FILE-FILENAME.
WA_DMS_PHIO-ACTIVE_VERSION = 'X'.
WA_DMS_PHIO-DELETE_FLAG = 'X'.
WA_DMS_PHIO-PROTECTED = 'X'.
WA_DMS_PHIO-DEFAULT_LANGU = 'X'.
WA_DMS_PHIO-FILE_ID = WA_DOC_FILE-FILE_ID.
WA_DMS_PHIO-STORAGE_CAT = 'ZDMS'.
WA_FRONTEND-FRONTEND_TYPE = 'PC'.
WA_FRONTEND-HOSTNAME = 'DEFAULT'.
WA_FRONTEND-WINSYS = ' WN32'.
CALL FUNCTION 'CV120_DOC_CHECKOUT_VIEW'
EXPORTING
PS_COUT_DEF = WA_PS_COUNT_DF
PF_TCODE = 'CV03'
PS_DOC_FILE = WA_PS_DOC_FILE
PS_DRAW = WA_DRAW
PS_PHIO = WA_DMS_PHIO
PS_FRONTEND = WA_FRONTEND
PF_STD_URL = 'X'
IMPORTING
PFX_FILE = WA_FILE
* PFX_URL =
* PFX_USE_LAST =
* TABLES
* PT_COMPONENTS =
* PT_DRAZ =
* PTX_CONTENT =
EXCEPTIONS
ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.Some Variables and code is useless in this u just need to rectify... thanks
‎2011 Jan 22 7:01 AM
Above Program is for Downloading Multiple files
From specific Document. U can give your Document number in 'GET Detail' Function module.