Properties SourceCde
txt
1
*&---------------------------------------------------------------------*
2
*&  Include           ZSOFTCOPY_SELECT                                 *
3
*&                                                                     *
4
*&---------------------------------------------------------------------*
5
*&                                                                     *
6
*& This file is part of ZSOFTCOPY.                                     *
7
*&                                                                     *
8
*& ZSOFTCOPY is free software: you can redistribute it and/or modify   *
9
*& it under the terms of the GNU General Public License as published   *
10
*& by the Free Software Foundation, either version 3 of the License,   *
11
*& or any later version.                                               *
12
*&                                                                     *
13
*& ZSOFTCOPY is distributed in the hope that it will be useful,        *
14
*& but WITHOUT ANY WARRANTY; without even the implied warranty of      *
15
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       *
16
*& GNU General Public License for more details.                        *
17
*&                                                                     *
18
*& You should have received a copy of the GNU General Public License   *
19
*& along with ZDOWNLOAD. If not, see <http://www.gnu.org/licenses/>.   *
20
*&                                                                     *
21
*&---------------------------------------------------------------------*
22
*&                                                                     *
23
*&  Author:     Ruediger von Creytz     ruediger.creytz@globalbit.net  *
24
*&  Copyright:  globalBIT, LLC          http://www.globalbit.net       *
25
*&                                                                     *
26
*&---------------------------------------------------------------------*
27
 
28
 
29
*-----------------------------------------------------------------------
30
* select
31
*-----------------------------------------------------------------------
32
FORM select.
33
 
34
  DATA:
35
  lt_tadir TYPE STANDARD TABLE OF tadir.
36
 
37
  SELECT * FROM tadir INTO TABLE lt_tadir
38
      WHERE devclass = g_pack.
39
 
40
  PERFORM select_obj TABLES lt_tadir.
41
 
42
  DESCRIBE TABLE gt_ztadir LINES g_cnt_elems.
43
 
44
ENDFORM.                    "select
45
 
46
 
47
*-----------------------------------------------------------------------
48
* select_obj
49
*-----------------------------------------------------------------------
50
FORM select_obj
51
  TABLES
52
    tt_tadir STRUCTURE tadir.
53
 
54
  DATA:
55
  l_where TYPE string,
56
  ls_ztadir TYPE st_ztadir,
57
  l_last_pgmid TYPE pgmid,
58
  l_last_object TYPE trobjtype.
59
 
60
  FIELD-SYMBOLS:
61
  <ls_tadir> TYPE tadir.
62
 
63
 
64
  SORT tt_tadir BY pgmid object.
65
 
66
  LOOP AT tt_tadir ASSIGNING <ls_tadir>.
67
    CLEAR ls_ztadir.
68
    MOVE-CORRESPONDING <ls_tadir> TO ls_ztadir.
69
 
70
    CASE <ls_tadir>-pgmid.
71
      WHEN 'R3TR'.
72
        CASE <ls_tadir>-object.
73
          WHEN 'CLAS'.  PERFORM select_seoclass   CHANGING ls_ztadir.
74
          WHEN 'DOMA'.  PERFORM select_dd01       CHANGING ls_ztadir.
75
          WHEN 'DTEL'.  PERFORM select_dd04       CHANGING ls_ztadir.
76
          WHEN 'ENQU'.  PERFORM select_dd25       CHANGING ls_ztadir.
77
          WHEN 'FUGR'.  PERFORM select_fdir       CHANGING ls_ztadir.
78
          WHEN 'INTF'.  PERFORM select_seoclass   CHANGING ls_ztadir.
79
          WHEN 'MSAG'.  PERFORM select_t100       CHANGING ls_ztadir.
80
          WHEN 'PARA'.  PERFORM select_tpara      CHANGING ls_ztadir.
81
          WHEN 'PROG'.  PERFORM select_trdir      CHANGING ls_ztadir.
82
          WHEN 'SHLP'.  PERFORM select_dd30       CHANGING ls_ztadir.
83
          WHEN 'SUSO'.  PERFORM select_tobj       CHANGING ls_ztadir.
84
          WHEN 'TABL'.  PERFORM select_dd02       CHANGING ls_ztadir.
85
          WHEN 'TRAN'.  PERFORM select_tstc       CHANGING ls_ztadir.
86
          WHEN 'TTYP'.  PERFORM select_dd40       CHANGING ls_ztadir.
87
          WHEN 'TYPE'.  PERFORM select_ddtypet    CHANGING ls_ztadir.
88
          WHEN 'VIEW'.  PERFORM select_dd25       CHANGING ls_ztadir.
89
          WHEN 'WAPA'.  PERFORM select_o2_appl    CHANGING ls_ztadir.
90
          WHEN 'WTAG'.  PERFORM select_o2_taglib  CHANGING ls_ztadir.
91
          WHEN 'XSLT'.  PERFORM select_o2_xslt    CHANGING ls_ztadir.
92
          WHEN OTHERS.  ls_ztadir-subrc = gc_subrc_not_found.
93
        ENDCASE.
94
      WHEN OTHERS.
95
        ls_ztadir-subrc = gc_subrc_not_found.
96
    ENDCASE.
97
 
98
    IF ls_ztadir-subrc = 0.
99
      APPEND ls_ztadir TO gt_ztadir.
100
    ENDIF.
101
  ENDLOOP.
102
 
103
  SORT gt_ztadir BY obj_name.
104
 
105
ENDFORM.                    "selectObj
106
 
107
 
108
*-----------------------------------------------------------------------
109
* select_dd01                                    Domaenen
110
*-----------------------------------------------------------------------
111
FORM select_dd01
112
  CHANGING
113
    cs_ztadir TYPE st_ztadir.
114
 
115
  DATA:
116
  l_ddtext TYPE as4text,
117
  l_domname TYPE domname.
118
 
119
  IF g_add_elem_doma = abap_false.
120
    cs_ztadir-subrc = gc_subrc_deselected.
121
  ELSE.
122
    SELECT SINGLE ddtext FROM dd01t INTO l_ddtext
123
        WHERE domname = cs_ztadir-obj_name
124
        AND ddlanguage = sy-langu
125
        AND as4local = 'A'.
126
    IF sy-subrc = 0.
127
      cs_ztadir-descript = l_ddtext.
128
    ELSE.
129
      SELECT SINGLE domname FROM dd01l INTO l_domname
130
          WHERE domname = cs_ztadir-obj_name
131
          AND as4local = 'A'.
132
      IF sy-subrc = 0.
133
        cs_ztadir-obj_name = l_domname.
134
      ELSE.
135
        cs_ztadir-subrc = gc_subrc_not_found.
136
      ENDIF.
137
    ENDIF.
138
  ENDIF.
139
ENDFORM.                    "select_dd01
140
 
141
 
142
*-----------------------------------------------------------------------
143
* select_dd02                                    SAP-Tabellen
144
*-----------------------------------------------------------------------
145
FORM select_dd02
146
  CHANGING
147
    cs_ztadir TYPE st_ztadir.
148
 
149
  DATA:
150
  l_ddtext TYPE as4text,
151
  l_tabname TYPE tabname.
152
 
153
 
154
  l_tabname = cs_ztadir-obj_name.
155
  SELECT SINGLE tabclass FROM dd02l INTO cs_ztadir-tabclass
156
      WHERE tabname = l_tabname
157
      AND as4local = 'A'.
158
  IF sy-subrc = 0.
159
    IF ( cs_ztadir-tabclass = 'INTTAB'
160
      OR cs_ztadir-tabclass = 'VIEW'
161
      OR cs_ztadir-tabclass = 'APPEND' )
162
    AND g_add_elem_struc = abap_false.
163
      cs_ztadir-subrc = gc_subrc_deselected.
164
    ELSEIF ( cs_ztadir-tabclass = 'CLUSTER'
165
      OR cs_ztadir-tabclass = 'POOL'
166
      OR cs_ztadir-tabclass = 'TRANSP' )
167
    AND g_add_elem_tabl = abap_false.
168
      cs_ztadir-subrc = gc_subrc_deselected.
169
    ELSE.
170
      SELECT SINGLE ddtext FROM dd02t INTO l_ddtext
171
          WHERE tabname = l_tabname
172
          AND ddlanguage = sy-langu
173
          AND as4local = 'A'.
174
      IF sy-subrc = 0.
175
        cs_ztadir-descript = l_ddtext.
176
      ENDIF.
177
    ENDIF.
178
  ELSE.
179
    cs_ztadir-subrc = gc_subrc_not_found.
180
  ENDIF.
181
ENDFORM.                    "select_dd02
182
 
183
 
184
*-----------------------------------------------------------------------
185
* select_dd04                                    Datenelemente
186
*-----------------------------------------------------------------------
187
FORM select_dd04
188
  CHANGING
189
    cs_ztadir TYPE st_ztadir.
190
 
191
  DATA:
192
  l_ddtext TYPE as4text,
193
  l_rollname TYPE rollname.
194
 
195
  IF g_add_elem_dtel = abap_false.
196
    cs_ztadir-subrc = gc_subrc_deselected.
197
  ELSE.
198
    l_rollname = cs_ztadir-obj_name.
199
    SELECT SINGLE ddtext FROM dd04t INTO l_ddtext
200
        WHERE rollname = l_rollname
201
        AND ddlanguage = sy-langu
202
        AND as4local = 'A'.
203
    IF sy-subrc = 0.
204
      cs_ztadir-descript = l_ddtext.
205
    ELSE.
206
      SELECT SINGLE rollname FROM dd04l INTO l_rollname
207
          WHERE rollname = l_rollname
208
          AND as4local = 'A'.
209
      IF sy-subrc <> 0.
210
        cs_ztadir-subrc = gc_subrc_not_found.
211
      ENDIF.
212
    ENDIF.
213
  ENDIF.
214
ENDFORM.                    "select_dd04
215
 
216
 
217
*-----------------------------------------------------------------------
218
* links_dd25                                     Aggregat-Header
219
*                               (Views, Matchcode-Objekte, Sperrobjekte)
220
*-----------------------------------------------------------------------
221
FORM select_dd25
222
  CHANGING
223
    cs_ztadir TYPE st_ztadir.
224
 
225
  DATA:
226
  l_ddtext TYPE ddtext,
227
  l_viewname TYPE viewname.
228
 
229
  IF ( cs_ztadir-object = 'ENQU' AND g_add_elem_enqu = abap_false )
230
  OR ( cs_ztadir-object = 'VIEW' AND g_add_elem_view = abap_false ).
231
    cs_ztadir-subrc = gc_subrc_deselected.
232
  ELSE.
233
    l_viewname = cs_ztadir-obj_name.
234
    SELECT SINGLE aggtype FROM dd25l INTO cs_ztadir-aggtype
235
        WHERE viewname = l_viewname
236
        AND as4local = 'A'.
237
    IF sy-subrc = 0.
238
      SELECT SINGLE ddtext FROM dd25t INTO l_ddtext
239
          WHERE viewname = l_viewname
240
          AND ddlanguage = sy-langu
241
          AND as4local = 'A'.
242
      IF sy-subrc = 0.
243
        cs_ztadir-descript = l_ddtext.
244
      ENDIF.
245
    ELSE.
246
      cs_ztadir-subrc = gc_subrc_not_found.
247
    ENDIF.
248
  ENDIF.
249
ENDFORM.                    "select_dd25
250
 
251
 
252
*-----------------------------------------------------------------------
253
* select_dd30                                    Suchhilfen
254
*-----------------------------------------------------------------------
255
FORM select_dd30
256
  CHANGING
257
    cs_ztadir TYPE st_ztadir.
258
 
259
  DATA:
260
  l_ddtext TYPE ddtext,
261
  l_shlpname TYPE shlpname.
262
 
263
  IF g_add_elem_shlp = abap_false.
264
    cs_ztadir-subrc = gc_subrc_deselected.
265
  ELSE.
266
    l_shlpname = cs_ztadir-obj_name.
267
    SELECT SINGLE ddtext FROM dd30t INTO l_ddtext
268
        WHERE shlpname = l_shlpname
269
        AND ddlanguage = sy-langu
270
        AND as4local = 'A'.
271
    IF sy-subrc = 0.
272
      cs_ztadir-descript = l_ddtext.
273
    ELSE.
274
      SELECT SINGLE shlpname FROM dd30l INTO l_shlpname
275
          WHERE shlpname = l_shlpname
276
          AND as4local = 'A'.
277
      IF sy-subrc <> 0.
278
        cs_ztadir-subrc = gc_subrc_not_found.
279
      ENDIF.
280
    ENDIF.
281
  ENDIF.
282
ENDFORM.                    "select_dd30
283
 
284
 
285
*-----------------------------------------------------------------------
286
* links_dd40                                     Tabellentypen
287
*                                    (im DD definierte interne Tabellen)
288
*-----------------------------------------------------------------------
289
FORM select_dd40
290
  CHANGING
291
    cs_ztadir TYPE st_ztadir.
292
 
293
  DATA:
294
  l_ddtext TYPE ddtext,
295
  l_typename TYPE typename.
296
 
297
  IF g_add_elem_ttyp = abap_false.
298
    cs_ztadir-subrc = gc_subrc_deselected.
299
  ELSE.
300
    l_typename = cs_ztadir-obj_name.
301
    SELECT SINGLE ddtext FROM dd40t INTO l_ddtext
302
        WHERE typename = l_typename
303
        AND ddlanguage = sy-langu
304
        AND as4local = 'A'.
305
    IF sy-subrc = 0.
306
      cs_ztadir-descript = l_ddtext.
307
    ELSE.
308
      SELECT SINGLE typename FROM dd40l INTO l_typename
309
          WHERE typename = l_typename
310
          AND as4local = 'A'.
311
      IF sy-subrc <> 0.
312
        cs_ztadir-subrc = gc_subrc_not_found.
313
      ENDIF.
314
    ENDIF.
315
  ENDIF.
316
ENDFORM.                    "select_dd40
317
 
318
 
319
*-----------------------------------------------------------------------
320
* select_ddtypet                                 Texte zu Typgruppen
321
*-----------------------------------------------------------------------
322
FORM select_ddtypet
323
  CHANGING
324
    cs_ztadir TYPE st_ztadir.
325
 
326
  DATA:
327
  l_ddtext TYPE ddtext,
328
  l_typegroup TYPE typegroup.
329
 
330
  IF g_add_elem_type = abap_false.
331
    cs_ztadir-subrc = gc_subrc_deselected.
332
  ELSE.
333
    l_typegroup = cs_ztadir-obj_name.
334
    SELECT SINGLE ddtext FROM ddtypet INTO l_ddtext
335
        WHERE typegroup = l_typegroup
336
        AND ddlanguage = sy-langu.
337
    IF sy-subrc = 0.
338
      cs_ztadir-descript = l_ddtext.
339
    ELSE.
340
      cs_ztadir-subrc = gc_subrc_not_found.
341
    ENDIF.
342
  ENDIF.
343
ENDFORM.                    "select_ddtypet
344
 
345
 
346
*-----------------------------------------------------------------------
347
* select_fdir                                    Funktionsgruppen
348
*-----------------------------------------------------------------------
349
FORM select_fdir
350
  CHANGING
351
    cs_ztadir TYPE st_ztadir.
352
 
353
  DATA:
354
  ls_ztadir TYPE st_ztadir,
355
  lt_ztadir TYPE it_ztadir,
356
  lt_fdir TYPE STANDARD TABLE OF v_fdir,
357
  l_progname TYPE progname,
358
  lt_incl TYPE STANDARD TABLE OF progname,
359
  l_incl TYPE progname,
360
  l_group TYPE area,
361
  l_include_number TYPE includenr,
362
  lt_d020s TYPE STANDARD TABLE OF d020s,
363
  l_area TYPE rs38l_area,
364
  l_areat TYPE areat,
365
  l_stext TYPE rs38l_ftxt,
366
  l_dtxt TYPE as4text,
367
  l_text TYPE repti.
368
 
369
  FIELD-SYMBOLS:
370
  <ls_fdir> TYPE v_fdir,
371
  <ls_d020s> TYPE d020s.
372
 
373
  l_area = cs_ztadir-obj_name.
374
 
375
* Function Group
376
  IF g_add_elem_fugr = abap_false.
377
    cs_ztadir-subrc = gc_subrc_deselected.
378
  ELSE.
379
    cs_ztadir-futype = gc_futype_group.
380
    SELECT SINGLE areat FROM tlibt INTO l_areat
381
      WHERE area = l_area
382
      AND spras = sy-langu.
383
    IF sy-subrc = 0.
384
      cs_ztadir-descript = l_areat.
385
    ELSE.
386
      SELECT SINGLE area FROM tlibg INTO l_area
387
        WHERE area = l_area.
388
      IF sy-subrc <> 0.
389
        cs_ztadir-subrc = gc_subrc_not_found.
390
        CHECK sy-subrc = 0.
391
      ENDIF.
392
    ENDIF.
393
    CALL FUNCTION 'RS_TADIR_TO_PROGNAME'
394
      EXPORTING
395
        object   = cs_ztadir-object
396
        obj_name = cs_ztadir-obj_name
397
      IMPORTING
398
        progname = l_progname.
399
  ENDIF.
400
 
401
* Function Modules
402
  IF g_add_elem_fuba = abap_true
403
  OR g_add_elem_fuincl = abap_true.
404
    SELECT * FROM v_fdir INTO TABLE lt_fdir
405
        WHERE area = l_area
406
        AND active = abap_true.
407
    LOOP AT lt_fdir ASSIGNING <ls_fdir>.
408
      CLEAR ls_ztadir.
409
      MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
410
      CLEAR ls_ztadir-descript.
411
      ls_ztadir-futype = gc_futype_module.
412
      ls_ztadir-funcname = <ls_fdir>-funcname.
413
      IF NOT <ls_fdir>-masterlang IS INITIAL.
414
        ls_ztadir-masterlang = <ls_fdir>-masterlang.
415
      ENDIF.
416
      SELECT SINGLE stext FROM tftit INTO l_stext
417
        WHERE funcname = <ls_fdir>-funcname
418
        AND spras = sy-langu.
419
      IF sy-subrc = 0.
420
        ls_ztadir-descript = l_stext.
421
      ENDIF.
422
      CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE'
423
        EXPORTING
424
          include_number = <ls_fdir>-include
425
        IMPORTING
426
          include        = ls_ztadir-progname
427
        CHANGING
428
          group          = <ls_fdir>-area.
429
      APPEND ls_ztadir TO lt_ztadir.
430
      IF g_add_elem_fuba = abap_true.
431
        APPEND ls_ztadir TO gt_ztadir.
432
      ENDIF.
433
    ENDLOOP.
434
  ENDIF.
435
 
436
* Screens
437
  IF g_add_elem_scr = abap_true.
438
    SELECT * FROM d020s INTO TABLE lt_d020s
439
      WHERE prog = l_progname.
440
    LOOP AT lt_d020s ASSIGNING <ls_d020s>.
441
      CLEAR ls_ztadir.
442
      MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
443
      CLEAR ls_ztadir-descript.
444
      SELECT SINGLE dtxt FROM d020t INTO l_dtxt
445
        WHERE prog = l_progname
446
        AND dynr = <ls_d020s>-dnum
447
        AND lang = sy-langu.
448
      IF sy-subrc = 0.
449
        ls_ztadir-descript = l_dtxt.
450
      ENDIF.
451
      ls_ztadir-futype = gc_futype_screen.
452
      ls_ztadir-progname = l_progname.
453
      ls_ztadir-dynpronr = <ls_d020s>-dnum.
454
      ls_ztadir-masterlang = <ls_d020s>-spra.
455
      APPEND ls_ztadir TO gt_ztadir.
456
    ENDLOOP.
457
  ENDIF.
458
 
459
* Includes
460
  IF g_add_elem_fuincl = abap_true.
461
    CALL FUNCTION 'GET_INCLUDETAB'
462
      EXPORTING
463
        progname = l_progname
464
      TABLES
465
        incltab  = lt_incl.
466
    SORT lt_incl.
467
    LOOP AT lt_incl INTO l_incl.
468
      l_progname = l_incl.
469
      CALL FUNCTION 'FUNCTION_INCLUDE_SPLIT'
470
        IMPORTING
471
          group          = l_group
472
          include_number = l_include_number
473
        CHANGING
474
          include        = l_progname.
475
*     check if include is a function module
476
      READ TABLE lt_ztadir TRANSPORTING NO FIELDS
477
        WITH KEY progname = l_progname.
478
      IF sy-subrc = 0.
479
        CONTINUE.      "include is a function module
480
      ENDIF.
481
      IF l_group = cs_ztadir-obj_name
482
      AND NOT l_include_number IS INITIAL.
483
        CONTINUE.
484
      ENDIF.
485
      CLEAR ls_ztadir.
486
      MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
487
      CLEAR ls_ztadir-descript.
488
      SELECT SINGLE text FROM trdirt INTO l_text
489
          WHERE name = l_incl
490
          AND sprsl = sy-langu.
491
      IF sy-subrc = 0.
492
        ls_ztadir-descript = l_text.
493
      ENDIF.
494
      ls_ztadir-futype = gc_futype_include.
495
      ls_ztadir-funcname = l_incl.
496
      ls_ztadir-progname = l_incl.
497
      CALL FUNCTION 'RS_PROGRAM_GET_DEVCLASS'
498
        EXPORTING
499
          progname = ls_ztadir-progname
500
        IMPORTING
501
          devclass = ls_ztadir-devclass.
502
      APPEND ls_ztadir TO gt_ztadir.
503
    ENDLOOP.
504
  ENDIF.
505
ENDFORM.                    "select_fdir
506
 
507
 
508
*-----------------------------------------------------------------------
509
* select_O2_appl                                 BSP Applications
510
*-----------------------------------------------------------------------
511
FORM select_o2_appl
512
  CHANGING
513
    cs_ztadir TYPE st_ztadir.
514
 
515
  DATA:
516
  l_text TYPE as4text,
517
  l_applname(30) TYPE c,
518
  l_applext(30) TYPE c,
519
  l_descript(60) TYPE c,
520
  ls_ztadir TYPE st_ztadir,
521
  l_pagekey(70) TYPE c,
522
  l_pagename(70) TYPE c,
523
  l_pagetype TYPE c,
524
  lt_mime TYPE it_mime.
525
 
526
  FIELD-SYMBOLS:
527
  <ls_mime> TYPE st_mime.
528
 
529
  IF g_add_elem_o2appl = abap_false.
530
    cs_ztadir-subrc = gc_subrc_deselected.
531
  ELSE.
532
    l_applname = cs_ztadir-obj_name.
533
    SELECT SINGLE applname applext FROM ('O2APPL')
534
        INTO (l_applname, l_applext)
535
        WHERE applname = l_applname
536
        AND version = 'A'.
537
    IF sy-subrc = 0.
538
      cs_ztadir-o2name = l_applext.
539
      SELECT SINGLE text FROM ('O2APPLT') INTO l_text
540
          WHERE applname = l_applname
541
          AND langu = sy-langu.
542
      IF sy-subrc = 0.
543
        cs_ztadir-descript = l_text.
544
      ENDIF.
545
* Controller, Views, Pages with Flow Logik, Page Fragments
546
      SELECT pagekey pagename pagetype FROM ('O2PAGDIR')
547
          INTO (l_pagekey, l_pagename, l_pagetype)
548
          WHERE applname = l_applname
549
          ORDER BY pagekey.
550
        IF ( l_pagetype = gc_o2type_bsp
551
             AND g_add_elem_o2applbsp  = abap_true )
552
        OR ( l_pagetype = gc_o2type_ctrl
553
             AND g_add_elem_o2applctrl = abap_true )
554
        OR ( l_pagetype = gc_o2type_incl
555
             AND g_add_elem_o2applincl = abap_true )
556
        OR ( l_pagetype = gc_o2type_view
557
             AND g_add_elem_o2applview = abap_true ).
558
          CLEAR: ls_ztadir.
559
          MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
560
          CLEAR l_descript.
561
          SELECT SINGLE descript FROM ('O2PAGDIRT')
562
              INTO l_descript
563
              WHERE applname = l_applname
564
              AND pagekey = l_pagekey
565
              AND langu = sy-langu.
566
          ls_ztadir-descript = l_descript.
567
          ls_ztadir-o2pagekey = l_pagekey.
568
          ls_ztadir-o2pagename = l_pagename.
569
          ls_ztadir-o2type = l_pagetype.
570
          APPEND ls_ztadir TO gt_ztadir.
571
        ENDIF.
572
      ENDSELECT.
573
*MIMEs
574
      IF g_add_elem_o2applmime  = abap_true.
575
        PERFORM o2_get_mimes
576
          USING l_applname
577
          CHANGING lt_mime.
578
        LOOP AT lt_mime ASSIGNING <ls_mime>.
579
          CLEAR: ls_ztadir.
580
          MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
581
          CLEAR ls_ztadir-descript.
582
          ls_ztadir-o2pagekey = <ls_mime>-key.
583
          ls_ztadir-o2pagename = <ls_mime>-name.
584
          ls_ztadir-o2type = gc_o2type_mime.
585
          ls_ztadir-mime_objtype = <ls_mime>-objtype.
586
          ls_ztadir-mime_class = <ls_mime>-class.
587
          ls_ztadir-mime_objid = <ls_mime>-objid.
588
          ls_ztadir-descript = <ls_mime>-mimetype_descript.
589
          APPEND ls_ztadir TO gt_ztadir.
590
        ENDLOOP.
591
      ENDIF.
592
***
593
    ELSE.
594
      cs_ztadir-subrc = gc_subrc_not_found.
595
    ENDIF.
596
  ENDIF.
597
ENDFORM.                    "select_O2_appl
598
 
599
 
600
*-----------------------------------------------------------------------
601
* select_O2_taglib                               BSP Extensions
602
*-----------------------------------------------------------------------
603
FORM select_o2_taglib
604
  CHANGING
605
    cs_ztadir TYPE st_ztadir.
606
 
607
  DATA:
608
  l_descript TYPE as4text,
609
  l_tlibid(30) TYPE c,
610
  l_tagid(30) TYPE c,
611
  ls_ztadir TYPE st_ztadir.
612
 
613
  IF g_add_elem_o2taglib = abap_false.
614
    cs_ztadir-subrc = gc_subrc_deselected.
615
  ELSE.
616
    l_tlibid = cs_ztadir-obj_name.
617
    SELECT SINGLE tlibid FROM ('O2TAGLIB') INTO l_tlibid
618
        WHERE tlibid = l_tlibid
619
        AND state = 'A'.
620
    IF sy-subrc = 0.
621
      SELECT SINGLE descript FROM ('TAGLIBT') INTO l_descript
622
          WHERE tlibid = l_tlibid
623
          AND state = 'A'
624
          AND langu = sy-langu.
625
      IF sy-subrc = 0.
626
        cs_ztadir-descript = l_descript.
627
      ENDIF.
628
* TAGs
629
      SELECT tagid FROM ('O2TAG') INTO l_tagid
630
          WHERE tlibid = l_tlibid
631
          AND state = 'A'.
632
        CLEAR: ls_ztadir.
633
        MOVE-CORRESPONDING cs_ztadir TO ls_ztadir.
634
        CLEAR ls_ztadir-descript.
635
        SELECT SINGLE descript FROM ('TAGT') INTO l_descript
636
            WHERE tlibid = l_tlibid
637
            AND state = 'A'
638
            AND langu = sy-langu
639
            AND tagid = l_tagid.
640
        IF sy-subrc = 0.
641
          ls_ztadir-descript = l_descript.
642
        ENDIF.
643
        ls_ztadir-o2type = gc_o2type_tag.
644
        ls_ztadir-o2name = l_tagid.
645
        ls_ztadir-o2pagekey = l_tagid.
646
        TRANSLATE ls_ztadir-o2pagekey TO UPPER CASE.
647
        APPEND ls_ztadir TO gt_ztadir.
648
      ENDSELECT.
649
***
650
    ELSE.
651
      cs_ztadir-subrc = gc_subrc_not_found.
652
    ENDIF.
653
  ENDIF.
654
ENDFORM.                    "select_O2_taglib
655
 
656
 
657
*-----------------------------------------------------------------------
658
* select_O2_xslt                                 Transformation
659
*-----------------------------------------------------------------------
660
FORM select_o2_xslt
661
  CHANGING
662
    cs_ztadir TYPE st_ztadir.
663
 
664
  DATA:
665
  l_descript TYPE as4text,
666
  l_xsltdesc(40) TYPE c.
667
 
668
  IF g_add_elem_xslt = abap_false.
669
    cs_ztadir-subrc = gc_subrc_deselected.
670
  ELSE.
671
    l_xsltdesc = cs_ztadir-obj_name.
672
    SELECT SINGLE descript FROM ('O2XSLTTEXT') INTO l_descript
673
        WHERE xsltdesc = l_xsltdesc
674
        AND langu = sy-langu
675
        AND state = 'A'.
676
    IF sy-subrc = 0.
677
      cs_ztadir-descript = l_descript.
678
    ELSE.
679
      cs_ztadir-subrc = gc_subrc_not_found.
680
    ENDIF.
681
  ENDIF.
682
ENDFORM.                    "select_O2_xslt
683
 
684
 
685
*-----------------------------------------------------------------------
686
* select_seoclass                                Klasse/Interface
687
*-----------------------------------------------------------------------
688
FORM select_seoclass
689
  CHANGING
690
    cs_ztadir TYPE st_ztadir.
691
 
692
  DATA:
693
  l_descript TYPE seodescr,
694
  l_clsname TYPE seoclsname,
695
  l_type TYPE seoclstype.
696
 
697
  l_clsname = cs_ztadir-obj_name.
698
  CASE cs_ztadir-object.
699
    WHEN 'CLAS'.
700
      l_type = 0.
701
      IF g_add_elem_clas = abap_false.
702
        cs_ztadir-subrc = gc_subrc_deselected.
703
      ENDIF.
704
    WHEN 'INTF'.
705
      l_type = 1.
706
      IF g_add_elem_intf = abap_false.
707
        cs_ztadir-subrc = gc_subrc_deselected.
708
      ENDIF.
709
    WHEN OTHERS.
710
      l_type = 2.
711
  ENDCASE.
712
  IF cs_ztadir-subrc = 0.
713
    SELECT SINGLE clsname FROM seoclass INTO l_clsname
714
        WHERE clsname = l_clsname
715
        AND clstype = l_type.
716
    IF sy-subrc <> 0.
717
      cs_ztadir-subrc = gc_subrc_not_found.
718
    ELSE.
719
      SELECT SINGLE descript FROM seoclasstx INTO l_descript
720
          WHERE clsname = l_clsname
721
          AND langu = sy-langu.
722
      IF sy-subrc = 0.
723
        cs_ztadir-descript = l_descript.
724
      ENDIF.
725
    ENDIF.
726
  ENDIF.
727
ENDFORM.                    "select_seoclass
728
 
729
 
730
*-----------------------------------------------------------------------
731
* select_t100                                    Message Class
732
*-----------------------------------------------------------------------
733
FORM select_t100
734
  CHANGING
735
    cs_ztadir TYPE st_ztadir.
736
 
737
  DATA:
738
  l_arbgb TYPE arbgb,
739
  l_stext TYPE as4text.
740
 
741
  l_arbgb = cs_ztadir-obj_name.
742
  IF g_add_elem_msag = abap_false.
743
    cs_ztadir-subrc = gc_subrc_deselected.
744
  ELSE.
745
    SELECT SINGLE stext FROM t100a INTO l_stext
746
        WHERE arbgb = l_arbgb.
747
    IF sy-subrc <> 0.
748
      cs_ztadir-subrc = gc_subrc_not_found.
749
    ELSE.
750
      SELECT SINGLE stext FROM t100t INTO l_stext
751
          WHERE arbgb = l_arbgb
752
          AND sprsl = sy-langu.
753
      cs_ztadir-descript = l_stext.
754
    ENDIF.
755
  ENDIF.
756
ENDFORM.                    "select_t100
757
 
758
 
759
*-----------------------------------------------------------------------
760
* select_tobj                                    Authorization Object
761
*-----------------------------------------------------------------------
762
FORM select_tobj
763
  CHANGING
764
    cs_ztadir TYPE st_ztadir.
765
 
766
  DATA:
767
  l_objct TYPE xuobject,
768
  l_ttext TYPE xutext.
769
 
770
  l_objct = cs_ztadir-obj_name.
771
  IF g_add_elem_tobj = abap_false.
772
    cs_ztadir-subrc = gc_subrc_deselected.
773
  ELSE.
774
    SELECT SINGLE objct FROM tobj INTO l_objct
775
        WHERE objct = l_objct.
776
    IF sy-subrc <> 0.
777
      cs_ztadir-subrc = gc_subrc_not_found.
778
    ELSE.
779
      SELECT SINGLE ttext FROM tobjt INTO l_ttext
780
          WHERE object = l_objct
781
          AND langu = sy-langu.
782
      IF sy-subrc = 0.
783
        cs_ztadir-descript = l_ttext.
784
      ENDIF.
785
    ENDIF.
786
  ENDIF.
787
ENDFORM.                    "select_tobj
788
 
789
 
790
*-----------------------------------------------------------------------
791
* select_tpara                                   SET/GET Parameter
792
*-----------------------------------------------------------------------
793
FORM select_tpara
794
  CHANGING
795
    cs_ztadir TYPE st_ztadir.
796
 
797
  DATA:
798
  l_paramid TYPE memoryid,
799
  l_partext TYPE as4text.
800
 
801
  l_paramid = cs_ztadir-obj_name.
802
  IF g_add_elem_para = abap_false.
803
    cs_ztadir-subrc = gc_subrc_deselected.
804
  ELSE.
805
    SELECT SINGLE partext FROM tpara INTO l_partext
806
        WHERE paramid = l_paramid.
807
    IF sy-subrc <> 0.
808
      cs_ztadir-subrc = gc_subrc_not_found.
809
    ELSE.
810
      cs_ztadir-descript = l_partext.
811
      SELECT SINGLE partext FROM tparat INTO l_partext
812
          WHERE paramid = l_paramid
813
          AND sprache = sy-langu.
814
      IF sy-subrc = 0.
815
        cs_ztadir-descript = l_partext.
816
      ENDIF.
817
    ENDIF.
818
  ENDIF.
819
ENDFORM.                    "select_tpara
820
 
821
 
822
*-----------------------------------------------------------------------
823
* select_tstc                                    Transaction
824
*-----------------------------------------------------------------------
825
FORM select_tstc
826
  CHANGING
827
    cs_ztadir TYPE st_ztadir.
828
 
829
  DATA:
830
  l_tcode TYPE tcode,
831
  l_ttext TYPE ttext_stct.
832
 
833
  l_tcode = cs_ztadir-obj_name.
834
  IF g_add_elem_tran = abap_false.
835
    cs_ztadir-subrc = gc_subrc_deselected.
836
  ELSE.
837
    SELECT SINGLE tcode FROM tstc INTO l_tcode
838
        WHERE tcode = l_tcode.
839
    IF sy-subrc <> 0.
840
      cs_ztadir-subrc = gc_subrc_not_found.
841
    ELSE.
842
      SELECT SINGLE ttext FROM tstct INTO l_ttext
843
          WHERE tcode = l_tcode
844
          AND sprsl = sy-langu.
845
      IF sy-subrc = 0.
846
        cs_ztadir-descript = l_ttext.
847
      ENDIF.
848
    ENDIF.
849
  ENDIF.
850
ENDFORM.                    "select_tstc
851
 
852
 
853
*-----------------------------------------------------------------------
854
* select_trdir                                   Program/Include
855
*-----------------------------------------------------------------------
856
FORM select_trdir
857
  CHANGING
858
    cs_ztadir TYPE st_ztadir.
859
 
860
  DATA:
861
  l_program TYPE sy-repid,
862
  l_title TYPE rs38m-repti.
863
 
864
  l_program = cs_ztadir-obj_name.
865
  CALL FUNCTION 'PROGRAM_TITLE'
866
    EXPORTING
867
      program  = l_program
868
      language = sy-langu
869
    IMPORTING
870
      title    = l_title.
871
  cs_ztadir-descript = l_title.
872
  cs_ztadir-progname = cs_ztadir-obj_name.
873
  SELECT SINGLE subc FROM trdir INTO cs_ztadir-subc
874
    WHERE name = cs_ztadir-progname.
875
  IF sy-subrc <> 0
876
  OR cs_ztadir-subc NA '1I'.
877
    cs_ztadir-subrc = gc_subrc_not_found.
878
  ELSEIF ( cs_ztadir-subc = 'I' AND g_add_elem_incl = abap_false )
879
  OR ( cs_ztadir-subc = '1' AND g_add_elem_prog = abap_false ).
880
    cs_ztadir-subrc = gc_subrc_deselected.
881
  ENDIF.
882
ENDFORM.                    "select_trdir