How to see function exit Z_STRUCTURE_MAPPER_AFTER

Hi,
PROBLEM:I want to find out where and How function exit is called in my program.
I have one program that will load Temporary table entry to Permanebt table in MW.
Program Z_ASCI_ADAPTER_INVOKE is calling customer exit Z_STRUCTURE_MAPPER_AFTER
to map some field while loading data from temp table to permanent(Consolidated database) table.
Can any one please tell me how it is calling in my program.
Even after debugging the program I am not able to find out  where exit is called.

Hi Amit,
I would suggest to display the function in SE37 (or in SE38 if it is a program) and then use the 'where used' button.
best regards
Christophe

Similar Messages

  • How to see user exit code

    hi,
    i have one user exit name with me like EXIT_SAPLVxxxxx. how can i see it's code.
    thks

    Those user exits are build as function modules. Just goe to transaction SE37, put in the name and there you go. Double click on the include in the FM and you'll see the code. If the include doesn't exist this user exit has not yet been implemented.
    Regards,
    Michael

  • Writing function Exits

    Hi All,
          I m very much interested in knowing how to write function exits in BPS. Can any body pls explain me how to write them step by step.
          Pls suggest me some very good documents on this.
        Is there any standard exits given by SAP? If so pls tell me the names of those exits.
    Regards,
    Ramana.

    Hi Ramana,
    the first (Init) FM has to be used if you need to perform some actions only once before any other operation. In this "how to" doc you read the input file.
    About this FM SAP says:
    <i>"This function module is optional. It is only required if new transaction data records are to be generated in the planning function that are different, in terms of the combinations of values, to characteristics in the previous transaction data that are not to be changed. The keys for these new transaction data records are delivered by the function module in the table ETO_CHAS. The keys are supplemented by the keys of the transaction data that already exist. The data objects for which the planning function is called up are formed from these keys. They also influence how often and with which combinations of transaction data the second function module is called up."</i>
    The second FM is executed many times  and in this "how to" is used to write data: you can easily get that it moves data read from the input file xth_data.
    About SAP says:
    <i>"A function module that is called up several times and that changes transaction data records. This function module receives a package of transaction data records in each case. These differ only in their characteristics to be changed. They have the same values as far as all other characteristics are concerned. The transaction data is in table XTH_DATA. Only the existing records are transferred. If key combinations were returned by the initialization function module, and no transaction data exists for these, then table XTH_DATA is empty. The key combination is in the table ITO_CHASEL."</i>
    Generally you have to implement the second FM (mandatory) that performs calculations on xth_data table: implementing the first (optional FM) depends on your business requirements.
    Hope it helps
    GFV

  • How to run function(s) on ANY program exit?

    I can easily do this when someone selects "Exit" from the program's menu, with this code:
    AllSortsOfExitCode()
    System.out.println("Ok, everything is wrapped up. Now we will end the program.");
    System.exit(0);
    BUT...how do you get this code to run when someone clicks the little X in the upper-right hand corner?
    I can't figure out how to do that.
    I need to override the class destructor or something, but I don't think Java has destructors in the classic sense. I found one 4-page thread about "Java destructors" but it was just an argument between a couple people -- I didn't learn anything from it.
    Thanks,
    Matthew

    CathInfo wrote:
    BUT...how do you get this code to run when someone clicks the little X in the upper-right hand corner?
    Thanks,
    MatthewThe earlier replies cover the case you described above. But your thread title says something else:
    How to run function(s) on ANY program exit?Answer - you can't. Power loss can't be handled. Shutdoen hooks can help with most other conditions, see
    http://www.google.com/search?num=100&hl=en&c2coff=1&q=java+shutdown+hook&btnG=Search

  • How to read data from a function exit

    Hi friends,
    I have a requirement, where in i am creating a screen exit for ME51N.I am using MEREQ001 enhancement for this.It is working fine, but i am to get data in to this so as to write any code.For that i am using the function exit EXIT_SAPLMEREQ_001 in that same enhancement(thought of doing export and import).
    But the data is declared in this way..
    REFERENCE(IM_REQ_ITEM) TYPE REF TO IF_PURCHASE_REQUISITION_ITEM
    so now it is having a method GET_DATA in which i have all the parameters required.
    can anyone please tell me how to read this data...
    Regards,
    Thoufique.

    thats ok friends..i got the solution.
    Regards,
    Thoufique

  • How to find function module exit name when i know the Include

    As per my requirement i should change the existing exit. I know the include name but i want to
    know exit name. How to find out exit name based on include name. I tried Where-used list but it
    is not giving the exit and function module name.Please let me know.
    Regards
    Rajitha

    Hello Rajitha,
    1. You can do a "where-used" for the include & get the corresponding name of the exit function module.
    2. Goto table MODSAP & in the field MEMBER pass the name of the function module & you will get the Exit Name in the NAME.
    Hope this helps.
    BR,
    Suhas
    Edited by: Suhas Saha on Mar 16, 2009 3:08 PM

  • How to see the keyboard shortcuts in pages like " alt " function in word?

    how to see the keyboard shortcuts in pages like " alt " function in word?

    luisandre wrote:
    In word , if you press "alt" show you all the options you have . Appear numbers or letters  in each options of the toolbar. So is more easy to work with the keyboard. How do you do this in pages?
    Go to system preferences/language & text/input sources and check the box for Keyboard Viewer.  Then select Keyboard Viewer from the "flag" menu at the top right of the screen.  It will show all the special characters you can make when you press the alt and alt + shift keys.

  • How to see an exisitng SAP Exit?

    Hi gurus
    how can i see the exitsing SAP/Customer Exits.
    Thanks in advance
    Peter

    Hi,
    To see SAP Exits -> Use Tcode SMOD
    To See Customer Exits -> Use Tcode CMOD
    There are projects to which Exits are assigned. Selects the relevant projects.
    What is User Exit:
    http://www.sap-img.com/abap/what-is-user-exits.htm
    How to find then:
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    All Exits List:
    http://www.easymarketplace.de/userexit.php
    Hope this helps
    Happy Tony

  • BPS function exit  how to

    Hi all,
    I have some bad fund in my cube. So to correct these bad funds, I am using function exit in BPS. My question is: Do I need to implement the initialization function and exit function both. how could I write these function modules.
    does anybody have sample coding for these functions.
    any help appreciated.
    Thanks.
    BNP

    Thanks ATW and all.
    But I still could not figure it out.
    I am trying to summarize my problem and code here.
    FUNCTION Z_INFOPROV_FUND_EXIT.
    ""Local Interface:
    *"  IMPORTING
    *"     REFERENCE(I_AREA) TYPE  UPC_Y_AREA OPTIONAL
    *"     REFERENCE(I_PLEVEL) TYPE  UPC_Y_PLEVEL OPTIONAL
    *"     REFERENCE(I_METHOD) TYPE  UPC_Y_METHOD OPTIONAL
    *"     REFERENCE(I_PARAM) TYPE  UPC_Y_PARAM OPTIONAL
    *"     REFERENCE(I_PACKAGE) TYPE  UPC_Y_PACKAGE OPTIONAL
    *"     REFERENCE(IT_EXITP) TYPE  UPF_YT_EXITP OPTIONAL
    *"     REFERENCE(ITO_CHASEL) TYPE  UPC_YTO_CHASEL OPTIONAL
    *"     REFERENCE(ITO_CHA) TYPE  UPC_YTO_CHA OPTIONAL
    *"     REFERENCE(ITO_KYF) TYPE  UPC_YTO_KYF OPTIONAL
    *"  EXPORTING
    *"     REFERENCE(ET_MESG) TYPE  UPC_YT_MESG
    *"  CHANGING
    *"     REFERENCE(XTH_DATA) TYPE  HASHED TABLE
    functional requirement.
    correct fund value in the given cube zxxx1.
    *characteristics                  key values
    *fund     fund center             key1    key2
    *1A2      4562389                 300     500     -
    line 1
    *to correct the fund above, I am adding these two records
    *2A2      4562389                 300     500     -
    line2
    *1A2      4562389                -300    -500     -
    line3
    *I am trying to accomplish the above scenario.
    *Could you please tell me what I am missing.
    *Here is my code
      TYPES: begin of f_c,
                 v_from type /BIC/OIZVAL_FROM,
                 fund   type /BI0/OIFUND,
             end of   f_c.
      Data:  t_fund type table of f_c,
             w_fund type f_c,
             old_fund(10) type c..
      FIELD-SYMBOLS: <fundctr> type any,
                     <fund>    type any,
                     <s_kyfs>  type any,
                     <s_chas>  type any.
      field-symbols: <t_data> type hashed table,
                     <chavl>  type any,
                     <value>  type any,
                     <s_data> type any.
      data: ls_data type ref to data,
            lt_data type ref to data,
            l_chavl type upc_y_chavlint,
            ls_chasel type upc_ys_chasel,
            ls_charng type upc_ys_charng.
      data: l_app type ref to cl_upx_application.
      l_app = cl_upx_application=>get_instance( i_area ).
      lt_data = l_app->create_th_data( ).
      assign lt_data->* to <t_data>.
      ls_data = l_app->create_s_data( ).
      assign ls_data->* to <s_data>.
      <t_data> = xth_data.
      clear xth_data.
    transaction data
      loop at <t_data> assigning <s_data>.
        ASSIGN COMPONENT 'S_CHAS' OF STRUCTURE <s_data> TO <s_chas>.
        ASSIGN COMPONENT 'S_KYFS' OF STRUCTURE <s_data> TO <s_kyfs>.
        check sy-subrc eq 0.
        ASSIGN COMPONENT '0FUND' OF STRUCTURE <s_chas> TO <fund>.
        check sy-subrc eq 0.
        check not <fund> is initial. "no need to check for blank fund
        old_fund = <fund>. "holding old fund for third record above
       here add new record with new fund but with same key figures and characteristics
        ASSIGN COMPONENT '0FUNDS_CTR' OF STRUCTURE <s_chas> TO <fundctr>.
        check sy-subrc eq 0.
        select /BIC/ZVAL_FROM fund into table t_fund from /BIC/AZFMDERIV00
                          where /BIC/ZVAL_FROM <= sy-datum and
                                /BIC/ZSOUR1_TO = <fundctr>.
        check sy-subrc eq 0.
        sort t_fund by v_from descending.
        read table t_fund into w_fund index 1.
        <fund> = w_fund-fund. "new correct fund.
        collect <s_data> into xth_data. "adding line 2 above
       here add new record with all key figures values reversed
       return back old fund now.
        <fund> = old_fund.
        LOOP AT ito_chasel INTO ls_chasel.
        select struture with characteristics
          ASSIGN COMPONENT 'S_KYFS' OF STRUCTURE <s_data> TO <s_kyfs>.
        choose char according to ito_chasel
          ASSIGN COMPONENT ls_chasel-chanm OF STRUCTURE <s_kyfs> TO <value>.
        select value according to ito_chasel
          READ TABLE ls_chasel-t_charng INTO ls_charng INDEX 1.
        set char value
          <value> = ls_charng-low * -1.
        ENDLOOP.
        collect <s_data> into xth_data. "adding line 3 above
      endloop.
    ENDFUNCTION.

  • Function Exit , How to Debug

    hi
    i have created five function with four are hidden and one function Exit , for Function Exit i am using functin module , but when i put a Breakpoint in Function module and run the BPS , Debugging is not working out , it directly executing.
    can anyone help me how to debug the function exit(Function Module) before running the report

    Hi,
    Go to that corresponding parameter group for that exit function, right click -execute with trace..it will take you to debugging screen..  (put a breakpoint before execution)

  • How to use the variables of Function exit in the include program

    i have a problem of using the variables of a function exit in the include program..
    If i use those variables there will be an error indicating 'Field FEBVW_IN is unknown. It is neither in one of the specified tables nor defined by a DATA statement'. Please help... Below is the code of the function exit:
    FUNCTION EXIT_SAPLIEDP_202.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(IDOC_CONTROL_INDEX)
    *"     VALUE(IDOC_DATA_INDEX)
    *"     VALUE(FEBVW_IN) LIKE  FEBVW STRUCTURE  FEBVW
    *"     VALUE(FEBKO_IN) LIKE  FEBKO STRUCTURE  FEBKO
    *"     VALUE(FEBEP_IN) LIKE  FEBEP STRUCTURE  FEBEP
    *"     VALUE(FEBRE_IN) LIKE  FEBRE STRUCTURE  FEBRE
    *"     VALUE(FEBPI_IN) LIKE  FEBPI STRUCTURE  FEBPI
    *"  EXPORTING
    *"     VALUE(I_FIMSG) LIKE  FIMSG STRUCTURE  FIMSG
    *"     VALUE(FEBVW_OUT) LIKE  FEBVW STRUCTURE  FEBVW
    *"     VALUE(FEBKO_OUT) LIKE  FEBKO STRUCTURE  FEBKO
    *"     VALUE(FEBEP_OUT) LIKE  FEBEP STRUCTURE  FEBEP
    *"     VALUE(FEBRE_OUT) LIKE  FEBRE STRUCTURE  FEBRE
    *"     VALUE(FEBPI_OUT) LIKE  FEBPI STRUCTURE  FEBPI
    *"  TABLES
    *"      IDOC_CONTROL STRUCTURE  EDIDC
    *"      IDOC_DATA STRUCTURE  EDIDD
    *"      IDOC_AVIP STRUCTURE  AVIP OPTIONAL
    *"      IDOC_AVIR STRUCTURE  AVIR OPTIONAL
    *"      IDOC_AVIT STRUCTURE  AVIT OPTIONAL
    *"  CHANGING
    *"     REFERENCE(IDOC_AVIK) TYPE  AVIK OPTIONAL
    *"  EXCEPTIONS
    *"      PROC_ERROR
      INCLUDE ZXF08U10.
    Here is the code for the include program.
      INCLUDE ZXF08U10
    MOVE febvw_in TO febvw_out.

    Sometimes you will get this error message when checking include code in exits even though there is really no error - it happens because the include does not realise it is in the function due to the navigation index being out of date.
    Try activating the code - it may work even though the check said there were errors.
    You can also get this issue when trying to drill down on the field in the include to view its structure.
    Andrew

  • How to add function key to a menu exit in a standard transaction

    Hi all,
    I have a requirement to add a function key for a menu item in a standard transaction.
    In Menu bar we have an option Extras->Other->Repricing . Now my requirement is if i click a function key (ex. F9) the code under the menu exit (Repricing) should trigger. For that i had a function exit EXIT_SAPLJHPA_011 and in this the menu exit SAPLJHPA +CU7 is defined.could anyone suggest me the procedure in detail to add a function key..
    Thanks in advance,
    Uday.

    Hi
    for this u have to edit standard PF-status, that particular transaction is using. becarefull as the same pf-status may be used for many programs.
    get the PF-status for that program. you can get the pf-status via se80, give the program name and u can get the the list of all the objects of that prigram, there you can edit the standard status and can add the function key to your menu item.

  • How to write BDC in Function exit (user exit )

    Hi champs,
    I am trying to write one bdc code in a function exit but it is giving me the error:
    " Incorrect nesting: Before the statement "FORM", the structure
    introduced by "FUNCTION" must be concluded with "ENDFUNCTION". -     
    The code which i have written is
    **&  Include           ZXMRCU01
    data: begin of it_imptt occurs 0,
            POINT like imptt-point,
            MRMIN like imptt-MRMIN,
            MRMAX like imptt-MRMAX,
          end of it_imptt.
    Internal table to store BDC screens   *
    and field values                      *
    DATA: BEGIN OF it_BDCDATA OCCURS 0.
            INCLUDE STRUCTURE BDCDATA.
    DATA: END OF it_BDCDATA.
    select point
           MRMIN
           MRMAX from imptt into it_imptt
           for all entries in imrg_ins
           where point = imrg_ins-point.
    endselect.
    read table imrg_ins with key point = it_imptt-point.
    if imrg_ins-readg < it_imptt-mrmin
         or imrg_ins-readg > it_imptt-mrmax.
      perform bdc_dynpro      using 'SAPLIQS0' '0100'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RIWO00-QMART'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'RIWO00-QMART'
                                            'M1'.
      perform bdc_dynpro      using 'SAPLIQS0' '7200'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BUCH'.
      perform bdc_field       using 'VIQMEL-QMTXT'
                                            'test desc1'.
      call transaction 'IW21'
                            using it_BDCDATA
                              Mode 'A'
                                update 'S'.
      REFRESH it_BDCDATA.
    endif.
    **&      Form  bdc_dynpro
          text ---- Taking 2 parameters Screen Name & Screen Number.
    FORM BDC_DYNPRO USING SCREEN_NAME SCREEN_NUMBER.
      CLEAR it_BDCDATA.
      it_BDCDATA-PROGRAM = SCREEN_NAME.
      it_BDCDATA-DYNPRO = SCREEN_NUMBER.
      it_BDCDATA-DYNBEGIN = 'X'.
      APPEND it_BDCDATA.
    ENDFORM.                    "bdc_dynpro
    **&      Form  bdc_field
          text---- Taking 2 parameters Field Name & Field Number.
    FORM BDC_FIELD USING FNAME FVAL.
      CLEAR it_BDCDATA.
      it_BDCDATA-FNAM = FNAME.
      it_BDCDATA-FVAL = FVAL.
      APPEND it_BDCDATA.
    ENDFORM.                    "bdc_field     
    Is there any different way of writing bdc in user exit?

    <b>FUNCTION.</b>
    **& Include ZXMRCU01
    data: begin of it_imptt occurs 0,
    POINT like imptt-point,
    MRMIN like imptt-MRMIN,
    MRMAX like imptt-MRMAX,
    end of it_imptt.
    Internal table to store BDC screens *
    and field values *
    DATA: BEGIN OF it_BDCDATA OCCURS 0.
    INCLUDE STRUCTURE BDCDATA.
    DATA: END OF it_BDCDATA.
    select point
    MRMIN
    MRMAX from imptt into it_imptt
    for all entries in imrg_ins
    where point = imrg_ins-point.
    endselect.
    read table imrg_ins with key point = it_imptt-point.
    if imrg_ins-readg < it_imptt-mrmin
    or imrg_ins-readg > it_imptt-mrmax.
    perform bdc_dynpro using 'SAPLIQS0' '0100'.
    perform bdc_field using 'BDC_CURSOR'
    'RIWO00-QMART'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RIWO00-QMART'
    'M1'.
    perform bdc_dynpro using 'SAPLIQS0' '7200'.
    perform bdc_field using 'BDC_OKCODE'
    '=BUCH'.
    perform bdc_field using 'VIQMEL-QMTXT'
    'test desc1'.
    call transaction 'IW21'
    using it_BDCDATA
    Mode 'A'
    update 'S'.
    REFRESH it_BDCDATA.
    endif.
    <b>ENDFUNCTION.</b>
    **& Form bdc_dynpro
    text ---- Taking 2 parameters Screen Name & Screen Number.
    FORM BDC_DYNPRO USING SCREEN_NAME SCREEN_NUMBER.
    CLEAR it_BDCDATA.
    it_BDCDATA-PROGRAM = SCREEN_NAME.
    it_BDCDATA-DYNPRO = SCREEN_NUMBER.
    it_BDCDATA-DYNBEGIN = 'X'.
    APPEND it_BDCDATA.
    ENDFORM. "bdc_dynpro
    **& Form bdc_field
    text---- Taking 2 parameters Field Name & Field Number.
    FORM BDC_FIELD USING FNAME FVAL.
    CLEAR it_BDCDATA.
    it_BDCDATA-FNAM = FNAME.
    it_BDCDATA-FVAL = FVAL.
    APPEND it_BDCDATA.
    ENDFORM. "bdc_field
    Regards
    Peram

  • How to find Implemented Function Exits and SMOD Enhancements?

    Hi,
    I have a list of approximately 100 function exits (EXIT_......) and enhancements in SMOD.
    Is there any table or Function Module which can give me the implemented function exits and enhancements from the list that I have.
    Thanks in advance.
    Mick

    steps:
    1. SE11
    2. Table name:  TADIR
    3. In the selection screen give object type as CMOD and Object Name as Z*
    4.Execute. you will get all exits implemented in your system.
    OR
    Check the table MODACT and field NAME . Look for the NAME starts with Z or Y ( Z* or Y*) . You will get all enhancement of customer (CMOD)
    Edited by: Mohamed Aboobacker Siddique Abdul Hameed on May 10, 2009 1:21 PM

  • How to Create Menu Exit

    Hi,
       Please tell me steps for how to create Menu Exit. Please Help me

    MENU EXITS
    Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu entries in the GUI interface. The developer can add his/her own text and logic for the menu.
    Function codes for menu exits all start with "+"
    Example
    We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will
    run report ZTEST.
    Goto transaction SE43 Area Menu Maintenance
    In Area Menu Paramenter type 'S000' (S triple Zero)
    Select Change and ignore all the warning screens
    Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"
    Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01
    Goto transaction SE93 and create transaction +C01 that calls report ZTEST.
    Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.
    There are 'only' 177 Menu exits in standard - I couldn't see the right one, too.
    But you could search the implemented exits, this should be only a small number. Go to transaction CMOD, enter * and F4, information system (F5), show all selections (Shift+F7) and then you can restrict to search only menu exits.
    Of course there is the possibility, that these are added in a different way...
    ... at least you can be sure, if it's a normal menu exit.
    Check this sap help..
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
    http://www.sapbrainsonline.com/TUTORIALS/default.html
    You can achieve this functionality by configuring in IMG.
    Please find the info regarding User-Exit's in the following links:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/frameset.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    Re: doubt on user exits
    user exits and Badis
    User exits is the enhancements provided by SAP
    You can use them in transactions. Each transaction will have user exits.
    If you want to use your own requirements by making your coding while the transaction is run you can use user exits.
    For example if you want to run the MRP in MD02 specific to MRP controller you can user exit.
    Please also refer the document below.
    USEREXIT
    Userxits allow us to add our own functionality to SAP standard program
    without modifying it . These are implemented in the form of subroutines and hence are also known as FORM EXITs. The userexits are generally collected in includes and attached to the standard program by the SAP.
    All Userexits start with the word USEREXIT_...
    FORM USEREXIT_..
    z..
    ENDFORM.
    The problem lies in finding the correct userexit and how to find it if one exists for the purpose. Once the correct userexit is found the necessary customer code is inserted in the customer include starting with the z.. in the form routine.
    e.g. USEREXIT_SAVE_DOCUMENT_PREPARE
    Certain application like SD still provide this form of enhancement using userexit but this practice is no longer being followed for newer extensions instead they are using EXITs which come bundeled in enhancement packages . Neverthiless existing USEREXITS will be supported by SAP an all the newer versions of SAP.
    HOW TO FIND USEREXITS
    Userexits can be found in number of ways:
    1) To find userexits in SD module , goto object navigator(SE80) and select
    development class from the list and enter VMOD in it. All of the userexits in SD are contained in the development class VMOD. Press enter and you will find all the includes which contain userexits in SD for different functions like PRICING, ORDER PROCESSING etc. Select the userexit according to the requirement and read the comment inserted in it and start coding .
    Some examples of userexits in SD(SALES & DISTRIBUTION ) are:
    1)ADDING OF NEW FIELDS IN PRICING
    In Pricing in SD the fields on the basis of which pricing is done are derived from the FIELD CATALOG which is a structure KOMG .This structure is used to transfer transaction data to the pricing procedure in SD and is also known as communication structure.This structure KOMG consists of two tables KOMK for Header related fields and KOMP for item related fields. The fields which are not in either of the two tables KOMK and KOMP cannot be used in pricing .Sometimes a need arises when the pricing is to be based on some other criteria which is not present in the form of fields in either of the two tables. This problem can be solved by using USEREXITS which are provided for pricing in SD. Pricing takes place both when the SALES ORDER ( Transaction VA01) is created as well as when INVOICING ( Transaction VF01) is done.Hence SAP provides 2 userexits ,one for sales order processing which is
    USEREXIT_PRICING_PREPARE_TKOMP or
    USEREXIT_PRICING_PREPARE_TKOMK
    Depending upon which table (KOMK or KOMP) the new fields were inserted we use either of the above two userexits.These userexits are found in include MV45AFZZ of the standard SAP sales order creation program SAPMV45A.
    In the case of userexit which will be called when invoicing is done ,these
    are provided in the include RY60AFZZ which is in the standard SAP program SAPMV45A. The name of the userexits are same. i.e
    USEREXIT_PRICING_PREPARE_TKOMP or
    USEREXIT_PRICING_PREPARE_TKOMK
    These userexits are used for passing the data from the communication structure to the pricing procedure, for this we have to fill the newely created field in the communication structure KOMG for this we fill the code in the above userexit using the MOVE statement after the data that has to be passed is taken from the database table by using the SELECT statement. The actual structure which is visible in these userexits and which is to be filled for that particular field is TKOMP or TKOMK.
    Before the coding for these userexits is done ,it is necessary to create a new field in either of the two tables KOMK or KOMP .For this purpose includes are provided in each of them .
    To create the field in header data(KOMK) the include provided is KOMKAZ
    and to create the field in item data(KOMP) the include provided is KOMPAZ.
    One possible example for the need of creating new fields can be e.g. Frieght to be based upon transportation zone ,for this no field is available in field catalog and hence it can be created in KOMK and then above userexits can be used to fill the transportation data to it.
    2)The other method of finding userexit is to find the word USEREXIT in the
    associated program of the transaction for which we want to determine userexit using SE38.
    3)The other method of finding userexits is to find the include in case of SD/MM applications where the userexits are located ,this can be found in the SAP reference IMG generally in the subfolder under SYSTEM MODIFICATION.
    Some other examples of userexits in SD are:
    USEREXIT_NUMBER_RANGE
    This userexit is used to assign a different internal document number to the
    sales order(VA01) when it is created depending on some criteria like a different SALES ORGANIZAION(VKORG) .
    USEREXIT_SAVE_DOCUMENT_PREPARE
    This userexit is used to insert the ABAP code which will be called when
    the document (sales order VA01) is just about to be saved.This userexit is used generally for custom checks on different fields , to display some information before the order will be saved or for making changes to certain fields before the sales order will be saved.
    Exits & Enhancements
    There are mainly six types of EXITs in sap which have been collected in the form of enhancement packages and attached to standard code in SAP.
    These are different from USEREXIT in the way that they are implemented
    in the form of FUNCTIONs while in USEREXITS we use form routines for their implementation. These are also sometimes known as function exits .
    These start from the word EXIT_ followed by the program name and then followed by a three digit number.
    e.g. EXIT_SAPMV45A_002
    This exit is found in SD in enhancement V45A0002.
    TYPES OF EXITS
    1)MENU EXITS
    2)FUNCTION EXITS
    3)TABLE EXITS
    4)SCREEN EXITS
    5)KEYWORD EXITS
    6)FIELD EXITS
    We use SAP transactions CMOD and SMOD to manage exits. Before implementing an exit , it is required to create the project by using CMOD
    selecting the enhancement e.g. V45A0002 and selecting the component
    (one which fulfills our need) i.e the exit which will be implemented in SMOD and after coding has been done the project has to be activated.
    An exit can be coded only once.
    FUNCTION EXITS
    These are used to add functionality through ABAP code . These start from the word EXIT_programname_NNN ending in a 3 digit number. No access code is required to implement any tupe of exit including function exits.
    The function exits are called from the standard SAP program in the form
    of ABAP statement
    CALL CUSTOMER-FUNCTION 'NNN'
    This is in contrast to USEREXITs where PERFORM statement is used to call
    the required userexit.
    To implement the FUNCTION EXITs first of all the project is created and a suitable enhancement package is selected and from its compnents the function exit to be implemented is selected and on double clicking it the exit code will appear in ABAP EDITOR(se38) where a Z include will be found and the customer code should be entered in this include.
    e.g.
    ADDING A DEFAULT SOLD-TO-PARTY in Sales Order Creation
    To show a default sold-to-party in this field when the user creates a sales order (VA01) we can use a function exit .This function exit is located in enhancement no V45A0002 . Before we can choose the exit we have to create a project in CMOD after that enter V45A0002 in the enhancement field and click on the components . In the components you will see the exit EXIT_SAPMV45A_002 . This exit is used for our purpose.
    Double clicking on this exit will takes us to function builder (SE37) . This
    function exit has one exporting parameters and two importing parameters, we are interested in exporting parameter which is E_KUNNR of type KNA1-KUNNR i.e if we move the desired customer name to this structure(E_KUNNR) it will be shown in the field as the default value when we create the sales order. This function also contains a customer include ZXVVA04 . This include will be used to write our custom code .
    Double clicking on this include and it will prompt us that this include does not exists do you want to create this object ,select yes and the include will be created .In this include we can write our own code that will fill the field E_KUNNR.
    e.g. E_KUNNR = 301.
    Activate the include and Activate the project. Now when ever the SALES ORDER will be created , sold-to-party field will come up with a predefined customer .
    FIELD EXITS
    The field exits are managed,created,activated through program RSMODPRF. The field exit is associated with a data element existing in ABAP dictionary and hence to the screen field using that data element.
    The format of field exit is :
    FIELD_EXIT_dataelement_A-Z or 0-9
    If a particular screen and program name is not specified than the field exit will effect all the screens containing that data element.
    The function module associated with field exit shows two parameters
    INPUT and OUTPUT. Input parameter contains the data passed to the field exit when the field exit was invoked by the R/3 , We can write our own code to change the output parameter depending upon our requirements.
    Before the field exit can have any effect the system profile parameter
    ABAP/FIELDEXIT in all the application servers should be set to YES
    ABAP/FIELDEXIT = YES.
    Reward points Please ...

Maybe you are looking for