Code: Alles auswählen.
METHOD download.
DATA: lo_child TYPE REF TO if_wd_context_node,
ls_result TYPE zspf_wd_res,
lv_mimetype TYPE mimetypes-type,
lv_mimetype_str TYPE string,
lv_content TYPE xstring,
lv_filename TYPE string,
ls_msg TYPE bapiret2.
FIELD-SYMBOLS: <ls_file_result> TYPE zspf_wd_res.
**********************************************************************
***Datei runterladen
**********************************************************************
lo_child = me->mo_context->get_child_node( 'T_RESULT' ).
lo_child->get_static_attributes(
EXPORTING
index = me->mv_selected_index
IMPORTING
static_attributes = ls_result ).
CALL FUNCTION 'SDOK_MIMETYPE_GET'
EXPORTING
extension = ls_result-filetype
* X_USE_LOCAL_REGISTRY =
IMPORTING
mimetype = lv_mimetype.
lv_mimetype_str = lv_mimetype.
zcl_pf_postfach=>get_file(
EXPORTING
iv_guid = ls_result-guid
IMPORTING
ev_file_content = lv_content
es_msg = ls_msg ).
IF ls_msg IS NOT INITIAL.
me->raise_message( ls_msg ).
IF ls_msg-type = 'E'.
RETURN.
ENDIF.
ENDIF.
****als gelesen markieren
* READ TABLE me->mt_file_result
* WITH TABLE KEY guid = ls_result-guid
* ASSIGNING <ls_file_result>.
* <ls_file_result>-design = me->mc_design_old.
* lo_child->set_attribute(
* index = me->mv_selected_index
* value = me->mc_design_old
* name = 'DESIGN' ).
***Ausgabe
lv_filename = ls_result-filename.
IF iv_show = abap_true.
cl_wd_runtime_services=>attach_file_to_response(
i_filename = lv_filename
i_content = lv_content
i_mime_type = lv_mimetype_str
i_in_new_window = abap_true
i_inplace = abap_true
).
ELSE.
cl_wd_runtime_services=>attach_file_to_response(
i_filename = lv_filename
i_content = lv_content
i_mime_type = lv_mimetype_str
* i_in_new_window = ABAP_FALSE
* i_inplace = ABAP_FALSE
).
ENDIF.
***Ergebnisliste auffrischen
me->init_file( ).
me->search_folder( ).
ENDMETHOD.
genau, das wäre der nächste SchrittPDFs können allgemein angezeigt werden. Ich prüfe mal ob es bei dem Kunde im HR allgemein Probleme mit PDFs gibt oder nur in dieser Anwendung./
cl_wd_runtime_services=>attach_file_to_response( ) nutzt nicht den ADS*. Es schreibt das File als RAW einfach in den RESPONSE. Über i_mime_type sagst du dem Browser, was da für ein File kommt.Dominic hat geschrieben: Sorry mit ADS und Verbindungen kann ich gerade nichts anfangen. Damit hatte ich bisher nicht zu tun. :/
//UPDATE ADS habe ich gerade erfahren ist nicht eingerichtet. Wird also nicht darüber laufen.
Sondern über die WD-Standards in XSTRING umgewandelt, abgelegt und beim Lesen wieder zurückgewandelt.
Code: Alles auswählen.
METHOD download. IF iv_show = abap_true. cl_wd_runtime_services=>attach_file_to_response( i_filename = lv_filename i_content = lv_content i_mime_type = lv_mimetype_str i_in_new_window = abap_true i_inplace = abap_true ). ELSE. cl_wd_runtime_services=>attach_file_to_response( i_filename = lv_filename i_content = lv_content i_mime_type = lv_mimetype_str * i_in_new_window = ABAP_FALSE * i_inplace = ABAP_FALSE ). ENDIF. ***Ergebnisliste auffrischen me->init_file( ). me->search_folder( ). ENDMETHOD.
Im lv_mimetype_str steht 'application/pdf'.Was steht denn auf lv_mimetype_str?