*&---------------------------------------------------------------------*
*& Include ZSOFTCOPY_DDIC *
*& *
*&---------------------------------------------------------------------*
*& *
*& 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 *
*& *
*&---------------------------------------------------------------------*
*-----------------------------------------------------------------------
* ddic
*-----------------------------------------------------------------------
FORM ddic.
*DOMA
PERFORM ddic_r3tr_doma.
*DTEL
PERFORM ddic_r3tr_dtel.
*ENQU: AGGTYPE = E
PERFORM ddic_r3tr_enqu.
*SHLP
PERFORM ddic_r3tr_shlp.
*TABL: TABCLASS = APPEND, INTTAB, VIEW
PERFORM ddic_r3tr_tabl_1.
*TABL: TABCLASS = CLUSTER, POOL, TRANSP
PERFORM ddic_r3tr_tabl_2.
*TTYP
PERFORM ddic_r3tr_ttyp.
*TYPE
PERFORM ddic_r3tr_type.
*VIEW
PERFORM ddic_r3tr_view.
ENDFORM. "ddic
*-----------------------------------------------------------------------
* ddic_r3tr_doma Domänen
*-----------------------------------------------------------------------
FORM ddic_r3tr_doma.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
l_domname TYPE domname,
ls_attributes TYPE st_attributes,
ls_definition TYPE st_definition_1,
ls_value_range TYPE st_value_range,
lt_value_range TYPE it_value_range,
ls_dd01v TYPE dd01v,
ls_dd01v_n TYPE dd01v,
lt_dd07v TYPE STANDARD TABLE OF dd07v,
lt_dd07v_n TYPE STANDARD TABLE OF dd07v,
l_state TYPE dcdomaget,
lt_doc TYPE it_string.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE dd07v,
TYPE st_tabstrip.
PERFORM get_tabstrip
USING 'DDIC_R3TR_DOMA' space
CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'DOMA'
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes.
REFRESH:
lt_html,
lt_value_range,
lt_dd07v,
lt_dd07v_n,
lt_doc.
l_domname = -obj_name.
CALL FUNCTION 'DD_DOMA_GET'
EXPORTING
domain_name = l_domname
langu = sy-langu
withtext = abap_true
IMPORTING
dd01v_wa_a = ls_dd01v
dd01v_wa_n = ls_dd01v_n
got_state = l_state
TABLES
dd07v_tab_a = lt_dd07v
dd07v_tab_n = lt_dd07v_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
-subrc = sy-subrc.
CONTINUE.
ENDIF.
ls_attributes-bname = ls_dd01v-as4user.
PERFORM get_date
USING
ls_dd01v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
IF ls_dd01v-dommaster IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO ls_dd01v-dommaster
WHERE pgmid = 'R3TR'
AND object = 'DOMA'
AND obj_name = l_domname.
ENDIF.
PERFORM get_spras
USING
ls_dd01v-dommaster
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd01v-as4user
CHANGING
ls_attributes-name_text.
ls_definition-datatype = ls_dd01v-datatype.
PERFORM get_dom_value_text
USING
'DATATYPE'
ls_dd01v-datatype
CHANGING
ls_definition-datadescr.
ls_definition-dataleng = ls_dd01v-leng.
ls_definition-datadeci = ls_dd01v-decimals.
ls_definition-outputlen = ls_dd01v-outputlen.
ls_definition-convexit = ls_dd01v-convexit.
ls_definition-signflag = ls_dd01v-signflag.
ls_definition-lowercase = ls_dd01v-lowercase.
SORT lt_dd07v BY valpos.
LOOP AT lt_dd07v ASSIGNING .
ls_value_range-ddtext = -ddtext.
IF -domval_ld IS INITIAL.
ls_value_range-domvalue_l = -domvalue_l.
ELSE.
ls_value_range-domvalue_l = -domval_ld.
ENDIF.
IF -domval_hd IS INITIAL.
ls_value_range-domvalue_h = -domval_hd.
ELSE.
ls_value_range-domvalue_h = -domvalue_h.
ENDIF.
APPEND ls_value_range TO lt_value_range.
ENDLOOP.
*doma documentation
PERFORM get_docu
USING
'DO'
-obj_name
'T'
CHANGING
lt_doc.
***
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'DOC'.
IF lt_doc IS INITIAL.
-empty = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
*HTML header
PERFORM html_main_header
USING
tpt_ddic_doma
txt_domain
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
gt_link
CHANGING
lt_html.
*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.
*HTML attributes
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
*HTML definition
PERFORM html_add_definition_1
USING
ls_definition
'DEFINITION'
abap_true
CHANGING
lt_html.
*HTML value range
PERFORM html_add_value_range
USING
lt_value_range
'VALUERANGE'
abap_false
CHANGING
lt_html.
*HTML footer
PERFORM html_main_footer
USING
lt_html.
*
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_doma
*-----------------------------------------------------------------------
* ddic_r3tr_dtel Datenelemente
*-----------------------------------------------------------------------
FORM ddic_r3tr_dtel.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
ls_tabstrip TYPE st_tabstrip,
l_rollname TYPE rollname,
ls_attributes TYPE st_attributes,
ls_data_type TYPE st_data_type,
ls_further_char TYPE st_further_char,
ls_field_label TYPE st_field_label,
lt_para TYPE tpara,
ls_dd01l TYPE dd01l,
lt_dd03p TYPE STANDARD TABLE OF dd03p,
ls_dd04l TYPE dd04l,
ls_dd04l_n TYPE dd04l,
lt_dd04t TYPE STANDARD TABLE OF dd04t,
ls_dd04t TYPE dd04t,
lt_dd04t_n TYPE STANDARD TABLE OF dd04t,
l_state TYPE ddrefstruc-state,
lt_doc TYPE it_string,
lt_docdz TYPE STANDARD TABLE OF docdz,
l_tab_nr TYPE i,
l_tab_id TYPE string,
l_doc_obj TYPE doku_obj,
l_active TYPE flag.
FIELD-SYMBOLS:
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE st_ztadir,
TYPE dd03p,
TYPE st_tabstrip,
TYPE docdz.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'DTEL'
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes.
REFRESH:
lt_html,
lt_tabstrip,
lt_dd04t,
lt_dd04t_n,
lt_doc,
lt_docdz.
l_rollname = -obj_name.
CALL FUNCTION 'DD_DTEL_GET'
EXPORTING
roll_name = l_rollname
langu = sy-langu
withtext = abap_true
IMPORTING
got_state = l_state
dd04l_wa_a = ls_dd04l
dd04l_wa_n = ls_dd04l_n
dd01l_wa = ls_dd01l
tpara_wa = lt_para
TABLES
dd04t_tab_a = lt_dd04t
dd04t_tab_n = lt_dd04t_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
-subrc = sy-subrc.
CONTINUE.
ENDIF.
READ TABLE lt_dd04t INTO ls_dd04t INDEX 1.
*attributes
ls_attributes-bname = ls_dd04l-as4user.
PERFORM get_date
USING
ls_dd04l-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
IF ls_dd04l-dtelmaster IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO ls_dd04l-dtelmaster
WHERE pgmid = 'R3TR'
AND object = 'DTEL'
AND obj_name = l_rollname.
ENDIF.
PERFORM get_spras
USING
ls_dd04l-dtelmaster
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd04l-as4user
CHANGING
ls_attributes-name_text.
*data type
ls_data_type-domname = ls_dd04l-domname.
PERFORM get_dom
USING
ls_data_type-domname
CHANGING
ls_data_type-domdescr.
ASSIGN COMPONENT 'DATATYPE' OF STRUCTURE ls_dd04l TO .
IF IS ASSIGNED.
ls_data_type-datatype = .
UNASSIGN .
ENDIF.
PERFORM get_dom_value_text
USING
'DATATYPE'
ls_dd04l-domname
CHANGING
ls_data_type-datadescr.
ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd04l TO .
IF IS ASSIGNED.
ls_data_type-dataleng = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'DECIMALS' OF STRUCTURE ls_dd04l TO .
IF IS ASSIGNED.
ls_data_type-datadeci = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'REFKIND' OF STRUCTURE ls_dd04l TO .
IF IS ASSIGNED.
ls_data_type-refkind = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'REFTYPE' OF STRUCTURE ls_dd04l TO .
IF IS ASSIGNED.
ls_data_type-reftype = .
UNASSIGN .
ELSE.
ls_data_type-reftype = '#'. "R/3 4.6 does not know ref type
ENDIF.
*further char
ls_further_char-shlpname = ls_dd04l-shlpname.
ls_further_char-shlpfield = ls_dd04l-shlpfield.
ls_further_char-memoryid = ls_dd04l-memoryid.
ls_further_char-deffdname = ls_dd04l-deffdname.
ls_further_char-logflag = ls_dd04l-logflag.
*field label
ls_field_label-scrlen_s = ls_dd04l-scrlen1.
ls_field_label-scrtext_s = ls_dd04t-scrtext_s.
ls_field_label-scrlen_m = ls_dd04l-scrlen2.
ls_field_label-scrtext_m = ls_dd04t-scrtext_m.
ls_field_label-scrlen_l = ls_dd04l-scrlen3.
ls_field_label-scrtext_l = ls_dd04t-scrtext_l.
ls_field_label-headlen = ls_dd04l-headlen.
ls_field_label-reptext = ls_dd04t-reptext.
*dtel documentation
PERFORM get_docu
USING
'DE'
-obj_name
'E'
CHANGING
lt_doc.
*supplementary documentation
CALL FUNCTION 'DOCU_GET_DZ'
EXPORTING
langu = sy-langu
rollname = l_rollname
TABLES
dz_list = lt_docdz
EXCEPTIONS
OTHERS = 1.
SORT lt_docdz BY addition.
***
PERFORM get_tabstrip
USING 'DDIC_R3TR_DTEL' space
CHANGING lt_tabstrip.
SORT lt_tabstrip BY tab_nr DESCENDING.
READ TABLE lt_tabstrip ASSIGNING INDEX 1.
l_tab_nr = -tab_nr.
SORT lt_tabstrip BY tab_nr.
CLEAR ls_tabstrip.
ls_tabstrip-active_order = 1.
LOOP AT lt_docdz ASSIGNING .
l_tab_nr = l_tab_nr + 1.
ls_tabstrip-form = 'DDIC_R3TR_DTEL'.
CONCATENATE 'DOCDZ_' -addition INTO ls_tabstrip-id.
ls_tabstrip-parent_id = 'DOCDZ'.
ls_tabstrip-tab_nr = l_tab_nr.
ls_tabstrip-text = -addition.
APPEND ls_tabstrip TO lt_tabstrip.
CLEAR ls_tabstrip.
ENDLOOP.
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'DOC'.
IF lt_doc IS INITIAL.
-empty = abap_true.
ENDIF.
WHEN 'DOCDZ'.
IF lt_docdz IS INITIAL.
-empty = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
*HTML header
PERFORM html_main_header
USING
tpt_ddic_dtel
txt_data_element___1
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
gt_link
CHANGING
lt_html.
*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.
*HTML supplementary documentation
IF NOT lt_docdz IS INITIAL
OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_container_begin
USING
lt_tabstrip
'DOCDZ'
abap_false
CHANGING
lt_html.
l_active = abap_true.
LOOP AT lt_docdz ASSIGNING .
CLEAR: l_tab_id, l_doc_obj.
REFRESH lt_doc.
CONCATENATE 'DOCDZ_' -addition INTO l_tab_id.
CALL FUNCTION 'DOCU_OBJECT_NAME_CONCATENATE'
EXPORTING
docu_id = 'DZ'
element = -rollname
addition = -addition
IMPORTING
object = l_doc_obj.
PERFORM get_docu
USING
'DZ'
l_doc_obj
'E'
CHANGING
lt_doc.
PERFORM html_add_doc
USING
lt_doc
l_tab_id
l_active
CHANGING
lt_html.
l_active = abap_false.
ENDLOOP.
PERFORM html_add_container_end
CHANGING
lt_html.
ENDIF.
*HTML attributes
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
*HTML data type
PERFORM html_add_data_type
USING
ls_data_type
'DATATYPE'
abap_true
CHANGING
lt_html.
*HTML further char
PERFORM html_add_further_char
USING
ls_further_char
'FURTHERCHAR'
abap_false
CHANGING
lt_html.
*HTML field label
PERFORM html_add_field_label
USING
ls_field_label
'FIELDLABEL'
abap_false
CHANGING
lt_html.
*HTML footer
PERFORM html_main_footer
USING
lt_html.
*download
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_dtel
*-----------------------------------------------------------------------
* ddic_r3tr_enqu Aggregat-Header
* (Sperrobjekte)
*-----------------------------------------------------------------------
FORM ddic_r3tr_enqu.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
l_viewname TYPE viewname,
ls_attributes TYPE st_attributes,
lt_tables TYPE it_tables,
ls_tables TYPE st_tables,
ls_dd25v TYPE dd25v,
ls_dd25v_n TYPE dd25v,
lt_dd26v TYPE STANDARD TABLE OF dd26v,
lt_dd26v_n TYPE STANDARD TABLE OF dd26v,
lt_dd27p TYPE STANDARD TABLE OF dd27p,
lt_dd27p_n TYPE STANDARD TABLE OF dd27p,
l_state TYPE dcenquget.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE dd27p.
PERFORM get_tabstrip
USING 'DDIC_R3TR_ENQU' space
CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'ENQU'
AND aggtype = 'E'
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes.
REFRESH:
lt_html,
lt_dd26v,
lt_dd26v_n,
lt_dd27p,
lt_dd27p_n.
l_viewname = -obj_name.
CALL FUNCTION 'DD_ENQU_GET'
EXPORTING
enqu_name = l_viewname
langu = sy-langu
withtext = abap_true
IMPORTING
dd25v_wa_a = ls_dd25v
dd25v_wa_n = ls_dd25v_n
got_state = l_state
TABLES
dd26v_tab_a = lt_dd26v
dd26v_tab_n = lt_dd26v_n
dd27p_tab_a = lt_dd27p
dd27p_tab_n = lt_dd27p_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
-subrc = sy-subrc.
CONTINUE.
ENDIF.
*attributes
ls_attributes-bname = ls_dd25v-as4user.
PERFORM get_date
USING
ls_dd25v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
IF ls_dd25v-masterlang IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO ls_dd25v-masterlang
WHERE pgmid = 'R3TR'
AND object = 'ENQU'
AND obj_name = l_viewname.
ENDIF.
PERFORM get_spras
USING
ls_dd25v-masterlang
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd25v-as4user
CHANGING
ls_attributes-name_text.
ls_attributes-display_rfcenable = abap_true.
ls_attributes-rfcenable = ls_dd25v-globalflag.
SORT lt_dd27p BY viewname objpos.
LOOP AT lt_dd27p ASSIGNING
WHERE fieldname = '*'.
CLEAR ls_tables.
IF -tabname = ls_dd25v-roottab.
ls_tables-primary = abap_true.
ENDIF.
ls_tables-tabname = -tabname.
PERFORM get_dom_value_text
USING
'ENQMODE'
-enqmode
CHANGING
ls_tables-enqmode.
APPEND ls_tables TO lt_tables.
ENDLOOP.
PERFORM html_main_header
USING
tpt_ddic_enqu
txt_lock_object___1
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
gt_link
CHANGING
lt_html.
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
PERFORM html_add_tables
USING
lt_tables
'TABLES'
abap_true
CHANGING
lt_html.
DELETE lt_dd27p WHERE fieldname = '*'.
PERFORM html_add_table
USING
'ENQU_PARAM'
lt_dd27p
lt_dd27p
'LOCKPARAMETER'
abap_false
CHANGING
lt_html.
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_enqu_e
*-----------------------------------------------------------------------
* ddic_r3tr_shlp Suchhilfen
*-----------------------------------------------------------------------
FORM ddic_r3tr_shlp.
DATA:
lt_html TYPE it_string,
l_shlpname TYPE shlpname,
ls_dd30v TYPE dd30v,
ls_dd30v_n TYPE dd30v,
lt_dd31v TYPE STANDARD TABLE OF dd31v,
lt_dd31v_n TYPE STANDARD TABLE OF dd31v,
lt_dd32p TYPE STANDARD TABLE OF dd32p,
lt_dd32p_n TYPE STANDARD TABLE OF dd32p,
lt_dd33v TYPE STANDARD TABLE OF dd33v,
lt_dd33v_n TYPE STANDARD TABLE OF dd33v,
ls_attributes TYPE st_attributes,
lt_tabstrip TYPE it_tabstrip,
ls_definition TYPE st_definition_2,
l_state TYPE dcshlpget.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE dd07v.
PERFORM get_tabstrip
USING 'DDIC_R3TR_SHLP' space
CHANGING lt_tabstrip.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'SHLP'
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes,
ls_definition.
REFRESH:
lt_html,
lt_dd31v,
lt_dd31v_n,
lt_dd32p,
lt_dd32p_n,
lt_dd33v,
lt_dd33v_n.
l_shlpname = -obj_name.
CALL FUNCTION 'DD_SHLP_GET'
EXPORTING
shlp_name = l_shlpname
langu = sy-langu
withtext = abap_true
add_typeinfo = abap_true
IMPORTING
dd30v_wa_a = ls_dd30v
dd30v_wa_n = ls_dd30v_n
got_state = l_state
TABLES
dd31v_tab_a = lt_dd31v
dd31v_tab_n = lt_dd31v_n
dd32p_tab_a = lt_dd32p
dd32p_tab_n = lt_dd32p_n
dd33v_tab_a = lt_dd33v
dd33v_tab_n = lt_dd33v_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
-subrc = sy-subrc.
CONTINUE.
ENDIF.
ls_attributes-bname = ls_dd30v-as4user.
PERFORM get_date
USING
ls_dd30v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
IF ls_dd30v-ddlanguage IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO ls_dd30v-ddlanguage
WHERE pgmid = 'R3TR'
AND object = 'SHLP'
AND obj_name = l_shlpname.
ENDIF.
PERFORM get_spras
USING
ls_dd30v-ddlanguage
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd30v-as4user
CHANGING
ls_attributes-name_text.
ls_definition-selmethod = ls_dd30v-selmethod.
ls_definition-texttab = ls_dd30v-texttab.
ls_definition-dialogtype = ls_dd30v-dialogtype.
ls_definition-hotkey = ls_dd30v-hotkey.
ls_definition-selmexit = ls_dd30v-selmexit.
PERFORM html_main_header
USING
tpt_ddic_shlp
txt_elementary_srch_hlp
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
gt_link
CHANGING
lt_html.
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
PERFORM html_add_definition_2
USING
ls_definition
'SHLP_PARAM'
lt_dd32p
'DEFINITION'
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.
ENDLOOP.
ENDFORM. "r3tr_shlp
*-----------------------------------------------------------------------
* ddic_r3tr_tabl_1 SAP-Tabellen
* (Strukturen)
*-----------------------------------------------------------------------
FORM ddic_r3tr_tabl_1.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
ls_attributes TYPE st_attributes,
ls_deliv_maint TYPE st_deliv_maint,
ls_dd02v TYPE dd02v,
lt_dd03p TYPE STANDARD TABLE OF dd03p,
ls_dd09l TYPE dd09l,
lt_zdd03p_ext TYPE it_zdd03p_ext,
l_state TYPE dctablget,
lt_doc TYPE it_string,
lt_ddranking TYPE it_dom_value,
lt_exclass TYPE it_access,
ls_exclass TYPE st_access.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE st_dom_value,
TYPE st_tabstrip,
TYPE ANY.
PERFORM get_tabstrip
USING 'DDIC_R3TR_TABL_1' space
CHANGING lt_tabstrip.
PERFORM get_dom_value_texts
USING 'DDRANKING'
CHANGING lt_ddranking.
SORT lt_ddranking BY value DESCENDING.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'TABL'
AND ( tabclass = 'INTTAB'
OR tabclass = 'VIEW'
OR tabclass = 'APPEND' )
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes.
REFRESH:
lt_html,
lt_dd03p,
lt_doc,
lt_exclass.
PERFORM ddic_r3tr_tabl_get
CHANGING
ls_dd02v
lt_dd03p
lt_zdd03p_ext
ls_dd09l.
ls_attributes-bname = ls_dd02v-as4user.
PERFORM get_date
USING
ls_dd02v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
PERFORM get_spras
USING
ls_dd02v-masterlang
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd02v-as4user
CHANGING
ls_attributes-name_text.
ls_deliv_maint-contflag = ls_dd02v-contflag.
PERFORM get_dom_value_text
USING
'CONTFLAG'
ls_dd02v-contflag
CHANGING
ls_deliv_maint-contflag_text.
PERFORM get_dom_value_text
USING
'MAINTFLAG'
ls_dd02v-mainflag
CHANGING
ls_deliv_maint-mainflag_text.
*enhancement category
ASSIGN COMPONENT 'EXCLASS' OF STRUCTURE ls_dd02v TO .
IF IS ASSIGNED.
LOOP AT lt_ddranking ASSIGNING .
ls_exclass-ddtext = -text.
ls_exclass-checked = abap_false.
IF -value = .
ls_exclass-checked = abap_true.
ENDIF.
APPEND ls_exclass TO lt_exclass.
ENDLOOP.
ENDIF.
*documentation
PERFORM get_docu
USING
'TB'
-obj_name
'E'
CHANGING
lt_doc.
***
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'DOC'.
IF lt_doc IS INITIAL.
-empty = abap_true.
ENDIF.
WHEN 'EXCLASS'.
IF lt_exclass IS INITIAL.
-hidden = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
*HTML header
PERFORM html_main_header
USING
tpt_ddic_stru
txt_structure
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
gt_link
CHANGING
lt_html.
*HTML enhancement category
IF NOT lt_exclass IS INITIAL.
PERFORM html_add_box_radiobuttons
USING
txt_enhancement_category_for_s
'EXCLASS'
lt_exclass
'EXCLASS'
abap_false
CHANGING
lt_html.
ENDIF.
*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.
*HTML attributes
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
*HTML components
PERFORM html_add_table
USING
'TABL1COMPO'
lt_dd03p
lt_zdd03p_ext
'COMPONENTS'
abap_true
CHANGING
lt_html.
*HTML entry help check
PERFORM html_add_table
USING
'TABL1ENTRY'
lt_dd03p
lt_zdd03p_ext
'ENTRY_HELP_CHECK'
abap_false
CHANGING
lt_html.
*HTML curr quant fields
PERFORM html_add_table
USING
'TABL1CURRQ'
lt_dd03p
lt_zdd03p_ext
'CURR_QUANT_FIELDS'
abap_false
CHANGING
lt_html.
*HTML footer
PERFORM html_main_footer
USING
lt_html.
*
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_tabl_1
*-----------------------------------------------------------------------
* ddic_r3tr_tabl_2 SAP-Tabellen
* (Datenbanktabellen)
*-----------------------------------------------------------------------
FORM ddic_r3tr_tabl_2.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
l_name_value TYPE string,
ls_attributes TYPE st_attributes,
ls_deliv_maint TYPE st_deliv_maint,
lt_access TYPE it_access,
ls_dd02v TYPE dd02v,
lt_dd03p TYPE STANDARD TABLE OF dd03p,
ls_dd09l TYPE dd09l,
lt_zdd03p_ext TYPE it_zdd03p_ext,
l_state TYPE dctablget,
lt_doc TYPE it_string,
lt_ddranking TYPE it_dom_value,
lt_exclass TYPE it_access,
ls_exclass TYPE st_access,
l_texttabname TYPE tabname,
l_text_obj_name TYPE sobj_name,
l_text_devclass TYPE devclass,
lt_link TYPE it_link,
ls_link TYPE st_link,
lt_csv TYPE it_string,
lt_xml TYPE it_string,
lt_ts_params TYPE it_textinput,
lt_ts_buffer TYPE it_access,
lt_ts_buffer_type_l TYPE it_textinput,
lt_ts_buffer_type_r TYPE it_textinput,
lt_ts_bottom TYPE it_textinput,
ls_textinput TYPE st_textinput,
ls_access TYPE st_access,
l_ddtext TYPE ddtext,
lt_dom_value TYPE it_dom_value,
lt_tmg_tech_details TYPE it_textinput,
ls_tddat TYPE tddat,
ls_tbrgt TYPE tbrgt,
ls_tvdir TYPE tvdir,
ls_objh TYPE objh,
l_compare_flag TYPE string,
lt_str TYPE it_string.
FIELD-SYMBOLS:
TYPE st_ztadir,
TYPE st_dom_value,
TYPE st_tabstrip,
TYPE ANY,
TYPE st_dom_value.
PERFORM get_tabstrip
USING 'DDIC_R3TR_TABL_2' space
CHANGING lt_tabstrip.
PERFORM get_dom_value_texts
USING 'DDRANKING'
CHANGING lt_ddranking.
SORT lt_ddranking BY value DESCENDING.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'TABL'
AND ( tabclass = 'CLUSTER'
OR tabclass = 'POOL'
OR tabclass = 'TRANSP' )
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes,
l_state,
l_texttabname,
l_text_obj_name,
l_text_devclass,
ls_textinput,
l_ddtext,
ls_tddat,
ls_tbrgt,
ls_tvdir,
ls_objh,
l_compare_flag.
REFRESH:
lt_html,
lt_doc,
lt_exclass,
lt_link,
lt_csv,
lt_xml,
lt_ts_params,
lt_ts_buffer,
lt_ts_buffer_type_l,
lt_ts_buffer_type_r,
lt_ts_bottom,
lt_tmg_tech_details.
PERFORM ddic_r3tr_tabl_get
CHANGING
ls_dd02v
lt_dd03p
lt_zdd03p_ext
ls_dd09l.
l_tabname = -obj_name.
*attributes
ls_attributes-bname = ls_dd02v-as4user.
PERFORM get_date
USING
ls_dd02v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
PERFORM get_spras
USING
ls_dd02v-masterlang
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd02v-as4user
CHANGING
ls_attributes-name_text.
*deliv maint
ls_deliv_maint-sqltab = ls_dd02v-sqltab.
ls_deliv_maint-display_cont = abap_true.
ls_deliv_maint-contflag = ls_dd02v-contflag.
PERFORM get_dom_value_text
USING
'CONTFLAG'
ls_dd02v-contflag
CHANGING
ls_deliv_maint-contflag_text.
ls_deliv_maint-display_main = abap_true.
PERFORM get_dom_value_text
USING
'MAINTFLAG'
ls_dd02v-mainflag
CHANGING
ls_deliv_maint-mainflag_text.
*technical settings
* logical storage parameters
CLEAR ls_textinput.
ls_textinput-name = txt_data_class.
ls_textinput-value = ls_dd09l-tabart.
SELECT SINGLE darttext FROM dartt INTO l_ddtext
WHERE tabart = ls_dd09l-tabart
AND ddlangu = sy-langu.
ls_textinput-description = l_ddtext.
ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_ts_params.
CLEAR ls_textinput.
ls_textinput-name = txt_size_category.
ls_textinput-value = ls_dd09l-tabkat.
ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_ts_params.
* buffering
PERFORM get_dom_value_texts
USING 'BUFALLOW'
CHANGING lt_dom_value.
LOOP AT lt_dom_value ASSIGNING .
CLEAR ls_access.
ls_access-ddtext = -text.
IF -value = ls_dd09l-bufallow.
ls_access-checked = abap_true.
ENDIF.
APPEND ls_access TO lt_ts_buffer.
ENDLOOP.
* buffering type
CLEAR ls_textinput.
ls_textinput-name = txt_single_records_buff.
IF ls_dd09l-pufferung = 'P'.
ls_textinput-value = abap_true.
ENDIF.
ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_l.
CLEAR ls_textinput.
ls_textinput-name = txt_generic_area_buffered.
IF ls_dd09l-pufferung = 'G'.
ls_textinput-value = abap_true.
ENDIF.
ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_l.
CLEAR ls_textinput.
ls_textinput-name = txt_fully_buffered.
IF ls_dd09l-pufferung = 'X'.
ls_textinput-value = abap_true.
ENDIF.
ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_l.
CLEAR ls_textinput.
ls_textinput-space = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_r.
CLEAR ls_textinput.
ls_textinput-name = txt_no_of_key_fields.
PERFORM get_unpacked
USING ls_dd09l-schfeldanz
CHANGING ls_textinput-value.
ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_r.
CLEAR ls_textinput.
ls_textinput-space = abap_true.
APPEND ls_textinput TO lt_ts_buffer_type_r.
* bottom
CLEAR ls_textinput.
ls_textinput-name = txt_log_data_changes.
ls_textinput-value = ls_dd09l-protokoll.
ls_textinput-flag = abap_true.
APPEND ls_textinput TO lt_ts_bottom.
*enhancement category
ASSIGN COMPONENT 'EXCLASS' OF STRUCTURE ls_dd02v TO .
IF IS ASSIGNED.
LOOP AT lt_ddranking ASSIGNING .
ls_exclass-ddtext = -text.
ls_exclass-checked = abap_false.
IF -value = .
ls_exclass-checked = abap_true.
ENDIF.
APPEND ls_exclass TO lt_exclass.
ENDLOOP.
ENDIF.
*Table Maintenance Generator
SELECT SINGLE * FROM tvdir INTO ls_tvdir
WHERE tabname = l_tabname.
SELECT SINGLE * FROM objh INTO ls_objh
WHERE objectname = l_tabname
AND objecttype = 'S'.
* technical dialog details
SELECT SINGLE * FROM tddat INTO ls_tddat
WHERE tabname = l_tabname.
SELECT SINGLE * FROM tbrgt INTO ls_tbrgt
WHERE brgru = ls_tddat-cclass
AND spras = sy-langu.
*
CLEAR ls_textinput.
ls_textinput-name = txt_authorization_group.
ls_textinput-value = ls_tddat-cclass.
PERFORM encode_html CHANGING ls_textinput-value.
ls_textinput-input = abap_true.
ls_textinput-description = ls_tbrgt-bezei.
PERFORM encode_html CHANGING ls_textinput-description.
APPEND ls_textinput TO lt_tmg_tech_details.
*
CLEAR ls_textinput.
ls_textinput-name = txt_authorization_object___1.
ls_textinput-value = ls_tbrgt-brobj.
APPEND ls_textinput TO lt_tmg_tech_details.
*
CLEAR ls_textinput.
ls_textinput-name = txt_function_group.
ls_textinput-value = ls_tvdir-area.
ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_tmg_tech_details.
*
CLEAR ls_textinput.
ls_textinput-name = txt_package.
ls_textinput-value = ls_tvdir-devclass.
ls_textinput-input = abap_true.
APPEND ls_textinput TO lt_tmg_tech_details.
* dialog data transport details
PERFORM get_dom_value_text
USING 'OBJIMP' ls_objh-importable
CHANGING l_compare_flag.
*Table Documentation
PERFORM get_docu
USING
'TB'
-obj_name
'E'
CHANGING
lt_doc.
*Text table
CLEAR ls_link.
CALL FUNCTION 'TABLE_GET_TEXTTABLE'
EXPORTING
checktable = l_tabname
IMPORTING
tabname = l_texttabname
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0.
l_text_obj_name = l_texttabname.
SELECT SINGLE devclass FROM tadir INTO l_text_devclass
WHERE pgmid = -pgmid
AND object = -object
AND obj_name = l_text_obj_name.
IF l_text_devclass = g_pack.
CONCATENATE l_texttabname '.' gc_extension_htm
INTO ls_link-href.
ls_link-onclick = 'window.location=this.href'.
ENDIF.
ls_link-descript = txt_text_table.
ls_link-title = l_texttabname.
APPEND ls_link TO lt_link.
ENDIF.
*Content
CLEAR ls_link.
READ TABLE gt_tadir TRANSPORTING NO FIELDS
WITH KEY obj_name = -obj_name.
IF sy-subrc = 0.
* csv
IF g_add_db_format_csv = abap_true.
PERFORM data2csv
USING l_tabname
CHANGING lt_csv.
PERFORM download
USING
lt_csv
-pgmid
-object
-obj_name
gc_extension_csv
abap_false.
ls_link-href = -obj_name.
SPLIT ls_link-href AT '/' INTO TABLE lt_str.
LOOP AT lt_str INTO ls_link-href.
ENDLOOP.
CONCATENATE ls_link-href '.' gc_extension_csv
INTO ls_link-href.
ls_link-onclick = 'window.open(this.href)'.
ls_link-descript = gc_extension_csv.
APPEND ls_link TO lt_link.
ENDIF.
* xml
IF g_add_db_format_xml = abap_true.
PERFORM data2xml
USING l_tabname
CHANGING lt_xml.
PERFORM download
USING
lt_xml
-pgmid
-object
-obj_name
gc_extension_xml
abap_false.
ls_link-href = -obj_name.
SPLIT ls_link-href AT '/' INTO TABLE lt_str.
LOOP AT lt_str INTO ls_link-href.
ENDLOOP.
CONCATENATE ls_link-href '.' gc_extension_xml
INTO ls_link-href.
ls_link-onclick = 'window.open(this.href)'.
ls_link-descript = gc_extension_xml.
APPEND ls_link TO lt_link.
ENDIF.
ENDIF.
***
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'DOC'.
IF lt_doc IS INITIAL.
-empty = abap_true.
ENDIF.
WHEN 'EXCLASS'.
IF lt_exclass IS INITIAL.
-hidden = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
CASE -tabclass.
WHEN 'CLUSTER'.
l_name_value = txt_cluster_table.
WHEN 'POOL'.
l_name_value = txt_pooled_table.
WHEN 'TRANSP'.
l_name_value = txt_transp_table.
WHEN OTHERS.
l_name_value = txt_table.
ENDCASE.
*HTML header
PERFORM html_main_header
USING
tpt_ddic_tabl
l_name_value
-obj_name
txt_active___1
txt_short_text___2
-descript
space
lt_tabstrip
lt_link
CHANGING
lt_html.
*HTML technical settings
PERFORM html_add_tech_settings
USING
txt_logical_storage_parameters
lt_ts_params
txt_buffering
lt_ts_buffer
txt_buffering_type
lt_ts_buffer_type_l
lt_ts_buffer_type_r
lt_ts_bottom
'TECH_SETTINGS'
abap_false
CHANGING
lt_html.
*HTML enhancement category
IF NOT lt_exclass IS INITIAL.
PERFORM html_add_box_radiobuttons
USING
txt_enhancement_category_for_s
'EXCLASS'
lt_exclass
'EXCLASS'
abap_false
CHANGING
lt_html.
ENDIF.
*HTML table maintenance generator
PERFORM html_add_tablemaintgenerator
USING
txt_technical_dialog_details
lt_tmg_tech_details
txt_maintenance_screens
ls_tvdir-type
ls_tvdir-liste
ls_tvdir-detail
txt_dialog_data_transport_deta
ls_tvdir-flag
l_compare_flag
'TABLE_MAINT_GEN'
abap_false
CHANGING
lt_html.
*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.
*HTML attributes
PERFORM html_add_attributes_1
USING
ls_attributes
'ATTRIBUTES'
abap_false
CHANGING
lt_html.
PERFORM html_add_deliv_maint
USING
ls_deliv_maint
lt_access
'DELIVMAINT'
abap_false
CHANGING
lt_html.
*HTML fields
PERFORM html_add_table
USING
'TABL2FIELD'
lt_dd03p
lt_zdd03p_ext
'FIELDS'
abap_true
CHANGING
lt_html.
*HTML entry help check
PERFORM html_add_table
USING
'TABL2ENTRY'
lt_dd03p
lt_zdd03p_ext
'ENTRY_HELP_CHECK'
abap_false
CHANGING
lt_html.
*HTML curr quant fields
PERFORM html_add_table
USING
'TABL2CURRQ'
lt_dd03p
lt_zdd03p_ext
'CURR_QUANT_FIELDS'
abap_false
CHANGING
lt_html.
*HTML footer
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
-pgmid
-object
-obj_name
gc_extension_htm
abap_true.
ENDLOOP.
ENDFORM. "r3tr_tabl_2
*-----------------------------------------------------------------------
* ddic_r3tr_tabl_get SAP-Tabellen
*-----------------------------------------------------------------------
FORM ddic_r3tr_tabl_get
CHANGING
cs_ztadir TYPE st_ztadir
cs_dd02v TYPE dd02v
ct_dd03p TYPE dd03ttyp
ct_zdd03p_ext TYPE it_zdd03p_ext
cs_dd09l TYPE dd09l.
CLEAR:
cs_dd02v,
cs_dd09l.
REFRESH:
ct_dd03p,
ct_zdd03p_ext.
DATA:
l_strukname TYPE strukname,
ls_dd02v_n TYPE dd02v,
lt_dd03p_n TYPE STANDARD TABLE OF dd03p,
lt_dd05m TYPE STANDARD TABLE OF dd05m,
lt_dd05m_n TYPE STANDARD TABLE OF dd05m,
lt_dd08v TYPE STANDARD TABLE OF dd08v,
lt_dd08v_n TYPE STANDARD TABLE OF dd08v,
ls_dd09v_n TYPE dd09v,
lt_dd12v TYPE STANDARD TABLE OF dd12v,
lt_dd12v_n TYPE STANDARD TABLE OF dd12v,
lt_dd17v TYPE STANDARD TABLE OF dd17v,
lt_dd17v_n TYPE STANDARD TABLE OF dd17v,
lt_dd35v TYPE STANDARD TABLE OF dd35v,
lt_dd35v_n TYPE STANDARD TABLE OF dd35v,
lt_dd36m TYPE STANDARD TABLE OF dd36m,
lt_dd36m_n TYPE STANDARD TABLE OF dd36m,
ls_zdd03p_ext TYPE st_zdd03p_ext,
l_state TYPE dctablget.
FIELD-SYMBOLS:
TYPE dd03p.
l_strukname = cs_ztadir-obj_name.
CALL FUNCTION 'DD_TABL_GET'
EXPORTING
tabl_name = l_strukname
withtext = abap_true
add_typeinfo = abap_true
IMPORTING
dd02v_wa_a = cs_dd02v
dd02v_wa_n = ls_dd02v_n
dd09l_wa_a = cs_dd09l
dd09l_wa_n = ls_dd09v_n
got_state = l_state
TABLES
dd03p_tab_a = ct_dd03p
dd03p_tab_n = lt_dd03p_n
dd05m_tab_a = lt_dd05m
dd05m_tab_n = lt_dd05m_n
dd08v_tab_a = lt_dd08v
dd08v_tab_n = lt_dd08v_n
dd12v_tab_a = lt_dd12v
dd12v_tab_n = lt_dd12v_n
dd17v_tab_a = lt_dd17v
dd17v_tab_n = lt_dd17v_n
dd35v_tab_a = lt_dd35v
dd35v_tab_n = lt_dd35v_n
dd36m_tab_a = lt_dd36m
dd36m_tab_n = lt_dd36m_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
cs_ztadir-subrc = sy-subrc.
RETURN.
ENDIF.
IF cs_dd02v-masterlang IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO cs_dd02v-masterlang
WHERE pgmid = 'R3TR'
AND object = 'TABL'
AND obj_name = l_strukname.
ENDIF.
LOOP AT ct_dd03p ASSIGNING .
IF -fieldname = '.INCLU--AP'.
-fieldname = '.APPEND'.
ENDIF.
IF -rollname IS INITIAL
AND NOT -precfield IS INITIAL.
SELECT SINGLE tabname FROM dd02l INTO -rollname
WHERE tabname = -precfield
AND as4local = 'A'.
IF sy-subrc = 0.
-datatype = 'STRU'.
ELSE.
SELECT SINGLE typename FROM dd40l INTO -rollname
WHERE typename = -precfield
AND as4local = 'A'.
IF sy-subrc = 0.
-datatype = 'TTYP'.
ENDIF.
ENDIF.
ENDIF.
CLEAR ls_zdd03p_ext.
CASE -shlporigin.
WHEN 'F'.
ls_zdd03p_ext-shlporigin_f = abap_true.
WHEN 'P'.
ls_zdd03p_ext-shlporigin_p = abap_true.
ENDCASE.
IF NOT -shlporigin IS INITIAL.
PERFORM get_dom_value_text
USING
'SHLPORIGIN'
-shlporigin
CHANGING
ls_zdd03p_ext-shlporigin_ddtext.
ENDIF.
APPEND ls_zdd03p_ext TO ct_zdd03p_ext.
ENDLOOP.
ENDFORM. "r3tr_tabl_get
*-----------------------------------------------------------------------
* ddic_r3tr_ttyp Tabellentypen
*-----------------------------------------------------------------------
FORM ddic_r3tr_ttyp.
DATA:
lt_html TYPE it_string,
lt_tabstrip TYPE it_tabstrip,
l_typename TYPE typename,
lt_dom_value_accessmode TYPE it_dom_value,
lt_dom_value_keydef TYPE it_dom_value,
lt_dom_value_keykind TYPE it_dom_value,
ls_access TYPE st_access,
ls_attributes TYPE st_attributes,
ls_line_type TYPE st_line_type,
ls_init_access TYPE st_init_access,
ls_key TYPE st_key,
lt_accessmode TYPE it_access,
lt_keykind TYPE it_access,
lt_keydef TYPE it_access,
ls_dd40v TYPE dd40v,
ls_dd40v_n TYPE dd40v,
ls_dd42v TYPE dd42v,
lt_dd42v TYPE STANDARD TABLE OF dd42v,
lt_dd42v_n TYPE STANDARD TABLE OF dd42v,
l_state TYPE dcttypget,
l_ttypkind TYPE c.
FIELD-SYMBOLS:
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE ANY,
TYPE st_ztadir,
TYPE st_dom_value.
PERFORM get_tabstrip
USING 'DDIC_R3TR_TTYP' space
CHANGING lt_tabstrip.
PERFORM get_dom_value_texts
USING
'ACCESSMODE'
CHANGING
lt_dom_value_accessmode.
PERFORM get_dom_value_texts
USING
'TTYPKEYDEF'
CHANGING
lt_dom_value_keydef.
PERFORM get_dom_value_texts
USING
'KEYKIND'
CHANGING
lt_dom_value_keykind.
LOOP AT gt_ztadir ASSIGNING
WHERE pgmid = 'R3TR'
AND object = 'TTYP'
AND downloaded = abap_false.
-downloaded = abap_true.
CLEAR:
ls_attributes,
ls_line_type,
ls_init_access,
ls_key,
l_ttypkind.
REFRESH:
lt_html,
lt_dd42v,
lt_dd42v_n.
l_typename = -obj_name.
CALL FUNCTION 'DD_TTYP_GET'
EXPORTING
ttyp_name = l_typename
langu = sy-langu
withtext = abap_true
IMPORTING
got_state = l_state
dd40v_wa_a = ls_dd40v
dd40v_wa_n = ls_dd40v_n
TABLES
dd42v_tab_a = lt_dd42v
dd42v_tab_n = lt_dd42v_n
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
-subrc = sy-subrc.
CONTINUE.
ENDIF.
ASSIGN COMPONENT 'TTYPKIND' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
l_ttypkind = .
UNASSIGN .
ENDIF.
*attributes
ls_attributes-bname = ls_dd40v-as4user.
PERFORM get_date
USING
ls_dd40v-as4date
CHANGING
ls_attributes-date_last_changed.
ls_attributes-devclass = -devclass.
PERFORM get_devclass
USING
-devclass
CHANGING
ls_attributes-devclass_descr.
IF ls_dd40v-ddlanguage IS INITIAL.
SELECT SINGLE masterlang FROM tadir INTO ls_dd40v-ddlanguage
WHERE pgmid = 'R3TR'
AND object = 'TTYP'
AND obj_name = l_typename.
ENDIF.
PERFORM get_spras
USING
ls_dd40v-ddlanguage
CHANGING
ls_attributes-laiso
ls_attributes-sptxt.
PERFORM get_user
USING
ls_dd40v-as4user
CHANGING
ls_attributes-name_text.
*linetype
ls_line_type-rowkind = ls_dd40v-rowkind.
ASSIGN COMPONENT 'ROWKIND' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-rowkind = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'ROWTYPE' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-rowtype = .
UNASSIGN .
ENDIF.
PERFORM get_dom_value_text
USING
'TYPEKIND'
ls_dd40v-rowtype
CHANGING
ls_line_type-rowdescr.
ASSIGN COMPONENT 'DATATYPE' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-datatype = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'LENG' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-dataleng = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'DECIMALS' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-datadeci = .
UNASSIGN .
ENDIF.
ls_line_type-datadeci = ls_dd40v-decimals.
ASSIGN COMPONENT 'REFTYPE' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-reftype = .
PERFORM get_dom_value_text
USING
'DDREFTYPE'
CHANGING
ls_line_type-refdescr.
UNASSIGN .
ELSE.
ls_line_type-reftype = '#'. " R/3 4.6 does not know ref type
ENDIF.
ASSIGN COMPONENT 'RANGE_CTYP' OF STRUCTURE ls_dd40v
TO .
IF IS ASSIGNED.
ls_line_type-range_ctyp = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'CTDATATYPE' OF STRUCTURE ls_dd40v
TO .
IF IS ASSIGNED.
ls_line_type-ctdatatype = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'CTLENG' OF STRUCTURE ls_dd40v TO .
IF IS ASSIGNED.
ls_line_type-ctleng = .
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'CTDECIMALS' OF STRUCTURE ls_dd40v
TO