*&---------------------------------------------------------------------* *& Include ZSOFTCOPY_SELECT * *& * *&---------------------------------------------------------------------* *& * *& 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 * *& * *&---------------------------------------------------------------------* *----------------------------------------------------------------------- * select *----------------------------------------------------------------------- FORM select. DATA: lt_tadir TYPE STANDARD TABLE OF tadir. SELECT * FROM tadir INTO TABLE lt_tadir WHERE devclass = g_pack. PERFORM select_obj TABLES lt_tadir. DESCRIBE TABLE gt_ztadir LINES g_cnt_elems. ENDFORM. "select *----------------------------------------------------------------------- * select_obj *----------------------------------------------------------------------- FORM select_obj TABLES tt_tadir STRUCTURE tadir. DATA: l_where TYPE string, ls_ztadir TYPE st_ztadir, l_last_pgmid TYPE pgmid, l_last_object TYPE trobjtype. FIELD-SYMBOLS: TYPE tadir. SORT tt_tadir BY pgmid object. LOOP AT tt_tadir ASSIGNING . CLEAR ls_ztadir. MOVE-CORRESPONDING TO ls_ztadir. CASE -pgmid. WHEN 'R3TR'. CASE -object. WHEN 'CLAS'. PERFORM select_seoclass CHANGING ls_ztadir. WHEN 'DOMA'. PERFORM select_dd01 CHANGING ls_ztadir. WHEN 'DTEL'. PERFORM select_dd04 CHANGING ls_ztadir. WHEN 'ENQU'. PERFORM select_dd25 CHANGING ls_ztadir. WHEN 'FUGR'. PERFORM select_fdir CHANGING ls_ztadir. WHEN 'INTF'. PERFORM select_seoclass CHANGING ls_ztadir. WHEN 'MSAG'. PERFORM select_t100 CHANGING ls_ztadir. WHEN 'PARA'. PERFORM select_tpara CHANGING ls_ztadir. WHEN 'PROG'. PERFORM select_trdir CHANGING ls_ztadir. WHEN 'SHLP'. PERFORM select_dd30 CHANGING ls_ztadir. WHEN 'SUSO'. PERFORM select_tobj CHANGING ls_ztadir. WHEN 'TABL'. PERFORM select_dd02 CHANGING ls_ztadir. WHEN 'TRAN'. PERFORM select_tstc CHANGING ls_ztadir. WHEN 'TTYP'. PERFORM select_dd40 CHANGING ls_ztadir. WHEN 'TYPE'. PERFORM select_ddtypet CHANGING ls_ztadir. WHEN 'VIEW'. PERFORM select_dd25 CHANGING ls_ztadir. WHEN 'WAPA'. PERFORM select_o2_appl CHANGING ls_ztadir. WHEN 'WTAG'. PERFORM select_o2_taglib CHANGING ls_ztadir. WHEN 'XSLT'. PERFORM select_o2_xslt CHANGING ls_ztadir. WHEN OTHERS. ls_ztadir-subrc = gc_subrc_not_found. ENDCASE. WHEN OTHERS. ls_ztadir-subrc = gc_subrc_not_found. ENDCASE. IF ls_ztadir-subrc = 0. APPEND ls_ztadir TO gt_ztadir. ENDIF. ENDLOOP. SORT gt_ztadir BY obj_name. ENDFORM. "selectObj *----------------------------------------------------------------------- * select_dd01 Domaenen *----------------------------------------------------------------------- FORM select_dd01 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE as4text, l_domname TYPE domname. IF g_add_elem_doma = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE ddtext FROM dd01t INTO l_ddtext WHERE domname = cs_ztadir-obj_name AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE domname FROM dd01l INTO l_domname WHERE domname = cs_ztadir-obj_name AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-obj_name = l_domname. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. "select_dd01 *----------------------------------------------------------------------- * select_dd02 SAP-Tabellen *----------------------------------------------------------------------- FORM select_dd02 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE as4text, l_tabname TYPE tabname. l_tabname = cs_ztadir-obj_name. SELECT SINGLE tabclass FROM dd02l INTO cs_ztadir-tabclass WHERE tabname = l_tabname AND as4local = 'A'. IF sy-subrc = 0. IF ( cs_ztadir-tabclass = 'INTTAB' OR cs_ztadir-tabclass = 'VIEW' OR cs_ztadir-tabclass = 'APPEND' ) AND g_add_elem_struc = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSEIF ( cs_ztadir-tabclass = 'CLUSTER' OR cs_ztadir-tabclass = 'POOL' OR cs_ztadir-tabclass = 'TRANSP' ) AND g_add_elem_tabl = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE ddtext FROM dd02t INTO l_ddtext WHERE tabname = l_tabname AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ENDIF. ENDIF. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDFORM. "select_dd02 *----------------------------------------------------------------------- * select_dd04 Datenelemente *----------------------------------------------------------------------- FORM select_dd04 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE as4text, l_rollname TYPE rollname. IF g_add_elem_dtel = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_rollname = cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd04t INTO l_ddtext WHERE rollname = l_rollname AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE rollname FROM dd04l INTO l_rollname WHERE rollname = l_rollname AND as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. "select_dd04 *----------------------------------------------------------------------- * links_dd25 Aggregat-Header * (Views, Matchcode-Objekte, Sperrobjekte) *----------------------------------------------------------------------- FORM select_dd25 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE ddtext, l_viewname TYPE viewname. IF ( cs_ztadir-object = 'ENQU' AND g_add_elem_enqu = abap_false ) OR ( cs_ztadir-object = 'VIEW' AND g_add_elem_view = abap_false ). cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_viewname = cs_ztadir-obj_name. SELECT SINGLE aggtype FROM dd25l INTO cs_ztadir-aggtype WHERE viewname = l_viewname AND as4local = 'A'. IF sy-subrc = 0. SELECT SINGLE ddtext FROM dd25t INTO l_ddtext WHERE viewname = l_viewname AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ENDIF. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. "select_dd25 *----------------------------------------------------------------------- * select_dd30 Suchhilfen *----------------------------------------------------------------------- FORM select_dd30 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE ddtext, l_shlpname TYPE shlpname. IF g_add_elem_shlp = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_shlpname = cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd30t INTO l_ddtext WHERE shlpname = l_shlpname AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE shlpname FROM dd30l INTO l_shlpname WHERE shlpname = l_shlpname AND as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. "select_dd30 *----------------------------------------------------------------------- * links_dd40 Tabellentypen * (im DD definierte interne Tabellen) *----------------------------------------------------------------------- FORM select_dd40 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE ddtext, l_typename TYPE typename. IF g_add_elem_ttyp = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_typename = cs_ztadir-obj_name. SELECT SINGLE ddtext FROM dd40t INTO l_ddtext WHERE typename = l_typename AND ddlanguage = sy-langu AND as4local = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. SELECT SINGLE typename FROM dd40l INTO l_typename WHERE typename = l_typename AND as4local = 'A'. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDIF. ENDFORM. "select_dd40 *----------------------------------------------------------------------- * select_ddtypet Texte zu Typgruppen *----------------------------------------------------------------------- FORM select_ddtypet CHANGING cs_ztadir TYPE st_ztadir. DATA: l_ddtext TYPE ddtext, l_typegroup TYPE typegroup. IF g_add_elem_type = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_typegroup = cs_ztadir-obj_name. SELECT SINGLE ddtext FROM ddtypet INTO l_ddtext WHERE typegroup = l_typegroup AND ddlanguage = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_ddtext. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. "select_ddtypet *----------------------------------------------------------------------- * select_fdir Funktionsgruppen *----------------------------------------------------------------------- FORM select_fdir CHANGING cs_ztadir TYPE st_ztadir. DATA: ls_ztadir TYPE st_ztadir, lt_ztadir TYPE it_ztadir, lt_fdir TYPE STANDARD TABLE OF v_fdir, l_progname TYPE progname, lt_incl TYPE STANDARD TABLE OF progname, l_incl TYPE progname, l_group TYPE area, l_include_number TYPE includenr, lt_d020s TYPE STANDARD TABLE OF d020s, l_area TYPE rs38l_area, l_areat TYPE areat, l_stext TYPE rs38l_ftxt, l_dtxt TYPE as4text, l_text TYPE repti. FIELD-SYMBOLS: TYPE v_fdir, TYPE d020s. l_area = cs_ztadir-obj_name. * Function Group IF g_add_elem_fugr = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. cs_ztadir-futype = gc_futype_group. SELECT SINGLE areat FROM tlibt INTO l_areat WHERE area = l_area AND spras = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_areat. ELSE. SELECT SINGLE area FROM tlibg INTO l_area WHERE area = l_area. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. CHECK sy-subrc = 0. ENDIF. ENDIF. CALL FUNCTION 'RS_TADIR_TO_PROGNAME' EXPORTING object = cs_ztadir-object obj_name = cs_ztadir-obj_name IMPORTING progname = l_progname. ENDIF. * Function Modules IF g_add_elem_fuba = abap_true OR g_add_elem_fuincl = abap_true. SELECT * FROM v_fdir INTO TABLE lt_fdir WHERE area = l_area AND active = abap_true. LOOP AT lt_fdir ASSIGNING . CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. ls_ztadir-futype = gc_futype_module. ls_ztadir-funcname = -funcname. IF NOT -masterlang IS INITIAL. ls_ztadir-masterlang = -masterlang. ENDIF. SELECT SINGLE stext FROM tftit INTO l_stext WHERE funcname = -funcname AND spras = sy-langu. IF sy-subrc = 0. ls_ztadir-descript = l_stext. ENDIF. CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE' EXPORTING include_number = -include IMPORTING include = ls_ztadir-progname CHANGING group = -area. APPEND ls_ztadir TO lt_ztadir. IF g_add_elem_fuba = abap_true. APPEND ls_ztadir TO gt_ztadir. ENDIF. ENDLOOP. ENDIF. * Screens IF g_add_elem_scr = abap_true. SELECT * FROM d020s INTO TABLE lt_d020s WHERE prog = l_progname. LOOP AT lt_d020s ASSIGNING . CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. SELECT SINGLE dtxt FROM d020t INTO l_dtxt WHERE prog = l_progname AND dynr = -dnum AND lang = sy-langu. IF sy-subrc = 0. ls_ztadir-descript = l_dtxt. ENDIF. ls_ztadir-futype = gc_futype_screen. ls_ztadir-progname = l_progname. ls_ztadir-dynpronr = -dnum. ls_ztadir-masterlang = -spra. APPEND ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. * Includes IF g_add_elem_fuincl = abap_true. CALL FUNCTION 'GET_INCLUDETAB' EXPORTING progname = l_progname TABLES incltab = lt_incl. SORT lt_incl. LOOP AT lt_incl INTO l_incl. l_progname = l_incl. CALL FUNCTION 'FUNCTION_INCLUDE_SPLIT' IMPORTING group = l_group include_number = l_include_number CHANGING include = l_progname. * check if include is a function module READ TABLE lt_ztadir TRANSPORTING NO FIELDS WITH KEY progname = l_progname. IF sy-subrc = 0. CONTINUE. "include is a function module ENDIF. IF l_group = cs_ztadir-obj_name AND NOT l_include_number IS INITIAL. CONTINUE. ENDIF. CLEAR ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. SELECT SINGLE text FROM trdirt INTO l_text WHERE name = l_incl AND sprsl = sy-langu. IF sy-subrc = 0. ls_ztadir-descript = l_text. ENDIF. ls_ztadir-futype = gc_futype_include. ls_ztadir-funcname = l_incl. ls_ztadir-progname = l_incl. CALL FUNCTION 'RS_PROGRAM_GET_DEVCLASS' EXPORTING progname = ls_ztadir-progname IMPORTING devclass = ls_ztadir-devclass. APPEND ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. ENDFORM. "select_fdir *----------------------------------------------------------------------- * select_O2_appl BSP Applications *----------------------------------------------------------------------- FORM select_o2_appl CHANGING cs_ztadir TYPE st_ztadir. DATA: l_text TYPE as4text, l_applname(30) TYPE c, l_applext(30) TYPE c, l_descript(60) TYPE c, ls_ztadir TYPE st_ztadir, l_pagekey(70) TYPE c, l_pagename(70) TYPE c, l_pagetype TYPE c, lt_mime TYPE it_mime. FIELD-SYMBOLS: TYPE st_mime. IF g_add_elem_o2appl = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_applname = cs_ztadir-obj_name. SELECT SINGLE applname applext FROM ('O2APPL') INTO (l_applname, l_applext) WHERE applname = l_applname AND version = 'A'. IF sy-subrc = 0. cs_ztadir-o2name = l_applext. SELECT SINGLE text FROM ('O2APPLT') INTO l_text WHERE applname = l_applname AND langu = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_text. ENDIF. * Controller, Views, Pages with Flow Logik, Page Fragments SELECT pagekey pagename pagetype FROM ('O2PAGDIR') INTO (l_pagekey, l_pagename, l_pagetype) WHERE applname = l_applname ORDER BY pagekey. IF ( l_pagetype = gc_o2type_bsp AND g_add_elem_o2applbsp = abap_true ) OR ( l_pagetype = gc_o2type_ctrl AND g_add_elem_o2applctrl = abap_true ) OR ( l_pagetype = gc_o2type_incl AND g_add_elem_o2applincl = abap_true ) OR ( l_pagetype = gc_o2type_view AND g_add_elem_o2applview = abap_true ). CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR l_descript. SELECT SINGLE descript FROM ('O2PAGDIRT') INTO l_descript WHERE applname = l_applname AND pagekey = l_pagekey AND langu = sy-langu. ls_ztadir-descript = l_descript. ls_ztadir-o2pagekey = l_pagekey. ls_ztadir-o2pagename = l_pagename. ls_ztadir-o2type = l_pagetype. APPEND ls_ztadir TO gt_ztadir. ENDIF. ENDSELECT. *MIMEs IF g_add_elem_o2applmime = abap_true. PERFORM o2_get_mimes USING l_applname CHANGING lt_mime. LOOP AT lt_mime ASSIGNING . CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. ls_ztadir-o2pagekey = -key. ls_ztadir-o2pagename = -name. ls_ztadir-o2type = gc_o2type_mime. ls_ztadir-mime_objtype = -objtype. ls_ztadir-mime_class = -class. ls_ztadir-mime_objid = -objid. ls_ztadir-descript = -mimetype_descript. APPEND ls_ztadir TO gt_ztadir. ENDLOOP. ENDIF. *** ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. "select_O2_appl *----------------------------------------------------------------------- * select_O2_taglib BSP Extensions *----------------------------------------------------------------------- FORM select_o2_taglib CHANGING cs_ztadir TYPE st_ztadir. DATA: l_descript TYPE as4text, l_tlibid(30) TYPE c, l_tagid(30) TYPE c, ls_ztadir TYPE st_ztadir. IF g_add_elem_o2taglib = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_tlibid = cs_ztadir-obj_name. SELECT SINGLE tlibid FROM ('O2TAGLIB') INTO l_tlibid WHERE tlibid = l_tlibid AND state = 'A'. IF sy-subrc = 0. SELECT SINGLE descript FROM ('TAGLIBT') INTO l_descript WHERE tlibid = l_tlibid AND state = 'A' AND langu = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_descript. ENDIF. * TAGs SELECT tagid FROM ('O2TAG') INTO l_tagid WHERE tlibid = l_tlibid AND state = 'A'. CLEAR: ls_ztadir. MOVE-CORRESPONDING cs_ztadir TO ls_ztadir. CLEAR ls_ztadir-descript. SELECT SINGLE descript FROM ('TAGT') INTO l_descript WHERE tlibid = l_tlibid AND state = 'A' AND langu = sy-langu AND tagid = l_tagid. IF sy-subrc = 0. ls_ztadir-descript = l_descript. ENDIF. ls_ztadir-o2type = gc_o2type_tag. ls_ztadir-o2name = l_tagid. ls_ztadir-o2pagekey = l_tagid. TRANSLATE ls_ztadir-o2pagekey TO UPPER CASE. APPEND ls_ztadir TO gt_ztadir. ENDSELECT. *** ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. "select_O2_taglib *----------------------------------------------------------------------- * select_O2_xslt Transformation *----------------------------------------------------------------------- FORM select_o2_xslt CHANGING cs_ztadir TYPE st_ztadir. DATA: l_descript TYPE as4text, l_xsltdesc(40) TYPE c. IF g_add_elem_xslt = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. l_xsltdesc = cs_ztadir-obj_name. SELECT SINGLE descript FROM ('O2XSLTTEXT') INTO l_descript WHERE xsltdesc = l_xsltdesc AND langu = sy-langu AND state = 'A'. IF sy-subrc = 0. cs_ztadir-descript = l_descript. ELSE. cs_ztadir-subrc = gc_subrc_not_found. ENDIF. ENDIF. ENDFORM. "select_O2_xslt *----------------------------------------------------------------------- * select_seoclass Klasse/Interface *----------------------------------------------------------------------- FORM select_seoclass CHANGING cs_ztadir TYPE st_ztadir. DATA: l_descript TYPE seodescr, l_clsname TYPE seoclsname, l_type TYPE seoclstype. l_clsname = cs_ztadir-obj_name. CASE cs_ztadir-object. WHEN 'CLAS'. l_type = 0. IF g_add_elem_clas = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ENDIF. WHEN 'INTF'. l_type = 1. IF g_add_elem_intf = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ENDIF. WHEN OTHERS. l_type = 2. ENDCASE. IF cs_ztadir-subrc = 0. SELECT SINGLE clsname FROM seoclass INTO l_clsname WHERE clsname = l_clsname AND clstype = l_type. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. SELECT SINGLE descript FROM seoclasstx INTO l_descript WHERE clsname = l_clsname AND langu = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_descript. ENDIF. ENDIF. ENDIF. ENDFORM. "select_seoclass *----------------------------------------------------------------------- * select_t100 Message Class *----------------------------------------------------------------------- FORM select_t100 CHANGING cs_ztadir TYPE st_ztadir. DATA: l_arbgb TYPE arbgb, l_stext TYPE as4text. l_arbgb = cs_ztadir-obj_name. IF g_add_elem_msag = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE stext FROM t100a INTO l_stext WHERE arbgb = l_arbgb. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. SELECT SINGLE stext FROM t100t INTO l_stext WHERE arbgb = l_arbgb AND sprsl = sy-langu. cs_ztadir-descript = l_stext. ENDIF. ENDIF. ENDFORM. "select_t100 *----------------------------------------------------------------------- * select_tobj Authorization Object *----------------------------------------------------------------------- FORM select_tobj CHANGING cs_ztadir TYPE st_ztadir. DATA: l_objct TYPE xuobject, l_ttext TYPE xutext. l_objct = cs_ztadir-obj_name. IF g_add_elem_tobj = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE objct FROM tobj INTO l_objct WHERE objct = l_objct. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. SELECT SINGLE ttext FROM tobjt INTO l_ttext WHERE object = l_objct AND langu = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_ttext. ENDIF. ENDIF. ENDIF. ENDFORM. "select_tobj *----------------------------------------------------------------------- * select_tpara SET/GET Parameter *----------------------------------------------------------------------- FORM select_tpara CHANGING cs_ztadir TYPE st_ztadir. DATA: l_paramid TYPE memoryid, l_partext TYPE as4text. l_paramid = cs_ztadir-obj_name. IF g_add_elem_para = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE partext FROM tpara INTO l_partext WHERE paramid = l_paramid. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. cs_ztadir-descript = l_partext. SELECT SINGLE partext FROM tparat INTO l_partext WHERE paramid = l_paramid AND sprache = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_partext. ENDIF. ENDIF. ENDIF. ENDFORM. "select_tpara *----------------------------------------------------------------------- * select_tstc Transaction *----------------------------------------------------------------------- FORM select_tstc CHANGING cs_ztadir TYPE st_ztadir. DATA: l_tcode TYPE tcode, l_ttext TYPE ttext_stct. l_tcode = cs_ztadir-obj_name. IF g_add_elem_tran = abap_false. cs_ztadir-subrc = gc_subrc_deselected. ELSE. SELECT SINGLE tcode FROM tstc INTO l_tcode WHERE tcode = l_tcode. IF sy-subrc <> 0. cs_ztadir-subrc = gc_subrc_not_found. ELSE. SELECT SINGLE ttext FROM tstct INTO l_ttext WHERE tcode = l_tcode AND sprsl = sy-langu. IF sy-subrc = 0. cs_ztadir-descript = l_ttext. ENDIF. ENDIF. ENDIF. ENDFORM. "select_tstc *----------------------------------------------------------------------- * select_trdir Program/Include *----------------------------------------------------------------------- FORM select_trdir CHANGING cs_ztadir TYPE st_ztadir. DATA: l_program TYPE sy-repid, l_title TYPE rs38m-repti. l_program = cs_ztadir-obj_name. CALL FUNCTION 'PROGRAM_TITLE' EXPORTING program = l_program language = sy-langu IMPORTING title = l_title. cs_ztadir-descript = l_title. cs_ztadir-progname = cs_ztadir-obj_name. SELECT SINGLE subc FROM trdir INTO cs_ztadir-subc WHERE name = cs_ztadir-progname. IF sy-subrc <> 0 OR cs_ztadir-subc NA '1I'. cs_ztadir-subrc = gc_subrc_not_found. ELSEIF ( cs_ztadir-subc = 'I' AND g_add_elem_incl = abap_false ) OR ( cs_ztadir-subc = '1' AND g_add_elem_prog = abap_false ). cs_ztadir-subrc = gc_subrc_deselected. ENDIF. ENDFORM. "select_trdir