YABAP_TOOLS_FIND_AUTH_BY_BNAME

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > ABAP Source Code >

YABAP_TOOLS_FIND_AUTH_BY_BNAME

*&---------------------------------------------------------------------*

*& Report  YABAP_TOOLS_FIND_AUTH_BY_BNAME                              *

*&                                                                     *

*&---------------------------------------------------------------------*

*& Find Transaction Code (TCode) base on Username                      *

*&                                                                     *

*&---------------------------------------------------------------------*

 

REPORT  yabap_tools_find_auth_by_bname NO STANDARD PAGE HEADING.

 

*----------------------------------------------------------------------*

* Tables

*----------------------------------------------------------------------*

TABLES : tstct,uststcap,ust04,usr03,ust10s,ust10c, ust12.

 

*----------------------------------------------------------------------*

*GLOBAL VARIABLE DECRALATION

*----------------------------------------------------------------------*

TYPE-POOLS: kkblo, slis.

 

DATA : gi_uststcap LIKE STANDARD TABLE OF uststcap WITH HEADER LINE,

       gi_ust04 LIKE STANDARD TABLE OF ust04 WITH HEADER LINE,

       gi_ust10s LIKE STANDARD TABLE OF ust10s WITH HEADER LINE,

       gi_ust10c LIKE STANDARD TABLE OF ust10c WITH HEADER LINE,

       gi_ust12 LIKE STANDARD TABLE OF ust12 WITH HEADER LINE.

 

DATA : lv_count TYPE i,

lv_name1 LIKE usr03-name1,

lv_tcode LIKE tstct-tcode,

lv_ttext LIKE tstct-ttext.

 

*----------------------------------------------------------------------*

*Input Screen/Selection

*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(18) text_101 FOR FIELD pa_bname.

PARAMETER : pa_bname LIKE usr03-bname OBLIGATORY.

SELECTION-SCREEN END OF LINE.

 

*----------------------------------------------------------------------*

*EVENT

*----------------------------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

  text_101 = 'User Name'.

 

*----------------------------------------------------------------------*

*INITIALIZATION

*----------------------------------------------------------------------*

INITIALIZATION.

 

*======================================================================*

*MAIN PROGRAM

*Execute after Input Screen

*======================================================================*

START-OF-SELECTION.

  PERFORM fm_collect_data.

  PERFORM fm_display_data.

 

 

*======================================================================*

*SUB PROGRAM / SUB ROUTINE

*======================================================================*

 

*---------------------------------------------------------------------*

* FORM fm_collect_data *

*---------------------------------------------------------------------*

* ........ *

*---------------------------------------------------------------------*

FORM fm_collect_data.

  REFRESH : gi_ust12, gi_ust04, gi_ust10s, gi_ust10c.

 

  SELECT *

  INTO TABLE gi_ust04

  FROM ust04

  WHERE

  bname = pa_bname.

 

  SELECT *

  INTO TABLE gi_ust10s

  FROM ust10s

  FOR ALL ENTRIES IN gi_ust04

  WHERE

  profn = gi_ust04-profile AND

  objct = 'S_TCODE'.

 

  DESCRIBE TABLE gi_ust10s LINES lv_count.

  IF lv_count > 0.

    SELECT *

    INTO TABLE gi_ust12

    FROM ust12

    FOR ALL ENTRIES IN gi_ust10s

    WHERE

    auth = gi_ust10s-auth AND

    objct = 'S_TCODE' AND

    field = 'TCD'.

 

  ENDIF.

ENDFORM.                    "fm_collect_data

 

*---------------------------------------------------------------------*

* FORM fm_display_data *

*---------------------------------------------------------------------*

* ........ *

*---------------------------------------------------------------------*

FORM fm_display_data.

  SELECT SINGLE name1

  INTO lv_name1

  FROM usr03

  WHERE

  bname = pa_bname.

 

  SORT gi_ust12 BY von.

  DELETE ADJACENT DUPLICATES FROM gi_ust12

  COMPARING von.

 

  DESCRIBE TABLE gi_ust12 LINES lv_count.

 

 

  WRITE : / 'Username : ', pa_bname COLOR 1, lv_name1.

  WRITE : / 'Total TCode : ', lv_count COLOR 2.

 

 

  SKIP 1.

  WRITE : /(65) sy-uline.

  WRITE : / '|', (5) 'Nomor', '|', (20) 'TCode', '|', (30) 'Deskripsi',

  '|'.

  WRITE : /(65) sy-uline.

  lv_count = 0.

  LOOP AT gi_ust12.

    ADD 1 TO lv_count.

 

    lv_tcode = gi_ust12-von.

    SELECT SINGLE ttext

    INTO lv_ttext

    FROM tstct

    WHERE

    tcode = lv_tcode and

    SPRSL = sy-langu.

 

    WRITE : / '|', (5) lv_count, '|',

    (20) gi_ust12-von HOTSPOT, '|',

    (30) lv_ttext, '|'.

  ENDLOOP.

  WRITE : /(65) sy-uline.

 

ENDFORM.                    "fm_display_data

 

*----------------------------------------------------------------------*

*Event Click

*----------------------------------------------------------------------*

AT LINE-SELECTION.

  DATA : lv_obj_name LIKE gi_ust12-von,

  rs_selfield TYPE slis_selfield,

* kkblo_tabname TYPE slis_tabname,

  l_tabname TYPE kkblo_tabname.

 

  GET CURSOR FIELD rs_selfield-sel_tab_field VALUE rs_selfield-value.

  SPLIT rs_selfield-sel_tab_field AT '-' INTO l_tabname

  rs_selfield-fieldname.

  CASE rs_selfield-fieldname.

    WHEN 'VON'.

      MOVE rs_selfield-value TO lv_obj_name.

      CONDENSE lv_obj_name.

      SUBMIT yabap_tools_find_auth_by_tcode

      WITH pa_tcode = lv_obj_name

      AND RETURN.

 

 

    WHEN OTHERS.

  ENDCASE.