JSF - CREATING A DYNAMIC MENU - STEP BY STEP TUTORIAL

Hi,
Is there a step by step tutorial in Jdeveloper(10.1.3) that will help me with the creation of a Dynamic Menu. I have read the write up on "How to Create Dynamic Menus" and I understand that this tells you what is needed. What I am looking for is a Tutorial that will direct me to the different Palette/facets in Jdeveloper that will enable me to build a Dynamic menu.
Regards
Kes

HI!
Have you read the ADF Developer Guide yet? It has a chapter which explains how to work with menus. Also, you can take a look at SRDemo application (used in the book) and you will see how to implement a dynamic menu.
I'm working on a large application which relies on that menu model and it works fine. We just made some mods in order to pick menu items and their corresponding navigation links from the database.
You can find the book at http://www.oracle.com/technology/products/adf/learnadf.html#book
For the SRDemo source code, just fire "Check for updates" from inside JDeveloper.
Hope this helps.
Regards,
Gustavo

Similar Messages

  • Re-clarify--Urgent -- Can Apex create a dynamic menu list from table?

    Hi All,
    I am asked to investigate the possibility of using APEX to create a table data driven drop down menu, which means the menu list is dynimically generated from what is in the table. Eg. if there are 3 rows in the table, then the application will generate 3 list, if I add a row, then user will see 4 lists next time when the page is refreshed.
    Such menu list will need to be a home page, which means it is the first page to be called in the URL. If such function needs to be implemented in PL/SQL procedure, can the procedure be called in Apex's URL?
    The deadline is tomorrow and I have spent quite a bit of time but still have not had any clue. Could any one have such experience to point me a way to focus on please? Many thanks.
    Jennifer

    Hi All,
    I am asked to investigate the possibility of using APEX to create a table data driven drop down menu, which means the menu list is dynimically generated from what is in the table. Eg. if there are 3 rows in the table, then the application will generate 3 list, if I add a row, then user will see 4 lists next time when the page is refreshed.
    Such menu list will need to be a home page, which means it is the first page to be called in the URL. If such function needs to be implemented in PL/SQL procedure, can the procedure be called in Apex's URL?
    The deadline is tomorrow and I have spent quite a bit of time but still have not had any clue. Could any one have such experience to point me a way to focus on please? Many thanks.
    Jennifer

  • How to create a dynamic menu for each group of responsibility and  user

    Hi
    I am using Jdev 11.1.1.6 and new to ADF, my application require to populate menu which would be different for different groups of user, and the user in each group would have different submenu depends on their responsibilities assigned to each one of them.
    so on the top level would be menu_top_item1, menue_top_item2
    |-->submenu1_1 |-->submenu2_1
    |-->submenu1_2 |-->submenu2_2
    also the menu would need to be on_mouse_over to show the submenu items or collapsed back.
    any idea what would be the best approch? or is there any example around?
    thanks a lot

    You can use ADF Security to control access to menu options.
    More about ADF Security here:
    http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/AdfSecurity/AdfSecurity.html
    If you also use WebCenter you might use their menuing option:
    https://blogs.oracle.com/shay/entry/webcenter_portal_intro_for_adf

  • Creating Dynamic Menu

    Hi All,
    I want to create a Dynamic menu in Oracle Application express. Depending upon the user entering, the menu should change dynamically and the screen accessable to that person should be made visible in menu. Can you please help me to achieve this. Thanks in Advance.

    Of course Frank, but before, I think that perhaps is not necessary. I explain:
    I take this phrase:
    <<The menuBar component creates a series of navigation items representing one level in a navigation hierarchy.>>
    from here:
    http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/tagdoc/core/menuBar.html
    I underline, "representing one level".
    So, perhaps I'm not able to do the same thing as in 11g's af:menuBar (richClient), like a structured and hierarchical format. This means, using RichMenu and RichCommandMenuItem.
    If you confirm that in 10g we be able to do a structured and hierarchical menu (the same as in 11g) I post "MyNode" and "myMethodToAcquireMenuNodes" code :) It's just for don't spend time :)
    Thanks Frank,
    JVN

  • Creating a dynamic nested menu with xml data received from a webservice

    I need to create a dynamic menu based on a xml returned by a webservice.
    the xml comes basically in this format:
    [quote]
    <resposta>
        <status>Success</status>
        <mensagem>Whatever</mensagem>
        <dados>
            <projeto nome="name" cliente="client name">
                <atividade nome="name">
                    <etapa>
                        <nome>name</nome>
                         <other_attributes>...</other_attributes>
                    </etapa>
                    (other etapas)
                 </atividade>
                 (other atividades)
            </projeto>
            (other projetos)
        </dados>
    </resposta>
    [/quote]
    What I need is to create a menu like:
    - Projeto.Nome - Projeto.Cliente:
        - Atividade.nome:
            (start button) etapa1
            (start button) etapa2
    - Projeto2.Nome - Projeto2.Cliente:
        - Atividade.nome:
            (start button) etapa1
            (start button) etapa2
    And so on...
    I've tried using an HTTPService and a DataGroup, this code above works fine for  display the projeto's names:
    [quote]
    <s:HTTPService id="loginService"
                            url="http://timesheet.infinitech.local/services"
                            method="POST" contentType="application/xml"
                            result="handleLoginResult();"
                            fault="handleFault(event);" >
                            <s:request xmlns="">
                                <requisicao>
                                    <tipo>login</tipo>
                                    <usuario>{campoUsuario.text}</usuario>
                                    <senha>{campoSenha.text}</senha>
                    </requisicao>
                </s:request>
    </s:HTTPService>
    and the DataGroup:
    <s:DataGroup dataProvider="{tarefasService.lastResult.resposta.dados.projeto}" width="100%" y="100" x="20"
                         includeIn="Principal">
                <s:layout>
                    <s:VerticalLayout />
                </s:layout>
                <s:itemRenderer>
                    <fx:Component>
                        <s:ItemRenderer>
                            <s:layout>
                                <s:HorizontalLayout />
                            </s:layout>
                            <s:Button />
                            <s:Label text="{data.nome}" />
                        </s:ItemRenderer>
                    </fx:Component>
                </s:itemRenderer>
            </s:DataGroup>
    [/quote]
    I have then tried including another datagroup inside the datagroup item renderer, but I just couldn't get it to work anyway, and tried it in a lot of ways... (basically, it would be a datagroup with dataProvider={data.atividade}).
    Can anyone tell me how to get this to work?
    I've uploaded an example xml, you can use it as the url for the HTTPService:
    http://www.pdinfo.com.br/example.xml
    Thanks in advance.

    Hi,
    A lot of the information you need is in Adobe's scripting guide http://www.adobe.com/go/learn_lc_scriptingReference  Also there is a very useful Adobe guide to Calculations and Scripts (and while it is for version 6 it is still very good because of the way it is laid out) http://partners.adobe.com/public/developer/en/tips/CalcScripts.pdf
    The Javascript could be used in the Layout: Ready event.
    For italic font:
    if (...some test...)
         this.font.posture = "italic";
    else
         this.font.posture = "normal";
    For bold font:
    if (...some test...)
         this.font.weight = "bold";
    else
         this.font.weight = "normal";
    The script will change the font for the complete field. I don't think you can change parts of a field.You can also change font colour and font type (the guides above will help).
    Good luck,
    Niall

  • Portal Dynamic Menu's

    Hi
    I'd like to create a dynamic menu using Dynamic Pages in Portal Provider for our Portal homepage.
    In the database I have found menu tables - one that contains main-menu items and another that contains sub-menu items. These tables are modified by a Master Detail Form in the Provider.
    I can get an SQL to pull this information out of the table, but do not know what else is needed in the procedure to create dynamic html and generate a dynamic menu.
    Can anyone help please?
    Thanks
    Debbianna

    Hi Debbianna -
    If you are not already a member of Portal Knowledge Exchange ... sign up now - it is free
    http://portalstudio.oracle.com/servlet/page?_pageid=2112&_dad=ops&_schema=OPSTUDIO&_mode=3
    Once you log in, if you do a search on DHTML you will see some samples for dynamic menus. These allow you to download the code as well so you can check out how others have implemented this and possibly just reuse their portlets.
    Hope this helps,
    Candace

  • Steps to create LOV dynamically

    Hello All,
    I want to create LOV dynamically.in my Oracle Forms 6I
    Is there any code which can create LOV dynamically using coding.
    I can create Record group dynamically. but I want to create LOV dynamically not from object browser of Form Builder by pressing Add LOV option.
    Kindly help me.
    Thanks
    HARSH SHAH

    Forms does not have a Built-in for dynamically creating an LOV; these objects can only be created in the Forms Builder during design time.  You can, as numerous people have tried to demonstrate, change the Record Group an LOV uses dynamically.  Unless you are changing the Column Mapping Properties of the LOV, using different Record Groups to supply the data for an LOV should work for you.  If you need to change the Column Mapping Properties, then you will need to create multiple LOV objects with the different mapping you need and then assign the LOV to your Item dynamically.
    Hope this helps,
    Craig...

  • Issue in implementing Dynamic participant chooser process Step

    I am facing issue in implementing Participant chooser process Step.
    I want to create dynamic Participant chooser process Step, I have implemented 'ParticipantStepChooser' class and overwrote 'getParticipant' method. But this process did not appear in Dynamic participant chooser dropdown in CQ5.6 environment.
    I deployed same code in CQ5.5 and process appeared in Dynamic participant chooser dropdown.
    This is the sample code which I have used:
    @Component(immediate = true, metatype = true, label = "DMP Config Service123")
    @Service
    @Properties({
            @Property(name = Constants.SERVICE_DESCRIPTION, value = "A sample implementation of a dynamic participant chooser.", propertyPrivate=true),
            @Property(name = Constants.SERVICE_VENDOR, value = "Adobe", propertyPrivate=true),
            @Property(name = ParticipantStepChooser.SERVICE_PROPERTY_LABEL, value = "******** Hello ********", propertyPrivate=true),
            @Property(name = "immediate" , value = "true", propertyPrivate=true)
    public class MyDynamicParticipant implements ParticipantStepChooser {
        private static final String TYPE_JCR_PATH = "JCR_PATH";
        @Activate
    void activate(ComponentContext context) {
      LoggerUtil.infoLog(this.getClass(), " ");
        public String getParticipant(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {
      LoggerUtil.infoLog(this.getClass(), "inside getParticipant method{} ");
            WorkflowData workflowData = workItem.getWorkflowData();
            if (workflowData.getPayloadType().equals(TYPE_JCR_PATH)) {
    String path = workflowData.getPayload().toString();
    String pathFromArgument = args.get("PROCESS_ARGS", String.class);
    if (pathFromArgument != null && path.startsWith(pathFromArgument)) {
    return "admin";
            return "administrators";

    Make sure to change your imports in 5.6 to use granite api. Please change from [1] to [2].
    [1]
    import com.day.cq.workflow.WorkflowException;
    import com.day.cq.workflow.WorkflowSession;
    import com.day.cq.workflow.exec.ParticipantStepChooser;
    import com.day.cq.workflow.exec.WorkItem;
    import com.day.cq.workflow.exec.WorkflowData;
    import com.day.cq.workflow.metadata.MetaDataMap;
    [2]
    import com.adobe.granite.workflow.WorkflowException;
    import com.adobe.granite.workflow.WorkflowSession;
    import com.adobe.granite.workflow.exec.ParticipantStepChooser;
    import com.adobe.granite.workflow.exec.WorkItem;
    import com.adobe.granite.workflow.metadata.MetaDataMap;

  • Step by step instructions to create a Simple PCUI Application

    I am very new to PCUI and have been trying to get a simple application up and running for the last few days. There always seems to be some problem or the other. At times it gives a dump, at times it gives me a screen without the search request or search result area and when i get all of these done, my application just does not invoke the Query method.
    I would appreciate it if you could give me Step by Step instructions to create a simple PCUI application to search for some data from an existing database table and display it.
    Thanks in advance!!!

    Hi Mithun
    You can also download the PCUI Cookbook from:
    http://service.sap.com/instguides -> my SAP Business Suite Solutions -> my SAP CRM -> my SAP 2005. The title is PCUI Book for CRM 2005.
    The direct link is (which may change so I recommend that you follow the menu path) https://websmp209.sap-ag.de/~sapidb/011000358700001093962006E/PCUIBook50_06.pdf
    Refer the following weblog
    /people/vijaya.kumar/blog/2005/06/10/people-centric-user-interface-pcui--getting-started
    Hope this will help
    Regards,
    Rekha Dadwal
    <b>You gain a point for every point that you reward. So reward helpful answers generously</b>

  • Step-by-Step procedure to create an InfoPackage Group & a Scenario!!

    Hello BW Experts,
    IF we have 10 InfoPackages and if we need to create an InfoPackage Group for 7 of them, How do we do it??
    Plz provide a detailed Step-by-Step procedure for the same/ create an InfoPackage group!!
    Ur help is really appreciated!!
    Thanks & Regards,
    Sapster.

    Hello Stefan,
    Thanks for ur response...with ur detailed steps..really helpful.
    While sheduling at the last ..by clicking the context menu of our created IP Group.. I am not getting any screen to schedule the same..(I am getting amessage at the mottom saying its not possible to run it in the back ground for my client workstation or similar to this)
    Could u plz let me know.. what it looks like for these remaining steps
    "Right click on the InfoPackage Group that you just created -> Schedule -> Check that all InfoPackages are selected -> Schedule the job just as you normally do with a InfoPackage."... thansk again.. assigend points...

  • How to create the Cash Flow  step by step?

    How to create the Cash Flow  step by step?

    Run S_ALR_87012271 (menu path A/C-FA-GL-Info System- GL Reports - BS/PL/Cashflow-general-cash flow)
    In the screen enter the year & Company code, & execute. you will reach to another screen.
    Click on the "FORM" & you will reach another screen having various forms. The form related to Cash flow is already highlighted.
    Go to EDIT-General Data Selection - Change the financial statment version pertaining to your company
    Then, click on each line item in the form which is being displayed and enter corresponding GLs.
    Save it & execute S_ALR_87012271
    Hope this solves your problem.

  • How to create queries on multiproviders& what are steps to be taken.

    Hi all,
    How to create queries on multiproviders& what are steps has to be take care.
    Thanks,
    cheta.

    Hi,
    Following scenario for  sample for slow moving items for multiproviders.
    Slow Moving Item Scenario
    You want to define a query that displays all products that have been purchased only
    infrequently or not at all. In other words, the query is also display characteristic values for
    which no transaction data or only low values exist for the selected period.
    Procedure
    In the Administrator Workbench;
    1. Create a MultiProvider consisting of a revenue InfoCube, containing the InfoObject
    Material (0MATERIAL), and the InfoObject 0MATERIAL. The InfoObject must be set as
    an InfoProvider in InfoObject maintenance. In other words, you need to have assigned
    the InfoObject to an InfoArea. (also refer to Tab Page: Master Data/texts [Ext.]).
    In the BEx Analyzer:
    2. Select your MultiProvider in the Query Designer.
    3. Define a query that contains the InfoObject 1ROWCOUNT in the columns.
    The InfoObject 1ROWCOUNT is contained in all “flat” InfoProviders, that is, in all
    InfoObjects and ODS objects. It counts the number of records in the InfoProvider.
    In this scenario, you can see from the row number display whether or nor values
    from the InfoProvider InfoObject are really displayed.
    4. Save the query and execute it. All values are now displayed, including those for materials
    that were not purchased.
    If you filter by time (0CALYEAR, for example), values from the InfoProvider
    InfoObjects are not displayed since 0CALYEAR is not an attribute of
    0MATERIAL. You can see this from the absence of values in the 1ROWCOUNT
    column in the query. If you want to restrict by time, you need to proceed as
    follows:
    Constant Selection for the InfoObject
    You need to set the constant selection for the 1ROWCOUNT key figure in order to be able to
    set a filter by time in this query.
    1. In the Query Designer, via the context menu for 1ROWCOUNT, choose Edit.
    2. On the left hand half of the screen, under the data package dimension, select the
    characteristic InfoProvider (0INFOPROV) and drag it into the right-hand screen area.
    3. From the context menu for the InfoProvider, choose Restrict, and restrict across the
    InfoProvider InfoObject.
    4. Also from the context menu for the InfoProvider, choose the function Constant Selection.
    5. Save the query and execute it. You can now also set a filter for a time characteristic, the
    materials display remains as it was.
    Displaying Slow Moving Items
    If you want to display a list of slow moving items, excluding products that are selling well, you
    need to proceed as follows:
    1. In the Query Designer, via the context menu for 1ROWCOUNT, choose Edit.
    2. Via the context menu for InfoProvider, choose the function Display Empty Values. Also
    select Constant Selection.
    3. Save the query and execute it. The result is that the system displays the materials for
    which there was no revenue.
    Displaying Products with Small Revenues
    If you want to display a list of products that have not been sold or have only been selling
    badly, you need to proceed as follows:
    1. Set constant selection as described above, but do not select the display empty values
    function.
    2. In the Query Designer, define a condition for the 0MATERIAL InfoObject. Specify a value
    that is to be the upper limit for a bad sale.
    3. Save the query and execute it. The result is that the system displays all materials that
    have not been sold or have been selling badly.
    Thanks,
    Sankar M

  • Step by step on how to create organizational structure(plan) for workflow?

    Hi Experts,
    Can anyone send me a step by step process on how to create organizational structure(plan) for workflow?
    Thanks a lot in advance.
    Rgds,
    TM

    Hi,
    You can use the following accessible transactions to process your organizational plan:
    Transaction     Name of Transaction
    PPO5                     Change Attributes
    PPO6                     Display Attributes
    PPOCE                      Create Organization and Staffing
    PPOCW                      Create Organization and Staffing (WF)
    PPOME                     Change Organization and Staffing
    PPOMW                     Change Organization and Staffing (WF)
    PPOSE                      Display Organization and Staffing
    PPOSW                      Display Organization and Staffing (WF)
    PP01                      Maintain Plan Data (Menu)
    PP01_DISP      Display Plan Data (Menu)
    PP03                       Maintain Plan Data (Actions)
    PP03                       Execute Action Directly
    Regards,
    Deepa Kulkarni

  • How to create a function group (step by step)?

    I would like to know how to create a function group, step by step.
    step 1 do....
    step 2 do ...

    also,
    Go to SE80 for creating a function group.
    Also have a look at below link.
    http://help.sap.com/saphelp_nw04/helpdata/en/d1/801ef5454211d189710000e8322d00/frameset.htm
    i.e.
    TCODE - SE80
    Choose - Function Group ,it wil ask to create..
    Create and then activate..give a name starting with Z .
    Other way is go to tcode SE37.
    In the menu,there is a option in sub menu for creating function group.
    Just create it by clicking that and give names starting with z or y.

  • Can anyone explain me step by step procedure for creating badi?

    hi all,,
    Can anyone explain me about badi with step by step procedure with an example like trsn code mm01, xd01 etc.
    And what is the significance of badi?
    regs
    hari

    Hi
    Business Add-Ins
    Business Add-Ins are a new SAP enhancement technique based on ABAP Objects. They can be inserted into the SAP System to accommodate user requirements too specific to be included in the standard delivery. Since specific industries often require special functions, SAP allows you to predefine these points in your software.
    As with customer exits (SMOD/CMOD [Page 40]), two different views are available:
    • In the definition view, an application programmer predefines exit points in a source that allow specific industry sectors, partners, and customers to attach additional software to standard SAP source code without having to modify the original object.
    • In the implementation view, the users of Business Add-Ins can customize the logic they need or use a standard logic if one is available.
    In contrast to customer exits, Business Add-Ins no longer assume a two-system infrastructure (SAP and customers), but instead allow for multiple levels of software development (by SAP, partners, and customers, and as country versions, industry solutions, and the like). Definitions and implementations of Business Add-Ins can be created at each level within such a system infrastructure.
    SAP guarantees the upward compatibility of all Business Add-In interfaces. Release upgrades do not affect enhancement calls from within the standard software nor do they affect the validity of call interfaces. You do not have to register Business Add-Ins in SSCR.
    The Business Add-In enhancement technique differentiates between enhancements that can only be implemented once and enhancements that can be used actively by any number of customers at the same time.
    In addition, Business Add-Ins can be defined according to filter values. This allows you to control add-in implementation and make it dependent on specific criteria (on a specific Country value, for example). All ABAP sources, screens, GUIs, and table interfaces created using this enhancement technique are defined in a manner that allows customers to include their own enhancements in the standard.
    A single Business Add-In contains all of the interfaces necessary to implement a specific task. In Release 4.6A, program and menu enhancements can be made with Business Add-Ins. The actual program code is enhanced using ABAP Objects. In order to better understand the programming techniques behind the Business Add-In enhancement concept, SAP recommends reading the section on ABAP Objects
    DEFINING THE BADI
    1) execute Tcode SE18.
    2) Specify a definition Name : ZBADI_SPFLI
    3) Press create
    4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
    multiple use.
    5) Choose the interface tab
    6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
    7) Dbl clk on interface name to start class builder . specify a method name (name,
    level, desc).
    Method level desc
    Linese;ection instance methos some desc
    8) place the cursor on the method name desc its parameters to define the interface.
    Parameter type refe field desc
    I_carrid import spfli-carrid some
    I_connid import spefi-connid some
    9) save , check and activate…adapter class proposed by system is
    ZCL_IM_IM_LINESEL is genereated.
    IMPLEMENTATION OF BADI DEFINITION
    1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
    2) Specify aname for implementation ZIM_LINESEL
    3) Specify short desc.
    4) Choose interface tab. System proposes a name fo the implementation class.
    ZCL_IM_IMLINESEL which is already generarted.
    5) Specify short desc for method
    6) Dbl clk on method to insert code..(check the code in “AAA”).
    7) Save , check and activate the code.
    Some useful URL
    http://www.esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://www.esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://www.esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://www.esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    www.sapgenie.com/publications/saptips/022006%20-%20Zaidi%20BADI.pdf
    http://www.sapdevelopment.co.uk/enhance/enhance_badi.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c2/eab541c5b63031e10000000a155106/frameset.htm
    Now write a sample program to use this badi method..
    Look for “BBB” sample program.
    “AAA”
    data : wa_flights type sflight,
    it_flights type table of sflight.
    format color col_heading.
    write:/ 'Flight info of:', i_carrid, i_connid.
    format color col_normal.
    select * from sflight
    into corresponding fields of table it_flights
    where carrid = i_carrid
    and connid = i_connid.
    loop at it_flights into wa_flights.
    write:/ wa_flights-fldate,
    wa_flights-planetype,
    wa_flights-price currency wa_flights-currency,
    wa_flights-seatsmax,
    wa_flights-seatsocc.
    endloop.
    “BBB”
    *& Report ZBADI_TEST *
    REPORT ZBADI_TEST .
    tables: spfli.
    data: wa_spfli type spfli,
    it_spfli type table of spfli with key carrid connid.
    *Initialise the object of the interface.
    data: exit_ref type ref to ZCL_IM_IM_LINESEL,
    exit_ref1 type ref to ZIF_EX_BADISPFLI1.
    selection-screen begin of block b1.
    select-options: s_carr for spfli-carrid.
    selection-screen end of block b1.
    start-of-selection.
    select * from spfli into corresponding fields of table it_spfli
    where carrid in s_carr.
    end-of-selection.
    loop at it_spfli into wa_spfli.
    write:/ wa_spfli-carrid,
    wa_spfli-connid,
    wa_spfli-cityfrom,
    wa_spfli-deptime,
    wa_spfli-arrtime.
    hide: wa_spfli-carrid, wa_spfli-connid.
    endloop.
    at line-selection.
    check not wa_spfli-carrid is initial.
    create object exit_ref.
    exit_ref1 = exit_ref.
    call method exit_ref1->lineselection
    EXPORTING
    i_carrid = wa_spfli-carrid
    i_connid = wa_spfli-connid.
    clear wa_spfli.
    u can find BADI's in different ways...
    1>First go to any transaction->iN THE menu bar SYSTEM->STATUS->Get the program name ->double click->u will go to the program attached to the tcode.Now search term will be CALL CL_EXITHANDLER.Now u will get list of BADI'S available..
    2>Goto SE24->Give class name as CL_EXITHANDLER->Display->double click on get_instance mathod->Now u will go inside the method->Now put break point on the cl_exithandler.Now go to any transaction code and pass dat..U will see that it will be stopped on the break point which u set on the cl_exithandler...In the exit name u can find list of badi's attached to the tcode..
    There are multiple ways of searching for BADI.
    • Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
    • Finding BADI Using SQL Trace (TCODE-ST05).
    • Finding BADI Using Repository Information System (TCODE- SE84).
    1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for ‘CL_EXITHANDLER=>GET_INSTANCE’.
    Make sure the radio button “In main program” is checked. A list of all the programs with call to the BADI’s will be listed.
    The export parameter ‘EXIT_NAME’ for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter ‘INSTANCE’ will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
    2. Start transaction ST05 (Performance Analysis).
    Set flag field "Buffer trace"
    Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
    Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
    Push the button "Deactivate Trace".
    Push the button "Display Trace".
    The popup screen "Set Restrictions for Displaying Trace" appears.
    Now, filter the trace on Objects:
    • V_EXT_IMP
    • V_EXT_ACT
    Push button "Multiple selections" button behind field Objects
    Fill: V_EXT_IMP and V_EXT_ACT
    All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
    So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
    3. Go to “Maintain Transaction” (TCODE- SE93).
    Enter the Transaction VD02 for which you want to find BADI.
    Click on the Display push buttons.
    Get the Package Name. (Package VS in this case)
    Go to TCode: SE84->Enhancements->Business Add-inns->Definition
    Enter the Package Name and Execute.
    Here you get a list of all the Enhancement BADI’s for the given package MB.
    The simplese way for finding BADI is
    1. chooes Tcode Program & package for that Tcode.
    2. Go to Tcode se18
    3. Press F4
    4. search by package or by program.
    http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
    and
    http://help.sap.com/saphelp_nw04/helpdata/en/eb/3e7cf7940e11d295df0000e82de14a/frameset.htm
    Badihttp://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
    http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
    http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
    http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
    http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
    http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
    http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
    http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
    sample code for Purchase requisition
    BAdI Name: ZPUR_RFQ (Implementation name) Purchase Requisitions
    Definition Name: ME_REQ_POSTED
    Interface Name : IF_EX_ME_REQ_POSTED
    Implementing Class: ZCL_IM_PUR_REQ
    Method :            POSTED
    METHOD if_ex_me_req_posted~posted .
      DATA : v_mtart TYPE mtart.
      DATA l_s_eban TYPE ueban.
      LOOP AT im_eban INTO l_s_eban.
        IF l_s_eban-estkz NE 'B'.
          CLEAR v_mtart.
          SELECT SINGLE  mtart INTO v_mtart FROM mara WHERE matnr = l_s_eban-matnr.
          IF v_mtart EQ 'ZERS' OR v_mtart EQ 'FHMI' OR v_mtart EQ 'UNBW'.
            MESSAGE e000(zm_msg) WITH 'You are not allowed' 'to create PR for stock items'.
          ENDIF.
        ENDIF.
        IF  l_s_eban-knttp NE 'F' OR l_s_eban-pstyp NE '9'.
          IF l_s_eban-knttp NE 'A'.
            IF ( l_s_eban-pstyp NE '9' AND l_s_eban-pstyp NE 'D' )  AND l_s_eban-matnr EQ
    space.
              MESSAGE e000(zm_msg) WITH 'You cannot create' 'a PR without material number'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDMETHOD.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

Maybe you are looking for

  • Profit and Loss Statement vs Budget Profit and Loss Statement

    I run the P&L and the P&L Budget report for April 2010. On the P&L Report :   Total Sales = R2 043 208.70 on the P&L Budget Report :   Total Sales = R2 043 208.70    Budget Total Sales = R 2042 123.70 Why will there be a difference in the Budget repo

  • Price List Setup - R12

    Hello Friends, I am trying to setup a Price List ( in a new R12 instance, not a R12 VISION instance ). When with Responsibility "Oracle Pricing Manager", I click on Price List Setup, I get a message - Pricing APIs are not available for Basic Pricing

  • Messages stuck at Adapter engine

    Hi everyone, My messages are getting stuck at the Adapter engine level and shows the status as "Holding". But the step at Integration engine seems to work fine. How could i get rid of these messages, before I run another couple of messages. Also what

  • How display a "There were errors - see below" message

    I want to use h:message to show each error message adjacent to its respective control (rather than h:messages at the top of the form). But I also want a "There were errors - see below" style message at the top of the form (only if there are any messa

  • Procurement type u201CE (In-house production) u201D & u201CXu201D (Both procurement types)

    Hi SAP Gurus, What is the Deference between Procurement type u201CE (In-house production) u201D & u201CXu201D (Both procurement types) Cause after MRP run in Both cases I come across same options. With This Procurement type we can get plan order as w