HOW TO FIND PID

how to find pid i.e BAN..
by f1 on ban n f9 i know...but how do we know that for particular table pid is this. my table is EBAN, <b>FOR EBAN IT IS BAN BUT FROM WHERE WE GET THIS BAN</b>.
set parameter id 'BAN' field pur_req-banfn. " parameter id for pruchase req. number
call transaction 'ME52' and skip first screen

Another way is :
Go to the transactions, where the field you want to set/get is present.
Keep cursor in Field and press F1. In the popup toolbar , click on technical help.
Another popup will come in which the screen field name and parameter ID will be there.
Hope this helps.

Similar Messages

  • How to find PID listening particular Port on Linux

    Hi,
    I am trying to run Weblogic server on , i am getting message like “unable to bind port <port_number>”.
    I want to know the associated process which is using this port. Can some one plz ping me the command.
    NOTE : Weblogic Installed OS is Red Hat Enterprise Linux Server release 5.3
    Regards, Jani Shaik

    Hi Sergio,
    Thanks for your reply. Earlier i was trying to execute this command as a normal user but lateron it works fine when i switched to "root" user.
    Cheers, Jani Shaik

  • How to find sql statement with Unix process pid

    Hi
    how to find sql statement with Unix process pid
    is there any view to find that.
    please if so let me know
    Thanks in advance

    this is how I am doing this:
    oracle 7352340 7459066 0 07:47:10 - 0:00 oracleJDERED (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    oracle 7459066 5386396 2 07:47:10 pts/1 0:01 sqlplus
    select sid,serial# from v$session where process='7459066';
    SID SERIAL#
    2178 6067
    select sql_text
    from
    v$sqlarea a,
    v$session b
    where a.hash_value = b.sql_hash_value
    and b.sid = 2178
    ;

  • How to find all JMX ports on a server?

    How to find all jmx ports on particular server (say localhost) on windows
    I have multiple JVM's running on my local server, and there is extensive use of JXM mbeans by the applications running on each server. So I want to connect to all these JMX servers and to instrument the MBeans using Jconsole(Jconsole localhost:<port>). But I don't know the port numbers, and its not logged by the application.
    How do I find all the ports jmx servers connected?
    Note : In my case I can not instrument using the PID.
    thanks,
    bala K

    Hi kajbj,
    I tried stop/start the application, but couldn't find any difference in the netstat command. I know it should show the JMX port (I am able to see on a test application), but this application's JMX port usage is missing.
    netstat -ano --> Do i need to use any other commands?
    I just injected few lines of code ( to list the MBeanServers programatically), to this application (did some usual tweaks to let this code execute at some time) and its listing couple of MBeanServers and lot of MBeans.
    MBeanServerFactory.findMBeanServer(null); and so on.....
    Is there a way to get the port using the Management API's?
    thanks,
    bala K

  • How to find out the "manufacture date"?

    Hello!
    Can you tell me how to find out the manufacture date of my Satellite A110-334 with the serial "SY6224123K"?
    I need this information for my insurance!
    I found only this link for HDD`s: http://www.storage.toshiba.eu/index_manual.php?pid=220&sid=536&la=en
    But there is no "S" on the first digit!??
    So it is maybe "Y6" which can be November 2006! Is this right?
    Thank you!
    ===========
    This is the information on the link above:
    How to encode a Toshiba Hard Disk Drive Serial Number?
    The Toshiba serial number (S/N) includes details of the date of manufacture. The first digit of the serial number indicates the Month of manufacture and the 2nd digit indicates the Year.
    Example:
    M Y x x x x x x x
    M = Month
    Y = Year
    The month digit goes from 1, for January, through to 9, for September, and then X, Y and Z, for October, November and December.
    Examples:
    2 8 1 7 0 0 0 1 A
    2 = February
    8 = 1998
    3 0 5 4 4 3 0 6 T
    3 = March
    0 = 2000
    X 9 D 7 8 3 3 1 T
    X = October
    9 = 1999
    The remaining digits contain information about factory and production line, and some digits are reserved for a continuously running serial number.

    Hello
    Try with http://gedb.toshiba.com/
    Let me know if you find info you need.

  • How to find the contents of proc from top command

    I had a doubt related to how to find the contents of a procedure or the statements from the PID displayed in top command if it can be done from TOAD or
    sqlplus. If we can find out the details from top like:-
    21211 oracle 16 0 3228 1012 764 R 0 0.0 0:07.68 top
    1 root 16 0 1732 552 472 S 0 0.0 0:01.29 init
    say, what is the process with PID 21211 and 1 are doing?
    I hope, my question is clear.
    Please, help in solving the doubt.
    regards

    Join v$process, v$session, and v$sql
    SQL> ed
    Zapisano file afiedt.buf
      1  SELECT p.pid, s.sid, s.serial#, sq.sql_text
      2    FROM v$session s,
      3      v$process p,
      4      v$sql sq
      5    WHERE s.paddr = p.addr
      6*   AND sq.address = s.sql_address
    SQL> /
           PID        SID    SERIAL# SQL_TEXT
            37        128          2 BEGIN EMD_NOTIFICATION.QUEUE_READY(:1, :
                                     2, :3); END;
            19        149       4566 SELECT p.pid, s.sid, s.serial#, sq.sql_t
                                     ext   FROM v$session s,     v$process p,
                                          v$sql sq   WHERE s.paddr = p.addr
                                      AND sq.address = s.sql_address
    SQL>Edited by: Łukasz Mastalerz on Feb 12, 2009 1:27 PM

  • How to find the invalid form session in oracle Apps

    Oracle Apps R12
    Hai All
    How to find the invalid form session in oracle Apps R12 and How to Kill the that.
    Thanks & Regards
    Srikkanth.M

    Hi,
    Please refer to these docs (for 11i and R12).
    How to Kill Inactive Sessions Based on the Information in the Monitor User Form [ID 103516.1]
    Script: How To Identify The apps User Using The O/S PID For Forms Users In 11i [ID 185762.1]
    Thanks,
    Hussein

  • How to find memory taken by a process using top command

    I wanted to know how to find the memory taken by a process using top command. The output of the top command is as follows as an example:
    Mem: 13333364k total, 13238904k used, 94460k free, 623640k buffers
    Swap: 25165816k total, 112k used, 25165704k free, 4572904k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    16514 applmgr 25 0 2197m 1.7g 10m S 0.3 13.0 15:20.67 java
    30692 crestelo 22 0 2901m 1.4g 9284 S 0.0 11.0 3:03.68 java
    30431 crestelo 25 0 2043m 1.4g 161m S 50.9 11.0 79:02.73 java
    30869 crestelo 25 0 2860m 1.2g 9292 S 0.0 9.6 7:11.18 java
    16655 applmgr 23 0 1934m 1.1g 10m S 0.3 8.9 2:17.49 java
    16319 crestelo 19 0 1541m 299m 44m S 0.0 2.3 2:52.11 java
    I hope, my question is clear as to how to find the memory taken by a process using top command.
    Please revert with the reply to my query.
    Regards

    Have you tried "man top" to see the documentation for the top command?
    How about the following: http://lmgtfy.com/?q=show+memory+with+top+command
    The 5th column (VIRT) shows the amount of RAM + swap
    The 6th column (RES) shows RAM
    The 7th column (SHR) shows memory shared between processes

  • How to find memory taken by Oracle processes using top command

    I wanted to know how to find the memory taken by Oracle processes using top command. The output of the top command is as follows as an example:
    Mem: 16436072k total, 16215708k used, 220364k free, 395128k buffers
    Swap: 25165816k total, 1168288k used, 23997528k free, 13366520k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    27281 oraprod 15 0 6705m 1.3g 1.3g S 0.0 8.6 61:44.71 oracle
    27383 oraprod 15 0 6702m 1.2g 1.2g S 0.0 7.7 2:22.75 oracle
    5199 oraprod 16 0 6745m 1.1g 1.0g S 0.0 6.8 2:51.23 oracle
    The different Oracle processes could be Oracle database, Oracle listener, Oracle enterprise manager etc.
    I hope, my question is clear as to how to find the memory taken by a process using top command.
    Please revert with the reply to my query.
    Regards

    a short and correct answer would be: you can't.
    As oracle uses a fair amount of shared memory, and that shared memory is attached to most of the oracle processes, the same memory appears a number of times.
    you should rephrase your question / what is it you want to achieve?
    you can ask oracle how much memory is assigned to it, v$sga, v$sgastat, v$process (for PGA). moreover, you as DBA are the one who configured that.
    you can look at major an minor faults per process to see what is causing the paging (if you have any).
    you can also look at the /proc/pid/statm pseudofilesystem for your oracle pids.

  • How to find out when XI Server was Re-started Last ?

    Dear Experts,
            Can anybody tell me How to find out when was the last time XI server was Re-started. ? I want to know both ABAP as well as Java instance. without taking the help of basis.
             Any T-code or Log which can give me this info.
    Regards,
    Umesh

    Hi Umesh,
    This can be one idea to check for last restart of server.
    Goto Tcode sm21 and filter by date range and press the tab Reread system log if you see a continuous yellow triangle in Priorty column and the text details are like Stop WorkprocXX, PID XXXX that means the server was down at that time.
    and if again you see the continuous green lights with the text like Start WorkprocXX, Pid XXXX
    The time corresponding to these messages gives the time and date of the last restart of the XI server.
    Thanks!

  • How to find Latch and what actions need to be taken when there is a latch

    Hi
    Can you please tell me how to find Latch and what actions need to be taken when there is a latch?
    Thanks
    Regards,
    RJ.

    1. What is a latch?
    Latches are low level serialization mechanisms used to protect shared
    data structures in the SGA. The implementation of latches is operating
    system dependent, particularly in regard to whether a process will wait
    for a latch and for how long.
    A latch is a type of a lock that can be very quickly acquired and freed.
    Latches are typically used to prevent more than one process from
    executing the same piece of code at a given time. Associated with each
    latch is a cleanup procedure that will be called if a process dies while
    holding the latch. Latches have an associated level that is used to
    prevent deadlocks. Once a process acquires a latch at a certain level it
    cannot subsequently acquire a latch at a level that is equal to or less
    than that level (unless it acquires it nowait).
    2. Latches vs Enqueues
    Enqueues are another type of locking mechanism used in Oracle.
    An enqueue is a more sophisticated mechanism which permits several concurrent
    processes to have varying degree of sharing of "known" resources. Any object
    which can be concurrently used, can be protected with enqueues. A good example
    is of locks on tables. We allow varying levels of sharing on tables e.g.
    two processes can lock a table in share mode or in share update mode etc.
    One difference is that the enqueue is obtained using an OS specific
    locking mechanism. An enqueue allows the user to store a value in the lock,
    i.e the mode in which we are requesting it. The OS lock manager keeps track
    of the resources locked. If a process cannot be granted the lock because it
    is incompatible with the mode requested and the lock is requested with wait,
    the OS puts the requesting process on a wait queue which is serviced in FIFO.
    Another difference between latches and enqueues is that
    in latches there is no ordered queue of waiters like in enqueues. Latch
    waiters may either use timers to wakeup and retry or spin (only in
    multiprocessors). Since all waiters are concurrently retrying (depending on
    the scheduler), anyone might get the latch and conceivably the first one to
    try might be the last one to get.
    3. When do we need to obtain a latch?
    A process acquires a latch when working with a structure in the SGA
    (System Global Area). It continues to hold the latch for the period
    of time it works with the structure. The latch is dropped when the
    process is finished with the structure. Each latch protects a different
    set of data, identified by the name of the latch.
    Oracle uses atomic instructions like "test and set" for operating on latches.
    Processes waiting to execute a part of code for which a latch has
    already been obtained by some other process will wait until the
    latch is released. Examples are redo allocation latches, copy
    latches, archive control latch etc. The basic idea is to block concurrent
    access to shared data structures. Since the instructions to
    set and free latches are atomic, the OS guarantees that only one process gets
    it. Since it is only one instruction, it is quite fast. Latches are held
    for short periods of time and provide a mechanism for cleanup in case
    a holder dies abnormally while holding it. This cleaning is done using
    the services of PMON.
    4. Latches request modes?
    Latches request can be made in two modes: "willing-to-wait" or "no wait". Normally,
    latches will be requested in "willing-to-wait" mode. A request in "willing-to-wait" mode
    will loop, wait, and request again until the latch is obtained. In "no wait" mode the process
    request the latch. If one is not available, instead of waiting, another one is requested. Only
    when all fail does the server process have to wait.
    Examples of "willing-to-wait" latches are: shared pool and library cache latches
    A example of "no wait" latches is the redo copy latch.
    5. What causes latch contention?
    If a required latch is busy, the process requesting it spins, tries again
    and if still not available, spins again. The loop is repeated up to a maximum
    number of times determined by the initialization parameter SPINCOUNT.
    If after this entire loop, the latch is still not available, the process must yield
    the CPU and go to sleep. Initially is sleeps for one centisecond. This time is
    doubled in every subsequent sleep.
    This causes a slowdown to occur and results in additional CPU usage,
    until a latch is available. The CPU usage is a consequence of the
    "spinning" of the process. "Spinning" means that the process continues to
    look for the availability of the latch after certain intervals of time,
    during which it sleeps.
    6. How to identify contention for internal latches?
    Relevant data dictionary views to query
    V$LATCH
    V$LATCHHOLDER
    V$LATCHNAME
    Each row in the V$LATCH table contains statistics for a different type
    of latch. The columns of the table reflect activity for different types
    of latch requests. The distinction between these types of requests is
    whether the requesting process continues to request a latch if it
    is unavailable:
    willing-to-wait If the latch requested with a willing-to-wait
    request is not available, the requesting process
    waits a short time and requests the latch again.
    The process continues waiting and requesting until
    the latch is available.
    no wait If the latch requested with an immediate request is
    not available, the requesting process does not
    wait, but continues processing.
    V$LATCHNAME key information:
    GETS Number of successful willing-to-wait requests for
    a latch.
    MISSES Number of times an initial willing-to-wait request
    was unsuccessful.
    SLEEPS Number of times a process waited a requested a latch
    after an initial wiling-to-wait request.
    IMMEDIATE_GETS Number of successful immediate requests for each latch.
    IMMEDIATE_MISSES Number of unsuccessful immediate requests for each latch.
    Calculating latch hit ratio
    To get the Hit ratio for latches apply the following formula:
    "willing-to-wait" Hit Ratio=(GETS-MISSES)/GETS
    "no wait" Hit Ratio=(IMMEDIATE_GETS-IMMEDIATE_MISSES)/IMMEDIATE_GETS
    This number should be close to 1. If not, tune according to the latch name
    7. Useful SQL scripts to get latch information
    ** Display System-wide latch statistics.
    column name format A32 truncate heading "LATCH NAME"
    column pid heading "HOLDER PID"
    select c.name,a.addr,a.gets,a.misses,a.sleeps,
    a.immediate_gets,a.immediate_misses,b.pid
    from v$latch a, v$latchholder b, v$latchname c
    where a.addr = b.laddr(+)
    and a.latch# = c.latch#
    order by a.latch#;
    ** Given a latch address, find out the latch name.
    column name format a64 heading 'Name'
    select a.name from v$latchname a, v$latch b
    where b.addr = '&addr'
    and b.latch#=a.latch#;
    ** Display latch statistics by latch name.
    column name format a32 heading 'LATCH NAME'
    column pid heading 'HOLDER PID'
    select c.name,a.addr,a.gets,a.misses,a.sleeps,
    a.immediate_gets,a.immediate_misses,b.pid
    from v$latch a, v$latchholder b, v$latchname c
    where a.addr = b.laddr(+) and a.latch# = c.latch#
    and c.name like '&latch_name%' order by a.latch#;
    8. List of all the latches
    Oracle versions might differ in the latch# assigned to the existing latches.
    The following query will help you to identify all latches and the number assigned.
    column name format a40 heading 'LATCH NAME'
    select latch#, name from v$latchname;

  • Discoverer Report: How to find Business Area name from Report Name.

    Hi
    I opened a report in Disco Desktop 4 -> Resonsibiolity --> Report Name.
    So I know Report name but don’t know which Business Area it belongs to.
    How to find Business Area Name from Report Name?
    Cheers
    Vijay

    Hi,
    There is no relationship between reports and business areas. Each report can be built from many folders. Each folder can be in many business areas.
    However you can try the following SQL which may give you the result you want for an v5 EUL. You will have to modify for Discoverer 4 EUL:
    select distinct doc_name, obj.obj_name folder_name, bas.ba_name
    from eul_us.eul5_documents doc
    , eul_us.eul5_elem_xrefs xref
    , eul_us.eul5_expressions exp
    , eul_us.eul5_objs obj
    , eul_us.eul5_ba_obj_links bol
    , eul_us.eul5_bas bas
    where xref.ex_from_id = doc.doc_id
    and doc.doc_name = &your_report
    and xref.ex_to_id = exp.exp_id
    and obj.obj_id = exp.it_obj_id
    and bol.bol_obj_id = obj.obj_id
    and bas.ba_id = bol.bol_ba_id
    Rod West

  • How to find a specific word in sentence in each line?

    How to find a specific word in sentence in each line and output will show start from the beginning from specific word plus with small description from each sentence?
    For example: I need to find a "+Wednesday+" and "+Thursday+" word in each sentence by line by line from "myfile.txt".
    Go ballet class next Wednesday.
    On the Wednesday is going to swim class.
    We have a meeting on Thursday at Panda's.
    Then it will show the output:
    Wednesday : ballet class
    Wednesday : swim class
    Thursday: meeting at Panda's
    I am going to figure out in Java console to read from a file for specific word from each line and how to make it output in correct way. I know already to make input/file codes.

    I got it and understand much better. Thank you very much. There is a problem with it because I knew how to make
    a specific word in sentence but how I should make Output for specific word and some words from sentence.
    For example:
    Input:
    +"On Thursday go to ballet class"+
    +"Swim class on Friday one time a month at 2 p.m."+
    I used the codes for that:
    class FindSchedule{
         String firstline = "On Thursday go to ballet class ";
         String secondline = "Swim class on Friday one time a month ";
         FindSchedule(){
              System.out.println(firstline + findTheIndex("Thursday", firstline));
              System.out.println(secondline + findTheIndex("Friday", secondline));
         public int findTheIndex(String word, String sentence){
              int index;
              index = sentence.indexOf(word);
              return index;
         public static void main (String[] args){
              new FindSchedule();
    }The output will be:
    Thursday: ballet class
    Friday: 14:00 swim class one time a week
    Notice that time is changing in output complete different from input.
    I need to find out how to extract some words from each sentence for output. Do you know how to do it?

  • How to find out the user-exits?

    hi.
    how to find out the user-exits?
    regards
    eswar.

    Hi,
    *& Report  ZEXITFINDER
    *report  zexitfinder.
    *& Enter the transaction code that you want to search through in order
    *& to find which Standard SAP User Exits exists.
    *& Tables
    tables : tstc, "SAP Transaction Codes
    tadir, "Directory of Repository Objects
    modsapt, "SAP Enhancements - Short Texts
    modact, "Modifications
    trdir, "System table TRDIR
    tfdir, "Function Module
    enlfdir, "Additional Attributes for Function Modules
    tstct. "Transaction Code Texts
    *& Variables
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    *& Selection Screen Parameters
    selection-screen begin of block a01 with frame title text-001.
    selection-screen skip.
    parameters : p_tcode like tstc-tcode obligatory.
    selection-screen skip.
    selection-screen end of block a01.
    *& Start of main program
    start-of-selection.
    Validate Transaction Code
    select single * from tstc
    where tcode eq p_tcode.
    Find Repository Objects for transaction code
    if sy-subrc eq 0.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = tstc-pgmna.
    move : tadir-devclass to v_devclass.
    if sy-subrc ne 0.
    select single * from trdir
    where name = tstc-pgmna.
    if trdir-subc eq 'F'.
    select single * from tfdir
    where pname = tstc-pgmna.
    select single * from enlfdir
    where funcname = tfdir-funcname.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = enlfdir-area.
    move : tadir-devclass to v_devclass.
    endif.
    endif.
    Find SAP Modifactions
    select * from tadir
    into table jtab
    where pgmid = 'R3TR'
    and object = 'SMOD'
    and devclass = v_devclass.
    select single * from tstct
    where sprsl eq sy-langu
    and tcode eq p_tcode.
    format color col_positive intensified off.
    write:/(19) 'Transaction Code - ',
    20(20) p_tcode,
    45(50) tstct-ttext.
    skip.
    if not jtab[] is initial.
    write:/(95) sy-uline.
    format color col_heading intensified on.
    write:/1 sy-vline,
    2 'Exit Name',
    21 sy-vline ,
    22 'Description',
    95 sy-vline.
    write:/(95) sy-uline.
    loop at jtab.
    select single * from modsapt
    where sprsl = sy-langu and
    name = jtab-obj_name.
    format color col_normal intensified off.
    write:/1 sy-vline,
    2 jtab-obj_name hotspot on,
    21 sy-vline ,
    22 modsapt-modtext,
    95 sy-vline.
    endloop.
    write:/(95) sy-uline.
    describe table jtab.
    skip.
    format color col_total intensified on.
    write:/ 'No of Exits:' , sy-tfill.
    else.
    format color col_negative intensified on.
    write:/(95) 'No User Exit exists'.
    endif.
    else.
    format color col_negative intensified on.
    write:/(95) 'Transaction Code Does Not Exist'.
    endif.
    Take the user to SMOD for the Exit that was selected.
    at line-selection.
    get cursor field field1.
    check field1(4) eq 'JTAB'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first screen.
    Regards

  • How to find out the Transactions used per month & the USER who used that

    Hi,
    1)How to find out the Transactions used per month & the USER who used that?
    2)and can i get the above same for minimum 20 month?
    System : SAP- Enterprise Core Component.

    You can use my program...
    *& Report  Z_ABAP_TCODE_MONITOR
    *****&  Program Type          : Report                                 *
    *****&  Title                 : Z_ABAP_TCODE_MONITOR                   *
    *****&  Transaction code      : ZTCODE_USAGE                           *
    *****&  Developer name        : Shailendra Kolakaluri                  *
    *****&  Deveopment start date : 26 th Dec 2011                         *
    *****&  Development Package   : ZDEV                                   *
    *****&  Transport No          : DEVK906086                                       *
    *****&  Program Description   : This program is to display
    *List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    *& Modification history
    REPORT  Z_ABAP_TCODE_MONITOR.
    *& List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    TYPE-POOLS : slis.
    DATA: ind TYPE i,
          fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          layout TYPE slis_layout_alv,
          variant TYPE disvariant,
          events  TYPE slis_t_event WITH HEADER LINE,
          heading TYPE slis_t_listheader WITH HEADER LINE.
    *REPORT  z_report_usage.
    TYPES: BEGIN OF zusertcode,
      date   TYPE swncdatum,
      user   TYPE swncuname,
      mandt     TYPE swncmandt,
      tcode     TYPE swnctcode,
      report TYPE swncreportname,
      count     TYPE swncshcnt,
    END OF zusertcode.
    *data   : date type n.
    DATA: t_usertcode  TYPE swnc_t_aggusertcode,
          wa_usertcode TYPE swncaggusertcode,
          wa           TYPE zusertcode,
          t_ut         TYPE STANDARD TABLE OF zusertcode,
          wa_result    TYPE zusertcode,
          t_result     TYPE STANDARD TABLE OF zusertcode.
    PARAMETER: month TYPE dats DEFAULT sy-datum.
    *PARAMETER: date TYPE dats.
    *select-options : username for wa_usertcode-account.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM get_fieldcatalog.
      PERFORM set_layout.
    PERFORM get_event.
    PERFORM get_comment.
      PERFORM display_data.
    FORM get_data .
    *date = sy-datum - 2 .
    After start-of-selection add this line (parameter Month required 01 as day).
      concatenate month+0(6) '01' into month.
      CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
        EXPORTING
          component     = 'TOTAL'
          ASSIGNDSYS    = 'DEV'
          periodtype    = 'M'
          periodstrt    = month
        TABLES
          usertcode     = t_usertcode
        EXCEPTIONS
          no_data_found = 1
          OTHERS        = 2.
      wa-date  = month.
    *wa-date  = date.
      wa-mandt = sy-mandt.
    wa_usertcode-account = username.
      LOOP AT t_usertcode INTO wa_usertcode.
        wa-user = wa_usertcode-account.
        IF wa_usertcode-entry_id+72 = 'T'.
          wa-tcode  = wa_usertcode-entry_id.
          wa-report = space.
        ELSE.
          wa-tcode  = space.
          wa-report = wa_usertcode-entry_id.
        ENDIF.
        COLLECT wa INTO t_ut.
      ENDLOOP.
      SORT t_ut BY report ASCENDING.
      CLEAR: wa, wa_result.
    endform.
    FORM get_fieldcatalog .
    fcat-tabname     = 't_ut'.
    fcat-fieldname   = 'DATE'.
    fcat-seltext_l   = 'Date'.
    fcat-key         = 'X'.
    APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'MANDT'.
      fcat-seltext_l   = 'Client'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'USER'.
      fcat-seltext_l   = 'User Name'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'TCODE'.
      fcat-seltext_l   = 'Transaction Code'.
      fcat-key         = 'X'.
      APPEND fcat.
    ENDFORM.
    *&      Form  SET_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM set_layout .
      layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SET_LAYOUT
    *&      Form  GET_EVENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_event .
    events-name = slis_ev_top_of_page.
    events-form = 'TOP_OF_PAGE'.
    APPEND events.
    *ENDFORM.                    " GET_EVENT
    **&      Form  GET_COMMENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_comment .
    DATA: text(30).
    text = 'Billing Report'.
    heading-typ = 'H'.
    heading-info = text.
    APPEND heading.
    *ENDFORM.                    " GET_COMMENT
    **&      Form  top_of_page
          text
    -->  p1        text
    <--  p2        text
    *FORM top_of_page .
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         it_list_commentary       = heading[]
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    *ENDFORM.                    " top_of_page
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      sort t_ut[].
    DELETE ADJACENT DUPLICATES FROM t_ut[] COMPARING ALL FIELDS.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-cprog
          is_layout          = layout
          it_fieldcat        = fcat[]
          i_save             = 'A'
          is_variant         = variant
          it_events          = events[]
        TABLES
          t_outtab           = t_ut
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " DISPLAY_DATA

Maybe you are looking for