Skip to Content
avatar image
Former Member

Verry very urgent!

Dear All,

I need to modify one standard program name is RM07MLBD (T.Code-MB5B).

There is selection screen based on MATERIAL NO (MARD-MATNR) and

SELECTION DATE (MKPF-BUDAT). And all data is displayed according to matnr.

Now I want all data should display according to MATERIAL GROUP (MARA-MATKL)

So I want my selection screen should be based on MATERIAL GROUP (MARA-MATKL) instead of MATNR.

As it is standard program. How I will carry out the required changes. Anybody can help me out on this. As it’s very urgent.

I want my selection screen like that

And data should display on that only:-



Thanks & Regards,


Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • avatar image
    Former Member
    Oct 09, 2007 at 07:28 AM

    hi abhay,

    To change any standrad program, there are two options........

    1) user exit

    2) Badi

    U can change standard program only using these two options...

    search for user exit for this transaction (MB5B) and change the code in that particular user exit. There will be many user exits for every Tcode, u have to select according to ur requirement.......

    I will give code to find user exits...... Just run that code , it will ask for Tcode as input and display all available userexits for that Tcode....

    report y_userexit.

    tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.

    tables : tstct.

    data : jtab like tadir occurs 0 with header line.

    data : field1(30).

    data : v_devclass like tadir-devclass.

    parameters : p_tcode like tstc-tcode obligatory.

    select single * from tstc where tcode eq p_tcode.

    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 =


    select single * from tadir where pgmid = 'R3TR'

    and object = 'FUGR'

    and obj_name eq enlfdir-area.

    move : tadir-devclass to v_devclass.



    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.


    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.


    write:/(95) sy-uline.

    describe table jtab.


    format color col_total intensified on.

    write:/ 'No of Exits:' , sy-tfill.


    format color col_negative intensified on.

    write:/(95) 'No User Exit exists'.



    format color col_negative intensified on.

    write:/(95) 'Transaction Code Does Not Exist'.


    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.

    copy this code in editor and execute........

    all the best......

    reward me if useful.............

    with regards........

    Add comment
    10|10000 characters needed characters exceeded