Text Sembollerinin İçinden Aranılan Kelimeyi Bulmak

Sap sistemlerinde daha önceden yazılan programları tekrar bulmak gerektiği durumlar olmaktadır. Aranılan programı bulmak için içinde geçen kelimeleri arayarak program bulmak genelde yapılan bir yöntemdir. Programların veya paketlerin içinde geçen kelimeyi bulmaya yarayan bir standart program bulunmaktadır : RPR_ABAP_SOURCE_SCAN  Bu program ile ilgili dokümanlar vs. internette bulunabilir. Bu program veya başka program özelinde herhangi bir standart program varsa yorum kısmında belirtebilirsiniz. Bu yazıda bu programın yapamadığı Text Sembollerinin İçinden Aranılan Kelimeyi Bulmak konusu için yazılan koddan bahsedilmektedir. 

RPR_ABAP_SOURCE_SCAN Programı Basit Bir Kullanımı

Öncelikle SE38 işlem koduna gidilir ve RPR_ABAP_SOURCE_SCAN programı F8 ile çalıştırılır.
Çalıştırılan programın seçim ekranında "program name" parametresine "Z*" ve/veya "Y*" yazılıp, "string searched for" parametresine aranılan kelime yazılır(örnekte start kelimesi arandı) ve F8 e basılır. 

Sonuç olarak o kelimenin geçtiği programlar bulunur.(Z'li ve/veya Y'li başlayan programlar) 


Bu yukarda bahsedilen standart programda aranılan kelime text sembollerin içinde geçen bir kelime olsaydı bulamayacaktır. Aşağıda bunu yapan z'li bir program yazılmıştır.

Text Sembollerinin İçinden Aranılan Kelimeyi Bulmak

Text Sembollere SE38 içinden Text Elements kısmından ulaşılabilir.

Text Sembollerini bulan READ TEXTPOOL komutu kullanılarak aşağıda basit bir program yazılmıştır.

Seçim Ekranı:


Sonuç Ekranı:


Kaynak Kod:
REPORT  zos_test.

DATA : gs_rs38m TYPE rs38m.
DATA : gs_textpool TYPE textpool.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS :
    s_prog FOR gs_rs38m-programm NO INTERVALS NO-EXTENSION OBLIGATORY,
    s_langu FOR sy-langu NO INTERVALS NO-EXTENSION DEFAULT 'EN',
    s_search FOR gs_textpool-entry NO INTERVALS NO-EXTENSION .
SELECTION-SCREEN END OF BLOCK b1.



*----------------------------------------------------------------------*
*       CLASS cl_txt_symbol_finder DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_txt_symbol_finder DEFINITION FINAL.
  PUBLIC SECTION.
    METHODS : get_data ,
              alv_setup,
              display_alv.

  PRIVATE SECTION.
    TYPES : BEGIN OF gty_s_tadir,
          pgmid    TYPE tadir-pgmid   ,
          object   TYPE tadir-object  ,
          obj_name TYPE tadir-obj_name,
          END OF gty_s_tadir.

    TYPES : BEGIN OF gty_s_final,
            programm TYPE rs38m-programm,
            key      TYPE textpool-key,
            entry    TYPE textpool-entry,
            END OF gty_s_final.

    DATA: gt_texttab TYPE TABLE OF textpool .
    DATA: gs_texttab TYPE textpool .

    DATA  : gs_tadir TYPE gty_s_tadir,
        gt_tadir TYPE SORTED TABLE OF gty_s_tadir WITH UNIQUE KEY pgmid
            object obj_name.

    DATA : gs_final TYPE gty_s_final,
           gt_final TYPE TABLE OF gty_s_final.

    DATA : gr_cust_container TYPE REF TO cl_gui_custom_container,
           gr_alv_grid TYPE REF TO cl_gui_alv_grid.

    DATA : gs_fcat_lvc TYPE lvc_s_fcat,
           gt_fcat_lvc TYPE lvc_t_fcat.


ENDCLASS.                    "cl_txt_symbol_finder DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_txt_symbol_finder IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_txt_symbol_finder IMPLEMENTATION.
  METHOD get_data.
    CLEAR gt_tadir.

    SELECT pgmid
           object
           obj_name
           FROM tadir
           INTO TABLE gt_tadir
           WHERE obj_name IN s_prog
           AND pgmid = 'R3TR'.

    LOOP AT gt_tadir INTO gs_tadir.
      gs_rs38m-programm = gs_tadir-obj_name.
   READ TEXTPOOL gs_rs38m-programm LANGUAGE s_langu-low INTO gt_texttab
   STATE 'A'.
      LOOP AT gt_texttab INTO gs_texttab
                         WHERE id = 'I' AND entry CS s_search-low.
        gs_final-programm = gs_tadir-obj_name.
        gs_final-key = gs_texttab-key.
        gs_final-entry = gs_texttab-entry.
        APPEND gs_final TO gt_final.
        CLEAR :gs_texttab,gs_final.
      ENDLOOP.
      CLEAR gs_tadir.
    ENDLOOP.
  ENDMETHOD.                    "get_data
  METHOD alv_setup.

    CREATE OBJECT gr_cust_container
       EXPORTING
*    PARENT                      =
         container_name              = 'CC_ALV'.

    CREATE OBJECT gr_alv_grid
      EXPORTING
        i_parent = gr_cust_container.

    gs_fcat_lvc-fieldname = 'PROGRAMM'.
    gs_fcat_lvc-tabname   = 'GT_FINAL'.
    gs_fcat_lvc-scrtext_s =
    gs_fcat_lvc-scrtext_m =
    gs_fcat_lvc-scrtext_l = 'Program'(001).
    APPEND gs_fcat_lvc TO gt_fcat_lvc.

    gs_fcat_lvc-fieldname = 'KEY'.
    gs_fcat_lvc-tabname   = 'GT_FINAL'.
    gs_fcat_lvc-scrtext_s =
    gs_fcat_lvc-scrtext_m =
    gs_fcat_lvc-scrtext_l = 'Key'(002).
    APPEND gs_fcat_lvc TO gt_fcat_lvc.

    gs_fcat_lvc-fieldname = 'ENTRY'.
    gs_fcat_lvc-tabname   = 'GT_FINAL'.
    gs_fcat_lvc-scrtext_s =
    gs_fcat_lvc-scrtext_m =
    gs_fcat_lvc-scrtext_l = 'Entry'(003).
    APPEND gs_fcat_lvc TO gt_fcat_lvc.
  ENDMETHOD.                    "alv_setup
  METHOD display_alv.
    CALL METHOD gr_alv_grid->set_table_for_first_display
      CHANGING
        it_outtab       = gt_final[]
        it_fieldcatalog = gt_fcat_lvc.
  ENDMETHOD.                    "display_alv
ENDCLASS.                    "cl_txt_symbol_finder IMPLEMENTATION

START-OF-SELECTION.


  DATA gr_txt_finder TYPE REF TO cl_txt_symbol_finder.
  CREATE OBJECT gr_txt_finder.

  CALL METHOD gr_txt_finder->get_data.
  CALL METHOD gr_txt_finder->alv_setup.
  CALL METHOD gr_txt_finder->display_alv.

  CALL SCREEN 0100.

Bu program ingilizce hali sap blog sayfamda bulabilirsiniz: https://blogs.sap.com/2018/04/18/text-symbols-where-used-list/

Yorumlar

Bu blogdaki popüler yayınlar

CONVERSION_EXIT_ALPHA_INPUT - CONVERSION_EXIT_ALPHA_OUTPUT -Değişken başına sıfır eklemek ve değişkenin başındaki sıfırları silmek

Sap Netweaver 7.52 SP04 (Trial)Deneme Sürümü Kurulumu(Vagrant)