0% found this document useful (0 votes)
107 views

Method DPC-EXT-GetStream

This method calls different RFC function modules to retrieve print streams for different entity sets, handles exceptions, and returns the print stream data. Key parameter values are extracted from the input table. The RFC is called with these values and the result is returned. Catches and exceptions raised during the RFC call are also handled.

Uploaded by

Gouthy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
107 views

Method DPC-EXT-GetStream

This method calls different RFC function modules to retrieve print streams for different entity sets, handles exceptions, and returns the print stream data. Key parameter values are extracted from the input table. The RFC is called with these values and the result is returned. Catches and exceptions raised during the RFC call are also handled.

Uploaded by

Gouthy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

METHOD /iwbep/if_mgw_appl_srv_runtime~get_stream.

"InternalTables.
DATA ls_key_tab TYPE /iwbep/s_mgw_name_value_pair.

"WorkAreas.
DATA ls_key TYPE /iwbep/s_mgw_tech_pair.
DATA ls_lheader TYPE ihttpnvp.
DATA ls_stream TYPE ty_s_media_resource.

"Variables.
DATA lv_rfc_name TYPE tfdir-funcname.
DATA lv_destination TYPE rfcdest.
DATA lv_url TYPE string.
DATA lv_xstring TYPE xstring.
DATA lv_subrc TYPE syst-subrc.
DATA lv_exc_msg TYPE /iwbep/mgw_bop_rfc_excep_text.
DATA lv_im_guid TYPE guid_32.
DATA lv_im_log_type TYPE char1.
DATA lv_im_module TYPE w_sortk.

"Local Objects
DATA lo_dp_facade TYPE REF TO /iwbep/if_mgw_dp_facade.
DATA lo_exception TYPE REF TO cx_no_check.
DATA lo_root TYPE REF TO cx_root.

ls_lheader-name = 'Content-Disposition'.
ls_lheader-value = 'inline; filename="Print.pdf";'.
set_header( is_header = ls_lheader ).

*-- Get RFC destination


lo_dp_facade = /iwbep/if_mgw_conv_srv_runtime~get_dp_facade( ).
lv_destination = /iwbep/cl_sb_gen_dpc_rt_util=>get_rfc_destination(
io_dp_facade = lo_dp_facade ).

IF lv_destination IS INITIAL.
lv_destination = 'NONE'.
ENDIF.

CASE iv_entity_set_name.
WHEN 'AssortmentModuleLogsPrintSet'.
READ TABLE it_key_tab INTO ls_key_tab
WITH KEY name = 'ImGuid'.
IF sy-subrc = 0.
lv_im_guid = ls_key_tab-value.
CLEAR ls_key.
ENDIF.

READ TABLE it_key_tab INTO ls_key_tab


WITH KEY name = 'ImLogType'.
IF sy-subrc = 0.
lv_im_log_type = ls_key_tab-value.
CLEAR ls_key.
ENDIF.
*-------------------------------------------------------------
* Call RFC function module
*-------------------------------------------------------------
lv_rfc_name = 'ZOTC_PRICAT_LU_GE_TR_LOG_PRINT'.
IF lv_destination IS NOT INITIAL.
TRY.
CALL FUNCTION lv_rfc_name DESTINATION lv_destination
EXPORTING
im_guid = lv_im_guid
im_log_type = lv_im_log_type
IMPORTING
e_url = lv_xstring.
lv_subrc = sy-subrc.
*in case of co-deployment the exception is raised and needs to be caught
CATCH cx_root INTO lo_root.
lv_subrc = 1001.
lv_exc_msg = lo_root->if_message~get_text( ).
ENDTRY.
ENDIF.
WHEN 'AssortmentModuleDetailsPrintSet'.
READ TABLE it_key_tab INTO ls_key_tab
WITH KEY name = 'ImModule'.
IF sy-subrc = 0.
lv_im_module = ls_key_tab-value.
CLEAR ls_key.
ENDIF.
*-------------------------------------------------------------
* Call RFC function module
*-------------------------------------------------------------
lv_rfc_name = 'ZOTC_ASSORT_MODU_DETAILS_PRINT'.
IF lv_destination IS NOT INITIAL.
TRY.
CALL FUNCTION lv_rfc_name DESTINATION lv_destination
EXPORTING
im_module = lv_im_module
IMPORTING
e_url = lv_xstring.
lv_subrc = sy-subrc.
*in case of co-deployment the exception is raised and needs to be caught
CATCH cx_root INTO lo_root.
lv_subrc = 1001.
lv_exc_msg = lo_root->if_message~get_text( ).
ENDTRY.
ENDIF.
WHEN 'PartnerAssignmentReportPrintSet'.
READ TABLE it_key_tab INTO ls_key_tab
WITH KEY name = 'ImModule'.
IF sy-subrc = 0.
lv_im_module = ls_key_tab-value.
CLEAR ls_key.
ENDIF.
*-------------------------------------------------------------
* Call RFC function module
*-------------------------------------------------------------
lv_rfc_name = 'ZOTC_PARTNER_ASSIGNMENT_PRINT'.
IF lv_destination IS NOT INITIAL.
TRY.
CALL FUNCTION lv_rfc_name DESTINATION lv_destination
EXPORTING
im_module = lv_im_module
IMPORTING
e_url = lv_xstring.
lv_subrc = sy-subrc.
*in case of co-deployment the exception is raised and needs to be caught
CATCH cx_root INTO lo_root.
lv_subrc = 1001.
lv_exc_msg = lo_root->if_message~get_text( ).
ENDTRY.
ENDIF.
ENDCASE.

ls_stream-value = lv_xstring.
ls_stream-mime_type = 'application/pdf'.

copy_data_to_ref( EXPORTING is_data = ls_stream

CHANGING cr_data = er_stream ).


ENDMETHOD.

You might also like