*&---------------------------------------------------------------------*
*& Include ZSOFTCOPY_T *
*& *
*&---------------------------------------------------------------------*
*& *
*& This file is part of ZSOFTCOPY. *
*& *
*& ZSOFTCOPY is free software: you can redistribute it and/or modify *
*& it under the terms of the GNU General Public License as published *
*& by the Free Software Foundation, either version 3 of the License, *
*& or any later version. *
*& *
*& ZSOFTCOPY is distributed in the hope that it will be useful, *
*& but WITHOUT ANY WARRANTY; without even the implied warranty of *
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
*& GNU General Public License for more details. *
*& *
*& You should have received a copy of the GNU General Public License *
*& along with ZDOWNLOAD. If not, see . *
*& *
*&---------------------------------------------------------------------*
*& *
*& Author: Ruediger von Creytz ruediger.creytz@globalbit.net *
*& Copyright: globalBIT, LLC http://www.globalbit.net *
*& *
*&---------------------------------------------------------------------*
*-----------------------------------------------------------------------
* t
*-----------------------------------------------------------------------
FORM t.
*Message Classes
PERFORM t_r3tr_msag.
*Authorization Oject
PERFORM t_r3tr_tobj.
*SET/GET Parameters
PERFORM t_r3tr_para.
*Transactions
PERFORM t_r3tr_tran.
ENDFORM. "t
*-----------------------------------------------------------------------
* t_r3tr_msag Message Classes
*-----------------------------------------------------------------------
FORM t_r3tr_msag.
DATA:
ls_ti TYPE st_textinput,
lt_attr TYPE it_textinput,
lt_box TYPE it_textinput,
l_arbgb TYPE arbgb,
l_bname TYPE xubname,
l_name_text TYPE ad_namtext,
ls_t100a TYPE t100a,
l_laiso TYPE laiso,
l_sptxt TYPE sptxt,
lt_html TYPE it_string,
ls_tabstrip TYPE st_tabstrip,
lt_tabstrip TYPE it_tabstrip,
lt_t100 TYPE STANDARD TABLE OF t100,
ls_t100ext TYPE st_t100ext,
lt_t100ext TYPE it_t100ext,
lt_doc TYPE it_string.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE t100,
TYPE st_t100ext.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'MSAG'
AND downloaded = abap_false.
CLEAR:
ls_ti,
ls_t100a.
REFRESH:
lt_attr,
lt_box,
lt_html,
lt_t100,
lt_t100ext,
lt_tabstrip,
lt_doc.
l_arbgb = -obj_name.
SELECT SINGLE * FROM t100a INTO ls_t100a
WHERE arbgb = l_arbgb.
*TabStrip
PERFORM get_tabstrip
USING 'T_R3TR_MSAG' space
CHANGING lt_tabstrip.
*Attributes
* Package
CLEAR ls_ti.
ls_ti-name = txt_package.
ls_ti-value = -devclass.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_attr.
* Last changed by
CLEAR ls_ti.
ls_ti-name = txt_last_changed_by___3.
ls_ti-value = ls_t100a-lastuser.
l_bname = ls_t100a-lastuser.
PERFORM get_user
USING l_bname
CHANGING l_name_text.
ls_ti-value_text = l_name_text.
ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr.
* Changed on
CLEAR ls_ti.
ls_ti-name = txt_changed_on.
PERFORM get_date
USING
ls_t100a-ldate
CHANGING
ls_ti-value.
ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr.
* Last changed at
CLEAR ls_ti.
ls_ti-name = txt_last_changed_at.
PERFORM get_time
USING
ls_t100a-ltime
CHANGING
ls_ti-value.
ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr.
*Attributes - Box
* Original lang.
CLEAR ls_ti.
ls_ti-name = txt_original_lang.
PERFORM get_spras
USING ls_t100a-masterlang
CHANGING l_laiso l_sptxt.
ls_ti-value = l_laiso.
ls_ti-value_text = l_sptxt.
ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_box.
* Person respons.
CLEAR ls_ti.
ls_ti-name = txt_person_respons.
ls_ti-value = ls_t100a-respuser.
l_bname = ls_t100a-respuser.
PERFORM get_user
USING l_bname
CHANGING l_name_text.
ls_ti-value_text = l_name_text.
ls_ti-value_ext_space = abap_true.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_box.
* Short text
CLEAR ls_ti.
ls_ti-name = txt_short_text___1.
ls_ti-value = -descript.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_box.
*Messages
SELECT * FROM t100 INTO TABLE lt_t100
WHERE arbgb = l_arbgb
AND sprsl = sy-langu.
LOOP AT lt_t100 ASSIGNING .
CLEAR ls_t100ext.
* T100U
SELECT SINGLE name datum FROM t100u
INTO (ls_t100ext-name,ls_t100ext-datum)
WHERE arbgb = -arbgb
AND msgnr = -msgnr.
l_bname = ls_t100ext-name.
IF NOT l_bname IS INITIAL.
PERFORM get_user
USING l_bname
CHANGING ls_t100ext-name_text.
PERFORM get_date
USING ls_t100ext-datum
CHANGING ls_t100ext-datum_text.
ENDIF.
* Documentation
CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE'
EXPORTING
docu_id = 'NA'
element = -arbgb
addition = -msgnr
IMPORTING
object = ls_t100ext-object_name
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'DOCU_SELFDEF_READ'
EXPORTING
object_id = 'NA'
object_name = ls_t100ext-object_name
IMPORTING
selfdef = ls_t100ext-selfdef
EXCEPTIONS
OTHERS = 0.
IF NOT ls_t100ext-selfdef IS INITIAL.
ls_t100ext-no_docu = abap_true.
ELSE.
ls_t100ext-ltext = '-->'.
CONCATENATE 'switchContent(''' ls_t100ext-object_name ''')'
INTO ls_t100ext-ltext_onclick.
CLEAR ls_tabstrip.
ls_tabstrip-id = ls_t100ext-object_name.
ls_tabstrip-hidden = abap_true.
APPEND ls_tabstrip TO lt_tabstrip.
ENDIF.
APPEND ls_t100ext TO lt_t100ext.
ENDLOOP.
*HTML
PERFORM html_main_header
USING
tpt_msag
txt_message_class
-obj_name
txt_active___1
space
space
space
lt_tabstrip
gt_link
CHANGING
lt_html.
* Attributes
PERFORM html_add_textinput_subbox
USING
lt_attr
txt_attributes___2
lt_box
'ATTRIBUTES'
abap_true
CHANGING
lt_html.
* Messages
PERFORM html_add_table
USING
'MSAG_MESS'
lt_t100
lt_t100ext
'MESSAGES'
abap_false
CHANGING
lt_html.
* Documentation
LOOP AT lt_t100ext ASSIGNING
WHERE no_docu = abap_false.
PERFORM get_docu
USING
'NA'
-object_name
'E'
CHANGING
lt_doc.
PERFORM html_add_doc
USING
lt_doc
-object_name
abap_false
CHANGING
lt_html.
ENDLOOP.
*
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
-downloaded = abap_true.
ENDLOOP.
ENDFORM. "r3tr_msag
*-----------------------------------------------------------------------
* t_r3tr_tobj Authorization Object
*-----------------------------------------------------------------------
FORM t_r3tr_tobj.
DATA:
l_objct TYPE xuobject,
ls_tobj TYPE tobj,
ls_ti TYPE st_textinput,
lt_attr TYPE it_textinput,
lt_box TYPE it_textinput,
lt_actvt_attr TYPE it_textinput,
lt_actvt TYPE it_textinput,
lt_tactz TYPE STANDARD TABLE OF tactz,
l_xutxt TYPE xutxt30,
lt_html TYPE it_string,
l_ctext TYPE xutext,
l_bname TYPE xubname,
l_name_text TYPE ad_namtext,
l_field TYPE tobj-fiel1,
l_text TYPE as4text,
l_has_actvt TYPE flag,
lt_doc TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
l_javascript TYPE string.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE tactz,
TYPE st_tabstrip.
*TabStrip
PERFORM get_tabstrip
USING 'T_R3TR_TOBJ' space
CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'SUSO'
AND downloaded = abap_false.
CLEAR:
l_objct,
ls_tobj,
ls_ti,
l_ctext,
l_bname,
l_name_text,
l_has_actvt,
l_javascript.
REFRESH:
lt_attr,
lt_box,
lt_actvt_attr,
lt_actvt,
lt_tactz,
lt_doc,
lt_html.
l_objct = -obj_name.
SELECT SINGLE * FROM tobj INTO ls_tobj
WHERE objct = l_objct.
SELECT SINGLE ctext FROM tobct INTO l_ctext
WHERE oclss = ls_tobj-oclss
AND langu = sy-langu.
*Attributes
* Class
CLEAR ls_ti.
ls_ti-name = txt_class.
ls_ti-value = ls_tobj-oclss.
ls_ti-value_ext = l_ctext.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
APPEND ls_ti TO lt_attr.
* Author
CLEAR ls_ti.
ls_ti-name = txt_autor.
ls_ti-value = ls_tobj-bname.
l_bname = ls_tobj-bname.
PERFORM get_user
USING l_bname
CHANGING l_name_text.
ls_ti-value_text = l_name_text.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_attr.
*Attributes - Box
DO 10 TIMES VARYING l_field
FROM ls_tobj-fiel1 NEXT ls_tobj-fiel2.
CLEAR:
l_text,
ls_ti.
IF NOT l_field IS INITIAL.
IF l_field = 'ACTVT'.
l_has_actvt = abap_true.
ENDIF.
CALL FUNCTION 'AUTH_FIELD_GET_INFO'
EXPORTING
fieldname = l_field
IMPORTING
text = l_text.
ENDIF.
ls_ti-value = l_field.
ls_ti-value_ext = l_text.
ls_ti-has_value_ext = abap_true.
ls_ti-no_name = abap_true.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_box.
ENDDO.
*Documentation
PERFORM get_docu
USING
'UO'
l_objct
'E'
CHANGING
lt_doc.
*Activities
SELECT * FROM tactz INTO TABLE lt_tactz
WHERE brobj = l_objct.
SORT lt_tactz BY actvt.
LOOP AT lt_tactz ASSIGNING .
SELECT SINGLE ltext FROM tactt INTO l_xutxt
WHERE actvt = -actvt
AND spras = sy-langu.
CLEAR ls_ti.
ls_ti-name = -actvt.
ls_ti-value = abap_true.
ls_ti-flag = abap_true.
ls_ti-description = l_xutxt.
APPEND ls_ti TO lt_actvt.
ENDLOOP.
*Activities - Attributes
CLEAR ls_ti.
ls_ti-name = txt_conversion_for_authorizati.
ls_ti-value = ls_tobj-conversion.
ls_ti-flag = abap_true.
APPEND ls_ti TO lt_actvt_attr.
CLEAR ls_ti.
ls_ti-name = txt_activity.
IF l_has_actvt = abap_true.
ls_ti-value = 'ACTVT'.
ENDIF.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_actvt_attr.
*Tabstrip
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'DOC'.
IF lt_doc IS INITIAL.
-empty = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
*** HTML
IF NOT lt_doc IS INITIAL.
l_javascript = 'makeDivSize(''DOC'');'.
ENDIF.
PERFORM html_main_header
USING
tpt_tobj
txt_object
-obj_name
space
txt_text
-descript
l_javascript
lt_tabstrip
gt_link
CHANGING
lt_html.
*Attributes
PERFORM html_add_textinput_subbox
USING
lt_attr
txt_authorization_fields
lt_box
'ATTRIBUTES'
abap_true
CHANGING
lt_html.
*Activities
PERFORM html_add_textinput_subbox
USING
lt_actvt_attr
txt_values
lt_actvt
'ACTVT'
abap_false
CHANGING
lt_html.
*Documentation
IF NOT lt_doc IS INITIAL
OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_doc
USING
lt_doc
'DOC'
abap_false
CHANGING
lt_html.
ENDIF.
*
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
-downloaded = abap_true.
ENDLOOP.
ENDFORM. "r3tr_tobj
*-----------------------------------------------------------------------
* t_r3tr_para SET/GET Parameters
*-----------------------------------------------------------------------
FORM t_r3tr_para.
DATA:
ls_ti TYPE st_textinput,
lt_ti TYPE it_textinput,
l_filename TYPE string,
lt_html TYPE it_string.
FIELD-SYMBOLS:
TYPE st_ztadir.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'PARA'
AND downloaded = abap_false.
REFRESH:
lt_html,
lt_ti.
CLEAR ls_ti.
ls_ti-name = txt_parameter_id.
ls_ti-value = -obj_name.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti.
CLEAR ls_ti.
ls_ti-name = txt_text.
ls_ti-value = -descript.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_ti.
l_filename = -obj_name.
PERFORM encode_uri_link CHANGING l_filename.
PERFORM replace_all
USING '%' 'x'
CHANGING l_filename.
PERFORM replace_all
USING '<' '-'
CHANGING l_filename.
PERFORM replace_all
USING '>' '-'
CHANGING l_filename.
PERFORM encode_uri
CHANGING l_filename.
*** HTML
PERFORM html_main_popupheader
USING
txt_component_information
CHANGING
lt_html.
* Content
PERFORM html_add_textinputnodiv
USING
lt_ti
CHANGING
lt_html.
* Footer
PERFORM html_main_popupfooter
CHANGING lt_html.
* Download
PERFORM download
USING
lt_html
-pgmid
-object
l_filename
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_para
*-----------------------------------------------------------------------
* t_r3tr_tran Transactions
*-----------------------------------------------------------------------
FORM t_r3tr_tran.
DATA:
ls_tran TYPE st_transaction,
ls_tstc TYPE tstc,
ls_tstc_tmp TYPE tstc,
lt_tstca TYPE STANDARD TABLE OF tstca,
ls_tstcc TYPE tstcc,
l_param TYPE tcdparam,
l_tcode TYPE tcode,
l_gui_title TYPE string,
ls_ti TYPE st_textinput,
lt_defval TYPE it_textinput,
lt_gui_support TYPE it_textinput,
lt_para TYPE it_transaction_para,
ls_para TYPE st_transaction_para,
lt_html TYPE it_string,
l_off TYPE i,
l_length TYPE i,
l_str TYPE string,
lt_str TYPE it_string,
lt_tabstrip TYPE it_tabstrip.
CONSTANTS:
lc_hex_tra TYPE x VALUE '00', " Transaktion T
lc_hex_men TYPE x VALUE '01', " Bereichsmenue M
lc_hex_par TYPE x VALUE '02', " Parametertrans. P
lc_hex_rep TYPE x VALUE '80', " Report R
lc_hex_rpv TYPE x VALUE '10', " Report mit Variante
lc_hex_obj TYPE x VALUE '08', " Objekttransaktionen
lc_hex_chk TYPE x VALUE '04', " mit Pruefobjekt
lc_oo_program(9) VALUE '\PROGRAM=',
lc_oo_class(7) VALUE '\CLASS=',
lc_oo_method(8) VALUE '\METHOD=',
lc_oo_tcode LIKE tstc-tcode VALUE 'OS_APPLICATION'.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE tstca,
TYPE ANY.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'TRAN'
AND downloaded = abap_false.
CLEAR:
ls_para,
ls_tran,
ls_ti,
ls_tstc,
ls_tstc_tmp,
ls_tstcc,
l_param,
l_tcode,
l_gui_title,
l_off,
l_length,
l_str.
REFRESH:
lt_tstca,
lt_defval,
lt_gui_support,
lt_para,
lt_html,
lt_str,
lt_tabstrip.
l_tcode = -obj_name.
SELECT SINGLE * FROM tstc INTO ls_tstc
WHERE tcode = l_tcode.
ls_tran-pgmna = ls_tstc-pgmna.
ls_tran-dypno = ls_tstc-dypno.
IF ls_tstc-arbgb <> '&&'.
ls_tran-trans_var = abap_true.
ENDIF.
SELECT * FROM tstca INTO TABLE lt_tstca
WHERE tcode = l_tcode.
LOOP AT lt_tstca ASSIGNING .
ls_tran-objct = -objct.
EXIT.
ENDLOOP.
SELECT SINGLE * FROM tstcc INTO ls_tstcc
WHERE tcode = l_tcode.
IF ls_tstcc-s_webgui = '2'.
ls_tran-clf_ewt = abap_true.
ls_tran-clf_profi = abap_false.
ELSE.
ls_tran-clf_ewt = abap_false.
ls_tran-clf_profi = abap_true.
ENDIF.
ASSIGN COMPONENT 'S_PERVAS' OF STRUCTURE ls_tstcc TO .
IF IS ASSIGNED.
ls_tran-clf_pervas = .
UNASSIGN .
ENDIF.
ls_tran-clf_service = ls_tstcc-s_service.
*Parameter
SELECT SINGLE param FROM tstcp INTO l_param
WHERE tcode = l_tcode.
CASE l_param(1).
WHEN '\'.
IF l_param CS lc_oo_program.
l_off = sy-fdpos + 9.
l_length = strlen( l_param ) - l_off.
l_str = l_param+l_off(l_length).
IF l_str CA '\'.
ls_tran-pgmna = l_str+0(sy-fdpos).
ELSE.
ls_tran-pgmna = l_str.
ENDIF.
ENDIF.
IF l_param CS lc_oo_class.
l_off = sy-fdpos + 7.
l_length = strlen( l_param ) - l_off.
l_str = l_param+l_off(l_length).
IF l_str CA '\'.
ls_tran-classname = l_str+0(sy-fdpos).
ELSE.
ls_tran-classname = l_str.
ENDIF.
ENDIF.
IF l_param CS lc_oo_method.
l_off = sy-fdpos + 8.
l_length = strlen( l_param ) - l_off.
l_str = l_param+l_off(l_length).
IF l_str CA '\'.
ls_tran-method = l_str+0(sy-fdpos).
ELSE.
ls_tran-method = l_str.
ENDIF.
ENDIF.
IF NOT ls_tstc-pgmna IS INITIAL.
ls_tran-local = abap_true.
ENDIF.
WHEN '@'.
l_off = 1.
IF l_param(2) = '@@'.
l_off = 2.
ls_tran-ind_vari = abap_true.
ENDIF.
IF l_param CA space. ENDIF.
l_length = sy-fdpos - l_off.
ls_tran-def_call_tcode = l_param+l_off(l_length).
l_off = l_off + l_length + 1.
l_length = strlen( l_param ).
SUBTRACT l_off FROM l_length.
ls_tran-variant = l_param+l_off(l_length).
WHEN '/'.
IF l_param+1(1) = '*'.
ls_tran-def_skip_1 = abap_true.
ENDIF.
IF l_param CA space. ENDIF.
l_length = sy-fdpos.
IF l_length > 2.
SUBTRACT 2 FROM l_length.
ls_tran-def_call_tcode = l_param+2(l_length).
SELECT SINGLE * FROM tstc INTO ls_tstc_tmp
WHERE tcode = ls_tran-def_call_tcode.
IF sy-subrc = 0.
"...
ENDIF.
IF l_param CA '='.
l_off = 3 + l_length.
l_length = strlen( l_param ).
SUBTRACT l_off FROM l_length.
l_str = l_param+l_off(l_length).
SPLIT l_str AT ';' INTO TABLE lt_str.
LOOP AT lt_str INTO l_str.
IF l_str CA '='.
CLEAR ls_para.
SPLIT l_str AT '=' INTO
ls_para-para_field ls_para-para_value.
APPEND ls_para TO lt_para.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
WHEN OTHERS.
IF l_param CA '='.
SPLIT l_param AT ';' INTO TABLE lt_str.
LOOP AT lt_str INTO l_str.
IF l_str CA '='.
CLEAR ls_para.
SPLIT l_str AT '=' INTO
ls_para-para_field ls_para-para_value.
APPEND ls_para TO lt_para.
ENDIF.
ENDLOOP.
ENDIF.
ENDCASE.
***
SELECT SINGLE ttext FROM tstct INTO ls_tran-ttext
WHERE sprsl = sy-langu
AND tcode = l_tcode.
***
IF ls_tstc-cinfo O lc_hex_rep. "report transaction
ls_tran-ttype = gc_tcode_report.
l_gui_title = tpt_tran_repo.
IF ls_tran-dypno IS INITIAL.
ls_tran-dypno = '1000'.
ENDIF.
IF ls_tstc-cinfo O lc_hex_rpv AND NOT l_param IS INITIAL.
ls_tran-repo_vari = l_param.
ENDIF.
ELSEIF ls_tstc-cinfo O lc_hex_obj. "object transaction
ls_tran-ttype = gc_tcode_object.
l_gui_title = tpt_tran_obj.
IF ls_tran-def_call_tcode = lc_oo_tcode.
ls_tran-trframe = abap_true.
ENDIF.
ELSEIF ls_tstc-cinfo O lc_hex_par. "parameter transaction
ls_tran-ttype = gc_tcode_parameter.
l_gui_title = tpt_tran_param.
IF NOT l_param IS INITIAL
AND l_param(1) = '@'. "variant transaction
ls_tran-ttype = gc_tcode_variant.
l_gui_title = tpt_tran_vari.
ELSEIF ls_tran-def_call_tcode = lc_oo_tcode.
"object transaction
ls_tran-ttype = gc_tcode_object.
l_gui_title = tpt_tran_obj.
ls_tran-trframe = abap_true.
ENDIF.
ELSEIF ls_tstc-cinfo O lc_hex_men. "menue
ELSE. "dialog transaction
ls_tran-ttype = gc_tcode_dialog.
l_gui_title = tpt_tran_dialog.
ENDIF.
IF NOT ls_tran-def_call_tcode IS INITIAL
AND ( ls_tstcc IS INITIAL OR ls_tstcc = l_tcode )
AND ls_tran-ttype <> gc_tcode_object.
ls_tran-clf_inhe = abap_true.
SELECT SINGLE * FROM tstcc INTO ls_tstcc
WHERE tcode = ls_tran-def_call_tcode.
IF ls_tstcc-s_webgui = '2'.
ls_tran-clf_ewt = abap_true.
ls_tran-clf_profi = abap_false.
ELSE.
ls_tran-clf_ewt = abap_false.
ls_tran-clf_profi = abap_true.
ENDIF.
ASSIGN COMPONENT 'S_PERVAS' OF STRUCTURE ls_tstcc TO .
IF IS ASSIGNED.
ls_tran-clf_pervas = .
UNASSIGN .
ENDIF.
ls_tran-clf_service = ls_tstcc-s_service.
ENDIF.
*Default values for
CLEAR ls_ti.
ls_ti-name = txt_transaction.
ls_ti-value = ls_tran-def_call_tcode.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_defval.
CLEAR ls_ti.
ls_ti-name = txt_skip_initial_screen.
ls_ti-value = ls_tran-def_skip_1.
ls_ti-flag = abap_true.
APPEND ls_ti TO lt_defval.
CLEAR ls_ti.
ls_ti-name = txt_screen.
ls_ti-value = ls_tran-dypno.
ls_ti-input = abap_true.
ls_ti-has_value_ext = abap_true.
ls_ti-value_ext_space = abap_true.
APPEND ls_ti TO lt_defval.
CLEAR ls_ti.
ls_ti-name = txt_from_module_pool.
ls_ti-value = ls_tran-pgmna.
ls_ti-input = abap_true.
APPEND ls_ti TO lt_defval.
*GUI support
CLEAR ls_ti.
ls_ti-name = txt_sapgui_for_html.
ls_ti-flag = abap_true.
IF NOT ls_tstcc-s_webgui IS INITIAL.
ls_ti-value = abap_true.
ENDIF.
APPEND ls_ti TO lt_gui_support.
CLEAR ls_ti.
ls_ti-name = txt_sapgui_for_java.
ls_ti-flag = abap_true.
ls_ti-value = ls_tstcc-s_platin.
APPEND ls_ti TO lt_gui_support.
CLEAR ls_ti.
ls_ti-name = txt_sapgui_for_windows.
ls_ti-flag = abap_true.
ls_ti-value = ls_tstcc-s_win32.
APPEND ls_ti TO lt_gui_support.
*** HTML
PERFORM html_main_header
USING
l_gui_title
txt_transaction_code
-obj_name
space
txt_package
-devclass
'makeDivSize(''TRANSACTION'');'
lt_tabstrip
gt_link
CHANGING
lt_html.
*Transaction
PERFORM html_add_transaction
USING
ls_tran
lt_tstca
lt_defval
lt_gui_support
lt_para
'TRANSACTION'
abap_true
CHANGING
lt_html.
*
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
-downloaded = abap_true.
ENDLOOP.
ENDFORM. "r3tr_tran