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

Multiple Downlopad from DMS Problem

dhruv_mehta
Active Contributor
0 Likes
1,137

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.

1 ACCEPTED SOLUTION
Read only

dhruv_mehta
Active Contributor
0 Likes
705

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

2 REPLIES 2
Read only

dhruv_mehta
Active Contributor
0 Likes
706

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

Read only

dhruv_mehta
Active Contributor
0 Likes
705

Above Program is for Downloading Multiple files

From specific Document. U can give your Document number in 'GET Detail' Function module.