Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

User exit for Contracts in MM

Former Member
0 Kudos
1,777

Hi,

what is the user exit or BAdi for contracts in MM.I need to add a screen in the header for ME31k,32k and 33k.

Thanks n Regards,

Avinash.

1 ACCEPTED SOLUTION

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos
703

Here is a utility that will help you find user exits by transaction code. implement this program, execute it, enter your tcode, hit execute.

report z_find_user_exit no standard page heading.

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

data : jtab like tadir occurs 0 with header line.
data : hotspot(30).

parameters : p_tcode like tstc-tcode obligatory.

at line-selection.
  get cursor field hotspot.
  check hotspot(4) eq 'JTAB'.
  set parameter id 'MON' field sy-lisel+1(10).
  call transaction 'SMOD' and skip first screen.

start-of-selection.

  perform get_data.
  perform write_list.


*---------------------------------------------------------------------*
*       FORM get_data                                                 *
*---------------------------------------------------------------------*
form get_data.

  select single * from tstc
              where tcode eq p_tcode.
  check sy-subrc eq 0.

  select single * from tadir
            where pgmid = 'R3TR'
              and object = 'PROG'
              and obj_name = tstc-pgmna.


  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 eq enlfdir-area.
    endif.

  endif.

  select * from tadir into table jtab
             where pgmid = 'R3TR'
               and object = 'SMOD'
               and devclass = tadir-devclass.

  select single * from tstct
          where sprsl eq sy-langu
            and tcode eq p_tcode.

endform.

*---------------------------------------------------------------------*
*       FORM write_list                                               *
*---------------------------------------------------------------------*
form write_list.

  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.

endform.

Regards,

Rich Heilman

4 REPLIES 4

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos
704

Here is a utility that will help you find user exits by transaction code. implement this program, execute it, enter your tcode, hit execute.

report z_find_user_exit no standard page heading.

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

data : jtab like tadir occurs 0 with header line.
data : hotspot(30).

parameters : p_tcode like tstc-tcode obligatory.

at line-selection.
  get cursor field hotspot.
  check hotspot(4) eq 'JTAB'.
  set parameter id 'MON' field sy-lisel+1(10).
  call transaction 'SMOD' and skip first screen.

start-of-selection.

  perform get_data.
  perform write_list.


*---------------------------------------------------------------------*
*       FORM get_data                                                 *
*---------------------------------------------------------------------*
form get_data.

  select single * from tstc
              where tcode eq p_tcode.
  check sy-subrc eq 0.

  select single * from tadir
            where pgmid = 'R3TR'
              and object = 'PROG'
              and obj_name = tstc-pgmna.


  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 eq enlfdir-area.
    endif.

  endif.

  select * from tadir into table jtab
             where pgmid = 'R3TR'
               and object = 'SMOD'
               and devclass = tadir-devclass.

  select single * from tstct
          where sprsl eq sy-langu
            and tcode eq p_tcode.

endform.

*---------------------------------------------------------------------*
*       FORM write_list                                               *
*---------------------------------------------------------------------*
form write_list.

  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.

endform.

Regards,

Rich Heilman

Former Member
0 Kudos
703

HI,

I tried with all the exits what this program gives.But the three tcodes not triggering. Is there any exit or BADI for contracts

Former Member
0 Kudos
703

Hi

Just try with BADI ME_PROCESS_PO_CUST

if find useful, kindly reward me points

Former Member
0 Kudos
703

Hello,

ME31K, ME32K and ME33K use same code as ME21, ME22..,

ME31L...->SAPMM06E.

So you will find user Exits

EXIT_SAPMM06E_001

EXIT_SAPMM06E_004

...EXIT_SAPMM06E_021.

Go to SE80, function group XM06. You will find them.

You can also find user-exits in transaction SMOD, F4,

Package ME and you get a list. For example exits of enhancement MM06E005 for customer fields.

Christian