cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to upload File to DMS (Document Managemt Sys) Via web Dynpro App

Former Member
0 Kudos

Hi .

I want add file to DMS i,e, SAP Document Management System .

I first tried calling BAPI : BAPI_CREATE_DOCUMENT2 in Report and I was successfull.

I am trying out same thing via Web Dynpro Application but I am getting error in Return of BAPI .Error is Error while checking in and storing: C:\Documents and Settings\Desktop\Hi.doc.

I am pasting code I have written on click of Upload .

method ONACTIONON_UPLOAD .

implicitly available data objects

wd_Context type ref to if_wd_context_node.

wd_This type ref to if_FileUpload.

DATA: gv_documento TYPE draw-doknr ,

gv_clase TYPE draw-dokar VALUE 'Z99' ,

gv_version TYPE draw-dokvr VALUE '00',

gv_part TYPE draw-doktl VALUE '000',

gv_descripcion TYPE drat-dktxt VALUE 'Description111',

gv_return TYPE bapiret2,

filename(60) type c ,

lt_documentdata TYPE STANDARD TABLE OF bapi_doc_draw2,

ls_documentdata LIKE LINE OF lt_documentdata,

lt_characteristicvalues TYPE STANDARD TABLE OF bapi_characteristic_values ,

lt_classallocations TYPE STANDARD TABLE OF bapi_class_allocation ,

lt_documentfiles TYPE STANDARD TABLE OF bapi_doc_files2 ,

ls_documentfiles LIKE LINE OF lt_documentfiles ,

lv_content type xstring ,

size type i.

DATA lo_el_context TYPE REF TO if_wd_context_element.

DATA ls_context TYPE wd_this->element_context.

DATA lv_filename LIKE ls_context-filename.

get element via lead selection

lo_el_context = wd_context->get_element( ).

get single attribute

lo_el_context->get_attribute(

EXPORTING

name = `FILENAME`

IMPORTING

value = lv_filename ).

ls_documentdata-documenttype = 'Z99'.

ls_documentdata-documentversion = '000'.

ls_documentdata-documentpart = '00'.

ls_documentdata-description = 'Test Document Created Parag'.

ls_documentdata-STATUSEXTERN = 'WR'.

ls_documentdata-USERNAME = 'I046361'.

ls_documentdata-WSAPPLICATION1 = 'DOC'.

ls_documentdata-DOCFILE1 = lv_filename.

ls_documentdata-DATACARRIER1 = 'DEFAULT'.

ls_documentfiles-wsapplication = 'DOC'.

ls_documentfiles-docfile = lv_filename.

ls_documentfiles-storagecategory = 'DMS_C1_ST'.

ls_documentfiles-checkedin = 'X'.

APPEND ls_documentfiles to lt_documentfiles.

CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'

EXPORTING

documentdata = ls_documentdata

pf_http_dest = 'SAPHTTP'

IMPORTING

return = gv_return

TABLES

documentfiles = lt_documentfiles.

IF gv_return-type CA 'AE'.

WRITE gv_return-message.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'.

ENDIF .

endmethod.

Now Can anyone tell

In case of Web Dynpro what Is this code right ?

Do I need to change value of Parameters I have Set ?

Do i need to some change as I am trying to Upload file Via WebApplication ?

Do I have to change data Carrier ?

Please let me know urgently .Points will be surely Given ...

Regards ,

Parag

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi ,

Finally I was successfull in Uploading Docs.It seems I was not getting right Parameters ..anyways correct code is as follows ...

method ONACTIONON_UPLOAD .

implicitly available data objects

wd_Context type ref to if_wd_context_node.

wd_This type ref to if_FileUpload.

DATA: gv_documento TYPE draw-doknr ,

gv_clase TYPE draw-dokar VALUE 'Z99' ,

gv_version TYPE draw-dokvr VALUE '00',

gv_part TYPE draw-doktl VALUE '000',

gv_descripcion TYPE drat-dktxt VALUE 'Description111',

gv_return TYPE BAPIRETURN ,

gv_return TYPE BAPIRET2 ,

gv_ruta TYPE bapi_doc_files2-docfile VALUE 'C:\BAPI_DMS.doc' ,

filename(60) type c ,

lt_documentdata TYPE STANDARD TABLE OF bapi_doc_draw2,

ls_documentdata LIKE LINE OF lt_documentdata,

lt_characteristicvalues TYPE STANDARD TABLE OF bapi_characteristic_values ,

lt_classallocations TYPE STANDARD TABLE OF bapi_class_allocation ,

lt_documentfiles TYPE STANDARD TABLE OF bapi_doc_files2 ,

ls_documentfiles LIKE LINE OF lt_documentfiles ,

lv_content type xstring ,

size type i ,

lt_binary TYPE TABLE OF sdokcntbin ,

ls_binary LIKE LINE OF lt_binary ,

lv_size TYPE I ,

ls_doc_status TYPE CVAPI_DOC_STATUS ,

ls_API_ctrl TYPE CVAPI_API_CONTROL ,

l_MSG TYPE MESSAGES ,

lt_files type STANDARD TABLE OF CVAPI_DOC_FILE ,

lt_drao TYPE STANDARD TABLE OF DRAO ,

ls_drao LIKE LINE OF lt_drao ,

lv_documenttype TYPE DRAW-DOKAR ,

lv_documentnumber TYPE DRAW-DOKNR ,

lv_documentversion TYPE DRAW-DOKVR ,

lv_documentpart TYPE DRAW-DOKTL ,

lv_text TYPE string .

FIELD-SYMBOLS <fs> TYPE ANY.

DATA lo_el_context TYPE REF TO if_wd_context_element.

DATA ls_context TYPE wd_this->element_context.

DATA lv_filename LIKE ls_context-filename .

get element via lead selection

lo_el_context = wd_context->get_element( ).

get single attribute

lo_el_context->get_attribute( EXPORTING name = `FILENAME` IMPORTING value = lv_filename ).

lo_el_context->get_attribute( EXPORTING name = `FILECONTENT` IMPORTING value = lv_content ).

CONCATENATE lv_text 'by' sy-uname 'cretaed at ' sy-uzeit INTO lv_text .

ls_documentdata-documenttype = 'Z99'.

ls_documentdata-documentversion = '00'.

ls_documentdata-documentpart = '000'.

ls_documentdata-description = 'Test Document Created in Web Dynpro ABAP '.

ls_documentdata-STATUSEXTERN = 'WR'.

ls_documentdata-USERNAME = 'I046361'.

ls_documentdata-WSAPPLICATION1 = 'DOC'.

ls_documentdata-DOCFILE1 = lv_filename.

ls_documentdata-DATACARRIER1 = 'DEFAULT'.

ls_documentfiles-DOCUMENTTYPE = 'Z99'.

ls_documentfiles-WSAPPLICATION = 'DOC'.

ls_documentfiles-DOCUMENTVERSION = '00'.

ls_documentfiles-DOCUMENTPART = '000'.

ls_documentfiles-DOCFILE = lv_filename.

ls_documentfiles-description = 'Test Document Created in Web Dynpro ABAP '.

ls_documentfiles-CREATED_BY = sy-uname.

ls_documentfiles-CHECKEDIN = 'X'.

ls_documentfiles-DOCFILE = lv_filename.

APPEND ls_documentfiles to lt_documentfiles .

CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'

EXPORTING

documentdata = ls_documentdata

pf_http_dest = 'SAPHTTPA'

IMPORTING

DOCUMENTNUMBER = lv_DOCUMENTNUMBER

return = gv_return

TABLES

documentfiles = lt_documentfiles.

IF gv_return-type CA 'AE'.

WRITE gv_return-message.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING wait = 'X'.

get message manager

data lo_api_controller type ref to if_wd_controller.

data lo_message_manager type ref to if_wd_message_manager.

lo_api_controller ?= wd_This->Wd_Get_Api( ).

CALL METHOD lo_api_controller->GET_MESSAGE_MANAGER

RECEIVING

MESSAGE_MANAGER = lo_message_manager

.

CLEAR lv_text .

CONCATENATE 'Dcoument ' lv_filename 'Successfully stored with Document No. ' lv_DOCUMENTNUMBER INTO lv_text .

report message

CALL METHOD lo_message_manager->REPORT_SUCCESS

EXPORTING

MESSAGE_TEXT = lv_text

PARAMS =

MSG_USER_DATA =

IS_PERMANENT = ABAP_FALSE

SCOPE_PERMANENT_MSG = CO_MSG_SCOPE_CONTROLLER

VIEW =

SHOW_AS_POPUP =

CONTROLLER_PERMANENT_MSG =

MSG_INDEX =

CANCEL_NAVIGATION =

.

ENDIF .

endmethod.