Properties SourceCde
txt
1
*&---------------------------------------------------------------------*
2
*&  Include           ZSOFTCOPY_LINKS                                  *
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
* links
31
*-----------------------------------------------------------------------
32
FORM links
33
  CHANGING
34
    ct_html TYPE it_string.
35
 
36
  DATA:
37
  l_descript TYPE as4text.
38
 
39
  clear g_cnt_link_leaves.
40
 
41
  PERFORM get_devclass
42
    USING
43
      gs_tdevc-devclass
44
    CHANGING
45
      l_descript.
46
 
47
  APPEND '<ul>' TO ct_html.
48
  PERFORM html_links_node_start
49
    USING
50
      'R3TR_DEVC'
51
      gs_tdevc-devclass
52
      gs_tdevc-devclass
53
      l_descript
54
    CHANGING
55
      ct_html.
56
 
57
  SORT gt_ztadir BY
58
      pgmid
59
      object
60
      obj_name
61
      funcname
62
      subc
63
      dynpronr
64
      o2pagekey.
65
 
66
 
67
  PERFORM links_ddic CHANGING ct_html.
68
  PERFORM links_seo  CHANGING ct_html.
69
  PERFORM links_prog CHANGING ct_html.
70
  PERFORM links_fugr CHANGING ct_html.
71
  PERFORM links_incl CHANGING ct_html.
72
  PERFORM links_tran CHANGING ct_html.
73
  PERFORM links_para CHANGING ct_html.
74
  PERFORM links_msag CHANGING ct_html.
75
  PERFORM links_tobj CHANGING ct_html.
76
  PERFORM links_xslt CHANGING ct_html.
77
  PERFORM links_bsp  CHANGING ct_html.
78
 
79
 
80
  PERFORM html_links_node_end CHANGING ct_html.
81
  APPEND '</ul>' TO ct_html.
82
 
83
ENDFORM.                    "links
84
 
85
 
86
*-----------------------------------------------------------------------
87
* links - BSP
88
*-----------------------------------------------------------------------
89
FORM links_bsp
90
  CHANGING
91
    ct_html TYPE it_string.
92
 
93
  DATA:
94
  l_step_a TYPE flag.
95
 
96
  PERFORM links_bsp_apps  CHANGING ct_html l_step_a.
97
  PERFORM links_bsp_tags  CHANGING ct_html l_step_a.
98
 
99
  IF l_step_a = abap_true.
100
    PERFORM html_links_node_end CHANGING ct_html.
101
    l_step_a = abap_false.
102
  ENDIF.
103
 
104
ENDFORM.                    "links_bsp
105
 
106
 
107
*-----------------------------------------------------------------------
108
* links - BSP - APPS
109
*-----------------------------------------------------------------------
110
FORM links_bsp_apps
111
  CHANGING
112
    ct_html TYPE it_string
113
    c_step_a TYPE flag.
114
 
115
  DATA:
116
  l_step_b TYPE flag,
117
  ls_ztadir TYPE st_ztadir,
118
  l_id TYPE string.
119
 
120
  LOOP AT gt_ztadir INTO ls_ztadir
121
      WHERE pgmid = 'R3TR'
122
      AND object = 'WAPA'
123
      AND o2pagekey = space.
124
    IF l_step_b IS INITIAL.
125
      l_step_b = abap_true.
126
      IF c_step_a = abap_false.
127
        c_step_a = abap_true.
128
        PERFORM html_links_node_start
129
          USING
130
            'bsplib'
131
            txt_bsp_library
132
            space
133
            space
134
          CHANGING
135
            ct_html.
136
      ENDIF.
137
      PERFORM html_links_node_start
138
        USING
139
          'R3TR_WAPA'
140
          txt_bsp_applications
141
          space
142
          space
143
        CHANGING
144
          ct_html.
145
    ENDIF.
146
    PERFORM get_id
147
      USING 'R3TR_WAPA__' ls_ztadir-obj_name
148
      CHANGING l_id.
149
    PERFORM html_links_node_start
150
      USING
151
        l_id
152
        ls_ztadir-o2name
153
        ls_ztadir-obj_name
154
        ls_ztadir-descript
155
      CHANGING
156
        ct_html.
157
    PERFORM links_bsp_appl
158
      USING
159
        ls_ztadir-obj_name
160
        gc_o2type_ctrl
161
      CHANGING
162
        ct_html.
163
    PERFORM links_bsp_appl
164
      USING
165
        ls_ztadir-obj_name
166
        gc_o2type_view
167
      CHANGING
168
        ct_html.
169
    PERFORM links_bsp_appl
170
      USING
171
        ls_ztadir-obj_name
172
        gc_o2type_bsp
173
      CHANGING
174
        ct_html.
175
    PERFORM links_bsp_appl
176
      USING
177
        ls_ztadir-obj_name
178
        gc_o2type_incl
179
      CHANGING
180
        ct_html.
181
    PERFORM links_bsp_appl
182
      USING
183
        ls_ztadir-obj_name
184
        gc_o2type_mime
185
      CHANGING
186
        ct_html.
187
    PERFORM html_links_node_end
188
      CHANGING
189
        ct_html.
190
  ENDLOOP.
191
  IF l_step_b = abap_true.
192
    CLEAR l_step_b.
193
    PERFORM html_links_node_end
194
      CHANGING
195
        ct_html.
196
  ENDIF.
197
ENDFORM.                    "links_bsp_apps
198
 
199
 
200
*-----------------------------------------------------------------------
201
* links - BSP - APPL
202
*-----------------------------------------------------------------------
203
FORM links_bsp_appl
204
  USING
205
    value(i_obj_name)
206
    value(i_o2type)
207
  CHANGING
208
    ct_html TYPE it_string.
209
 
210
  DATA:
211
  l_filename TYPE string,
212
  l_id TYPE string,
213
  l_type TYPE string,
214
  l_step_c TYPE flag,
215
  l_text TYPE string,
216
  lt_node_new TYPE it_string,
217
  lt_node_old TYPE it_string,
218
  l_subdir_cnt TYPE i,
219
  l_node_id TYPE string,
220
  l_node_id_cnt(3) TYPE n.
221
 
222
  FIELD-SYMBOLS:
223
  <ls_ztadir> TYPE st_ztadir,
224
  <ls_node_new> TYPE string,
225
  <ls_node_old> TYPE string.
226
 
227
  CASE i_o2type.
228
    WHEN gc_o2type_ctrl.
229
      l_type = 'ctrl'.
230
      l_text = txt_controller.
231
    WHEN gc_o2type_view.
232
      l_type = 'view'.
233
      l_text = txt_views.
234
    WHEN gc_o2type_bsp.
235
      l_type = 'bsp'.
236
      l_text = txt_pages_with_flow_logic.
237
    WHEN gc_o2type_incl.
238
      l_type = 'incl'.
239
      l_text = txt_page_fragments.
240
    WHEN gc_o2type_mime.
241
      l_type = 'mime'.
242
      l_text = txt_mimes.
243
  ENDCASE.
244
  PERFORM get_id
245
    USING l_type i_obj_name
246
    CHANGING l_id.
247
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
248
      WHERE pgmid = 'R3TR'
249
      AND object = 'WAPA'
250
      AND obj_name = i_obj_name
251
      AND o2type = i_o2type
252
      AND o2pagekey <> space.
253
    IF l_step_c = abap_false.
254
      l_step_c = abap_true.
255
      PERFORM html_links_node_start
256
        USING
257
          l_id
258
          l_text
259
          space
260
          space
261
        CHANGING
262
          ct_html.
263
    ENDIF.
264
    SPLIT <ls_ztadir>-o2pagename AT '/' INTO TABLE lt_node_new.
265
*   close all subdirectories, that are not needed any more
266
    LOOP AT lt_node_old ASSIGNING <ls_node_old>.
267
      AT LAST.
268
        EXIT.
269
      ENDAT.
270
      READ TABLE lt_node_new ASSIGNING <ls_node_new>
271
          INDEX sy-tabix.
272
      IF sy-subrc <> 0 OR <ls_node_old> <> <ls_node_new>.
273
        PERFORM html_links_node_end CHANGING ct_html.
274
        l_subdir_cnt = l_subdir_cnt - 1.
275
      ENDIF.
276
    ENDLOOP.
277
*   create required subdirectories
278
    LOOP AT lt_node_new ASSIGNING <ls_node_new>.
279
      AT LAST.
280
        EXIT.
281
      ENDAT.
282
      READ TABLE lt_node_old ASSIGNING <ls_node_old>
283
          INDEX sy-tabix.
284
      IF sy-subrc <> 0 OR <ls_node_new> <> <ls_node_old>.
285
        ADD 1 TO l_node_id_cnt.
286
        CONCATENATE 'R3TR_WAPA_' l_node_id_cnt INTO l_node_id.
287
        PERFORM html_links_node_start
288
          USING
289
            l_node_id
290
            <ls_node_new>
291
            space
292
            space
293
          CHANGING
294
            ct_html.
295
        l_subdir_cnt = l_subdir_cnt + 1.
296
      ENDIF.
297
    ENDLOOP.
298
*   add leaf for mime
299
    CONCATENATE <ls_ztadir>-obj_name '-' l_type '/'
300
        <ls_ztadir>-o2pagename
301
        INTO l_filename.
302
    IF l_type = 'mime'.
303
      PERFORM html_links_leaf_mime
304
        USING
305
          'R3TR_WAPA'
306
          <ls_node_new>
307
          l_filename
308
          <ls_ztadir>-descript
309
        CHANGING
310
          ct_html.
311
    ELSE.
312
      PERFORM html_links_leaf_filename
313
        USING
314
          'R3TR_WAPA'
315
          l_type
316
          <ls_node_new>
317
          l_filename
318
          <ls_ztadir>-descript
319
        CHANGING
320
          ct_html.
321
    ENDIF.
322
    REFRESH lt_node_old.
323
    lt_node_old[] = lt_node_new[].
324
    REFRESH lt_node_new.
325
  ENDLOOP.
326
  DO l_subdir_cnt TIMES.
327
    PERFORM html_links_node_end CHANGING ct_html.
328
  ENDDO.
329
  IF l_step_c = abap_true.
330
    PERFORM html_links_node_end CHANGING ct_html.
331
    l_step_c = abap_false.
332
  ENDIF.
333
ENDFORM.                    "links_bsp_appl
334
 
335
 
336
*-----------------------------------------------------------------------
337
* links - BSP - TAGS
338
*-----------------------------------------------------------------------
339
FORM links_bsp_tags
340
  CHANGING
341
    ct_html TYPE it_string
342
    c_step_a TYPE flag.
343
 
344
  DATA:
345
  l_step_b TYPE flag,
346
  l_id TYPE string,
347
  ls_ztadir TYPE st_ztadir.
348
 
349
  LOOP AT gt_ztadir INTO ls_ztadir
350
      WHERE pgmid = 'R3TR'
351
      AND object = 'WTAG'
352
      AND o2type = space.
353
    IF l_step_b IS INITIAL.
354
      l_step_b = abap_true.
355
      IF c_step_a = abap_false.
356
        c_step_a = abap_true.
357
        PERFORM html_links_node_start
358
          USING
359
            'bsplib'
360
            txt_bsp_library
361
            space
362
            space
363
          CHANGING
364
            ct_html.
365
      ENDIF.
366
      PERFORM html_links_node_start
367
        USING
368
          'R3TR_WTAG'
369
          txt_bsp_extensions
370
          space
371
          space
372
        CHANGING
373
          ct_html.
374
    ENDIF.
375
    PERFORM get_id
376
      USING 'R3TR_WTAG__' ls_ztadir-obj_name
377
      CHANGING l_id.
378
    PERFORM html_links_node_start
379
      USING
380
        l_id
381
        ls_ztadir-obj_name
382
        ls_ztadir-obj_name
383
        ls_ztadir-descript
384
      CHANGING
385
        ct_html.
386
    PERFORM links_bsp_tag
387
      USING
388
        ls_ztadir-obj_name
389
      CHANGING
390
        ct_html.
391
    PERFORM html_links_node_end
392
      CHANGING
393
        ct_html.
394
  ENDLOOP.
395
  IF l_step_b = abap_true.
396
    CLEAR l_step_b.
397
    PERFORM html_links_node_end
398
      CHANGING
399
        ct_html.
400
  ENDIF.
401
ENDFORM.                    "links_bsp_tags
402
 
403
 
404
*-----------------------------------------------------------------------
405
* links - BSP - TAG
406
*-----------------------------------------------------------------------
407
FORM links_bsp_tag
408
  USING
409
    value(i_obj_name)
410
  CHANGING
411
    ct_html TYPE it_string.
412
 
413
  DATA:
414
  l_filename TYPE string,
415
  l_id TYPE string.
416
 
417
  FIELD-SYMBOLS:
418
  <ls_ztadir> TYPE st_ztadir.
419
 
420
  PERFORM get_id
421
    USING 'tag_' i_obj_name
422
    CHANGING l_id.
423
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
424
      WHERE pgmid = 'R3TR'
425
      AND object = 'WTAG'
426
      AND obj_name = i_obj_name
427
      AND o2type = gc_o2type_tag.
428
    CONCATENATE <ls_ztadir>-obj_name '-'
429
        <ls_ztadir>-o2name
430
        INTO l_filename.
431
    PERFORM html_links_leaf_filename
432
      USING
433
        'R3TR_WTAG'
434
        ''
435
        <ls_ztadir>-o2name
436
        l_filename
437
        <ls_ztadir>-descript
438
      CHANGING
439
        ct_html.
440
  ENDLOOP.
441
ENDFORM.                    "links_bsp_tag
442
 
443
 
444
*-----------------------------------------------------------------------
445
* links - DDIC
446
*-----------------------------------------------------------------------
447
FORM links_ddic
448
  CHANGING
449
    ct_html TYPE it_string.
450
 
451
  DATA:
452
  l_step_a TYPE flag.
453
 
454
  PERFORM links_ddic_db    CHANGING ct_html l_step_a.
455
  PERFORM links_ddic_view  CHANGING ct_html l_step_a.
456
  PERFORM links_ddic_ttyp  CHANGING ct_html l_step_a.
457
  PERFORM links_ddic_struc CHANGING ct_html l_step_a.
458
  PERFORM links_ddic_dtel  CHANGING ct_html l_step_a.
459
  PERFORM links_ddic_doma  CHANGING ct_html l_step_a.
460
  PERFORM links_ddic_shlp  CHANGING ct_html l_step_a.
461
  PERFORM links_ddic_enqu  CHANGING ct_html l_step_a.
462
  PERFORM links_ddic_type  CHANGING ct_html l_step_a.
463
 
464
  IF l_step_a = abap_true.
465
    PERFORM html_links_node_end CHANGING ct_html.
466
    l_step_a = abap_false.
467
  ENDIF.
468
 
469
ENDFORM.                    "links_ddic
470
 
471
 
472
*-----------------------------------------------------------------------
473
* links - DDIC - DB
474
*-----------------------------------------------------------------------
475
FORM links_ddic_db
476
  CHANGING
477
    ct_html TYPE it_string
478
    c_step_a TYPE flag.
479
 
480
  DATA:
481
  l_step_b TYPE flag.
482
 
483
  FIELD-SYMBOLS:
484
  <ls_ztadir> TYPE st_ztadir.
485
 
486
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
487
      WHERE pgmid = 'R3TR'
488
      AND object = 'TABL'
489
      AND ( tabclass = 'CLUSTER'
490
        OR tabclass = 'POOL'
491
        OR tabclass = 'TRANSP' ).
492
    IF l_step_b IS INITIAL.
493
      l_step_b = abap_true.
494
      IF c_step_a = abap_false.
495
        c_step_a = abap_true.
496
        PERFORM html_links_node_start
497
          USING
498
            'tabllib'
499
            txt_dict_objs
500
            space
501
            space
502
          CHANGING
503
            ct_html.
504
      ENDIF.
505
      PERFORM html_links_node_start
506
        USING
507
          'R3TR_TABL_2'
508
          txt_database_tables
509
          space
510
          space
511
        CHANGING
512
          ct_html.
513
    ENDIF.
514
    PERFORM html_links_leaf
515
      USING
516
        'R3TR_TABL'
517
        ''
518
        <ls_ztadir>-obj_name
519
        <ls_ztadir>-descript
520
      CHANGING
521
        ct_html.
522
  ENDLOOP.
523
  IF l_step_b = abap_true.
524
    CLEAR l_step_b.
525
    PERFORM html_links_node_end
526
      CHANGING
527
        ct_html.
528
  ENDIF.
529
ENDFORM.                    "links_ddic_db
530
 
531
 
532
*-----------------------------------------------------------------------
533
* links - DDIC - DOMA
534
*-----------------------------------------------------------------------
535
FORM links_ddic_doma
536
  CHANGING
537
    ct_html TYPE it_string
538
    c_step_a TYPE flag.
539
 
540
  DATA:
541
  l_step_b TYPE flag.
542
 
543
  FIELD-SYMBOLS:
544
  <ls_ztadir> TYPE st_ztadir.
545
 
546
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
547
      WHERE pgmid = 'R3TR'
548
      AND object = 'DOMA'.
549
    IF l_step_b = abap_false.
550
      l_step_b = abap_true.
551
      IF c_step_a = abap_false.
552
        c_step_a = abap_true.
553
        PERFORM html_links_node_start
554
          USING
555
            'tabllib'
556
            txt_dict_objs
557
            space
558
            space
559
          CHANGING
560
            ct_html.
561
      ENDIF.
562
      PERFORM html_links_node_start
563
        USING
564
          'R3TR_DOMA'
565
          txt_domains
566
          space
567
          space
568
        CHANGING
569
          ct_html.
570
    ENDIF.
571
    PERFORM html_links_leaf
572
      USING
573
        'R3TR_DOMA'
574
        ''
575
        <ls_ztadir>-obj_name
576
        <ls_ztadir>-descript
577
      CHANGING
578
        ct_html.
579
  ENDLOOP.
580
  IF l_step_b = abap_true.
581
    l_step_b = abap_false.
582
    PERFORM html_links_node_end CHANGING ct_html.
583
  ENDIF.
584
ENDFORM.                    "links_ddic_doma
585
 
586
 
587
*-----------------------------------------------------------------------
588
* links - DDIC - DTEL
589
*-----------------------------------------------------------------------
590
FORM links_ddic_dtel
591
  CHANGING
592
    ct_html TYPE it_string
593
    c_step_a TYPE flag.
594
 
595
  DATA:
596
  l_step_b TYPE flag.
597
 
598
  FIELD-SYMBOLS:
599
  <ls_ztadir> TYPE st_ztadir.
600
 
601
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
602
      WHERE pgmid = 'R3TR'
603
      AND object = 'DTEL'.
604
    IF l_step_b = abap_false.
605
      l_step_b = abap_true.
606
      IF c_step_a = abap_false.
607
        c_step_a = abap_true.
608
        PERFORM html_links_node_start
609
          USING
610
            'tabllib'
611
            txt_dict_objs
612
            space
613
            space
614
          CHANGING
615
            ct_html.
616
      ENDIF.
617
      PERFORM html_links_node_start
618
        USING
619
          'R3TR_DTEL'
620
          txt_data_elements
621
          space
622
          space
623
        CHANGING
624
          ct_html.
625
    ENDIF.
626
    PERFORM html_links_leaf
627
      USING
628
        'R3TR_DTEL'
629
        ''
630
        <ls_ztadir>-obj_name
631
        <ls_ztadir>-descript
632
      CHANGING
633
        ct_html.
634
  ENDLOOP.
635
  IF l_step_b = abap_true.
636
    l_step_b = abap_false.
637
    PERFORM html_links_node_end CHANGING ct_html.
638
  ENDIF.
639
ENDFORM.                    "links_ddic_dtel
640
 
641
 
642
*-----------------------------------------------------------------------
643
* links - DDIC - ENQU
644
*-----------------------------------------------------------------------
645
FORM links_ddic_enqu
646
  CHANGING
647
    ct_html TYPE it_string
648
    c_step_a TYPE flag.
649
 
650
  DATA:
651
  l_step_b TYPE flag.
652
 
653
  FIELD-SYMBOLS:
654
  <ls_ztadir> TYPE st_ztadir.
655
 
656
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
657
      WHERE pgmid = 'R3TR'
658
      AND object = 'ENQU'.
659
    IF l_step_b = abap_false.
660
      l_step_b = abap_true.
661
      IF c_step_a = abap_false.
662
        c_step_a = abap_true.
663
        PERFORM html_links_node_start
664
          USING
665
            'tabllib'
666
            txt_dict_objs
667
            space
668
            space
669
          CHANGING
670
            ct_html.
671
      ENDIF.
672
      PERFORM html_links_node_start
673
        USING
674
          'R3TR_ENQU'
675
          txt_lock_objects
676
          space
677
          space
678
        CHANGING
679
          ct_html.
680
    ENDIF.
681
    PERFORM html_links_leaf
682
      USING
683
        'R3TR_ENQU'
684
        ''
685
        <ls_ztadir>-obj_name
686
        <ls_ztadir>-descript
687
      CHANGING
688
        ct_html.
689
  ENDLOOP.
690
  IF l_step_b = abap_true.
691
    l_step_b = abap_false.
692
    PERFORM html_links_node_end CHANGING ct_html.
693
  ENDIF.
694
ENDFORM.                    "links_ddic_enqu
695
 
696
 
697
*-----------------------------------------------------------------------
698
* links - DDIC - SHLP
699
*-----------------------------------------------------------------------
700
FORM links_ddic_shlp
701
  CHANGING
702
    ct_html TYPE it_string
703
    c_step_a TYPE flag.
704
 
705
  DATA:
706
  l_step_b TYPE flag.
707
 
708
  FIELD-SYMBOLS:
709
  <ls_ztadir> TYPE st_ztadir.
710
 
711
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
712
      WHERE pgmid = 'R3TR'
713
      AND object = 'SHLP'.
714
    IF l_step_b = abap_false.
715
      l_step_b = abap_true.
716
      IF c_step_a = abap_false.
717
        c_step_a = abap_true.
718
        PERFORM html_links_node_start
719
          USING
720
            'tabllib'
721
            txt_dict_objs
722
            space
723
            space
724
          CHANGING
725
            ct_html.
726
      ENDIF.
727
      PERFORM html_links_node_start
728
        USING
729
          'R3TR_SHLP'
730
          txt_srch_helps
731
          space
732
          space
733
        CHANGING
734
          ct_html.
735
    ENDIF.
736
    PERFORM html_links_leaf
737
      USING
738
        'R3TR_SHLP'
739
        ''
740
        <ls_ztadir>-obj_name
741
        <ls_ztadir>-descript
742
      CHANGING
743
        ct_html.
744
  ENDLOOP.
745
  IF l_step_b = abap_true.
746
    l_step_b = abap_false.
747
    PERFORM html_links_node_end CHANGING ct_html.
748
  ENDIF.
749
ENDFORM.                    "links_ddic_shlp
750
 
751
 
752
*-----------------------------------------------------------------------
753
* links - DDIC - STRUC
754
*-----------------------------------------------------------------------
755
FORM links_ddic_struc
756
  CHANGING
757
    ct_html TYPE it_string
758
    c_step_a TYPE flag.
759
 
760
  DATA:
761
  l_step_b TYPE flag.
762
 
763
  FIELD-SYMBOLS:
764
  <ls_ztadir> TYPE st_ztadir.
765
 
766
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
767
      WHERE pgmid = 'R3TR'
768
      AND object = 'TABL'
769
      AND ( tabclass = 'INTTAB'
770
        OR tabclass = 'VIEW'
771
        OR tabclass = 'APPEND' ).
772
    IF l_step_b = abap_false.
773
      l_step_b = abap_true.
774
      IF c_step_a = abap_false.
775
        c_step_a = abap_true.
776
        PERFORM html_links_node_start
777
          USING
778
            'tabllib'
779
            txt_dict_objs
780
            space
781
            space
782
          CHANGING
783
            ct_html.
784
      ENDIF.
785
      PERFORM html_links_node_start
786
        USING
787
          'R3TR_TABL_VIEWAPPEND'
788
          txt_structures
789
          space
790
          space
791
        CHANGING
792
          ct_html.
793
    ENDIF.
794
    PERFORM html_links_leaf
795
      USING
796
        'R3TR_TABL'
797
        'VIEWAPPEND'
798
        <ls_ztadir>-obj_name
799
        <ls_ztadir>-descript
800
      CHANGING
801
        ct_html.
802
  ENDLOOP.
803
  IF l_step_b = abap_true.
804
    l_step_b = abap_false.
805
    PERFORM html_links_node_end CHANGING ct_html.
806
  ENDIF.
807
ENDFORM.                    "links_ddic_struc
808
 
809
 
810
*-----------------------------------------------------------------------
811
* links - DDIC - TTYP
812
*-----------------------------------------------------------------------
813
FORM links_ddic_ttyp
814
  CHANGING
815
    ct_html TYPE it_string
816
    c_step_a TYPE flag.
817
 
818
  DATA:
819
  l_step_b TYPE flag.
820
 
821
  FIELD-SYMBOLS:
822
  <ls_ztadir> TYPE st_ztadir.
823
 
824
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
825
      WHERE pgmid = 'R3TR'
826
      AND object = 'TTYP'.
827
    IF l_step_b = abap_false.
828
      l_step_b = abap_true.
829
      IF c_step_a = abap_false.
830
        c_step_a = abap_true.
831
        PERFORM html_links_node_start
832
          USING
833
            'tabllib'
834
            txt_dict_objs
835
            space
836
            space
837
          CHANGING
838
            ct_html.
839
      ENDIF.
840
      PERFORM html_links_node_start
841
        USING
842
          'R3TR_TTYP'
843
          txt_table_types
844
          space
845
          space
846
        CHANGING
847
          ct_html.
848
    ENDIF.
849
    PERFORM html_links_leaf
850
      USING
851
        'R3TR_TTYP'
852
        ''
853
        <ls_ztadir>-obj_name
854
        <ls_ztadir>-descript
855
      CHANGING
856
        ct_html.
857
  ENDLOOP.
858
  IF l_step_b = abap_true.
859
    l_step_b = abap_false.
860
    PERFORM html_links_node_end CHANGING ct_html.
861
  ENDIF.
862
ENDFORM.                    "links_ddic_ttyp
863
 
864
 
865
*-----------------------------------------------------------------------
866
* links - DDIC - TYPE
867
*-----------------------------------------------------------------------
868
FORM links_ddic_type
869
  CHANGING
870
    ct_html TYPE it_string
871
    c_step_a TYPE flag.
872
 
873
  DATA:
874
  l_step_b TYPE flag.
875
 
876
  FIELD-SYMBOLS:
877
  <ls_ztadir> TYPE st_ztadir.
878
 
879
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
880
      WHERE pgmid = 'R3TR'
881
      AND object = 'TYPE'.
882
    IF l_step_b = abap_false.
883
      l_step_b = abap_true.
884
      IF c_step_a = abap_false.
885
        c_step_a = abap_true.
886
        PERFORM html_links_node_start
887
          USING
888
            'tabllib'
889
            txt_dict_objs
890
            space
891
            space
892
          CHANGING
893
            ct_html.
894
      ENDIF.
895
      PERFORM html_links_node_start
896
        USING
897
          'R3TR_TYPE'
898
          txt_type_grps
899
          space
900
          space
901
        CHANGING
902
          ct_html.
903
    ENDIF.
904
    PERFORM html_links_leaf
905
      USING
906
        'R3TR_TYPE'
907
        ''
908
        <ls_ztadir>-obj_name
909
        <ls_ztadir>-descript
910
      CHANGING
911
        ct_html.
912
  ENDLOOP.
913
  IF l_step_b = abap_true.
914
    l_step_b = abap_false.
915
    PERFORM html_links_node_end CHANGING ct_html.
916
  ENDIF.
917
ENDFORM.                    "links_ddic_type
918
 
919
 
920
*-----------------------------------------------------------------------
921
* links - DDIC - View
922
*-----------------------------------------------------------------------
923
FORM links_ddic_view
924
  CHANGING
925
    ct_html TYPE it_string
926
    c_step_a TYPE flag.
927
 
928
  DATA:
929
  l_step_b TYPE flag.
930
 
931
  FIELD-SYMBOLS:
932
  <ls_ztadir> TYPE st_ztadir.
933
 
934
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
935
      WHERE pgmid = 'R3TR'
936
      AND object = 'VIEW'.
937
    IF l_step_b = abap_false.
938
      l_step_b = abap_true.
939
      IF c_step_a = abap_false.
940
        c_step_a = abap_true.
941
        PERFORM html_links_node_start
942
          USING
943
            'tabllib'
944
            txt_dict_objs
945
            space
946
            space
947
          CHANGING
948
            ct_html.
949
      ENDIF.
950
      PERFORM html_links_node_start
951
        USING
952
          'R3TR_VIEW_VIEW'
953
          txt_views
954
          space
955
          space
956
        CHANGING
957
          ct_html.
958
    ENDIF.
959
    PERFORM html_links_leaf
960
      USING
961
        'R3TR_VIEW'
962
        ''
963
        <ls_ztadir>-obj_name
964
        <ls_ztadir>-descript
965
      CHANGING
966
        ct_html.
967
  ENDLOOP.
968
  IF l_step_b = abap_true.
969
    l_step_b = abap_false.
970
    PERFORM html_links_node_end CHANGING ct_html.
971
  ENDIF.
972
ENDFORM.                    "links_ddic_view
973
 
974
 
975
*-----------------------------------------------------------------------
976
* links - FUGR
977
*-----------------------------------------------------------------------
978
FORM links_fugr
979
  CHANGING
980
    ct_html TYPE it_string.
981
 
982
  DATA:
983
  l_step_a TYPE flag,
984
  l_step_b TYPE flag,
985
  ls_ztadir TYPE st_ztadir,
986
  l_id TYPE string,
987
  l_progname TYPE progname.
988
 
989
  LOOP AT gt_ztadir INTO ls_ztadir
990
      WHERE pgmid = 'R3TR'
991
      AND object = 'FUGR'
992
      AND futype = gc_futype_group.
993
    IF l_step_a = abap_false.
994
      l_step_a = abap_true.
995
      PERFORM html_links_node_start
996
        USING
997
          'R3TR_FUGR'
998
          txt_function_groups
999
          space
1000
          space
1001
        CHANGING
1002
          ct_html.
1003
    ENDIF.
1004
    PERFORM get_id
1005
      USING 'R3TR_FUGR__' ls_ztadir-obj_name
1006
      CHANGING l_id.
1007
    CALL FUNCTION 'RS_TADIR_TO_PROGNAME'
1008
      EXPORTING
1009
        object   = ls_ztadir-object
1010
        obj_name = ls_ztadir-obj_name
1011
      IMPORTING
1012
        progname = l_progname.
1013
    PERFORM html_links_node_start
1014
      USING
1015
        l_id
1016
        ls_ztadir-obj_name
1017
        l_progname
1018
        ls_ztadir-descript
1019
      CHANGING
1020
        ct_html.
1021
***
1022
    PERFORM links_fugr_modules
1023
      USING ls_ztadir-obj_name
1024
      CHANGING ct_html.
1025
    PERFORM links_fugr_screens
1026
      USING ls_ztadir-obj_name
1027
      CHANGING ct_html.
1028
    PERFORM links_fugr_includes
1029
      USING ls_ztadir-obj_name
1030
      CHANGING ct_html.
1031
***
1032
    PERFORM html_links_node_end CHANGING ct_html.
1033
  ENDLOOP.
1034
 
1035
  IF l_step_a = abap_true.
1036
    PERFORM html_links_node_end CHANGING ct_html.
1037
    l_step_a = abap_false.
1038
  ENDIF.
1039
ENDFORM.                    "links_fugr
1040
 
1041
 
1042
*-----------------------------------------------------------------------
1043
* links - FUGR - Includes
1044
*-----------------------------------------------------------------------
1045
FORM links_fugr_includes
1046
  USING
1047
    value(i_obj_name)
1048
  CHANGING
1049
    ct_html TYPE it_string.
1050
 
1051
  DATA:
1052
  l_id TYPE string,
1053
  l_step_b TYPE flag.
1054
 
1055
  FIELD-SYMBOLS:
1056
  <ls_ztadir> TYPE st_ztadir.
1057
 
1058
  PERFORM get_id
1059
    USING 'fugr_incl_' i_obj_name
1060
    CHANGING l_id.
1061
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1062
      WHERE pgmid = 'R3TR'
1063
      AND object = 'FUGR'
1064
      AND obj_name = i_obj_name
1065
      AND futype = gc_futype_include.
1066
    IF l_step_b = abap_false.
1067
      l_step_b = abap_true.
1068
      PERFORM html_links_node_start
1069
        USING
1070
          l_id
1071
          txt_includes
1072
          space
1073
          space
1074
        CHANGING
1075
          ct_html.
1076
    ENDIF.
1077
    PERFORM html_links_leaf
1078
      USING
1079
        'R3TR_FUGR'
1080
        'INCL'
1081
        <ls_ztadir>-progname
1082
        <ls_ztadir>-descript
1083
      CHANGING
1084
        ct_html.
1085
  ENDLOOP.
1086
  IF l_step_b = abap_true.
1087
    PERFORM html_links_node_end CHANGING ct_html.
1088
    l_step_b = abap_false.
1089
  ENDIF.
1090
ENDFORM.                    "links_fugr_includes
1091
 
1092
 
1093
*-----------------------------------------------------------------------
1094
* links - FUGR - Modules
1095
*-----------------------------------------------------------------------
1096
FORM links_fugr_modules
1097
  USING
1098
    value(i_obj_name)
1099
  CHANGING
1100
    ct_html TYPE it_string.
1101
 
1102
  DATA:
1103
  l_id TYPE string,
1104
  l_step_b TYPE flag.
1105
 
1106
  FIELD-SYMBOLS:
1107
  <ls_ztadir> TYPE st_ztadir.
1108
 
1109
  PERFORM get_id
1110
    USING 'fugr_fuba_' i_obj_name
1111
    CHANGING l_id.
1112
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1113
      WHERE pgmid = 'R3TR'
1114
      AND object = 'FUGR'
1115
      AND obj_name = i_obj_name
1116
      AND futype = gc_futype_module.
1117
    IF l_step_b = abap_false.
1118
      l_step_b = abap_true.
1119
 
1120
      PERFORM html_links_node_start
1121
        USING
1122
          l_id
1123
          txt_function_modules
1124
          space
1125
          space
1126
        CHANGING
1127
          ct_html.
1128
    ENDIF.
1129
    PERFORM html_links_leaf_filename
1130
      USING
1131
        'R3TR_FUGR'
1132
        'FUBA'
1133
        <ls_ztadir>-funcname
1134
        <ls_ztadir>-progname
1135
        <ls_ztadir>-descript
1136
      CHANGING
1137
        ct_html.
1138
  ENDLOOP.
1139
  IF l_step_b = abap_true.
1140
    PERFORM html_links_node_end CHANGING ct_html.
1141
    l_step_b = abap_false.
1142
  ENDIF.
1143
ENDFORM.                    "links_fugr_modules
1144
 
1145
 
1146
*-----------------------------------------------------------------------
1147
* links - FUGR - Screens
1148
*-----------------------------------------------------------------------
1149
FORM links_fugr_screens
1150
  USING
1151
    value(i_obj_name)
1152
  CHANGING
1153
    ct_html TYPE it_string.
1154
 
1155
  DATA:
1156
  l_filename TYPE string,
1157
  l_id TYPE string,
1158
  l_step_b TYPE flag.
1159
 
1160
  FIELD-SYMBOLS:
1161
  <ls_ztadir> TYPE st_ztadir.
1162
 
1163
  PERFORM get_id
1164
    USING 'fugr_scr_' i_obj_name
1165
    CHANGING l_id.
1166
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1167
      WHERE pgmid = 'R3TR'
1168
      AND object = 'FUGR'
1169
      AND obj_name = i_obj_name
1170
      AND futype = gc_futype_screen.
1171
    IF l_step_b = abap_false.
1172
      l_step_b = abap_true.
1173
      PERFORM html_links_node_start
1174
        USING
1175
          l_id
1176
          txt_screens
1177
          space
1178
          space
1179
        CHANGING
1180
          ct_html.
1181
    ENDIF.
1182
    CONCATENATE <ls_ztadir>-progname '-' <ls_ztadir>-dynpronr
1183
        INTO l_filename.
1184
    PERFORM html_links_leaf_filename
1185
      USING
1186
        'R3TR_FUGR'
1187
        'SCR'
1188
        <ls_ztadir>-dynpronr
1189
        l_filename
1190
        <ls_ztadir>-descript
1191
      CHANGING
1192
        ct_html.
1193
  ENDLOOP.
1194
  IF l_step_b = abap_true.
1195
    PERFORM html_links_node_end CHANGING ct_html.
1196
    l_step_b = abap_false.
1197
  ENDIF.
1198
ENDFORM.                    "links_fugr_screens
1199
 
1200
 
1201
*-----------------------------------------------------------------------
1202
* links - INCL
1203
*-----------------------------------------------------------------------
1204
FORM links_incl
1205
  CHANGING
1206
    ct_html TYPE it_string.
1207
 
1208
  DATA:
1209
  l_step_a TYPE flag,
1210
  l_step_b TYPE flag.
1211
 
1212
  FIELD-SYMBOLS:
1213
  <ls_ztadir> TYPE st_ztadir.
1214
 
1215
******includes
1216
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1217
      WHERE pgmid = 'R3TR'
1218
      AND object = 'PROG'
1219
      AND subc = 'I'.
1220
    IF l_step_a = abap_false.
1221
      l_step_a = abap_true.
1222
      PERFORM html_links_node_start
1223
        USING
1224
          'prog_I'
1225
          txt_includes
1226
          space
1227
          space
1228
        CHANGING
1229
          ct_html.
1230
    ENDIF.
1231
    PERFORM html_links_leaf
1232
      USING
1233
        'R3TR_PROG'
1234
        'INCL'
1235
        <ls_ztadir>-obj_name
1236
        <ls_ztadir>-descript
1237
      CHANGING
1238
        ct_html.
1239
  ENDLOOP.
1240
******
1241
  IF l_step_a = abap_true.
1242
    PERFORM html_links_node_end CHANGING ct_html.
1243
    l_step_a = abap_false.
1244
  ENDIF.
1245
ENDFORM.                    "links_incl
1246
 
1247
 
1248
*-----------------------------------------------------------------------
1249
* links - MSAG
1250
*-----------------------------------------------------------------------
1251
FORM links_msag
1252
  CHANGING
1253
    ct_html TYPE it_string.
1254
 
1255
  DATA:
1256
  l_step_a TYPE flag,
1257
  l_step_b TYPE flag.
1258
 
1259
  FIELD-SYMBOLS:
1260
  <ls_ztadir> TYPE st_ztadir.
1261
 
1262
******message classes
1263
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1264
      WHERE pgmid = 'R3TR'
1265
      AND object = 'MSAG'.
1266
    IF l_step_a = abap_false.
1267
      l_step_a = abap_true.
1268
      PERFORM html_links_node_start
1269
        USING
1270
          'msag'
1271
          txt_message_classes
1272
          space
1273
          space
1274
        CHANGING
1275
          ct_html.
1276
    ENDIF.
1277
    PERFORM html_links_leaf
1278
      USING
1279
        'R3TR_MSAG'
1280
        ''
1281
        <ls_ztadir>-obj_name
1282
        <ls_ztadir>-descript
1283
      CHANGING
1284
        ct_html.
1285
  ENDLOOP.
1286
******
1287
  IF l_step_a = abap_true.
1288
    PERFORM html_links_node_end CHANGING ct_html.
1289
    l_step_a = abap_false.
1290
  ENDIF.
1291
ENDFORM.                    "links_msag
1292
 
1293
 
1294
*-----------------------------------------------------------------------
1295
* links - PARA
1296
*-----------------------------------------------------------------------
1297
FORM links_para
1298
  CHANGING
1299
    ct_html TYPE it_string.
1300
 
1301
  DATA:
1302
  l_step_a TYPE flag,
1303
  l_step_b TYPE flag,
1304
  l_filename TYPE string.
1305
 
1306
  FIELD-SYMBOLS:
1307
  <ls_ztadir> TYPE st_ztadir.
1308
 
1309
******set/get parameters
1310
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1311
      WHERE pgmid = 'R3TR'
1312
      AND object = 'PARA'.
1313
    IF l_step_a = abap_false.
1314
      l_step_a = abap_true.
1315
      PERFORM html_links_node_start
1316
        USING
1317
          'para'
1318
          txt_set_get_parameters
1319
          space
1320
          space
1321
        CHANGING
1322
          ct_html.
1323
    ENDIF.
1324
    CONCATENATE <ls_ztadir>-obj_name '.' gc_extension_htm
1325
      INTO l_filename.
1326
    PERFORM encode_uri_link CHANGING l_filename.
1327
    PERFORM replace_all
1328
      USING '%' 'x'
1329
      CHANGING l_filename.
1330
    PERFORM html_links_leaf_popup
1331
      USING
1332
        'R3TR_PARA'
1333
        <ls_ztadir>-obj_name
1334
        l_filename
1335
        <ls_ztadir>-descript
1336
        tpt_para
1337
      CHANGING
1338
        ct_html.
1339
  ENDLOOP.
1340
******
1341
  IF l_step_a = abap_true.
1342
    PERFORM html_links_node_end CHANGING ct_html.
1343
    l_step_a = abap_false.
1344
  ENDIF.
1345
ENDFORM.                    "links_para
1346
 
1347
 
1348
*-----------------------------------------------------------------------
1349
* links - PROG
1350
*-----------------------------------------------------------------------
1351
FORM links_prog
1352
  CHANGING
1353
    ct_html TYPE it_string.
1354
 
1355
  DATA:
1356
  l_step_a TYPE flag,
1357
  l_step_b TYPE flag.
1358
 
1359
  FIELD-SYMBOLS:
1360
  <ls_ztadir> TYPE st_ztadir.
1361
 
1362
******programs
1363
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1364
      WHERE pgmid = 'R3TR'
1365
      AND object = 'PROG'
1366
      AND subc = '1'.
1367
    IF l_step_a = abap_false.
1368
      l_step_a = abap_true.
1369
      PERFORM html_links_node_start
1370
        USING
1371
          'prog_1'
1372
          txt_programs
1373
          space
1374
          space
1375
        CHANGING
1376
          ct_html.
1377
    ENDIF.
1378
    PERFORM html_links_leaf
1379
      USING
1380
        'R3TR_PROG'
1381
        'REPO'
1382
        <ls_ztadir>-obj_name
1383
        <ls_ztadir>-descript
1384
      CHANGING
1385
        ct_html.
1386
  ENDLOOP.
1387
******
1388
  IF l_step_a = abap_true.
1389
    PERFORM html_links_node_end CHANGING ct_html.
1390
    l_step_a = abap_false.
1391
  ENDIF.
1392
ENDFORM.                    "links_prog
1393
 
1394
 
1395
*-----------------------------------------------------------------------
1396
* links - SEO
1397
*-----------------------------------------------------------------------
1398
FORM links_seo
1399
  CHANGING
1400
    ct_html TYPE it_string.
1401
 
1402
  DATA:
1403
  l_step_a TYPE flag.
1404
 
1405
  PERFORM links_seo_clas  CHANGING ct_html l_step_a.
1406
  PERFORM links_seo_intf  CHANGING ct_html l_step_a.
1407
 
1408
  IF l_step_a = abap_true.
1409
    PERFORM html_links_node_end CHANGING ct_html.
1410
    l_step_a = abap_false.
1411
  ENDIF.
1412
 
1413
ENDFORM.                    "links_seo
1414
 
1415
 
1416
*-----------------------------------------------------------------------
1417
* links - SEO - CLAS
1418
*-----------------------------------------------------------------------
1419
FORM links_seo_clas
1420
  CHANGING
1421
    ct_html TYPE it_string
1422
    c_step_a TYPE flag.
1423
 
1424
  DATA:
1425
  l_step_b TYPE flag.
1426
 
1427
  FIELD-SYMBOLS:
1428
  <ls_ztadir> TYPE st_ztadir.
1429
 
1430
******classes
1431
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1432
      WHERE pgmid = 'R3TR'
1433
      AND object = 'CLAS'.
1434
    IF l_step_b = abap_false.
1435
      l_step_b = abap_true.
1436
      IF c_step_a = abap_false.
1437
        c_step_a = abap_true.
1438
        PERFORM html_links_node_start
1439
          USING
1440
            'claslib'
1441
            txt_class_library
1442
            space
1443
            space
1444
          CHANGING
1445
            ct_html.
1446
      ENDIF.
1447
      PERFORM html_links_node_start
1448
        USING
1449
          'R3TR_CLAS'
1450
          txt_classes
1451
          space
1452
          space
1453
        CHANGING
1454
          ct_html.
1455
    ENDIF.
1456
    PERFORM html_links_leaf
1457
      USING
1458
        'R3TR_CLAS'
1459
        ''
1460
        <ls_ztadir>-obj_name
1461
        <ls_ztadir>-descript
1462
      CHANGING
1463
        ct_html.
1464
  ENDLOOP.
1465
  IF l_step_b = abap_true.
1466
    l_step_b = abap_false.
1467
    PERFORM html_links_node_end
1468
      CHANGING
1469
        ct_html.
1470
  ENDIF.
1471
ENDFORM.                    "links_seo_clas
1472
 
1473
 
1474
*-----------------------------------------------------------------------
1475
* links - SEO - INTF
1476
*-----------------------------------------------------------------------
1477
FORM links_seo_intf
1478
  CHANGING
1479
    ct_html TYPE it_string
1480
    c_step_a TYPE flag.
1481
 
1482
  DATA:
1483
  l_step_b TYPE flag.
1484
 
1485
  FIELD-SYMBOLS:
1486
  <ls_ztadir> TYPE st_ztadir.
1487
 
1488
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1489
      WHERE pgmid = 'R3TR'
1490
      AND object = 'INTF'.
1491
    IF l_step_b = abap_false.
1492
      l_step_b = abap_true.
1493
      IF c_step_a = abap_false.
1494
        c_step_a = abap_true.
1495
        PERFORM html_links_node_start
1496
          USING
1497
            'claslib'
1498
            txt_class_library
1499
            space
1500
            space
1501
          CHANGING
1502
            ct_html.
1503
      ENDIF.
1504
      PERFORM html_links_node_start
1505
        USING
1506
          'R3TR_INTF'
1507
          txt_interfaces
1508
          space
1509
          space
1510
        CHANGING
1511
          ct_html.
1512
    ENDIF.
1513
    PERFORM html_links_leaf
1514
      USING
1515
        'R3TR_INTF'
1516
        ''
1517
        <ls_ztadir>-obj_name
1518
        <ls_ztadir>-descript
1519
      CHANGING
1520
        ct_html.
1521
  ENDLOOP.
1522
  IF l_step_b = abap_true.
1523
    l_step_b = abap_false.
1524
    PERFORM html_links_node_end CHANGING ct_html.
1525
  ENDIF.
1526
ENDFORM.                    "links_seo
1527
 
1528
 
1529
*-----------------------------------------------------------------------
1530
* links - TOBJ
1531
*-----------------------------------------------------------------------
1532
FORM links_tobj
1533
  CHANGING
1534
    ct_html TYPE it_string.
1535
 
1536
  DATA:
1537
  l_step_a TYPE flag,
1538
  l_step_b TYPE flag.
1539
 
1540
  FIELD-SYMBOLS:
1541
  <ls_ztadir> TYPE st_ztadir.
1542
 
1543
******authorization objects
1544
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1545
      WHERE pgmid = 'R3TR'
1546
      AND object = 'SUSO'.
1547
    IF l_step_a = abap_false.
1548
      l_step_a = abap_true.
1549
      PERFORM html_links_node_start
1550
        USING
1551
          'suso'
1552
          txt_authorization_object___2
1553
          space
1554
          space
1555
        CHANGING
1556
          ct_html.
1557
    ENDIF.
1558
    PERFORM html_links_leaf
1559
      USING
1560
        'R3TR_SUSO'
1561
        ''
1562
        <ls_ztadir>-obj_name
1563
        <ls_ztadir>-descript
1564
      CHANGING
1565
        ct_html.
1566
  ENDLOOP.
1567
******
1568
  IF l_step_a = abap_true.
1569
    PERFORM html_links_node_end CHANGING ct_html.
1570
    l_step_a = abap_false.
1571
  ENDIF.
1572
ENDFORM.                    "links_tobj
1573
 
1574
 
1575
*-----------------------------------------------------------------------
1576
* links - TRAN
1577
*-----------------------------------------------------------------------
1578
FORM links_tran
1579
  CHANGING
1580
    ct_html TYPE it_string.
1581
 
1582
  DATA:
1583
  l_cinfo TYPE syhex01,
1584
  l_def_call_tcode TYPE tcode,
1585
  l_length TYPE i,
1586
  l_off TYPE i,
1587
  l_param TYPE tcdparam,
1588
  l_step_a TYPE flag,
1589
  l_step_b TYPE flag,
1590
  l_tcode TYPE tcode,
1591
  l_ttype TYPE c.
1592
 
1593
  CONSTANTS:
1594
  lc_hex_tra TYPE x VALUE '00',               " Transaktion         T
1595
  lc_hex_men TYPE x VALUE '01',               " Bereichsmenue       M
1596
  lc_hex_par TYPE x VALUE '02',               " Parametertrans.     P
1597
  lc_hex_rep TYPE x VALUE '80',               " Report              R
1598
  lc_hex_rpv TYPE x VALUE '10',               " Report  mit Variante
1599
  lc_hex_obj TYPE x VALUE '08',               " Objekttransaktionen
1600
  lc_hex_chk TYPE x VALUE '04',               " mit Pruefobjekt
1601
  lc_oo_tcode LIKE tstc-tcode VALUE 'OS_APPLICATION'.
1602
 
1603
  FIELD-SYMBOLS:
1604
  <ls_ztadir> TYPE st_ztadir.
1605
 
1606
******transactions
1607
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1608
      WHERE pgmid = 'R3TR'
1609
      AND object = 'TRAN'.
1610
 
1611
    l_tcode = <ls_ztadir>-obj_name.
1612
    SELECT SINGLE cinfo FROM tstc INTO l_cinfo
1613
        WHERE tcode = l_tcode.
1614
    SELECT SINGLE param FROM tstcp INTO l_param
1615
        WHERE tcode = l_tcode.
1616
 
1617
    CASE l_param(1).
1618
      WHEN '@'.
1619
        l_off = 1.
1620
        IF l_param(2) = '@@'.
1621
          l_off = 2.
1622
        ENDIF.
1623
        IF l_param CA space. ENDIF.
1624
        l_length = sy-fdpos - l_off.
1625
        l_def_call_tcode = l_param+l_off(l_length).
1626
      WHEN '/'.
1627
        IF l_param CA space. ENDIF.
1628
        l_length = sy-fdpos.
1629
        IF l_length > 2.
1630
          SUBTRACT 2 FROM l_length.
1631
          l_def_call_tcode = l_param+2(l_length).
1632
        ENDIF.
1633
    ENDCASE.
1634
 
1635
    IF l_cinfo O lc_hex_rep.                 "report transaction
1636
      l_ttype = gc_tcode_report.
1637
    ELSEIF l_cinfo O lc_hex_obj.             "object transaction
1638
      l_ttype = gc_tcode_object.
1639
    ELSEIF l_cinfo O lc_hex_par.             "parameter transaction
1640
      l_ttype = gc_tcode_parameter.
1641
      IF NOT l_param IS INITIAL
1642
      AND l_param(1) = '@'.                  "variant transaction
1643
        l_ttype = gc_tcode_variant.
1644
      ELSEIF l_def_call_tcode = lc_oo_tcode. "object transaction
1645
        l_ttype = gc_tcode_object.
1646
      ENDIF.
1647
    ELSEIF l_cinfo O lc_hex_men.             "menue
1648
    ELSE.                                    "dialog transaction
1649
      l_ttype = gc_tcode_dialog.
1650
    ENDIF.
1651
 
1652
    IF l_step_a = abap_false.
1653
      l_step_a = abap_true.
1654
      PERFORM html_links_node_start
1655
        USING
1656
          'tran'
1657
          txt_transactions
1658
          space
1659
          space
1660
        CHANGING
1661
          ct_html.
1662
    ENDIF.
1663
    PERFORM html_links_leaf
1664
      USING
1665
        'R3TR_TRAN'
1666
        l_ttype
1667
        <ls_ztadir>-obj_name
1668
        <ls_ztadir>-descript
1669
      CHANGING
1670
        ct_html.
1671
  ENDLOOP.
1672
******
1673
  IF l_step_a = abap_true.
1674
    PERFORM html_links_node_end CHANGING ct_html.
1675
    l_step_a = abap_false.
1676
  ENDIF.
1677
ENDFORM.                    "links_tran
1678
 
1679
 
1680
*-----------------------------------------------------------------------
1681
* links - XSLT
1682
*-----------------------------------------------------------------------
1683
FORM links_xslt
1684
  CHANGING
1685
    ct_html TYPE it_string.
1686
 
1687
  DATA:
1688
  l_step_a TYPE flag,
1689
  l_step_b TYPE flag.
1690
 
1691
  FIELD-SYMBOLS:
1692
  <ls_ztadir> TYPE st_ztadir.
1693
******transformations
1694
  LOOP AT gt_ztadir ASSIGNING <ls_ztadir>
1695
      WHERE pgmid = 'R3TR'
1696
      AND object = 'XSLT'.
1697
    IF l_step_a = abap_false.
1698
      l_step_a = abap_true.
1699
      PERFORM html_links_node_start
1700
        USING
1701
          'xslt'
1702
          txt_transformations
1703
          space
1704
          space
1705
        CHANGING
1706
          ct_html.
1707
    ENDIF.
1708
    PERFORM html_links_leaf
1709
      USING
1710
        'R3TR_XSLT'
1711
        ''
1712
        <ls_ztadir>-obj_name
1713
        <ls_ztadir>-descript
1714
      CHANGING
1715
        ct_html.
1716
  ENDLOOP.
1717
******
1718
  IF l_step_a = abap_true.
1719
    PERFORM html_links_node_end CHANGING ct_html.
1720
    l_step_a = abap_false.
1721
  ENDIF.
1722
ENDFORM.                    "links_xslt