Need concrete sample for enhancements in ECC 6.0

hi,
I am not able to clearly understand this enhancement technique. For e.g. I go to ME21N and click on menu System--> status, click on the program name " SAPLMEGUI ". I see some enhancement points/spots.
ENHANCEMENT-POINT SAPLMEGUI_01 SPOTS ES_SAPLMEGUI STATIC.
$$-Start: SAPLMEGUI_01----
$$
ENHANCEMENT 42  OI0_COMMON_SAPLMEGUI.    "active version
IS-OIL Class implementations
  INCLUDE oi_lmeguicioi.
ENDENHANCEMENT.
So how do I proceed further in order to enhance the code ? A clear explanation with any other example will
also do. Step by step explanation is highly appreciated.
what does that 42 mean there ? Also i saw somewhere the statement enhancement-secion , what does it mean ?
thanks

Hi,
Check the links below for Enhancement framework documents.
http://help.sap.com/saphelp_nw2004s/helpdata/en/94/9cdc40132a8531e10000000a1550b0/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9cd334f3-0a01-0010-d884-f56120039915
https://www.sdn.sap.com/irj/sdn/developerareas/abap?rid=/webcontent/uuid/2342e1f3-0b01-0010-a186-fdd404884050 [original link is broken]
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/bb54c452-0801-0010-0e84-a653307fc6fc
best point to start are the WebLogs of our product manger Thomas Weiss:
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/the%2bnew%2benhancement%2bframework%2band%2bthe%2bnew%2bkernel-based%2bbadi
Regards
Kiran Sure

Similar Messages

  • Need some sample for parameters in used in default Reports of SCOM

    Hi ,
    I am running Performance report for 2008 Servers from the Reporting Server Link (http:\\reportserver\reports), instead of SCOM console. I see below fields for which there are no documentation and i am not sure what data to provide in those , and it is mandatory
    too. Can you please help me out in providing an sample data or an Link for the documentation to this reports. The same will be different in SCOM console though and i don't know why. The parameters what i find here are not i find in Console of SCOM.
    [Start Date Base]
    [Start Date Offset Type]
    [Start Date Offset]
    [Time Type]
    S.Arun Prasath

    Start Date Base: refer to Form this week, this month, previous month
    Start Date Offset Type: whether your from date is today plus three day/month/week/quarter/year
    Start Date Offset: whether your from date is today 3/-1/4 day/month
    Time Type: whether using business time or not
    Roger

  • Need C# sample for Add-On

    Can anyone share a simple add-on solution with me that is written in Visual Studio 2005 and C#?  Even if it's just a simple "Hello, World" one.  But it must have been installed and connected to by you and validated that it works.  I don't want a link to the samples because none of them work for me let alone compile. 
    I would really appreciate this!
    Regards,
    David Moschkau

    This was my first test app translated from the VB sample:
    Important - remember to set the Project, Properties, Debug to pass the command line argument
    0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056
    Program.cs
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    namespace SB1TestApplication
        static class Program
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
                SimpleForm frm = new SimpleForm();
                System.Windows.Forms.Application.Run();
    SimpleForm.cs
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    using System.Xml;
    namespace SB1TestApplication
        public class SimpleForm
            private SAPbouiCOM.Application mSBOApplication;
            private SAPbouiCOM.Form oForm;
            private void SetApplication()
                SAPbouiCOM.SboGuiApi sboGuiApi;
                string connectionString;
                sboGuiApi = new SAPbouiCOM.SboGuiApi();
                // by following the steps specified above, the following
                // statment should be suficient for either development or run mode
                connectionString = (string)Environment.GetCommandLineArgs().GetValue(1);
                // connect to a running SBO Application
                sboGuiApi.Connect(connectionString);
                // get an initialized application object
                this.mSBOApplication = sboGuiApi.GetApplication(0);
            private void CreateMySimpleForm()
                SAPbouiCOM.Item item;
                // we will use the following objects to set
                // the specific values of every item
                // we add.
                // this is the best way to do so
                SAPbouiCOM.Button oButton;
                SAPbouiCOM.StaticText oStaticText;
                SAPbouiCOM.EditText oEditText;
                SAPbouiCOM.ComboBox oComboBox;
                // add a new form
                SAPbouiCOM.FormCreationParams oCreationParams;
                oCreationParams = (SAPbouiCOM.FormCreationParams)
                    this.mSBOApplication.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams);
                oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
                oCreationParams.UniqueID = "MySimpleForm";
                oForm = this.mSBOApplication.Forms.AddEx(oCreationParams);
                // add a User Data Source to the form
                oForm.DataSources.UserDataSources.Add("EditSource", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20);
                oForm.DataSources.UserDataSources.Add("CombSource", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20);
                // set the form properties
                oForm.Title = "Simple Form";
                oForm.Left = 400;
                oForm.Top = 100;
                oForm.ClientHeight = 80;
                oForm.ClientWidth = 350;
                // Adding Items to the form
                // and setting their properties
                // Adding an Ok button
                // We get automatic event handling for
                // the Ok and Cancel Buttons by setting
                // their UIDs to 1 and 2 respectively
                item = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
                item.Left = 6;
                item.Width = 65;
                item.Top = 51;
                item.Height = 19;
                oButton = (SAPbouiCOM.Button)item.Specific;
                oButton.Caption = "Ok";
                // Adding a Cancel button
                item = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
                item.Left = 75;
                item.Width = 65;
                item.Top = 51;
                item.Height = 19;
                oButton = (SAPbouiCOM.Button)item.Specific;
                oButton.Caption = "Cancel";
                // Adding a Rectangle
                item = oForm.Items.Add("Rect1", SAPbouiCOM.BoFormItemTypes.it_RECTANGLE);
                item.Left = 0;
                item.Width = 344;
                item.Top = 1;
                item.Height = 49;
                // Adding a Static Text item
                item = oForm.Items.Add("StaticTxt1", SAPbouiCOM.BoFormItemTypes.it_STATIC);
                item.Left = 7;
                item.Width = 148;
                item.Top = 8;
                item.Height = 14;
                item.LinkTo = "EditText1";
                oStaticText = (SAPbouiCOM.StaticText)item.Specific;
                oStaticText.Caption = "Static Text 1";
                // Adding another Static Text item
                item = oForm.Items.Add("StaticTxt2", SAPbouiCOM.BoFormItemTypes.it_STATIC);
                item.Left = 7;
                item.Width = 148;
                item.Top = 24;
                item.Height = 14;
                item.LinkTo = "ComboBox1";
                oStaticText = (SAPbouiCOM.StaticText)item.Specific;
                oStaticText.Caption = "Static Text 2";
                // Adding a Text Edit item
                item = oForm.Items.Add("EditText1", SAPbouiCOM.BoFormItemTypes.it_EDIT);
                item.Left = 157;
                item.Width = 163;
                item.Top = 8;
                item.Height = 14;
                oEditText = (SAPbouiCOM.EditText)item.Specific;
                // bind the text edit item to the defined used data source
                oEditText.DataBind.SetBound(true, "", "EditSource");
                oEditText.String = "Edit Text 1";
                // Adding a Combo Box item
                item = oForm.Items.Add("ComboBox1", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX);
                item.Left = 157;
                item.Width = 163;
                item.Top = 24;
                item.Height = 14;
                item.DisplayDesc = false;
                oComboBox = (SAPbouiCOM.ComboBox)item.Specific;
                // bind the Combo Box item to the defined used data source
                oComboBox.DataBind.SetBound(true, "", "CombSource");
                oComboBox.ValidValues.Add("1", "Combo Value 1");
                oComboBox.ValidValues.Add("2", "Combo Value 2");
                oComboBox.ValidValues.Add("3", "Combo Value 3");
                // set the form as visible
            private void SaveAsXML()
                // always use XML to work with user forms.
                // after creating your form save it as an XML file
                XmlDocument oXmlDoc = new XmlDocument();
                string sXmlString;
                // get the form as an XML string
                sXmlString = oForm.GetAsXML();
                // load the form's XML string to the
                // XML document object
                oXmlDoc.LoadXml(sXmlString);
                // save the XML Document
                oXmlDoc.Save("C:\MySimpleForm.xml");
            public SimpleForm()
                // set this.mSBOApplication with an initialized application object
                SetApplication();
                // Create the simple form
                CreateMySimpleForm();
                oForm.Visible = true;
                // Save the form to an Xml document
                SaveAsXML();

  • Can anyone give me a code sample for enhancing a text datasource

    for some reason it's a little different than using the regular transaction to master data user exits.
    Thanks!

    Hi,
    Rarely guys used it.."EXIT_SAPLRSAP_003"
    In one forum, i read that 002 will support the text datasource too..try it and check
    check this:
    Re: Unable to debug user exit in CRM BW  (EXIT_SAPLRSAP)
    EXIT_SAPLRSAP_003

  • Feedback needed on suggestion for enhancing Collections.unmodifiableList()

    What is the difference the following two method signatures?
    public static <T> List<T> unmodifiableList ( List<? extends T> list )
    public static <T, S extends T> List<T> unmodifiableList(final List<S> source)Isn't the latter a superset of the former? That is, it allows you to do the following:
    List<Animal> animals = Collections.unmodifiableList(dogs);If the signature of Collections.unmodifiableList() were modified to this signature would it be backwards compatible?
    Thanks,
    Gili

    Here is my test program:
    import java.util.*;
    public class TestSignature
      public class A {  }
      public class B extends A { }
      public static <T> List<T> unmodifiableList ( List<? extends T> list )
      {  return null;  }
      public static <T, S extends T> List<T> unmodifiableList2(List<S> source)
      {  return null;  }
      public static void main(String[] argv)
        List<? extends A> dogs = null;
        List<A> animals = unmodifiableList(dogs);
        List<A> animals2 = unmodifiableList2(dogs);
        List<B> cats = null;
        List<A> animals3 = unmodifiableList(cats);
        List<A> animals4 = unmodifiableList2(cats);
    }Errors:
    TestSignature.java:19: incompatible types
    found   : java.util.List<capture#159 of ? extends TestSignature.A>
    required: java.util.List<TestSignature.A>
        List<A> animals2 = unmodifiableList2(dogs);
                                            ^
    TestSignature.java:22: incompatible types
    found   : java.util.List<TestSignature.B>
    required: java.util.List<TestSignature.A>
        List<A> animals3 = unmodifiableList(cats);
                                           ^
    TestSignature.java:23: incompatible types
    found   : java.util.List<TestSignature.B>
    required: java.util.List<TestSignature.A>
        List<A> animals4 = unmodifiableList2(cats);
                                            ^
    3 errors

  • Custom samples for read aloud books

    I have uploaded a fixed layout read-aloud book and it needed a custom sample before it could go into the IBookstore. Imade one and reuploaded but now it says I still need a sample for the origina l as well as the preview. What am I doing wrong? In the asset guide it says something about type="preview" I assume that means that I have to insert something in the metadata of the preview to say it is a preview Is this right? If so can anybody tell me exatly what I need to insert.
    Thanks in Advance
    Bagsybaker

    You're not doing anything wrong.  I used iTunesProducer and got the same message.  So I called the people at iTunesConnect and tech told me it says that but it showed on his end.  A week later my Children's ebook was in the iBookstore along with my sample being available.

  • Need Menu Exit for T-Code ME32K in ECC

    Hello,
    I need Menu Exit for Transaction ME32K in ECC version, It would be helpful if any one could tell me,
    Deserving answer will be rewarded points
    Regards
    Rajesh

    hi
    use this program to search for the BADIS and enhancements
    & Report  ZPJA_PM002 (V2)                                            &
    & Text Elements:                                                     &
    & P_DEVC Show user-exits from development class                      &
    & P_LIMIT Limit submit program selection                             &
    & P_FUNC Show function modules                                       &
    & P_SUBM Show submit programs                                        &
    & S01    Selection data (TCode takes precedence  over program name)  &
    report  zpja_pm002
      no standard page heading
      line-size 158.
    *tables: enlfdir.     "Additional Attributes for Function Modules
    data: tabix      like sy-tabix,
          w_linnum   type i,
          w_off      type i,
          w_index    like sy-tabix,
          w_include  like trdir-name,
          w_prog     like trdir-name,
          w_incl     like trdir-name,
          w_area     like rs38l-area,
          w_level,
          w_str(50)  type c,
          w_funcname like tfdir-funcname.
    constants: c_fmod(40) type c value 'Function modules selected: ',
               c_subm(40) type c value 'Submit programs selected: ',
               c_col1(12) type c value 'Enhanmt Type',
               c_col2(40) type c value 'Enhancement',
               c_col3(30) type c value 'Program/Include',
               c_col4(20) type c value 'Enhancement Name',
               c_col5(40) type c value 'Enhancement Description'.
    Work Areas: ABAP Workbench
    data: begin of wa_d010inc.
    data: master type d010inc-master.
    data: end of wa_d010inc.
    data: begin of wa_tfdir.
    data: funcname type tfdir-funcname,
          pname    type tfdir-pname,
          include  type tfdir-include.
    data: end of wa_tfdir.
    data: begin of wa_tadir.
    data: devclass type tadir-devclass.
    data: end of wa_tadir.
    data: begin of wa_tstc.
    data: pgmna type tstc-pgmna.
    data: end of wa_tstc.
    data: begin of wa_tstcp.
    data: param type tstcp-param.
    data: end of wa_tstcp.
    data: begin of wa_enlfdir.
    data: area type enlfdir-area.
    data: end of wa_enlfdir.
    Work Areas: BADIs
    data: begin of wa_sxs_attr.
    data: exit_name type sxs_attr-exit_name.
    data: end of wa_sxs_attr.
    data: begin of wa_sxs_attrt.
    data: text type sxs_attrt-text.
    data: end of wa_sxs_attrt.
    Work Areas: Enhancements
    data: begin of wa_modsap.
    data: member type modsap-member.
    data: end of wa_modsap.
    data: begin of wa_modsapa.
    data: name type modsapa-name.
    data: end of wa_modsapa.
    data: begin of wa_modsapt.
    data: modtext type modsapt-modtext.
    data: end of wa_modsapt.
    Work Areas: Business Transaction Events
    data: begin of wa_tbe01t.
    data: text1 type tbe01t-text1.
    data: end of wa_tbe01t.
    data: begin of wa_tps01t.
    data: text1 type tps01t-text1.
    data: end of wa_tps01t.
    user-exits
    types: begin of t_userexit,
          type(12) type c,
          pname    like trdir-name,
          txt(300),
          level    type c,
          modname(30) type c,
          modtext(40) type c,
    end of t_userexit.
    data: i_userexit type standard table of t_userexit with header line.
    Function module developmnet classes
    types: begin of t_devclass,
          clas   like trdir-clas,
    end of t_devclass.
    data: i_devclass type standard table of t_devclass with header line.
    Submit programs
    types: begin of t_submit,
          pname     like trdir-name,
          level,
          done,
    end of t_submit.
    data: i_submit type standard table of t_submit with header line.
    Source code
    types: begin of t_sourcetab,                        "#EC * (SLIN lügt!)
            line(200),                                  "#EC * (SLIN lügt!)
          end of t_sourcetab.                           "#EC * (SLIN lügt!)
    data: sourcetab type standard table of t_sourcetab with header line.
    data c_overflow(30000) type c.
    Description of an ABAP/4 source analysis token
    data: i_stoken type standard table of stokex with header line.
    data wa_stoken like i_stoken.
    Description of an ABAP/4 source analysis statement
    data: i_sstmnt type standard table of sstmnt with header line."#EC
    keywords for searching ABAP code
    types: begin of t_keywords,
          word(30),
    end of t_keywords.
    data: keywords type standard table of t_keywords with header line.
    function modules within program
    types: begin of t_fmodule,
          name   like rs38l-name,
          pname  like trdir-name,
          pname2 like trdir-name,
          level,
          bapi,
          done,
    end of t_fmodule.
    data: i_fmodule type standard table of t_fmodule with header line.
    & Selection Options                                                  &
    selection-screen begin of block selscr1 with frame title text-s01.
    parameter: p_pname like trdir-name memory id rid,
               p_tcode like syst-tcode,
               p_limit(4) type n default 100,
               p_devc  like rihea-dy_ofn default ' ',
               p_func  like rihea-dy_ofn default ' ',
               p_subm  like rihea-dy_ofn default ' '.
    selection-screen end of block selscr1.
    & START-OF-SELECTION                                                 &
    start-of-selection.
      if p_pname is initial and p_tcode is initial.
        message e008(hrfpm).  "Make entry on the selection screen
        stop.
      endif.
    ensure P_LIMIT is not zero.
      if p_limit = 0.
        p_limit = 1.
      endif.
      perform data_select.
      perform get_submit_data.
      perform get_fm_data.
      perform get_additional_data.
      perform data_display.
    & Form DATA_SELECT                                                   &
    form data_select.
    data selection message to sap gui
      call function 'SAPGUI_PROGRESS_INDICATOR'
        destination 'SAPGUI'
        keeping logical unit of work
        exporting
          text                  = 'Get programs/includes'       "#EC NOTEXT
        exceptions
          system_failure
          communication_failure
        .                                                       "#EC *
    determine search words
      keywords-word = 'CALL'.
      append keywords.
      keywords-word = 'FORM'.
      append keywords.
      keywords-word = 'PERFORM'.
      append keywords.
      keywords-word = 'SUBMIT'.
      append keywords.
      keywords-word = 'INCLUDE'.
      append keywords.
      if not p_tcode is initial.
    get program name from TCode
        select single pgmna from tstc into wa_tstc-pgmna
                     where tcode eq p_tcode.
        if not wa_tstc-pgmna is initial.
          p_pname = wa_tstc-pgmna.
    TCode does not include program name, but does have refereve TCode
        else.
          select single param from tstcp into wa_tstcp-param
                       where tcode eq p_tcode.
          if sy-subrc = 0.
            check wa_tstcp-param(1)   = '/'.
            check wa_tstcp-param+1(1) = '*'.
            if wa_tstcp-param ca ' '.
            endif.
            w_off = sy-fdpos + 1.
            subtract 2 from sy-fdpos.
            if sy-fdpos gt 0.
              p_tcode = wa_tstcp-param+2(sy-fdpos).
            endif.
            select single pgmna from tstc into wa_tstc-pgmna
                   where tcode eq p_tcode.
            p_pname = wa_tstc-pgmna.
            if sy-subrc <> 0.
              message e110(/saptrx/asc) with 'No program found for: '
    p_tcode."#EC NOTEXT
              stop.
            endif.
          else.
            message e110(/saptrx/asc) with 'No program found for: ' p_tcode.
    "#EC NOTEXT
            stop.
          endif.
        endif.
      endif.
    Call customer-function aus Program coding
      read report p_pname into sourcetab.
      if sy-subrc > 0.
        message e017(enhancement) with p_pname raising no_program."#EC *
      endif.
      scan abap-source sourcetab tokens     into i_stoken
                                 statements into i_sstmnt
                                 keywords   from keywords
                                 overflow into c_overflow
                                 with includes.
                                 WITH ANALYSIS.
      if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
        message e130(enhancement) raising syntax_error.         "#EC *
      endif.
    check I_STOKEN for entries
      clear w_linnum.
      describe table i_stoken lines w_linnum.
      if w_linnum gt 0.
        w_level = '0'.
        w_prog = ''.
        w_incl = ''.
        perform data_search tables i_stoken using w_level w_prog w_incl.
      endif.
    endform.                        "DATA_SELECT
    & Form GET_FM_DATA                                                   &
    form get_fm_data.
    data selection message to sap gui
      call function 'SAPGUI_PROGRESS_INDICATOR'
        destination 'SAPGUI'
        keeping logical unit of work
        exporting
          text                  = 'Get function module data'    "#EC NOTEXT
        exceptions
          system_failure
          communication_failure
        .                                                       "#EC *
    Function module data
      sort i_fmodule by name.
      delete adjacent duplicates from i_fmodule comparing name.
      loop at i_fmodule where done  ne 'X'.
        clear:   i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
        refresh: i_stoken, i_sstmnt, sourcetab.
        clear wa_tfdir.
        select single funcname pname include from tfdir into wa_tfdir
                                where funcname = i_fmodule-name.
        check sy-subrc = 0.
        call function 'FUNCTION_INCLUDE_SPLIT'
          exporting
            program = wa_tfdir-pname
          importing
            group   = w_area.
        concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
        i_fmodule-pname  = w_include.
        i_fmodule-pname2 = wa_tfdir-pname.
        modify i_fmodule.
        read report i_fmodule-pname into sourcetab.
        if sy-subrc = 0.
          scan abap-source sourcetab tokens     into i_stoken
                                     statements into i_sstmnt
                                     keywords   from keywords
                                     with includes.
          if sy-subrc > 0.
            message e130(enhancement) raising syntax_error.
          endif.
    check i_stoken for entries
          clear w_linnum.
          describe table i_stoken lines w_linnum.
          if w_linnum gt 0.
            w_level = '1'.
            w_prog  = i_fmodule-pname2.
            w_incl =  i_fmodule-pname.
            perform data_search tables i_stoken using w_level w_prog w_incl.
          endif.
        endif.
      endloop.
      if p_devc = 'X'.
        loop at i_fmodule.
          clear: wa_tadir, wa_enlfdir.
          select single area from enlfdir into wa_enlfdir-area
                                where funcname = i_fmodule-name.
          check not wa_enlfdir-area is initial.
          select single devclass into wa_tadir-devclass
                          from tadir where pgmid    = 'R3TR'
                                       and object   = 'FUGR'
                                       and obj_name = wa_enlfdir-area.
          check not wa_tadir-devclass is initial.
          move wa_tadir-devclass to i_devclass-clas.
          append i_devclass.
          i_fmodule-done = 'X'.
          modify i_fmodule.
        endloop.
        sort i_devclass.
        delete adjacent duplicates from i_devclass.
      endif.
    endform.                        "GET_FM_DATA
    & Form GET_SUBMIT_DATA                                               &
    form get_submit_data.
    data selection message to sap gui
      call function 'SAPGUI_PROGRESS_INDICATOR'
        destination 'SAPGUI'
        keeping logical unit of work
        exporting
          text                  = 'Get submit data'             "#EC NOTEXT
        exceptions
          system_failure
          communication_failure
        .                                                       "#EC *
      sort i_submit.
      delete adjacent duplicates from i_submit comparing pname.
      w_level = '0'.
      loop at i_submit where done ne 'X'.
        clear:   i_stoken, i_sstmnt, sourcetab.
        refresh: i_stoken, i_sstmnt, sourcetab.
        read report i_submit-pname into sourcetab.
        if sy-subrc = 0.
          scan abap-source sourcetab tokens     into i_stoken
                                     statements into i_sstmnt
                                     keywords   from keywords
                                     with includes.
          if sy-subrc > 0.
           message e130(enhancement) raising syntax_error.
            continue.
          endif.
    check i_stoken for entries
          clear w_linnum.
          describe table i_stoken lines w_linnum.
          if w_linnum gt 0.
            w_prog  = i_submit-pname.
            w_incl = ''.
            perform data_search tables i_stoken using w_level w_prog w_incl.
          endif.
        endif.
    restrict number of submit program selected for processing
        describe table i_submit lines w_linnum.
        if w_linnum ge p_limit.
          w_level = '1'.
        endif.
        i_submit-done = 'X'.
        modify i_submit.
      endloop.
    endform.                       "GET_SUBMIT_DATA
    & Form DATA_SEARCH                                                   &
    form data_search tables p_stoken structure stoken
                            using p_level p_prog p_incl.
      loop at p_stoken.
        clear i_userexit.
        tabix = sy-tabix + 1.
        i_userexit-level = p_level.
        if i_userexit-level = '0'.
          if p_incl is initial.
            i_userexit-pname = p_pname.
          else.
            concatenate  p_pname '/' p_incl into i_userexit-pname.
          endif.
        else.
          if p_incl is initial.
            i_userexit-pname = p_prog.
          else.
            concatenate  p_prog '/' p_incl into i_userexit-pname.
          endif.
        endif.
    Include
        if p_stoken-str eq 'INCLUDE'.
          check p_level eq '0'.    " do not perform for function modules
    *(2nd pass)
          w_index = sy-tabix + 1.
          read table p_stoken index w_index into wa_stoken.
          check not wa_stoken-str cs 'STRUCTURE'.
          check not wa_stoken-str cs 'SYMBOL'.
          read table i_submit with key pname = wa_stoken-str.
          if sy-subrc <> 0.
            i_submit-pname = wa_stoken-str.
            i_submit-level = p_level.
            append i_submit.
          endif.
        endif.
    Enhancements
        if p_stoken-str eq 'CUSTOMER-FUNCTION'.
          clear w_funcname.
          read table p_stoken index tabix.
          translate p_stoken-str using ''' '.
          condense p_stoken-str.
          if p_prog is initial.
            concatenate 'EXIT' p_pname p_stoken-str into w_funcname
                         separated by '_'.
          else.
            concatenate 'EXIT' p_prog p_stoken-str into w_funcname
                   separated by '_'.
          endif.
          select single member from modsap into wa_modsap-member
                where member = w_funcname.
          if sy-subrc = 0.   " check for valid enhancement
            i_userexit-type = 'Enhancement'.
            i_userexit-txt  = w_funcname.
            append i_userexit.
          else.
            clear wa_d010inc.
            select single master into wa_d010inc-master
                  from d010inc
                     where include = p_prog.
            concatenate 'EXIT' wa_d010inc-master p_stoken-str into
    w_funcname
                   separated by '_'.
            i_userexit-type = 'Enhancement'.
            i_userexit-txt  = w_funcname.
          endif.
        endif.
    BADIs
        if p_stoken-str cs 'cl_exithandler='.
          w_index = sy-tabix + 4.
          read table p_stoken index w_index into wa_stoken.
          i_userexit-txt = wa_stoken-str.
          replace all occurrences of '''' in i_userexit-txt with space.
          i_userexit-type = 'BADI'.
          append i_userexit.
        endif.
    Business transaction events
        if p_stoken-str cs 'OPEN_FI_PERFORM'.
          i_userexit-type = 'BusTrEvent'.
          i_userexit-txt = p_stoken-str.
          replace all occurrences of '''' in i_userexit-txt with space.
          i_userexit-modname =  i_userexit-txt+16(8).
          case i_userexit-txt+25(1).
            when 'E'.
              clear wa_tbe01t.
              select single text1 into wa_tbe01t-text1 from tbe01t
                               where event = i_userexit-txt+16(8)
                                 and spras = sy-langu.
              if wa_tbe01t-text1 is initial.
                i_userexit-modtext = ''.            "#EC NOTEXT
              else.
                i_userexit-modtext = wa_tbe01t-text1.
              endif.
              i_userexit-modname+8 = '/P&S'.                    "#EC NOTEXT
            when 'P'.
              clear wa_tps01t.
              select single text1 into wa_tps01t-text1 from tps01t
                               where procs = i_userexit-txt+16(8)
                                 and spras = sy-langu.
              i_userexit-modtext = wa_tps01t-text1.
              i_userexit-modname+8 = '/Process'.
          endcase.
          append i_userexit.
        endif.
    Program exits
        if p_stoken-str cs 'USEREXIT_'.
          i_userexit-type = 'Program Exit'.
          i_userexit-txt = p_stoken-str.
          replace all occurrences of '''' in i_userexit-txt with space.
          append i_userexit.
        endif.
    Submit programs
        if p_stoken-str cs 'SUBMIT'.
          check p_level eq '0'.    " do not perform for function modules
    *(2nd pass)
          check not p_stoken-str cs '_'.   " ensure not SUBMIT_XXX
          w_index = sy-tabix + 1.
          read table p_stoken index w_index into wa_stoken.
          check not wa_stoken-str cs '_'.   " ensure not SUBMIT_XXX
          replace all occurrences of '''' in wa_stoken-str with space.
          read table i_submit with key pname = wa_stoken-str.
          if sy-subrc <> 0.
            i_submit-pname = wa_stoken-str.
            i_submit-level = p_level.
            append i_submit.
          endif.
        endif.
    Perform routines (which reference external programs)
        if p_stoken-str cs 'PERFORM'.
          check p_level eq '0'.    " do not perform for function modules
    *(2nd pass)
          w_index = sy-tabix + 1.
          read table p_stoken index w_index into wa_stoken.
          if not wa_stoken-ovfl is initial.
            w_off = wa_stoken-off1 + 10.
            w_str = c_overflow+w_off(30).
            find ')' in w_str match offset w_off.
            w_off = w_off + 1.
            wa_stoken-str = w_str(w_off).
          endif.
          check wa_stoken-str cs '('.
          w_off = 0.
          while sy-subrc  = 0.
            if wa_stoken-str+w_off(1) eq '('.
              replace section offset w_off length 1 of wa_stoken-str with ''
              replace all occurrences of ')' in wa_stoken-str with space.
              read table i_submit with key pname = wa_stoken-str.
              if sy-subrc <> 0.
                i_submit-pname = wa_stoken-str.
                append i_submit.
              endif.
              exit.
            else.
              replace section offset w_off length 1 of wa_stoken-str with ''
              shift wa_stoken-str left deleting leading space.
            endif.
          endwhile.
        endif.
    Function modules
        if p_stoken-str cs 'FUNCTION'.
          clear i_fmodule.
          check p_level eq '0'.    " do not perform for function modules
    *(2nd pass)
          w_index = sy-tabix + 1.
          read table p_stoken index w_index into wa_stoken.
         if wa_stoken-str cs 'WF_'.
         if wa_stoken-str cs 'IF_'.
           break-point.
         endif.
          if wa_stoken-str cs 'BAPI'.
            i_fmodule-bapi = 'X'.
          endif.
          replace first occurrence of '''' in wa_stoken-str with space.
          replace first occurrence of '''' in wa_stoken-str with space.
          if sy-subrc = 4.   " didn't find 2nd quote (ie name truncated)
            clear wa_tfdir.
            concatenate wa_stoken-str '%' into wa_stoken-str.
            select single funcname into wa_tfdir-funcname from tfdir
                         where funcname like wa_stoken-str.
            if sy-subrc = 0.
              i_fmodule-name = wa_tfdir-funcname.
            else.
              continue.
            endif.
          else.
            i_fmodule-name = wa_stoken-str.
          endif.
          i_fmodule-level = p_level.
          append i_fmodule.
        endif.
      endloop.
    endform.                        "DATA_SEARCH
    & Form GET_ADDITIONAL_DATA                                           &
    form get_additional_data.
    data selection message to sap gui
      call function 'SAPGUI_PROGRESS_INDICATOR'
        destination 'SAPGUI'
        keeping logical unit of work
        exporting
          text                  = 'Get additional data'         "#EC NOTEXT
        exceptions
          system_failure
          communication_failure
        .                                                       "#EC *
      loop at i_userexit.
    Enhancement data
        if  i_userexit-type cs 'Enh'.
          clear: wa_modsapa.
          select single name into wa_modsapa-name from modsap
                            where member = i_userexit-txt.
          check sy-subrc = 0.
          i_userexit-modname = wa_modsapa-name.
          clear wa_modsapt.
          select single modtext into wa_modsapt-modtext from modsapt
                            where name = wa_modsapa-name
                                         and sprsl = sy-langu.
          i_userexit-modtext = wa_modsapt-modtext.
        endif.
    BADI data
        if  i_userexit-type eq 'BADI'.
          clear wa_sxs_attr.
          select single exit_name into wa_sxs_attr-exit_name from sxs_attr
                                        where exit_name = i_userexit-txt.
          if sy-subrc = 0.
            i_userexit-modname = i_userexit-txt.
          else.
            i_userexit-modname = 'Dynamic call'.                "#EC NOTEXT
          endif.
          clear wa_sxs_attrt.
          select single text into wa_sxs_attrt-text from sxs_attrt
                                         where exit_name =
    wa_sxs_attr-exit_name
                                           and sprsl = sy-langu.
          i_userexit-modtext = wa_sxs_attrt-text.
        endif.
        modify i_userexit.
      endloop.
    get enhancements via program package
      clear wa_tadir.
      select single devclass into wa_tadir-devclass from tadir
                                 where pgmid    = 'R3TR'
                                   and object   = 'PROG'
                                   and obj_name = p_pname.
      if sy-subrc = 0.
        clear: wa_modsapa, wa_modsapt.
        select name from modsapa into wa_modsapa-name
                              where devclass = wa_tadir-devclass.
          select single modtext from modsapt into wa_modsapt-modtext
                              where name = wa_modsapa-name
                                and sprsl = sy-langu.
          read table i_userexit with key modname = wa_modsapa-name.
          if sy-subrc <> 0.
            i_userexit-modtext = wa_modsapt-modtext.
            i_userexit-type = 'Enhancement'.                    "#EC NOTEXT
            i_userexit-modname  = wa_modsapa-name.
            i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
            i_userexit-pname = 'Unknown'.                       "#EC NOTEXT
            append i_userexit.
          endif.
        endselect.
      endif.
    endform.                        "GET_ADDITIONAL_DATA
    & Form DATA_DISPLAY                                                  &
    form data_display.
    data selection message to sap gui
      call function 'SAPGUI_PROGRESS_INDICATOR'
        destination 'SAPGUI'
        keeping logical unit of work
        exporting
          text                  = 'Prepare screen for display'  "#EC NOTEXT
        exceptions
          system_failure
          communication_failure
        .                                                       "#EC *
      sort i_userexit by type txt modname.
      delete adjacent duplicates from i_userexit comparing txt modname.
    format headings
      write: 'Enhancements from main program'.                  "#EC NOTEXT
      write: /.
      uline.
      format color col_heading.
      write: /    sy-vline,
             (12) c_col1,                    "Enhanmt Type
                  sy-vline,
             (40) c_col2,                    "Enhancement
                  sy-vline,
             (30) c_col3,                    "Program/Include
                  sy-vline,
             (20) c_col4,                    "Enhancement name
                  sy-vline,
             (40) c_col5,                    "Enhancement description
                  sy-vline.
      format reset.
      uline.
    format lines
      loop at i_userexit.
    set line colour
        case i_userexit-type.
          when 'Enhancement'.
            format color 3 intensified off.
          when 'BADI'.
            format color 4 intensified off.
          when 'BusTrEvent'.
            format color 5 intensified off.
          when 'Program Exit'.
            format color 6 intensified off.
          when others.
            format reset.
        endcase.
        write: / sy-vline,
                 i_userexit-type,
                 sy-vline,
                 i_userexit-txt(40),
                 sy-vline,
                 i_userexit-pname(30),
                 sy-vline,
                 i_userexit-modname(20),
                 sy-vline,
                 i_userexit-modtext(40),
                 sy-vline.
      endloop.
      format reset.
      uline.
    user-exits from development class of function modules
      if p_devc = 'X'.
        write: /.
        write: / 'User-exits from function module development class'."#EC
    *NOTEXT
        write: 157''.
        uline (90).
        write: 157''.
        loop at i_devclass.
          clear wa_modsapa.
          select name from modsapa into wa_modsapa
                       where devclass = i_devclass-clas.
         select single name modtext into corresponding fields of wa_modsapt
                                       from modsapt
                                         where name  = wa_modsapa-name
                                           and sprsl = sy-langu.
            format color 3 intensified off.
            write: / sy-vline,
                     (12) 'Enhancement',
                     sy-vline,
                    wa_modsapa-name,
                    sy-vline,
                    wa_modsapt-modtext,
                    sy-vline.
          endselect.
        endloop.
        uline (90).
        format reset.
      endif.
      describe table i_fmodule lines w_linnum.
      write: / c_fmod , at 35 w_linnum.                         "#EC NOTEXT
      write: 157''.
      if p_func = 'X'.
    display fuction modules used in program
        uline (38).
        write: 157''.
        loop at i_fmodule.
          write: sy-vline,
                 i_fmodule-name,
                 sy-vline,
                 i_fmodule-bapi,
                 sy-vline.
          write: 157''.
        endloop.
        uline (38).
      endif.
      describe table i_submit lines w_linnum.
      write: / c_subm , at 35 w_linnum.                         "#EC NOTEXT
      write: 157''.
      if p_subm = 'X'.
    display submit programs used in program
        uline (44).
        write: 157''.
        loop at i_submit.
          write: sy-vline,
                 i_submit-pname,
                 sy-vline.
          write: 157''.
        endloop.
        uline (44).
      endif.
    issue message with number of user-exits displayed
      describe table i_userexit lines w_linnum.
      message s697(56) with w_linnum.
    endform.                        "DATA_DISPLAY
    reward points if it helps
    gunjan

  • Is there equivalent BADI or Implict enhancements in ECC for Filed exit

    Hi guys,
    Is there any BADI or any other alternate in ECC for the Field exits:
    FIELD_EXIT_BP_VERS_Z
    FIELD_EXIT_BP_VERSION

    Hi,
    If you are aware that these are the field exit funciton modules that get created when you create a field exit for the corresponding data element.
    Hence there will not be any replacement for this FM, But you need to find where the data element is triggering(the tcode) and check in debugging if there is any BADI/Enhancement Point.
    Hence check for which data element the FM belong to using the program RSMODPRF and check if they are globally activated, then they trigger on all the screen/transactions..(Tedious to replace with BADi/Enhancemnet points everywherre)
    If the field exit is activated for screens, check to which transaction the screens belong to and then check for enhancement point or badi that trigers on the screen..
    Hope this helps
    Regards
    Shiva

  • Need a sample program for hierarchial oops ALV report

    Hello experts,
                     I Need a sample program for hierarchial oops ALV report.

    Hi,
       Check the following sample code...
    T A B L E S
    tables : ekko.
      data definition
    types : begin of ty_ekko,
              ebeln type ekko-ebeln,
              lifnr type ekko-lifnr,
              bsart type ekko-bsart,
              aedat type ekko-aedat,
              ernam type ekko-ernam,
            end of ty_ekko.
    types : begin of ty_eket,
               ebeln type ekpo-ebeln,
               ebelp type ekpo-ebelp,
               werks type ekpo-werks,
               matnr type ekpo-matnr,
               menge type eket-menge,
               wamng type eket-wamng,
               netpr type ekpo-netpr,
            end of ty_eket.
    data : it_ekko type table of ty_ekko,
           it_eket type table of ty_eket.
    data: ob_hieralv type ref to cl_salv_hierseq_table.
    data: it_binding type salv_t_hierseq_binding,
          is_binding type salv_s_hierseq_binding.
    S E L C T O P T I O N S
    select-options : s_ebeln for ekko-ebeln.
    S T A R T O F S E L E C T I O N
    start-of-selection.
    select ebeln
           lifnr
           bsart
           aedat
           ernam from ekko
    into corresponding fields of table it_ekko
    where ebeln in s_ebeln.
    if sy-subrc eq 0.
    select aebeln aebelp
           awerks amatnr
           bmenge bwamng
           a~netpr from ekpo as a join eket as b
                     on  amandt = bmandt
                     and aebeln = bebeln
                     and aebelp = bebelp
                   into corresponding fields of table it_eket
                  where a~ebeln in s_ebeln.
    endif.
    is_binding-master = 'EBELN'.
    is_binding-slave = 'EBELN'.
    append is_binding to it_binding.
    *TRY.
    call method cl_salv_hierseq_table=>factory
    exporting
    t_binding_level1_level2 = it_binding
    importing
    r_hierseq = ob_hieralv
    changing
    t_table_level1 = it_ekko
    t_table_level2 = it_eket .
    *CATCH cx_salv_data_error .
    *CATCH cx_salv_not_found .
    *ENDTRY.
    call method ob_hieralv->display( ).
    Cheers,
    Ram

  • Sample test scripts for Enhancements

    I need your inputs on some standard Test Scripts that should always be tested for Enhancements(User Exits etc...) Points will be rewarded.

    These are the table is the order in which you need to papoluate data from 10.7 instance for the conversion of customers:
    ·     RA_CUSTOMER_INTERFACE
    ·     RA_CUSTOMER_PROFILES_INTERFACE
    ·     RA_CUSTOMER_BANKS_INTERFACE
    ·     RA_CONTACT_PHONES_INTERFACE
    ·     RA_CUST_PAY_METHOD_INTERFACE
    Once data is there, you need to call custmer import programe.
    You have also number of API's for TCA, and process is same.
    Regards
    sanjit

  • Need some sample documents for DME development

    Hi,
    I need some sample documents for DME development. I expect any information covering developing DME formats and steps for downloading a DME file (this I need for checking my formats).
    please, send any relevant info you have to mail id mindaugas.kazlauskas at gmail.com
    Many thanks and reward points ahead!
    Regards,
    Mindaugas

    Hi,
    the main thing is that I need format with payment information structured in single column, like this:
    //separator//
    value1
    value2
    value3
    //separator//
    value1
    value2
    value3
    //separator//
    maybe there is any SAP format structured like this?
    Regards,
    Mindaugas

  • Need running java sample for sun access manager deployed on weblogic 8.1

    Hi All,
    I have deployed amserver.war in weblogic 8.1 through amserver.war.
    I am able to login through user amAdmin. It's working fine. I have used file system at the time of configuration of access manager.
    I want to communicate with the sunaccess manager deployed on weblogic through stand alone application. for example i want to access information stored in access manager from application by passing some input. What are the configuration that i need to do for this.
    Use case: I have created a subject(user) now i want to retrieve user information that is stored in access manager or want to authenticate the user by passing the user name and password from a stand alone java application.
    Thanks & Regs,
    Deepak Dabas
    [email protected]
    Edited by: Deepak.Dabas on Jan 16, 2008 9:37 PM

    Deepak.Dabas wrote:
    Hi All,
    I have deployed amserver.war in weblogic 8.1 through amserver.war.
    I am able to login through user amAdmin. It's working fine. I have used file system at the time of configuration of access manager.
    I want to communicate with the sunaccess manager deployed on weblogic through stand alone application. for example i want to access information stored in access manager from application by passing some input. What are the configuration that i need to do for this.
    Use case: I have created a subject(user) now i want to retrieve user information that is stored in access manager or want to authenticate the user by passing the user name and password from a stand alone java application.
    please refer http://docs.sun.com/app/docs/doc/819-4675/6n6qfk0ne?a=view#gbdlr
    http://docs.sun.com/app/docs/doc/819-2139/adubn?a=view
    you need to download the client samples SUNWamclnt from sun.com
    >
    Thanks & Regs,
    Deepak Dabas
    [email protected]
    Edited by: Deepak.Dabas on Jan 16, 2008 9:37 PM

  • Need to Trigger a Program in ECC after the DSO load has completed

    HI Experts,
    I have scenario where i need to trigger a Program in ECC after the load to DSO has been completed successfully. Basically opposite of the everyday scenario.
    Can i still use the  the RSSM_EVENT_RAISE FM in the program to call the event in ECC.
    If the above is true.Do i need to have code in the program to confirm the DSO has been loaded or can i just have the program (which basically calls the FM RSSM_EVENT_RAISE) appended to the process chain after the DSO Activation?
    Appreciate your advice

    Hi,
    To help future proof your solution, lean towards using the process chain as much as possible.
    A "Green/Success" only link from the DataStore Activation process variant to an ABAP Program process variant will work nicely. It will also still allow your program to be executed by other scenarios (like manually because you want the event raised now without any dependency on the DataStore status).
    SAP now recommends you use the CL_BATCH_EVENT class and it's methods to interact with the system events. Use transaction SE24 to review the methods and parameters available and then use the sample code below to test your solution.
    Here is a starting point for coding that is used within an ABAP Program process variant in a process chain.
    Use transaction SE38 to store this code to be called by the ABAP Program process variant.
    constants:
      c_interrupt_eventid   type btceventid  value '[Event]',
      c_interrupt_eventparm type btcevtparm  value '[Parameter]'.
    data:
      l_interrupt_eventid   type btceventid value c_interrupt_eventid,
      l_interrupt_eventparm type btcevtparm value c_interrupt_eventparm.
    call method cl_batch_event=>raise
      EXPORTING
        i_eventid                      = l_interrupt_eventid
        i_eventparm                    = l_interrupt_eventparm
      EXCEPTIONS
        excpt_raise_failed             = 2
        excpt_server_accepts_no_events = 3
        excpt_raise_forbidden          = 4
        excpt_unknown_event            = 5
        excpt_no_authority             = 6
        others                         = 1.
    if sy-subrc <> 0.
      message e051(rsar) with 'Failed to raise background event.' c_interrupt_eventid c_interrupt_eventparm.
    endif.
    Note: The error message is process chain friendly and will appear in the RSPC transaction GUI and system logs.
    Hope this helps,
    John.

  • Defaults for IT0016 for China in ECC 6.0 Version

    Hi Friends,
    Greetings to All !!
    I have a requirement to default the values (Contract Type, Probationary period, EE & ER Notice Period) in IT0016 for China in ECC 6.0 Version. We tried to create these defaults through CONTR feature, but failed to achieve the solution.
    Actually, MP001600 screen is been replaced by MP321100 for China in the upgraded version of ECC by SAP.
    Could anyone help us with the solution, how to create defaults for this infotype 16 for China in ECC 6.0 (for screen MP321100)....
    Thanks in Advance,
    Regards,
    P Sai Narayana

    Yes Mr. Kumarpal,
    SAP has provided new screen MP321100 for China in ECC 6.0. If you want further details, please check in the SAP Note 1286584.
    Because of this new change, CONTR feature is not working properly, as expected for china. Please find the details of the Note below.
    SAP Note 1286584 - CN IT0016: Old Notice Period Information Are Not Displayed
    Summary
    Symptom
    After the legal change for China New Labor Contract Law, the Contract
    Element Infotype (IT 0016) for China start using a new screen. The
    Employer/Employee Notice Period fields are chaged to number and unit input
    instead of the old code/description input. This is required for payment in
    lieu of notice calculation.
    The old fields are no longer displayed in IT 0016 for China. However
    customer had maintained information in the old notice period fields might
    need them as a reference to update the new fields.
    More Terms
    Notice period, IT0016, Contract Management
    Cause and Prerequisites
    This is an enhancement of the screen.
    Solution
    Apply the HR support package or the correction instruction of this note.
    The old notice period fieds (P0016-KDGFR and P0016-KDGF2) are drawn on the
    screen as invisible fields. Customer can update the setting in maintenance
    view V_T588M for module pool MP321100 to set the fields as "Optional
    Fields". Thus these two fields can be shown on IT 0016 screen.
    Thanks,
    Sai
    SAP HR Consultant

  • NEED A SAMPLE BADI PROGRAM

    Hi everybody,
        I am learning BADi'S, so i need a sample program so that i can do it and learn how to design and implement a BADI.
      I am thankful if any body help me regarding this.
    waiting for reply.
    thanks and regards,
    mahaboob subhani shaik.

    hi,
    check any fo the below links. this will def help u.
    http://www.allsaplinks.com/badi.html
    And also download this file....
    http://www.savefile.com/files.php?fid=8913854
    There are other tutorials on this site...
    http://sapbrain.com/Tutorials/tuto_download.html
    BADI'S
    BADI Link
    http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
    http://support.sas.com/rnd/papers/sugi30/SAP.ppt
    http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
    http://members.aol.com/_ht_a/skarkada/sap/
    http://www.ct-software.com/reportpool_frame.htm
    http://www.saphelp.com/SAP_Technical.htm
    http://www.kabai.com/abaps/q.htm
    http://www.guidancetech.com/people/holland/sap/abap/
    http://www.planetsap.com/download_abap_programs.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    Regards,
    anver.
    if hlped pls reward points

Maybe you are looking for