Professional Documents
Culture Documents
SAP ABAP ODATA Code To Handle Attachments
SAP ABAP ODATA Code To Handle Attachments
*------------------------------------------
*------------Get Links---------------------
*------------------------------------------
TRY.
CALL METHOD cl_binary_relation=>read_links_of_binrels
EXPORTING
is_object = ls_object " Start object
it_relation_options = lt_rel_options " Link Types
ip_role = 'GOSAPPLOBJ' " Role type
IMPORTING
et_links = lt_links. " Table with Relationship
Records
*------------------------------------------
*------------Get Content-------------------
*------------------------------------------
REFRESH: lt_cont_bin[],
lt_cont_solix[].
CLEAR:ls_doc_data.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = lv_doc_id
IMPORTING
document_data = ls_doc_data
TABLES
object_header = lt_obj_header
contents_hex = lt_cont_solix
object_content = lt_cont_bin
EXCEPTIONS
document_id_not_exist = 1
operation_no_authorization = 2
x_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ls_attachments-lblni = im_ses_no.
TRY.
ls_attachments-file_name = lt_obj_header[ 1 ].
IF NOT ls_attachments-file_name IS INITIAL.
REPLACE ALL OCCURRENCES OF '&SO_FILENAME=' IN ls_attachments-file_name
WITH space.
CONDENSE ls_attachments-file_name.
ENDIF.
ls_attachments-file_type = lt_obj_header[ 2 ].
IF NOT ls_attachments-file_type IS INITIAL.
REPLACE ALL OCCURRENCES OF '&SO_FORMAT=' IN ls_attachments-file_type
WITH space.
CONDENSE ls_attachments-file_type.
ENDIF.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
ls_attachments-file_id = lv_doc_id.
ENDIF.
ls_attachments-wi = im_wi.
APPEND ls_attachments TO rt_attachments .
CLEAR: ls_attachments, ls_doc_data .
ENDLOOP.
ENDMETHOD.