ABAP User exits

Hi all,
        Iam new to user exits can any body send me some examples for Function Module exits
Thanks in Advace
                                        WIth Regards
                                          Ranjith

Hello Ranjith
Sorry to say that but the document http://www.sappoint.com/abap/userexit.pdf is completely out-of-date. It only describes the old-fashioned user-exits (of which we still have plenty in the system) yet the document does not say anything about BTEs (Business Transaction Event, see transaction FIBF) nor BAdI (transaction SE18/SE19).
It is good to know the old user-exits yet you should fully understand how the modern BAdIs work. Understanding BTEs as well is an asset.
Regards
   Uwe

Similar Messages

  • Doubts in abap user exit and coustomer exit

    Hi every bady,
    Any one knows the different between user exit and coustomer exit please answer my question
    with regards,
    Sentha

    Hi,
    Difference between user exits & customer exits:
    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
    Customer exit - The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.
    The following links are also useful:
    User Exit Vs Customer Exit
    coding in user exit in program rffous_t
    User exits
    User Exits
    Refer this link
    http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975e643b111d1896f0000e8322d00/frameset.htm
    Check the following links.
    For customer exits
    http://help.sap.com/saphelp_erp2005/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/c8/1975d943b111d1896f0000e8322d00/frameset.htm
    Difference b/w BADI and user exits
    http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
    User Exits
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    Regards,
    Rakesh

  • HR ABAP : User Exit after Position Creation

    Hi,
    We had a requirement of automatic creation of certain Relationships after the creation of position in HR.
    Is there any USER EXIT for such cases?
    I need an user exit which should get triggered after the creation of the Position.
    Can anyone let us know the enhancement name if it exists?
    Regards,
    <i><b>Raja Sekhar</b></i>

    Hi Raja Shekhar,
    Chk this link...this might help you out.
    http://www.planetsap.com/Userexit_List.htm
    Reward points if you find this as a right solution
    Regards,
    Harini

  • ABAP-User Exit CONFPP05 (T-code co11n) ---- Duprec exception

    I'm currently working on user exit CONFPP05 (T-code co11n)
    I'm trying to validate shift hour not more than 8 hours.
    total_jam = v_iserh + v_ism01 + v_ism02 + v_ism04 + afrud_tab-ism01 + afrud_tab-ism02 + afrud_tab-ism04.
    IF total_jam > 8.
       MESSAGE 'Jam Total Shift > 8 !!!' TYPE 'E'.
    ENDIF
    and I'm facing a problem, when i give error message with type E.
    When the program execute that error, the program succesfully run the error message, buat after that, when I press ENTER or SAVE button, it give me runtime error
    here I catch some error
    "Exception condition "DUPREC" raised."
    Error analysis A RAISE statement in the program "SAPLCORB" raised the exception condition "DUPREC". Since the exception was not intercepted by a superior program, processing was terminated.
    Short description of exception condition:
    For detailed documentation of the exception condition, use
    Transaction SE37 (Function Library). You can take the called
    function module from the display of active calls.
    Trigger Location of Runtime Error
    Program                                 SAPLCORB
    Include                                 LCORBU08
    Row                                     100
    Module type                             (FUNCTION)
    Module Name                             CO_RU_DI_AFRU_INSERT
    How can I deal with this problem?

    Hi
    Keshav is right. To display the messages see SAP Note 406633 - No information messages from customer exit. For further information see SAP Note 367489 - Customer exits of confirmation.
    Regards
    Eduardo

  • ABAP Objects available in a USER-EXIT

    Dear Sir,
    I am very new to ABAP / User-Exit . To learn about User-Exit , I was refereing one tutorial related to USER-EXIT implementation in VL01 (form userexit_save_document_prepare) .
    Sir , in this sample User-Exit , author is referring ABAP Objects like : xlips-lgort / xlips-matnr  etc .
    Sir , my query is that how can we know that which objects are available which can be used in a User-EXIT .  How a new user like me will come to know that object  xlips-lgort  can be used in this User-Exit .
    Pl help me .
    Regards
    B Mittal

    Hi,
    A user exit is similar to an function module. The difference is you can write your own piece of code in a user exit to fulfill your requirements. If you look into the IMPORT parameters of the User Exit all these variable in the IMPORT are inputs to your exit. All the variables in the EXPORT parameters are the ones that can be sent out of the exit. You can change all the variables that are present in bothe IMPORT and EXPORT parameters. Ex: If i have V_data in IMPORT as well as EXPORT then i can change the value of V_DATA from 1 to 2 and pass it to next step in the standard program.
    Also you have TABLES in user exit. These can be inputs and output parameters. For example i can enter a few records in the tables parameter IT_TAB in one of the exits and change these records inside the USer Exit include and export the same to the next step in the standard transaction.
    Hope this is helpful.... reward if useful.
    Thanks,
    Anil
    Edited by: Anil Japa on Mar 20, 2008 9:27 AM

  • Sales Order User Exits - configurable materials !?

    I have been tasked with investigating the following issue and if it can be solved via ABAP/User Exits. Users in an already live system are entering Sales Orders ( VA01 )with multiple Configurable Material line items and have to repeatedly enter the same characteristic values in each line item ( by entering Item Details >> Configuration ). They want to enter a set of characteristic values in the first line item and then have them defaulted into any further items. I have looked at the standard user exits in particular USEREXIT_MOVE_WORKAREA_TO_SDWA. Has anybody attempted anything similar to this !? Any ideas ?
    Possible issues are:
    1. How do I find the characterictic values from the 1st line item. ie. they haven't been saved yet, are they in a temp area similar to XVBAP for normal sales order line items !?
    2. Are there are any suitable user exits in the Configuration side of things ( Function Group CEI0 !? ) to effect any changes the defaults. There are some BADIs in the code but they are not yet in use !?

    Hi Jonathan!
    I had a different requirement with sales orders and configuration, but this forced me into long debugging of behavior of all these exits.
    1) Characteristics can't be read.
    ad 1) in configuration it's possible to call function modules. Here (inside the configuration) values of characteristics are available and can be saved in global data of a Z-function module. This is later (in same transaction) available (like import/export).
    2) I would propose to use functions of characteristics (as mentioned, it's possible to execute own function modules in configuration). It's possible to default values (meaning: output of your function is only done, if characteristic is not set) based on global data of Z-function module.
    As long as a global memory is used, no interaction with other transactions has to be feared.
    You don't need user exits (but a lot of coding).
    You need to change the customizing of configuration - probably a huge task, because I guess you have a huge configuration (otherwise users wouldn't ask for maintenance help).
    Regards,
    Christian

  • User exit for contract start date in sales order change mode.

    24.10.2008
    Hi Gurus,
    I need to disable the 'contract start date' (VEDA-VBEGDAT) field  in Contract data tab at header and item level. Can someone suggest a user exit for the same ???
    Regards,
    Udaynath

    Dear Udyanath,
    Please check these User exits with the help of ABAPer
    User exits in the program MV45AFZZ                                                                               
    The user exits which you can use for modifications in sales document         
    processing are listed below.                                                                               
    USEREXIT_FIELD_MODIFICATION                                              
         This user exit can be used to modify the attributes of the screen        
         fields.                                                                  
         To do this, the screen fields are allocated to so-called                 
         modification groups 1 - 4 and can be edited together during a            
         modification in ABAP. If a field has no field name, it cannot be         
         allocated to a group.                                                    
         The usage of the field groups (modification group 1-4) is as             
         follows:                                                                               
    -   Modification group 1:   Automatic modification with transaction      
             MFAW                                                                               
    -   Modification group 2:   It contains 'LOO' for step loop fields                                                                               
    -   Modification group 3:   For modifications which depend on check  tables or on other fixed information.
    USEREXIT_MOVE_FIELD_TO_VBAK                                                 
    Use this user exit to assign values to new fields at sales document         
    header level. It is described in the section "Transfer of the               
    customer master fields into the sales document".                            
    The user exit is called up at the end of the FORM routine                   
    VBAK_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBAP                                                 
    Use this user exit to assign values to new fields at sales document         
    item level. It is described in the section "Copy customer master            
    fields into the sales document".                                            
    The user exit is called up at the end of the FORM routine                   
    VBAP_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBEP                                                 
    Use this user exit to assign values to new fields at the level of           
    the sales document schedule lines.                                          
    The user exit is called up at the end of the FORM routine                   
    VBEP_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBKD                                                 
    Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer 
    master fields into sales document".                                  
    The user exit is called up at the end of the FORM routine            
    VBKD_FUELLEN.                                                        
    I hope this will help you,
    Regards,
    Murali.

  • User exit to make 262 movement go to QI rather than unrestricted status?

    Hi Gurus,
    In our system, we use "rework" production orders to occasionally rework Finished product.
    The same finished product code is used (261) and returned (101).
    Sometimes a 262 is used to retrieve unused Finished product back from the production order.
    However this naturally places it back in unrestricted status.
    What I'm being asked to investigate is whether there is anyway using the ABAP user exits
    to influence the 262 movement,during the transaction, for certain finished product only,
    so that the product ends up in Quality status - this is considered important
    to ensure the product is not shipped as it was only released to enter the rework order.
    On occasion the 262 is done in error, and in this case it would be especially useful!
    Having looked through the material doc user exits, and done a search on the forum,
    I don't think this is possible ABAP-wise,SAP intends a 262 to go to unrestricted and that's it..
    I'm thinking of instead creating a bespoke  authority object, to be checked under the above logic,
    so that only certain qualified users will be able to do this operation -
    but I want to throw the question out to forum before I resort to that..
    Thanks for any help/ideas,
    Paul

    Dear Paul,
    When the finished goods are found to be defective and needs to be reworked, first move the finished goods to a seperate st location (which is not relevant for MRP planning and not relevant for sales delivery. This by this the defective material is protected from being consumed or delivered).
    Then create a rewind production order (or a rework production order) and issue the defective material against the production order and start the rework.
    I am thinking what you said is not possible through user exit  (there is a BADI   MB_DOCUMENT_BEFORE_UPDATE or MB_DOCUMENT_UPDATE for material document movement) but you'll not be able to influence the stock to put in the quality.
    Thanks
    Nagarajan

  • User-exit/BADI during outbound ABAP proxy call

    Hello,
    I want to introduce certain check during outbound ABAP proxy calls to PI. This is a generic check, failure of which would stop the proxy call to proceed and raise an exception.
    I would like to place this at the generic place which is called for all the outbound ABAP proxy calls, rather than coding this in each and every outbound proxy class as the check is generic.
    Is there some user-exit/BADI where i can introduce this? Maybe within class CL_PROXY_OUTBOUND or somewhere else where i can introduce this check.
    Any help in this regard would be appreciated.
    Best Regards,
    Gajendra.

    Dear Gajendra ,
    i agree with sabrish, you must be having a z report on the application system that must be calling that outbound proxy...may be if the check is generic it may not be related to a proxy so you can code a FM and then call it before you call that proxy in the z report
    Giving points is another way to say thanks

  • User Exit in HR-ABAP.

    Hi to all,
    Can any body help me in User-Exit in Hr-Abap. send me ur mail id i wil send u functional specs.
    Thanks
    hiddu.

    The most common enhancements for HR can be found in PBAS0001.
    Here you will find the user exits for infotypes PBO  & PAI.
    http://sap.ittoolbox.com/groups/technical-functional/sap-hr/implementing-user-exit-for-it0041-452836
    This link should help

  • ABAP-Programming for SAP BW u0096 User-Exits und BAdIs

    Hi experts,
    i am a novice und looking for informations about Badi and User-exits for BW .
    i want to learn how to programm extractors.
    Can you you help me by giving me some informations or documents or sap links where i can find informations?
    Cheers

    Dear Mr Herzog,
    Congratulations for the book: Abap Developement for SAP Netweaver BI: User exits and BadIs.
    We're trying to implement the suggestions on the chapter 5.1.1 Interface of function module EXIT_SAPLRSR0_001 (page 136), however, we're having problens with the abap sintax CALL_FUNCTION  l_d_name IF FOUND.
    The command IF FOUND is not accepted.
    It'll be very helpful to avoid issues on tranporting include zxrsru01.
    I appreciate any additional help on how to implement it.
    Best Rgs
    Eliseo Bouzan

  • ABAP program to search for FM/User-Exit lookups

    Hi everyone,
    I have a need to find any and all Function Modules and User Exits that may have been written in BW that are used to do a lookup of data from one InfoProvider to another.   I have found the following program from Lijo John which works for Update Rules and Transfer Rules but I need the same type program that digs into Function Modules, DTP's and any other User-Exit type code where a lookup could be performed.   These are noted as the limitations in the program Lijo John created and I was hoping maybe someone has a solution for these as well.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/bi/abapprogramtofindBIlookupsandcodePatterns
    If someone has a program that they could share that would do this it would be greatly appreciated.  
    Thank you,
    Dave

    Thank you Ashish.  This was somewhat helpful.   I guess if there isn't an ABAP program available like I need then the next best thing would be for me to know the BW table names that holds the actual Function Module and DTP source code so that I can then create my own ABAP program that would query them for the existence of the InfoProvider name anywhere in the code. 
    The goal with all of this is to find ANY lookup from ANYWHERE in BW for a specific InfoProvider so that we will know what will have to be "disconnected" if we decide to get ride of that specific InfoProvider. 
    So, if anyone can tell me the tables that contain the BW Function Module and DTP ABAP source code I would appreciate it.
    Thank you,
    Dave

  • Regarding Enhancements/User-Exits in ABAP

    Hi,
    Can anybody tell me What is meant BY Enhancements & User-Exits.
    Also what are diffrent types of Enhancements/User-Exits avialable.
    Can anybody explain me about diffrent types of Enhancements/User-Exits.
    Can anybody provide me documentation with the examples
    for diffrent types of Enhancements/User-Exits.
    If anybody is having good material on the same please post it.
    Thanks in advanace.
    Thanks & Regards,
    Rayeez.

    Customizing exits allow you to add your own functionality to SAP’s standard business applications without having to modify the original applications. SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.
    If you want to enhance the functionality of your R/3 System, you should take advantage of the exits available in standard R/3 applications. There are two main reasons why you should use exits rather than modifying SAP software yourself. Add-ons attached to exits have the advantage that:
    •     They do not affect standard SAP source code
    When you add new functionality to your SAP System using SAP’s exits, you do not alter the source code of standard SAP programs in any way. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but exist separately from SAP’s standard software package.
    •     They do not affect software updates
    When you add new functionality to your R/3 System using SAP’s exits, your objects (called customer objects) must adhere to strict naming conventions. When it comes time to upgrade a to a new software release, customer objects’ names ensure that they will not be affected by any changes or new additions to the standard software package.
    Customer exits are not available for all programs and screens found in R/3 standard applications. You can only use customer exits if they already exist in the R/3 System. You find find more information about locating applications with pre-defined exits in Locating Applications that have Exits.
         As part of the enhancement concept, it is possible for the customer to 
         add his own elements to application logic, screens and menus.                                                                               
    The current possibilities for enhancement are:                                                                               
    Text enhancements:                                                     
         Allow the customer to add supplementary documentation for data fields  
         non-specific to a transaction, and to change key word texts.                                                                               
    Field exits:                                                           
         Every screen element with data element reference can branch to PBO or  
         prior to PAI to a function module if desired. The field contents are   
         available here for doing special checks and making changes (e.g. user- 
         specific checks, authority checks, writing entered data and producing  
         statistics...).                                                                               
    Function exits:                                                        
         From the main program you branch into a software level, in which you you
         can store ABAP/4 coding. The applications programmer at SAP determines 
         where in the main program the function exit is placed, and which data is
         imported/exported via the interface. The accompanying documentation    
         describes the functionality of the function exit.      
         Menu enhancements:                                                       
         Pre-conceived menu items can be activated and named. On the function code
         set at menu item selection, there can be a reaction in a relevant        
         function exit.                                                                               
    Screen enhancements:                                                     
         The customer can determine the layout of areas in screens provided by the
         applications developer. Here, additional information can be displayed or 
         data entered.

  • Trigger a waiting ABAP program from a User Exit of CO01

    Hi all,
       We would like to launch a ABAP program from a User Exit (EXIT_SAPLCOZV_001) of CO01, this ABAP program has a special characteristic: using Function Module RFC_PING_AND_WAIT, so this program will be existing until terminating event coming.
        Our purpose is terminate CO01 normally before finishing of ABAP program. We don't know if it's possible?
        Actually:
           1. when we use SUBMIT ..., the process will stop CO01 (stop not normally) and then launch ABAP program. => This is not suitable for our purpose.
           2. when we use SUBMIT ... and RETURN, CO01 will wait for finishing of ABAP program => This is not suitable for our purpose too, because we wish CO01 terminated normally when ABAP program is still existing and waiting for its terminating event.
    Do you have a solution that is suitable for our purpose, could you please help us?
    (The context is below:
    Time:  Begin-->CO finished> ABAP finished-->    
       Launch CO01 --> Call User Exit --> Call ABAP program for waiting --> CO01 saved normally.
    > ABAP program still waiting ---> waiting for terminating event       
    Thanks a lot,
    Vinh Vo

    Hi,
         Try with the function module BP_EVENT_RAISE, it takes eventid, and eventparm as import parameters in the User exit.
    1) With Eventid, you create a background job of the ABAP program and schedule it. Eventparm can be the Production order number.
    2) So when ever the Event is triggered the FM gets triggered and which in turn run the ABAP program, so the foreground the CO01 transaction runs without waiting for the ABAP program to complete.
    Regards
    Bala Krishna

  • Abap code of user EXIT for my first post on FISCPER_CALC_MONTH or year

    *ZSIGFISCPER Exercice cumulé jusqu'à la période selectionnée par utilisateur
    TABLES: TVARVC.
    DATA: L_S_RANGE TYPE RSR_S_RANGESID.
    DATA : LOC_VAR_RANGE LIKE RRRANGEEXIT,
    v_year like T009B-BDATJ,
    v_per3 like T009B-POPER,
    v_month(3) type c,
    v_initial(7) type c,
    v_date type d,
    w_progcod like tvarvc-low.
    BREAK-POINT.
    CASE I_VNAM.
      WHEN 'ZSIGFISCPER'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'BT'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGVFISCYEAR'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            L_S_RANGE-LOW = v_year.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    *Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZP_FIL_FISCPER'
      WHEN 'ZVUEPER1'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    *Sélection de la période 1 par rapport à une période sélectionnée via la variable 'ZSIGFISC'
      WHEN 'ZVUEPER2'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZSIGFISC'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            concatenate v_year '001' into v_initial.
            L_S_RANGE-LOW = v_initial.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variables pour la requête ZSIGRQ_ZSIGMCM1_01 (Suivi des investissements)
      WHEN 'ZSIGCDR2'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CONCATENATE v_year '01' '01' INTO v_date.
            L_S_RANGE-LOW = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGCDMS'. " Date de mise en service
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CONCATENATE v_year '01' '01' INTO v_date.
            L_S_RANGE-LOW = v_date.
            CONCATENATE v_year '12' '31' into v_date.
            L_S_RANGE-HIGH = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'BT'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGHIM'. " Hierarchie
        IF I_STEP = 1. "before the popup
          Clear v_year.
          SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIG_REF_0APPR_YEAR'.
          IF sy-subrc EQ 0.
            v_year = TVARVC-low.
          ENDIF.
          CLEAR w_progcod.
          SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
          IF sy-subrc EQ 0.
            w_progcod = TVARVC-low.
          ELSE.
            MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
          ENDIF.
          CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            CLEAR w_progcod.
            SELECT SINGLE * FROM TVARVC WHERE NAME EQ 'ZSIFVA_REF_0PROG_DEF_S'.
            IF sy-subrc EQ 0.
              w_progcod = TVARVC-low.
            ELSE.
              MESSAGE 'Variable ZSIFVA_REF_0PROG_DEF_S is missing in TVARVC' TYPE 'E'.
            ENDIF.
            CONCATENATE w_progcod v_year INTO L_S_RANGE-LOW.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGCAC'. " version
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_month.
            v_month = LOC_VAR_RANGE-LOW+4(3).
            IF v_month LE '003'.
              L_S_RANGE-LOW = 'PLA'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ELSEIF v_month LE '008'.
              L_S_RANGE-LOW = 'AC1'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ELSE.
              L_S_RANGE-LOW = 'AC2'.
              L_S_RANGE-SIGN = 'I'.
              L_S_RANGE-OPT = 'EQ'.
            ENDIF.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
      WHEN 'ZSIGDDP'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'ZP_FIL_FISCPER'.
            CLEAR L_S_RANGE.
            CLEAR v_year.
            v_year = LOC_VAR_RANGE-LOW(4).
            v_per3 = LOC_VAR_RANGE-LOW+4(3).
            CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
              EXPORTING
                I_GJAHR              = v_year
      I_MONMIT             = 00
                I_PERIV              = 'K4'
                I_POPER              = v_per3
              IMPORTING
                E_DATE               = v_date
              EXCEPTIONS
                INPUT_FALSE          = 1
                T009_NOTFOUND        = 2
                T009B_NOTFOUND       = 3
                OTHERS               = 4
            IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            L_S_RANGE-LOW = '20101231'."v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
    Intervalle
      WHEN 'Z_DATE_REF_INF_FOUR'.
        IF I_STEP = 2. "after the popup
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE WHERE VNAM = 'Z_DATE_REF_SUP_FOUR'.
            CLEAR L_S_RANGE.
            CLEAR v_date.
            v_date = LOC_VAR_RANGE-low.
           break-point.
            CALL FUNCTION 'SALP_CALC_DATE'
              EXPORTING
                IN_RECTYPE          = 'M'
                IN_NBR_DWXMQY       = '6'
                IN_DATE             = v_date
             IMPORTING
               OUT_DATE            = v_date
            EXCEPTIONS
              OTHER_ERROR         = 1
              OTHERS              = 2
            IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            CALL FUNCTION 'SALP_CALC_DATE'
              EXPORTING
                IN_RECTYPE          = 'Y'
                IN_NBR_DWXMQY       = '-2'
                IN_DATE             = v_date
             IMPORTING
               OUT_DATE            = v_date
            EXCEPTIONS
              OTHER_ERROR         = 1
              OTHERS              = 2
            IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            L_S_RANGE-LOW = v_date.
            L_S_RANGE-SIGN = 'I'.
            L_S_RANGE-OPT = 'EQ'.
            APPEND L_S_RANGE TO E_T_RANGE.
          ENDLOOP.
        ENDIF.
    Variable Z_DATE_REF_INF_FOUR pour caracteristique 0CALDAY
    Intervalle
    Variables pour Production interne
    Intervalle
    Debut - FDUPEYROUX - 11/01/2010
      WHEN 'ZSIGPEROI'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          CLEAR v_date.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          L_S_RANGE-LOW  = LOC_VAR_RANGE-HIGH.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPEROI_ENT'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPEROI_P1'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE, v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          L_S_RANGE-LOW  = LOC_VAR_RANGE-LOW.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPEROI_PINF'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE, v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGPERAN'.
        IF I_STEP = 2. "after the popup
          CLEAR L_S_RANGE.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          L_S_RANGE-HIGH = LOC_VAR_RANGE-HIGH.
          L_S_RANGE-LOW  = '1000001'.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'BT'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
      WHEN 'ZSIGVDRPI'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE,v_date,v_year,v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          v_year = LOC_VAR_RANGE-HIGH(4).
          v_per3 = LOC_VAR_RANGE-HIGH+4(3).
          CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
            EXPORTING
              I_GJAHR        = v_year
              I_MONMIT       = 00
              I_PERIV        = 'K4'
              I_POPER        = v_per3
            IMPORTING
              E_DATE         = v_date
            EXCEPTIONS
              INPUT_FALSE    = 1
              T009_NOTFOUND  = 2
              T009B_NOTFOUND = 3
              OTHERS         = 4.
          L_S_RANGE-LOW  = v_date.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
    Variables pour Production interne
    Intervalle
    Variables pour Production interne
    Intervalle
    WHEN 'ZSIGVDRPIM1'.
        IF I_STEP = 2. "after the popup
          CLEAR: L_S_RANGE,v_date,v_year,v_per3.
          READ TABLE I_T_VAR_RANGE INTO LOC_VAR_RANGE
           WITH KEY VNAM = 'ZSIGPERPI'.
          IF LOC_VAR_RANGE-LOW+4(3) = '001'.
            LOC_VAR_RANGE-LOW(4) = LOC_VAR_RANGE-LOW(4) - 1.
            LOC_VAR_RANGE-LOW+4(3) = '012'.
          ELSE.
            v_per3 = LOC_VAR_RANGE-LOW+4(3) - 1.
            LOC_VAR_RANGE-LOW+4(3) = v_per3.
          ENDIF.
          v_year = LOC_VAR_RANGE-LOW(4).
          v_per3 = LOC_VAR_RANGE-LOW+4(3).
          CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
            EXPORTING
              I_GJAHR        = v_year
              I_MONMIT       = 00
              I_PERIV        = 'K4'
              I_POPER        = v_per3
            IMPORTING
              E_DATE         = v_date
            EXCEPTIONS
              INPUT_FALSE    = 1
              T009_NOTFOUND  = 2
              T009B_NOTFOUND = 3
              OTHERS         = 4.
          L_S_RANGE-LOW  = v_date.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT  = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
    Variables pour Production interne
    Intervalle
    Edited by: Yass79 on Jan 9, 2012 8:55 PM

    Hi ricx,
    hmm, Finally I got you...
    What you are asking is;
    Is it possible to have User exit for Custom Developed ABAP Programs?
    Am i right?
    If this is your question, i can say it is not needed as we can edit Zprograms whenever we need.
    If you have more doubts, revert back....
    Regards
    Karthik D

Maybe you are looking for

  • Photo Booth Not Working

    Hi there! OK. Seasoned user here, just can't quite figure this out... My Photo Booth application isn't working correctly. It is not saving the picture. After I take a picture (of myself, for example) it will freeze on the picture and not show the pho

  • XSLT mapping Examples

    Hi Xperts, Could any one send me XSLT transformation code  with step by step procedure and some examples  on XSLT transformation for  XML to XML Convert. please send me to:  <b>[email protected]</b> Best regards Gopi

  • Should I use the short vector types for C++ AMP?

    Hello, is there any performance reason to use short vector types (as outlined in http://blogs.msdn.com/b/nativeconcurrency/archive/2012/04/03/short-vector-types-in-c-amp.aspx) in my C++ AMP kernels that will be confined to execution only on the GPU?

  • Dynamic cursor definition in PL/SQL

    Is it possible to have dynamic cursor definition in PL/SQL. Like using DBMS_SQL for dynamic SQL. If yes, how?

  • [svn:fx-trunk] 5201: Updates to the LayoutBase, mostly asdocs.

    Revision: 5201 Author: [email protected] Date: 2009-03-06 18:17:47 -0800 (Fri, 06 Mar 2009) Log Message: Updates to the LayoutBase, mostly asdocs. QE Notes: None Doc Notes: Bugs: None Reviewer: Hans tests: checkintests, mustella (group, layout) Modif