Explain User exit concept with simple example

Hi friends
I am new member of this forum & i am learning ABAP.
Kindly send me user exit concept with simple example to my mail ID so i can able to use it.
mail ID  [email protected]
thanks in advance
Thanks & Regards

Code SE18 is used to Identify the BADI available.
Look for the string 'CL_EXITHANDLER' in the standard program. This is a class which has a method 'GET_INSTANCE' which is used to trigger BADI's from the Standard Program. The interface parameter for this static method 'EXIT_NAME' is used to pass the BADI to the method.
Open Standard Program and do a global search 'CL_EXITHANDLER'.
SE18 > give the BADI name found through above search.
CUSTOMER_ADD_DATA > which has a method SAVE_DATA.
T.Code SE19 is used to Implement BADI.
SE19 > give the implementation name > Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.
Intro.....
http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm
Check these links for info about badi..
BADI's
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
BADI's
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
http://www.esnips.com/web/BAdI
http://www.allsaplinks.com/badi.html
New to Badi
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
What are BAdIs?
-> is an anticipated point of extension – these points act like sockets and exist in the original source code
-> based on ABAP Objects. BAdI defines an interface that can be implemented by BAdI-implementations that are transport objects of their own
->Important! There are 2 roles: Enhancement Option-provider & Implementer.
-> In the above context, Enhancement Implementation can be done only if option (hook) is provided by the Option-provider. In simple words there are no implicit BAdIs.
Note: In the following slides, Definitions are created so as to understand the method of BAdI definition & for example purpose. As stated above this is the role of Enhancement Option-Provider.
Classic BAdIs already exist since SAP Release 4.6
BAdIs have been Re-implemented in ECC7.0 under the new Enhancement Framework & Switch Framework
Classic BAdIs
To understand what a powerful pattern a BAdI is, we will now define & then implement a BAdI
BADI Class is created automatically.
The various options are described below in detail:
1. Enhanceable: Enhanceability of filter types can only be specified for filter-dependent BADI definitions under very special conditions. For example, the domain belonging to the filter type must be linked with a value table that is of the type E or G. A BADI implementation can then be created in one step by creating a new filter value that is automatically entered into the value table at save and also copied into the transport order of the BADI implementation. In addition, it is also possible to create a new filter value and, at the same time, a BADI implementation with the same name. Naturally, you can also specify existing filter values.
You should select this feature if there is a prerequisite that a new filter value is created together with a new BADI implementation - that is, that BADI implementations are not created solely with existing filter values, although this, too, is possible.
2. Multiple-Use
3. Filter-Dependent
Instance Methods can access all of the attributes of a class and can trigger all events of a class. Static Methods can only access static attributes and static events.
Exceptions:
Events:
Events can be defined in classes or in interfaces. Corresponding methods can trigger these events with the RAISE EVENT statement. Each class (or interface) that is going to handle the corresponding event must implement a relevant handler method, and register it using the SET HANDLER statement. When an event occurs, the system calls all of the handler methods registered for that event.
Like method definitions, events have a parameter interface. The only difference is that events may only have EXPORTING parameters.
BADI : Businees Add IN's
Business Add-Ins are SAP enhancement technique based on ABAP Objects.
Where the SAP standard program is not going to fullfill the client requirement , we are going to add our own program to SAP standard program, without changing the standard prog.
Each Business Add-In has
– at least one Business Add-In definition
– a Business Add-In interface
– a Business Add-In class that implements the interface
Each BADI has two different Views.
1.Definition view
2.Implementation view
T.C for BADI Definition is SE18.
T.C for BADI Implementation is SE19.
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.
Have a look at http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
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
How to develop BADI
Rewards if useful.

Similar Messages

  • User exit work with small example

    will someone show how to make user exit work with small example and sceenshot? i do not want legthy explanation /hard examples,only a stepwise example.
    points will get reward
    email:[email protected]

    Go to transaction CMOD
    Create a project called ZVA01
    Choose the Enhancement assign radio button and press the Change button
    In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an
    enhancement can only be used i 1 project. If the enhancement is allready in use, and error message
    will be displayed
    Press Save
    Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002.
    Double click on the exit.
    Now the function module is displayed. Double click on include ZXVVAU04 in the function module
    Insert the following code into the include: E_KUNNR = '2155'.
    Activate the include program. Go back to CMOD and activate the project.
    Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"

  • Populate user exit Variable with User Authorizations using ABAP?

    Hi, Does anyone know of a way to populate a user exit variable (with ABAP) with the Authorization Values for a user running a report?  I am turning off authorizations for our InfoProvider using RSSM and want to populate a variable instead and use the variable as a filter.

    Hi Kenneth ,
    You need dynamic authorization in your report .This can be done at query runtime by using exit variable and writing cmod code for the same .
    This code will read authorization maintained at runtime of query in i_step = 1 and will pass input var values accordingly .
    For step by step information you can access this document .
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0f9f33c-0f17-2d10-d3a2-ae52ccd00780?quicklink=index&overridelayout=true
    Hope this will be helpful .
    Regards,
    Jaya Tiwari

  • Map the user exit variables with the queries/cubes using them

    Hello Friends,
    What are the post unicode conversion tests that you can perform on front end/existing queries?
    is there any added advantage for queries due to unicode?
    is testing the working of variable  enough? is there any table to map the user exit variables with the queries/cubes using them?
    Thanks
    Tanya

    Guys, any clue about this? Answer are appreciated.
    Thanks
    Tanya

  • Need info regd User exits use with examples

    Hi!
    I'm SD consultant and I need some user exits info along with some examples. They are as follows
    USEREXIT_FIELD_MODiFICATION
    USEREXIT_MOVE_FIELD_TO_VBAK
    USEREXIT_MOVE_FIELD_TO_VBAP
    USEREXIT_PRICING_PREPARE_TKOMK
    USEREXIT_ACCOUNT_PREP_KOMPCV
    USEREXIT_FILL_VBRK_VBRP
    Thank you in advance

    Hi,
    Please check this link
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/automatically-populating-the-sales-order-field-in-va01-1623468
    http://help.sap.com/saphelp_40b/helpdata/pt/ff/f52c7dd435d1118b3f0060b03ca329/content.htm
    http://help.sap.com/saphelp_46c/helpdata/en/08/f62c7dd435d1118b3f0060b03ca329/content.htm
    Best regards,
    raam

  • User exit vriable with several values

    Hi,
    I need to use a user exit defined variable containing several values; as of now I have only used single values and plain ranges... any tips on which values to assign to the E_T_RANGE table line ?
    many thanks

    Hi Thibault,
       You can do this as multiple single values.
    Create an internal table and fill with required values. Loop from this internal table and append values one by one as multiple single values into E_T_Range.
    Sample code.
    Loop at lt_data.
    e_t_range-sign = 'I'.
    e_t_range-option = 'EQ'.
    e_t_range-low = Lt_data-<field1> .
    append e_t_range.
    endloop.
    Hope it Helps
    Srini

  • Plz tell me BDC  CALL TRANSACTION steps with simple example

    hi,
    plz tell me the steps
    BDC  CALL TRANSACTION steps with simple example

    Hi,
    BATCH DATA COMMUNICATION
    About Data Transfer In R/3 System
    When a company decides to implement the SAP R/3 to manage business-critical data, it usually does not start from a no-data situation. Normally, a SAP R/3 project comes into replace or complement existing application.
    In the process of replacing current applications and transferring application data, two situations might occur:
    ? The first is when application data to be replaced is transferred at once, and only once.
    ? The second situation is to transfer data periodically from external systems to SAP and vice versa.
    ? There is a period of time when information has to be transferred from existing application, to SAP R/3, and often this process will be repetitive.
    The SAP system offers two primary methods for transferring data into SAP systems. From non-SAP systems or legacy system. These two methods are collectively called ?batch input? or ?batch data communication?.
    1. SESSION METHOD
    2. CALL TRANSACTION
    3. DIRECT INPUT
    Advantages offered by BATCH INPUT method:
    1. Can process large data volumes in batch.
    2. Can be planned and submitted in the background.
    3. No manual interaction is required when data is transferred.
    4. Data integrity is maintained as whatever data is transferred to the table is through transaction. Hence batch input data is submitted to all the checks and validations.
    To implement one of the supported data transfers, you must often write the program that exports the data from your non-SAP system. This program, known as a ?data transfer? program must map the data from the external system into the data structure required by the SAP batch input program.
    The batch input program must build all of the input to execute the SAP transaction.
    Two main steps are required:
    ? To build an internal table containing every screen and every field to be filled in during the execution of an SAP transaction.
    ? To pass the table to SAP for processing.
    Prerequisite for Data Transfer Program
    Writing a Data Transfer Program involves following prerequisites:
    Analyzing data from local file
    Analyzing transaction
    Analyzing transaction involves following steps:
    ? The transaction code, if you do not already know it.
    ? Which fields require input i.e., mandatory.
    ? Which fields can you allow to default to standard values.
    ? The names, types, and lengths of the fields that are used by a transaction.
    ? Screen number and Name of module pool program behind a particular transaction.
    To analyze a transaction::
    ? Start the transaction by menu or by entering the transaction code in the command box.
    (You can determine the transaction name by choosing System ? Status.)
    ? Step through the transaction, entering the data will be required for processing your batch input data.
    ? On each screen, note the program name and screen (dynpro) number.
    (dynpro = dyn + pro. Dyn = screen, pro = number)
    ? Display these by choosing System ? Status. The relevant fields are Program (dynpro) and Dynpro number. If pop-up windows occur during execution, you can get the program name and screen number by pressing F1 on any field or button on the screen.
    The technical info pop-up shows not only the field information but also the program and screen.
    ? For each field, check box, and radio button on each screen, press F1 (help) and then choose Technical Info.
    Note the following information:
    - The field name for batch input, which you?ll find in its own box.
    - The length and data type of the field. You can display this information by double clicking on the Data Element field.
    ? Find out the identification code for each function (button or menu) that you must execute to process the batch-input data (or to go to new screen).
    Place the cursor on the button or menu entry while holding down the left mouse button. Then press F1.
    In the pop-up window that follows, choose Technical info and note the code that is shown in the Function field.
    You can also run any function that is assigned to a function key by way of the function key number. To display the list of available function keys, click on the right mouse button. Note the key number that is assigned to the functions you want to run.
    Once you have program name, screen number, field name (screen field name), you can start writing.
    DATA TRANSFER program.
    Declaring internal table
    First Integral Table similar to structure like local file.
    Declaring internal table like BDCDATA
    The data from internal table is not transferred directly to database table, it has to go through transaction. You need to pass data to particular screen and to particular screen-field. Data is passed to transaction in particular format, hence there is a need for batch input structure.
    The batch input structure stores the data that is to be entered into SAP system and the actions that are necessary to process the data. The batch input structure is used by all of the batch input methods. You can use the same structure for all types of batch input, regardless of whether you are creating a session in the batch input queue or using CALL TRANSACTION.
    This structure is BDCDATA, which can contain the batch input data for only a single run of a transaction. The typical processing loop in a program is as follows:
    ? Create a BDCDATA structure
    ? Write the structure out to a session or process it with CALL TRANSACTION USING; and then
    ? Create a BDCDATA structure for the next transaction that is to be processed.
    Within a BDCDATA structure, organize the data of screens in a transaction. Each screen that is processed in the course of a transaction must be identified with a BDCDATA record. This record uses the Program, Dynpro, and Dynbegin fields of the structure.
    The screen identifier record is followed by a separate BDCDATA record for each value, to be entered into a field. These records use the FNAM and FVAL fields of the BDCDATA structure. Values to be entered in a field can be any of the following:
    ? Data that is entered into screen fields.
    ? Function codes that are entered into the command field. Such function codes execute functions in a transaction, such as Save or Enter.
    The BDCDATA structure contains the following fields:
    ? PROGRAM: Name of module pool program associated with the screen. Set this field only for the first record for the screen.
    ? DYNPRO: Screen Number. Set this field only in the first record for the screen.
    ? DYNBEGIN: Indicates the first record for the screen. Set this field to X, only for the first record for the screen. (Reset to ? ? (blank) for all other records.)
    ? FNAM: Field Name. The FNAM field is not case-sensitive.
    ? FVAL: Value for the field named in FNAM. The FVAL field is case-sensitive. Values assigned to this field are always padded on the right, if they are less than 132 characters. Values must be in character format.
    Transferring data from local file to internal table
    Data is uploaded to internal table by UPLOAD of WS_UPLOAD function.
    Population of BDCDATA
    For each record of internal table, you need to populate Internal table, which is similar to BDCDATA structure.
    All these five initial steps are necessary for any type of BDC interface.
    DATA TRANSFER program can call SESSION METHOD or CALL TRANSACTION. The initial steps for both the methods are same.
    First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
    SESSION METHOD
    About Session method
    In this method you transfer data from internal table to database table through sessions.
    In this method, an ABAP/4 program reads the external data that is to be entered in the SAP System and stores the data in session. A session stores the actions that are required to enter your data using normal SAP transaction i.e., Data is transferred to session which in turn transfers data to database table.
    Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
    When the program has finished generating the session, you can run the session to execute the SAP transactions in it. You can either explicitly start and monitor a session or have the session run in the background processing system.
    Unless session is processed, the data is not transferred to database table.
    BDC_OPEN_GROUP
    You create the session through program by BDC_OPEN_GROUP function.
    Parameters to this function are:
    ? User Name: User name
    ? Group: Name of the session
    ? Lock Date: The date on which you want to process the session.
    ? Keep: This parameter is passed as ?X? when you want to retain session after
    processing it or ? ? to delete it after processing.
    BDC_INSERT
    This function creates the session & data is transferred to Session.
    Parameters to this function are:
    ? Tcode: Transaction Name
    ? Dynprotab: BDC Data
    BDC_CLOSE_GROUP
    This function closes the BDC Group. No Parameters.
    Some additional information for session processing
    When the session is generated using the KEEP option within the BDC_OPEN_GROUP, the system always keeps the sessions in the queue, whether it has been processed successfully or not.
    However, if the session is processed, you have to delete it manually. When session processing is completed successfully while KEEP option was not set, it will be removed automatically from the session queue. Log is not removed for that session.
    If the batch-input session is terminated with errors, then it appears in the list of INCORRECT session and it can be processed again. To correct incorrect session, you can analyze the session. The Analysis function allows to determine which screen and value has produced the error. If you find small errors in data, you can correct them interactively, otherwise you need to modify batch input program, which has generated the session or many times even the data file.
    CALL TRANSACTION
    About CALL TRANSACTION
    A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program by
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>
    Messages into <MSGTAB>.
    Parameter ? 1 is transaction code.
    Parameter ? 2 is name of BDCTAB table.
    Parameter ? 3 here you are specifying mode in which you execute transaction
    A is all screen mode. All the screen of transaction are displayed.
    N is no screen mode. No screen is displayed when you execute the transaction.
    E is error screen. Only those screens are displayed wherein you have error record.
    Parameter ? 4 here you are specifying update type by which database table is updated.
    S is for Synchronous update in which if you change data of one table then all the related Tables gets updated. And sy-subrc is returned i.e., sy-subrc is returned for once and all.
    A is for Asynchronous update. When you change data of one table, the sy-subrc is returned. And then updating of other affected tables takes place. So if system fails to update other tables, still sy-subrc returned is 0 (i.e., when first table gets updated).
    Parameter ? 5 when you update database table, operation is either successful or unsuccessful or operation is successful with some warning. These messages are stored in internal table, which you specify along with MESSAGE statement. This internal table should be declared like BDCMSGCOLL, a structure available in ABAP/4. It contains the following fields:
    1. Tcode: Transaction code
    2. Dyname: Batch point module name
    3. Dynumb: Batch input Dyn number
    4. Msgtyp: Batch input message type (A/E/W/I/S)
    5. Msgspra: Batch input Lang, id of message
    6. Msgid: Message id
    7. MsgvN: Message variables (N = 1 - 4)
    For each entry, which is updated in database, table message is available in BDCMSGCOLL. As BDCMSGCOLL is structure, you need to declare a internal table which can contain multiple records (unlike structure).
    Steps for CALL TRANSACTION method
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. UPLOAD or WS_UPLOAD function to upload the data from local file to itab. (Considering file is local file)
    4. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>.
    Refresh BDCTAB.
    Endloop.
    (To populate BDCTAB, You need to transfer each and every field)
    The major differences between Session method and Call transaction are as follows:
    SESSION METHOD CALL TRANSACTION
    1. Data is not updated in database table unless Session is processed. Immediate updation in database table.
    2. No sy-subrc is returned. Sy-subrc is returned.
    3. Error log is created for error records. Errors need to be handled explicitly
    4. Updation in database table is always synchronous Updation in database table can be synchronous Or Asynchronous.
    Error Handling in CALL TRANSACTION
    When Session Method updates the records in database table, error records are stored in the log file. In Call transaction there is no such log file available and error record is lost unless handled. Usually you need to give report of all the error records i.e., records which are not inserted or updated in the database table. This can be done by the following method:
    Steps for the error handling in CALL TRANSACTION
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. Internal table BDCMSG like BDCMSGCOLL
    4. Internal table similar to Ist internal table
    (Third and fourth steps are for error handling)
    5. UPLOAD or WS_UPLOAD function to upload the data from the local file to itab. (Considering file is local file)
    6. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tr.code> using <Bdctab>
    Mode <A/N/E>
    Update <S/A>
    Messages <BDCMSG>.
    Perform check.
    Refresh BDCTAB.
    Endloop.
    7 Form check.
    IF sy-subrc <> 0. (Call transaction returns the sy-subrc if updating is not successful).
    Call function Format_message.
    (This function is called to store the message given by system and to display it along with record)
    Append itab2.
    Display the record and message.
    DIRECT INPUT
    Thanks &regards,
    Sravani

  • Change Schedule Line category through user exit - Issue with transfer of requirements

    Dear All,
    There is a user exit in Sales Order program MV45AZZ - PREPARE_TO_SAVE . It is currently being used to implement code to change schedule line category based on the status of the sales order.
    When Blocked , category is set to ZP, and when Released then it is set to CP.
    Now, when we change ZP to CP manually through VA02, I am able to see the requirements transferred in tcode MD50.
    The problem is, when user changes status of sales order from blocked to released, the userexit changes categories from ZP to CP, but the requirements are not transferred ( cannot see it in MD50 ).
    I tried searching the SCN, tried googling it, its been a week now and I havent found any clear solution.
    So, far what I understood is Availability Check needs to be carried out again. But I am not clear how to trigger it again.
    Are there any indicators that need to be set or any internal tables to be updated or any FM to call or any other user exit to place the code in.

    ?? Any suggestion friends ?

  • Help required with Simple Examples

    Hi Friends,
    I am starting a new project with JSP and JSTL with the implementation of structs framework in apache webserver on Linux platform. I would like to have some sample applications (simple to understand), because we already have experience in JSP programming and Java programming (only the integration is making some new troubles).. i even refered some websites and collcted codes.. but i would like to have a communication with professional developers.. if possible give me some links where i can collect simple source code and projects for better understanding.. Thanks in advance..
    with regards
    Muthukumar G.

    Google.

  • Land scape of BW with simple example

    extraction --- legasy-sap to sap
    analysis  --olap
    reporting.....bex
    Is this is system landscape in BW....
    how data in different formats..flat files for example put into BW...
    what is ODS?

    Land Sacape mens
    We have the 3 systems .R/3 development-R/3 Qa-----R/3 Production
                             same also BW DevelopmentBw QABw production   .
    Develop the new objects create cube all work is done is developmet . developmet is completed then transport to QA in QA we check the Testing . if every thing is fine then move to production.
    if haveing any problem then move to developmet.
    Development system: All the implementation part is done in this sys. (I.e., Analysis of objects developing, modification etc) and from here the objects are transported to the testing system, but before transporting an initial test known as Unit testing (testing of objects) is done in the development sys.
    Testing/Quality system: quality check is done in this system and integration testing is done.
    Production system: All the extraction part takes place in this sys.

  • USER-EXIT EXAMPLE

    Hi all,
            I'm completely unaware of user-exit and badi. Can anyone can explain me exactly these two concepts with realtime examples.... i want expalnation with some examples. Kindly help in this regards,
    With thanks,
    karthi.

    Hi subramanian karthi  ,
    User exits :
    1. Introduction:
    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.
    The naming standard of function modules for functionmodule exits is: 
    EXIT_
    Example:
    The program for transaction VA01 Create salesorder is SAPMV45A
    If you search for CALL CUSTOMER-FUNCTION i program
    SAPMV45A you will find ( Among other user exits):
    CALL CUSTOMER-FUNCTION '003'
      exporting
        xvbak   = vbak
        xvbuk   = vbuk
        xkomk   = tkomk
      importing
        lvf_subrc = lvf_subrc
      tables
        xvbfa = xvbfa
        xvbap = xvbap
        xvbup = xvbup.
    The exit calls function module EXIT_SAPMV45A_003
    You will now come to a screen that shows the function module exits for the exit.
    3. Using Project management of SAP Enhancements, we want to create a project to enahance trasnaction VA01 .
    - Go to transaction CMOD
    - Create a project called ZVA01
    - Choose the Enhancement assign radio button and press the Change button
    In the first column enter V45A0002 Predefine sold-to party in sales document. 
    Note that an enhancement can only be used in 1 project. If the enhancement is already in use, and error message will be displayed
    Press Save
    Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
    Now the function module is displayed. Double click on include ZXVVAU04 in the function module
    Insert the following code into the include: E_KUNNR = '2155'.
    Activate the include program. Go back to CMOD and activate the project. 
    Goto transaction VA01 and craete a salesorder. 
    Note that Sold-to-party now automatically is "2155"
    User exit - A user exit is a three character code that instructs the system to access a program during system processing.
    SXX: S is for standard exits that are delivered by SAP.   XX represents the 2-digit exit number.
    UXX: U is for user exits that are defined by the user.  XX represents the 2-digit exit number
    An example of a user exits :-
    MODULE user_exit_0001 INPUT 
        CASE okcode.
            WHEN 'BACK OR EXIT'.
                CASE sy-dynnr.
                        WHEN '100'.
                             SET SCREEN 0.
                             LEAVE SCREEN.
                        WHEN '200'.
    Note that you can write any code that satisfy your needs.                                                     ****
    But in this case, this was wrote as a sample code for reference sake.                                    ****
    And you can test it.                                                                                ****
                             SET SCREEN 100.
                             LEAVE SCREEN.
                 ENDCASE.
          ENDCASE. 
    Finding User Exits
    Procdedure 1:
    Valid up to at least SAP release 4.0B
    One way to find user exits applicable for a given SAP screen. From the SE38 screen, enter the desired screen main program, and click Utilities > Find In Source Code, and "CUSTOMER-FUNCTION" as the text to search for. This will give you a list of the user exits and where they are called from for all screens in the module pool.
    Note: format of ABAP statement is CALL CUSTOMER-FUNCTION '009', for example. This is the statement called by a submodule attached to the main program.
    Actual related function is EXIT_SAPLCOIH_009, for example. This example refers to customer function 9 in main program SAPLCOIH. Not all user exit functions are names as such, but this is the usual format.
    If you are doing data validation and want to set an error message with a field open, you must be sure that the user exit you are using is linked to a calling module in the PAI section of the screen and the field you wish to be open was in the CHAIN statement which caused the PAI module to be invoked.
    If you use a customer function which was invoked by a PBO module to validate data, the "MESSAGE" statement will cause the screen to return with the desired message at the bottom, but with all screen fields closed for input.
    When you make changes to the include module for a given customer function, you must regenerate the related function group before you will see the changes included in the screen behaviour.
    Procdedure 2:
    Need to find user exits module-wise? Suppose we want to see the available sales module user exits. Go to transaction SE81. Click on SD, then click "edit" on the menu bar and choose select subtree. Click on "information system," Open Environment node, customer exits, and enhancements. Press F8 to get all the user exits for that module. In brief: SE81->SD->Select subtree->Information System->Envir->Exit Techniques->Customers exits->enhancements->Execute(F8)
    Procedure 3:
    Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT
    If you know the Exit name, go to transaction CMOD.
    Choose menu Utillities->SAP Enhancements. Enter the exit name and press enter.
    USER EXIT  (SAP Enhancement)
    http://www.planetsap.com/userexit_det_1.htm
    List of all USER EXIT's  (4.6c version)
    http://www.planetsap.com/Userexit_List.htm
    User Exits in FI/CO
    http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
    Excellent web-site for user-exits
    http://www.abaptalk.com/forum_posts.asp?TID=31&SID=3b18fa1dc8b7b9a1dbdedf36fe3bc2az&PID=56#56
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50c8e8
    Enhancements,Creating a project,Assigning SAP enhancements to a project,Editing enhancement components,Activating a project
    http://www.planetsap.com/userexit_main_page.htm
    Find user exits with a TCode
    http://www.erpgenie.com/abap/code/abap26.htm
    SAP User Exits Routine
    http://www.sap-basis-abap.com/sapab013.htm
    User Exit and Enhancement explained in detail .
    http://sap.niraj.tripod.com/id21.html
    Excellent web-site for user-exits
    http://www.abaptalk.com/forum_posts.asp?TID=31&SID=3b18fa1dc8b7b9a1dbdedf36fe3bc2az&PID=56#56
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/208811b0-00b2-2910-c5ac-dd2c7c50c8e8
    http://abap4.tripod.com/Other_Useful_Tips.html
    BAdis:
    These steps should enable you to find any BADI related to any transaction in a matter of minutes.
    Procedure 1:
    1) Go to the transaction SE37 to find your function module.
    2) Locate the function SXV_GET_CLIF_BY_NAME.
    3) Put a breakpoint there.
    4) Now open a new session.
    5) Go to your transaction. 6) At that time, it will stop this function.
    7) Double click on the function field EXIT_NAME.
    8) That will give you name of the BADI that is provided in your transaction.
    Business Add-Ins
    Procedure 2:
    1) Goto se24 (Display class cl_exithandler)
    2) Double click on the method GET_INSTANCE.
    3) Put a break point at Line no.25 (CASE sy-subrc).
    4) Now Execute SAP standard transaction
    5) Press the required button for which you need to write an exit logic, the execution will stop at the break point.
    6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.
    7) This way you will find all the BADIs called on click of any button in any transaction
    SAP Business Add-Ins (BAdIs) are one of the most important technologies used to adapt SAP software to specific requirements. BAdIs were introduced with Release 4.6 and replace function module exits. This technology is not limited to SAP applications. BAdI calls can be integrated in customer applications. These can then be enhanced by other customer applications. In the various SAP applications, BAdI calls are implemented at places where enhancements are appropriate.Business add-ins are enhancements to the standard version of the system. 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, two different views are available:
    · In the definition view, an application programmer defines exit points in a source that allow specific industry sectors, partners, and customers to attach additional coding 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 solution, if one is available.
    In contrast to customer exits, Business Add-Ins no longer assume a two-level infrastructure (SAP and customer solutions), but instead allow for a multi-level system landscape (SAP, country-specific versions, industry solutions, partner, customer, and so on). You can create definitions and implementations of Business Add-Ins at any level of the system landscape.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 differentiate between Add-In implementations using the filter Country or other criteria.
    The enhancement technique is set up in such a way that it is possible to define interfaces for ABAP soure code, screens, GUI interfaces, and tables. These allow 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.
    BADI is just an object-oriented version of user-exit. Instead of entering program code into some function module (as in customer-exit), you define some class which has to implement predefined methods and those methods are fired at predefined points just like an old user-exit. Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently. BADI/UserExists are used to enhance R/3 For customer Needs.
    Actually there is no transaction to find when and where the BADI
    is called.
    1. You can see the BADI description to find why it is called.
    2. Once you implemented and activated the BADI, put some break points
    in the BADI and see "where else used" option to check in what all
    programs this BADI is called. In the ITS debug, when you are doing
    the operation what exactly the BADI description tells, it will take
    to the break points and you have to do manually debug the whole thing.
    I know its bit difficult to do manual debug the whole thing, it
    takes lot of time, but you have to be very patience when you are
    dealing with BADI's.
    Transaction SE18 is the BADI equivalent of transaction SMOD
    Transaction SE19 is the BADI equivalent of transaction CMOD .
    To find the BADI to be implemented and then implement this via SE19.
    Check this blogs 2 find a BADI:
    How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
    When to Use a BAdI?)
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    How to implement a BAdI And How to Use a Filter
    /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
    Introducing Business Add-Ins
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
    How to implement BAdi in Enhancement Framework
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
    Business Add-Ins
    http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
    BAdI: Customer-Defined Functions in the Formula Builder
    http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
    Difference Between BADI and User Exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
    http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
    cheers!
    gyanaraj
    ****Pls reward points if u find this helpful

  • MRP Run with User Exit key for Follow up material

    Dear Gurus,
    I want to run MRP only for followup materials by using User exit key. For example i have a material X(with discontinued Indicator as 1) and it's follow material is Y.
    So we have a user exit key as ZFL, with coding as shown below. Now when i run MD01 with user exit key ZFL and parametre as 1, it only runs MRP for material X and not for material Y. What else we need to do so that when i run MD01 with user exit key ZFL, it shoudl consider both X and Y. 
    WHEN 'ZFL'.
    DATA : BEGIN OF ITAB5 OCCURS 0,
    KZAUS LIKE MT61D-KZAUS,
    END OF ITAB5.
    TRANSLATE USER_PAR TO UPPER CASE.
    SPLIT USER_PAR AT ',' INTO TABLE ITAB5.
    IF ITAB5[] IS INITIAL.
    EXIT.
    ENDIF.
    CLEAR: NO_PLANNING, STOP_PLANNING.
    READ TABLE ITAB5 WITH KEY KZAUS = MT61D-KZAUS.
    IF SY-SUBRC <> 0.
    NO_PLANNING = 'X'.
    ENDIF. 

    Hi Kumar,
         You can use either MRP Type, MRP Controller, MRP Group in this user exit to control the MRP run. For these set of Materials you have to assign any of same value or at least differentiate these material from other material. Then only you can control the MRP by using this user exit even though if you use different MRP Group and MRP Controller. In User Exit, you may have to add your dependent material's MRP Group/MRP Controller. Make sure that these set of materials are different than all other materials.
    If you don't have any plan to run MRP for other materials then as per Ajit suggestion you make that material's MRP type as "ND". But, in your business case they may want to activate the MRP for all the material not now but may be latter.
    Thanks

  • Problem with a user exit PBAS0001

    Hi Experts,
    We have a new sand box in ecc6. when I go to any sandbox or production in 4.6c system transaction pa40 runs fine.
    I slected change of pay in new sandbox ecc6 through pa40, but it is throughing with an error stating
    The current ABAP program "SAPFP50M" had to be terminated because it has        
    come across a statement that unfortunately cannot be executed.                                                                               
    The following syntax error occurred in program "SAPLXPAD " in include "ZXPADU02
      " in                                                                          
    line 22:                                                                       
    ""I0028" and "INNNN" are not mutually convertible. In Unicode programs,"       
    " "I0028" must have the same structure layout as "INNNN", independent o"       
    "f the length of a Unicode character."                                         
    The above error is found in user exit PBAS0001 with
    EXIT_SAPFP50M_001
    EXIT_SAPFP50M_002
    can anyone let me know how to handle this to correct in new sand box to run as normal.
    Thanks
    Ravi

    Hi Ravi,
    After release 5 due to unicode the structure innnn and Pnnnn are not compartiable, hence move statement ll not work.
    Use the below methods for conversion. Point if helpful.
      MOVE innnn TO gs_0041.
    PERFORM MOVE_INNNN_TO_STRU USING INNNN gs_0041.
    FORM MOVE_INNNN_TO_STRU  USING    P_INNNN
                                      P_GS_0041.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING
          PRELP  = P_INNNN
        IMPORTING
          PNNNN  = P_GS_0041.
    ENDFORM.                    " MOVE_INNNN_TO_STRU
          MOVE gs_0041 TO innnn.
    PERFORM MOVE_STRU_TO_INNNN USING gs_0041 INNNN.
    FORM MOVE_INNNN_TO_STRU  USING    P_INNNN
                                      P_GS_0041.
      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
        EXPORTING
          PRELP  = P_INNNN
        IMPORTING
          PNNNN  = P_GS_0041.
    ENDFORM.                    " MOVE_INNNN_TO_STRU
    Br/Manas

  • User Exit M06B0002 - EXIT_SAPLEBND_001

    Hi,
    We are using a release strategy that should check the field "Quantity" in the purchase requisition (MEREQ3321-MENGE).
    The Release Strategy is using a communication structure called CEBAN in which this field does not exist.
    We would like to populate the field CEBAN-USNR1 with the value in the field "Quantity" in the Purchase Requisition (MEREQ3321-MENGE).
    We activated user exit EXIT_SAPLEBND_001 and we try to import the value from EBAN-MENGE. The problem is that EBAN-MENGE is not filled until the document is saved.
    We don't know how to import the value of the "quantity" field into the CEBAN communication structure so that the release strategy can work.
    The CEBAN communication structure does not have key fields to help...
    Does anyone have an idea on how to do that ?
    Thank you very much.
    Best regards,
    Remi

    In SAP standard user exit, we cannot access information which is not defined in the import parameter of user exit.
    To overcome this problem, we can use following technique for accessing information outside of the User exit scope.
    For Example:
    In partner determination user exit EXIT_SAPLV09A_004 we cannot access document type or any sales document header information.
    Go in debugging mode inside the exit. Click "Calls"..
    When you check calls in user exit, then you will find SAPMV45A where VBAK or other sales document information structure are avaliable. then you can use this informaiton as follows:
    Example:
    CONSTANTS: C_VBAK(14) TYPE C VALUE '(SAPMV45A)VBAK',
    FIELD-SYMBOLS: <FS_VBAK> TYPE VBAK.
    ASSIGN (C_VBAK) TO <FS_VBAK>.
    CHECK <FS_VBAK>-AUART = C_ZSQT OR
    <FS_VBAK>-AUART = C_ZDQT.
    SELECT SINGLE AUART
                          FROM VBAK
                          INTO V_AUART
                          WHERE VBELN = <FS_VBAK>-VGBEL.
    In your case, go in debugging mode of user exit.. EXIT_SAPLEBND_001..
    Click "calls"... check the programs.. and try to find out which program contains the required variable and its value..
    then you can use it as explained above....
    I hope it is solved...

  • User exit to check user variable values

    Hi All,
    We have a user exit variable based on CALYEAR (to have the  last year as default value).
    Therefor, the user could choose another value (year)  but not values later than 2 last years.
    For instance, in 2010, the default value is 2010, and the user could choose 2009 or both 2010 and 2009.
    How can we check the user variable entries, and how can we prevent the user to do this.
    In other words, could you please give us the step number when we have put this checking (1, 2 or 3), and
    If itu2019s possible the ABAP programme to do this.
    Thank you in advance.
    Radjech.

    hi Radjech
    you can reach that with the i_step = 3.
    The step 3 is used for validation. This step checks the variable value keyed in by the user to see if you allow him to proceed the query.
    Here is an example.
    This code it to be included after the i_step = 1 where you give the default value of the year.
    Anyway the I_step = 3 is called only once.
    The case endcase is declared for the whole coding in the user exit. So for example you have
    Case i_vnam
    if i_step = 1.
    your treatment for default value.
    Endif.
    Then you give in the below coding.
    if i_step = 3.
    read table i_var_range into s_var_range with key vnam = zvar_calyear. " here I assume you have defined your simple and unique variable with the same technical name.
    if sy-subrc = 0.
    l_queriedyear = l_s_var_range-low(4) " here you retrieve the value of the variable in a local variable.
    endif.
    l_currrentyear =sy-datum(4). " here you take the current date and put it in a variable.
    if l_currrentyear - l_queriedyear > 2. " here you make the comparison of the current system date and the year of the variable. if it is > to 2 then raise the validation
    raise wrong_value. " here you can use  a raise wrong value
    Endif.
    Endif.
    Or you can combine a message with a raise like follows
    therefore example should be
    if i_step = 3.
    read table i_t_var_range into l_s_var_range with key vnam = zvar_calyear.
    if sy-subrc = 0.
    l_queriedyear = l_s_var_range-low(4)
    endif.
    l_currrentyear =sy-datum(4).
    if l_currrentyear - l_queriedyear > 2.
    Call functinn 'RRMS_MESSAGE_HANDLING'
    Exporting
    I_class = 'RSBBS'
    I_TYPE = 'I'
    I_number = '000'
    I_MSGV1 = 'Year value to big'.
    Raise wrong_value.
    Endif.
    Endif.
    eNDCASE.
    Boujema

Maybe you are looking for

  • Itunes "Apple Mobile Device Service" Installation error

    Im trying to install Itunes and i receive this error: "Service 'Apple Mobile Device' (Apple Mobile Device) failed to start. Verify that you have sufficient privileges to start system services." I started services.msc and there isn't a service called

  • Use Oracle RAC Database 10g on SunOS nova 5.9

    Hello! We use Oracle RAC Database 10g Enterprise Edition Release 10.1.0.5.0 - 64bit that consist of two nodes on SunOS nova 5.9 Generic_117171-17 sun4u sparc SUNW,Sun-Fire-V440. Connection string as follows: jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALAN

  • Planned Order Profile for REM

    Hi, Is Planned order profile for REM needs to configured for Planned Order type PE in IMG(T Code OMDD). Thanks in Advance. Regards, PPcon

  • My iTouch won't turn on no matter what I do

    I have an iTouch, and for some reason... It won't turn on. I tried resetting it by holding both buttons, plugging it into the computer, waited about 25 minutes to see if it was dead & it still WILL NOT turn on. My computer won't even recognize it. Wh

  • Lost my eBay/Paypal Ringtone (ChaChing) How do I get it back??

    Anyone know what I'm talking about?  I miss having this tone pop-up when someone buys an item or makes a payment to my PayPal account.  Any suggestions??