Quantcast
Channel: SCN : All Content - Web Dynpro ABAP
Viewing all articles
Browse latest Browse all 3667

Webdynpr to DMS pdf file upload ( File cant open in DMS )

$
0
0

Hello Gurus

 

A, trying to upload pdf file from webdynpro to DMS...somehow i can able to upload it to DMS..i can able to view the uploaded pdf file in DMS..but i cant able to open it..it says u cant open error message..

 

 

 

 

 

 

 

 

 

Here is my code :

 

DATA lo_nd_n_upload TYPE REF TO if_wd_context_node.

   DATA lo_el_n_upload TYPE REF TO if_wd_context_element.

   DATA lt_n_upload TYPE TABLE OF wd_this->element_n_upload. " Internal Table

   DATA ls_n_upload TYPE wd_this->element_n_upload. " Work Area

   DATA lv_fileupload TYPE wd_this->element_n_upload-file_contents.

 

   TYPES: BEGIN OF zst_ts_raw_line,

 

            line(2550) TYPE x,

          END OF zst_ts_raw_line.

 

   DATA: ls_draw TYPE draw,

         ls_api_ctrl TYPE cvapi_api_control,

         ls_message TYPE messages,

         lv_documentnumber TYPE draw-doknr,

         lv_storage_cat TYPE cv_storage_cat,

         lv_size TYPE i,

         lt_bindata TYPE STANDARD TABLE OF zst_ts_raw_line, "STANDARD TABLE OF zst_ts_raw_line,

         ls_bindata TYPE sdokcntbin, "SOLISTI1," sdokcntbin,

         ls_drao TYPE drao,

         lt_drao TYPE TABLE OF drao,

         lt_files TYPE cvapi_tbl_doc_files,

         ls_files TYPE cvapi_doc_file,

         l_string TYPE string,

         lv_dokar TYPE draw-dokar,

         lv_dokvr TYPE draw-dokvr

         .

 

   DATA: it_drat TYPE TABLE OF dms_db_drat,

         wa_drat TYPE dms_db_drat.

 

* navigate from <CONTEXT> to <N_UPLOAD> via lead selection

   lo_nd_n_upload = wd_context->get_child_node( name = wd_this->wdctx_n_upload ).

 

 

 

 

*  get element via lead selection

   lo_el_n_upload = lo_nd_n_upload->get_element( ).

 

 

* @TODO handle not set lead selection

   IF lo_el_n_upload IS NOT INITIAL.

 

*     get single attribute

     lo_el_n_upload->get_attribute(

     EXPORTING

       name = `FILE_CONTENTS`

     IMPORTING

       value = lv_fileupload ).

 

*     get all declared attributes

     lo_el_n_upload->get_static_attributes(

       IMPORTING

         static_attributes = ls_n_upload ).

 

     IF ls_n_upload IS NOT INITIAL.

 

 

       ls_draw-dokar = 'TS2'.

       ls_draw-dokvr = 'AA'.

       ls_draw-doktl = '000'.

       ls_draw-doknr = '000020000491-I'.

       ls_draw-dwnam = sy-uname.

       ls_draw-begru = '1000'.

       lv_storage_cat = 'DMS_C1_ST'.

       ls_api_ctrl-tcode = 'CV01N'.

 

       wa_drat-dktxt = 'Description'.

       APPEND wa_drat TO it_drat.

 

*       For Generate Document Number in DMS

       CALL FUNCTION 'CVAPI_DOC_CREATE'

         EXPORTING

           ps_draw              = ls_draw " wa_documentfiles

 

           ps_api_control       = ls_api_ctrl

 

         IMPORTING

           psx_message          = ls_message

 

           pfx_doknr            = lv_documentnumber

 

         TABLES

 

           pt_drat_x            = it_drat

 

         .

       IF sy-subrc NE 0.

         WRITE: 'no number'.

       ENDIF.

       IF ls_message-msg_type CA 'EA'.

 

       ELSE.

         ls_draw-doknr = lv_documentnumber.

 

         CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'

           EXPORTING

             buffer          = lv_fileupload

 

           IMPORTING

             output_length   = lv_size

           TABLES

             binary_tab      = lt_bindata.

 

         LOOP AT lt_bindata INTO ls_bindata.

           CLEAR ls_drao.

           ls_drao-orblk = ls_bindata-line.

           ls_drao-orln = lv_size.

           ls_drao-dokar = ls_draw-dokar.

           ls_drao-doknr = lv_documentnumber.

           ls_drao-dokvr = ls_draw-dokvr.

           ls_drao-doktl = ls_draw-doktl.

           ls_drao-appnr = '1 '.

           APPEND ls_drao TO lt_drao.

         ENDLOOP.

 

*         For Application Determined on the basis of file extension.

         CALL FUNCTION 'CV120_DOC_GET_APPL'

         

EXPORTING

             pf_file          = ls_n_upload-file_name " 'C:\Documents and Settings\AUTH.PDF'

 

          IMPORTING

            pfx_dappl        = ls_files-dappl

 

                   .

 

         ls_files-appnr = '1'.

         ls_files-filename = ls_n_upload-file_name. " 'C:\Documents and Settings\AUTH.PDF'

         ls_files-updateflag 'I'.

         ls_files-langu = sy-langu.

         ls_files-storage_cat = 'DMS_C1_ST'.

         ls_files-description 'Doc Description'.

 

         APPEND ls_files TO lt_files.

 

*         For Execute external Commit when using BAPIs

         CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

           EXPORTING

             wait = 'X'.

*         Document Check.

         CALL FUNCTION 'CVAPI_DOC_CHECKIN'

           EXPORTING

             pf_dokar           = ls_draw-dokar

             pf_doknr           = lv_documentnumber

             pf_dokvr           = ls_draw-dokvr

             pf_doktl           = ls_draw-doktl

*           PS_DOC_STATUS      =

             pf_ftp_dest        = 'SAPFTPA'

             pf_http_dest       = 'SAPHTTPA'

*           PF_HOSTNAME        = ' '

             ps_api_control     = ls_api_ctrl

*           PF_REPLACE         = ' '

             pf_content_provide = 'TBL'

           IMPORTING

             psx_message        = ls_message

           TABLES

             pt_files_x         = lt_files

*           PT_COMP_X          =

             pt_content         = lt_drao.

 

         COMMIT WORK.

       ENDIF.


Viewing all articles
Browse latest Browse all 3667

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>