Я обсуждал проблему здесь с командой SAP OpenUI5. Наконец мы поняли, что проблема не в библиотеке UI5, а в нашей реализации ABAP, которая предоставляет ссылку для загрузки файла PDF из системы управления документами SAP (SAP DMS).
Наконец-то мы нашли решение и выяснили, почему PDF-файл, который мы пытаемся показать из нашей SAP DMS, можно загрузить, хотя он не отображается в средстве просмотра PDF-файлов в современных браузерах, таких как Chrome или Firefox.
Источник решения можно найти здесь.
Следующие два изменения отличаются от обычной реализации, которую можно найти в большинстве руководств в Интернете:
- Значение заголовка должно быть изменено на
Inline;filename=
вместо outline;filename
.
- Вызовите метод
/IWBEP/IF_MGW_CONV_SRV_RUNTIME=>Set_header
, чтобы установить заголовок.
Наконец, у нас есть следующий код ABAP в системах SAP для загрузки файлов из системы управления документами (SAP DMS).
"Logic for Download the files from Document Managmenet System
DATA: ls_lheader TYPE ihttpnvp,
ls_stream TYPE ty_s_media_resource,
ls_entity TYPE zgw_odata_document_file.
CONSTANTS: lc_headername TYPE string VALUE 'Content-Disposition',
lc_headervalue1 TYPE string VALUE 'inline; filename="',
lc_headervalue2 TYPE string VALUE '";'.
* "Get the name of the Entity
DATA(lv_entity_name) = io_tech_request_context->get_entity_type_name( ).
CASE lv_entity_name.
WHEN 'DocumentFile'.
DATA(lo_document_file) = NEW zcl_gw_odata_document_file( ).
lo_document_file->read_stream(
EXPORTING
it_key_tab = it_key_tab
IMPORTING
es_stream = ls_entity ).
ls_lheader-name = lc_headername.
ls_entity-file_name = escape( val = ls_entity-file_name format = cl_abap_format=>e_url ).
ls_lheader-value = lc_headervalue1 && ls_entity-file_name && lc_headervalue2 .
set_header( is_header = ls_lheader ).
ls_stream-mime_type = ls_entity-mimetype.
ls_stream-value = ls_entity-binfile.
copy_data_to_ref( EXPORTING is_data = ls_stream
CHANGING cr_data = er_stream ).
WHEN OTHERS.
ENDCASE.
person
MJBZA
schedule
01.10.2020