Explained the scenario to add the UI file to DMS server.
Define Method Code:
FYI - not able use angled brackets (greater than symbol), so removed it. Pls modify your code after copy and paste. (Ex: Super-define().)
METHOD define.
super-define().
DATA: obj_entity TYPE REF TO /iwbep/if_mgw_odata_entity_typ,
obj_ent_property TYPE REF TO /iwbep/if_mgw_odata_property.
DATA: obj_entity TYPE REF TO /iwbep/if_mgw_odata_entity_typ,
obj_ent_property TYPE REF TO /iwbep/if_mgw_odata_property.
obj_entity = model-get_entity_type( iv_entity_name = 'FileUpload' ).
IF obj_entity IS BOUND.
obj_ent_property = obj_entity-get_property( iv_property_name = 'DocuName' ).
obj_ent_property-set_as_content_type( ).
ENDIF.
ENDMETHOD.
CREATE_STREAM Code:
DATA: lv_uifilename TYPE chkfile,
lv_filename TYPE sdba_actid,
lv_ext TYPE sdba_funct.
DATA: wa_documentdata TYPE bapi_doc_draw2,
wa_return TYPE bapiret2,
wa_desc TYPE bapi_doc_drat,
wa_file TYPE bapi_doc_files2,
wa_objlinks TYPE bapi_doc_drad,
wa_ui_return TYPE zcl_zji_file_to_dms_mpc_ext=ts_fileupload.
DATA: lv_document_number TYPE doknr,
lv_document_type TYPE dokar,
lv_document_version TYPE dokvr,
lv_document_part TYPE doktl_d.
DATA: it_descr TYPE TABLE OF bapi_doc_drat,
it_file TYPE TABLE OF bapi_doc_files2,
it_objlinks TYPE TABLE OF bapi_doc_drad.
lv_uifilename = iv_slug.
CALL FUNCTION 'SPLIT_FILENAME'
EXPORTING
long_filename = lv_uifilename
IMPORTING
pure_filename = lv_filename
pure_extension = lv_ext
.
TRANSLATE lv_ext TO UPPER CASE.
Document Data
wa_documentdata-documenttype = 'DOC'.
wa_documentdata-documentversion = '001'.
wa_documentdata-documentpart = '01'.
wa_documentdata-wsapplication1 = lv_ext.
wa_documentdata-wsapplication2 = lv_ext.
Files
wa_file-originaltype = '1'.
wa_file-wsapplication = lv_ext.
wa_file-sourcedatacarrier = 'Default'.
wa_file-docfile = iv_slug.
APPEND wa_file TO it_file.
CLEAR wa_file.
Desc
wa_desc-language = sy-langu.
wa_desc-language_iso = sy-langu.
wa_desc-description = 'DMS Server Document'.
APPEND wa_desc TO it_descr.
CLEAR wa_desc.
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = wa_documentdata
IMPORTING
documenttype = lv_document_type
documentnumber = lv_document_number
documentpart = lv_document_part
documentversion = lv_document_version
return = wa_return
TABLES
documentdescriptions = it_descr
objectlinks = it_objlinks
documentfiles = it_file
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
RETURN =
.
wa_ui_return-docunumber = lv_document_number.
wa_ui_return-docname = iv_slug.
wa_ui_return-doctype = lv_document_type.
wa_ui_return-docuversion = lv_document_version.
wa_ui_return-docupart = lv_document_part.
CALL METHOD me-copy_data_to_ref
EXPORTING
is_data = wa_ui_return
CHANGING
cr_data = er_entity
.