*&---------------------------------------------------------------------*
*& Report Z_SPOOL_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_spool_test.
* Selection screen
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS : p_spool TYPE rspoid, "Spool number
p_aser TYPE string, "Application server path
p_pser TYPE string, "Presentation server path
p_text RADIOBUTTON GROUP rb1, "Text format Radio button
p_excel RADIOBUTTON GROUP rb1, "Excel Format Radio button
p_html RADIOBUTTON GROUP rb1. "HTML format Radio button
SELECTION-SCREEN END OF BLOCK b1.
IF p_text = 'X'.
"Text format
CALL FUNCTION 'Z_CONVERT_SPOOL_TO_TEXT'
EXPORTING
spool_number = p_spool
app_serv_path = p_aser
local_serv_path = p_pser.
ELSEIF p_excel = 'X'. "Excel format
CALL FUNCTION 'Z_CONVERT_SPOOL_TO_EXCEL'
EXPORTING
spool_number = p_spool
app_serv_path = p_aser
local_serv_path = p_pser.
ELSEIF p_html = 'X'. "HTML format
CALL FUNCTION 'Z_CONVERT_SPOOL_TO_HTML'
EXPORTING
spool_number = p_spool
app_serv_path = p_aser
local_serv_path = p_pser.
ENDIF.
FUNCTION z_convert_spool_to_text.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(SPOOL_NUMBER) TYPE RSPOID
*" REFERENCE(APP_SERV_PATH) TYPE TEXT1024 OPTIONAL
*" REFERENCE(LOCAL_SERV_PATH) TYPE STRING OPTIONAL
*"----------------------------------------------------------------------
TYPES : tt_bapixmspop TYPE STANDARD TABLE OF bapixmspop.
DATA : lt_spool_attr_line TYPE bapixmspoolid,
lt_spool_list_plain TYPE tt_bapixmspop,
lt_dummy TYPE STANDARD TABLE OF rspoattr,
lv_rqattr TYPE tsp01,
lv_first_page TYPE i,
lv_last_page TYPE i,
lv_pages TYPE c.
CALL FUNCTION 'RSPO_GET_INFORMATION_SPOOLJOB'
EXPORTING
rqident = spool_number
IMPORTING
spool_attributes = lt_spool_attr_line
EXCEPTIONS
no_such_job = 1
read_error = 2
no_permission = 3
OTHERS = 4.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
CALL FUNCTION 'RSPO_GET_ATTRIBUTES_SPOOLJOB'
EXPORTING
rqident = spool_number
IMPORTING
rq = lv_rqattr
TABLES
attributes = lt_dummy
EXCEPTIONS
no_such_job = 1
OTHERS = 2.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
lv_first_page = 1.
CALL FUNCTION 'RSPO_RETURN_ABAP_SPOOLJOB'
EXPORTING
rqident = spool_number
first_line = lv_first_page
last_line = lv_last_page
pages = lv_pages
TABLES
buffer = lt_spool_list_plain
EXCEPTIONS
no_such_job = 1
not_abap_list = 2
job_contains_no_data = 3
selection_empty = 4
no_permission = 5
can_not_access = 6
read_error = 7
OTHERS = 8.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
IF NOT lt_spool_list_plain IS INITIAL.
IF app_serv_path is NOT INITIAL.
* Download in Application server
FIELD-SYMBOLS <hex_container> TYPE any.
OPEN DATASET app_serv_path IN TEXT MODE FOR OUTPUT ENCODING DEFAULT WITH WINDOWS LINEFEED.
IF sy-subrc = 0.
LOOP AT lt_spool_list_plain ASSIGNING <hex_container> .
TRANSFER <hex_container> TO app_serv_path.
CLEAR <hex_container>.
ENDLOOP.
CLOSE DATASET app_serv_path.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ELSE.
MESSAGE 'File cannot be opened' TYPE 'E' .
ENDIF.
ELSEIF local_serv_path is NOT INITIAL.
* Download in presentation server
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = local_serv_path
append = 'X'
TABLES
data_tab = lt_spool_list_plain
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc = 0.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ENDIF.
else.
MESSAGE 'Please provide path for Application/Presentation server' TYPE 'E' .
ENDIF.
ENDIF.
ENDFUNCTION.
FUNCTION z_convert_spool_to_excel.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(SPOOL_NUMBER) TYPE RSPOID
*" REFERENCE(APP_SERV_PATH) TYPE TEXT1024 OPTIONAL
*" REFERENCE(LOCAL_SERV_PATH) TYPE STRING OPTIONAL
*"----------------------------------------------------------------------
TYPES : tt_bapixmspop TYPE STANDARD TABLE OF bapixmspop.
DATA : lt_spool_attr_line TYPE bapixmspoolid,
lt_spool_list_plain TYPE tt_bapixmspop,
lv_spool_list TYPE list_string_table,
lv_first_page TYPE i,
lv_last_page TYPE i.
CALL FUNCTION 'RSPO_GET_INFORMATION_SPOOLJOB'
EXPORTING
rqident = spool_number
IMPORTING
spool_attributes = lt_spool_attr_line
EXCEPTIONS
no_such_job = 1
read_error = 2
no_permission = 3
OTHERS = 4.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB_DAT'
EXPORTING
rqident = spool_number
first_line = lv_first_page
last_line = lv_last_page
pages = 'X'
IMPORTING
buffer_dat = lv_spool_list
EXCEPTIONS
no_such_job = 1
not_abap_list = 2
job_contains_no_data = 3
selection_empty = 4
no_permission = 5
can_not_access = 6
read_error = 6
OTHERS = 7.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
IF NOT lv_spool_list IS INITIAL.
IF app_serv_path IS NOT INITIAL.
FIELD-SYMBOLS <hex_container> TYPE any.
OPEN DATASET app_serv_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT WITH SMART LINEFEED.
IF sy-subrc = 0.
LOOP AT lv_spool_list ASSIGNING <hex_container> .
TRANSFER <hex_container> TO app_serv_path.
CLEAR <hex_container>.
ENDLOOP.
CLOSE DATASET app_serv_path.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ELSE.
MESSAGE 'File cannot be opened' TYPE 'E' .
ENDIF.
ELSEIF local_serv_path IS NOT INITIAL.
* Download in presentation server
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = local_serv_path
append = 'X'
TABLES
data_tab = lv_spool_list
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc = 0.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ENDIF.
ELSE.
MESSAGE 'Please specify either Application/presentation server path' TYPE 'E' .
ENDIF.
ENDIF.
ENDFUNCTION.
FUNCTION z_convert_spool_to_html.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(SPOOL_NUMBER) TYPE RSPOID
*" REFERENCE(APP_SERV_PATH) TYPE TEXT1024 OPTIONAL
*" REFERENCE(LOCAL_SERV_PATH) TYPE STRING OPTIONAL
*"----------------------------------------------------------------------
DATA : lt_spool_attr_line TYPE bapixmspoolid,
lv_spool_list_zipped TYPE xstring,
lv_abap_true TYPE boolean,
lt_tab TYPE enh_version_management_hex_tb,
lv_size TYPE i,
lv_first_page TYPE i,
lv_last_page TYPE i,
lv_pages TYPE c.
CALL FUNCTION 'RSPO_GET_INFORMATION_SPOOLJOB'
EXPORTING
rqident = spool_number
IMPORTING
spool_attributes = lt_spool_attr_line
EXCEPTIONS
no_such_job = 1
read_error = 2
no_permission = 3
OTHERS = 4.
IF sy-subrc <> 0. ##FM_SUBRC_OK
ENDIF.
lv_first_page = 1.
lv_last_page = 0.
lv_abap_true = 'X'.
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB_HTML'
EXPORTING
rqident = spool_number
first_line = lv_first_page
last_line = lv_last_page
pages = lv_abap_true
compressed = lv_abap_true
IMPORTING
e_zip = lv_spool_list_zipped
EXCEPTIONS
no_such_job = 1
not_abap_list = 2
job_contains_no_data = 3
selection_empty = 4
no_permission = 5
can_not_access = 6
read_error = 7
conversion_error = 8
cannot_compress = 9
OTHERS = 10.
CASE sy-subrc.
WHEN 0. " everything ok
ENDCASE.
IF xstrlen( lv_spool_list_zipped ) > 0.
CALL FUNCTION 'ENH_XSTRING_TO_TAB'
EXPORTING
im_xstring = lv_spool_list_zipped
IMPORTING
ex_data = lt_tab
ex_leng = lv_size.
IF NOT lt_tab IS INITIAL.
IF app_serv_path IS NOT INITIAL.
FIELD-SYMBOLS <hex_container> TYPE x.
OPEN DATASET app_serv_path FOR OUTPUT IN BINARY MODE.
IF sy-subrc = 0.
LOOP AT lt_tab ASSIGNING <hex_container> .
TRANSFER <hex_container> TO app_serv_path.
ENDLOOP.
CLOSE DATASET app_serv_path.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ELSE.
MESSAGE 'File cannot be opened' TYPE 'E' .
ENDIF.
ELSEIF local_serv_path IS NOT INITIAL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = lv_size
* codepage = codepage
filename = local_serv_path
filetype = 'BIN'
* append = append
* WRITE_BOM = write_bom
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
TABLES
data_tab = lt_tab
* FIELDNAMES =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
OTHERS = 19.
IF sy-subrc = 0.
MESSAGE 'File succesfully transferred' TYPE 'S' .
ENDIF.
ELSE.
MESSAGE 'Please provide path for Application/Presentation server' TYPE 'E' .
ENDIF.
ENDIF.
ENDIF.
ENDFUNCTION.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
4 | |
3 | |
3 | |
2 | |
2 | |
2 | |
2 | |
1 |