System Error in User exit.

Hi Guys,
I am working on a PO exit(Enhancement: MM06E005 and Component: EXIT_SAPMM06E_013), the problem I am facing is if i throw an error message, it gets displayed as information message and then pop ups a system error message (error in method PO_CHECK).
I tried using BADI and got the same message.
If I use a different component EXIT_SAPMM06E_013, I am getting the error message.
Any thoughts on this.
Regards,
Madhu C

I'm doing two-step picking.
First step is creating wave pick (delivery grouping) based on shipment (transaction VL35_S) and then transfer order for group (transaction LT0E).
In that moment, it is possible that I transfer on the bin less materials then needed (variable weight, etc.) .
When doing collective picking (VL06P) for the deliveries from the bin, it could happen shortage on the bin end I get the message 'System cannot find source storage bin' which is OK but I don't want to klick on the screen for every item shortage.
Hope you got the picture ...
Ante

Similar Messages

  • Message error on user-exit MV50AFZ1

    Hi!
    I need to send a message error on user-exit MV50AFZ1 (VL01N), but I can't, because when I use BAPI_DELIVERYPROCESSING_EXEC for create deliveries, it will abort my program.
    My program try to create many deliveries together, when occurs a message error, I don't know what order is the problem!!
    Thanks,
    Tatiana

    Hello.
    In the exit, use a condition like:
    IF sy-tcode EQ 'VL01N'.
      MESSAGE E000(...)
    ENDIF.
    This will avoid the error in BAPI execution.
    Regards,
    Valter Oliveira.

  • Error in user exit for System menu

    Hi,
    I was working on the user exit for the System menu.
    There was some error in the menu exit I added and then logged off.
    Now when I am tryin to log in the system again and error is given without allowing me to login because the initial log on screen loads the system menu.
    Can anyoone help me resolve this issue.
    Edited by: Ashutosh Tripathi on Mar 26, 2008 11:16 AM

    Michael,
           Thanks for the quick response,
    I did check in IMG, an entry is already there, the 'primary field' is checked,
    USD is assigned to the iso code USD.
    Regards,
    Disney.

  • How can I get the No. of package and requesting system name in user exit?

    Dear all,
    Is there anybody knowing how to obtain the extracting package number and requesting system name in the user exit "EXIT_SAPLRSAP_002" ? here is detail on my questions as below:
    For package number. If extracting 100,000 records of 0MATERIAL_TEXT , and the package size is 20,000, then there are 10 packages, when executing the user exit, how can I know which package I am extracting on?
    For requesting name, when executing the user exit, how can I know the logical system name from which the extraction request is sent?
    Thanks.
    best regards
    Patrick

    Hi Mansi,
    Thanks for your quick response.
    The background of this requirement is, in the datasource 0material_Plant_Att, we added two fields in the extraction structure, one is variable price, another is previous year's variable price, which need to be obtained by searching data KEKO & CKIS in the user exit, these tables have the huge data volume, in each data package, the user exit needs to be executed once, so the heavy searching needs to be done once, consequently, the total running time of this request including several data packages is very long. In order to improve the performance, we design the following logic:
    1. Create the temporary tables YCKIS & YKEKO in R/3.
    2. Run BW request in BIW.
    3. In R/3, If this is first data package of this request, delete all data in YCKIS & YKEKO, then search the data from CKIS & KEKO ( Average 20 million records), then insert these data into YCKIS & YKEKO ( Average 0.2 million records). 
    4. In R/3, if this is not first data package of this request, then search the data directly from YCKIS & YKEKO.
    You can see in the above, in the step 4, the data searching performance can be improved significantly due to reading data from temporary table, this is why I need to know the No. of data package. In addition, apparently, it can not be done in BIW side since the performance issue is in the user exit rather than in BIW. Also it is very difficult to setup one counter to deliver this since we do not know when to reset the counter. For example,
    - Assuming there are 3 data packages.
    - 1st day, we schedule one request from BIW, in R/3,
       -> At 1st package, counter = 0+1=1
       -> At  2nd package, counter =1+1= 2.
       -> At 3rd package, counter = 2+1= 3, then reset counter = 0 for next request.
    Question 1:  How can we know the 3rd package is last one?
    Question 2: If during the 2nd package, the extraction job is cancelled exceptionally, the counter value is 2 not 0, then for the next request, the data searching is not correct, right.
    Hope the above is clear, and apology this email is too long.
    Thanks.
    best regards
    Patrick

  • Error Message, user exits, and editing disabled problem.

    HEllo I recently had an assignment where I have to create a user exit with an error message. I had no problems with the error message but after an error occurs, with this line:
    <b>  MESSAGE ID 'ZSD' TYPE 'W' NUMBER '002'.</b>
    the fields have become disabled and there seems to be no way to enable the fields for changing. Is there a way to fix this. Thanks people and take care!

    Oh, TYPE E,  when issuing an error message, all fields are disabled unless you tie it to a field or group of fields.  This is commonly done by using the CHAIN...ENDCHAIN statements in the PAI of the screen.  Do you have access to this?  I assume that you are issueing the message from within a MODULE, right?  You are probably calling this module in the PAI flow logic of the screen.  You will need to do something like this.
    Here P_BUKRS is the screen field and CHECK_BUKRS is the module where you are checking the value and issuing the error message.  Using the CHAIN, you can tie other fields to the check so that they are also enabled when the error message is issued.
    CHAIN.
    field p_bukrs module check_bukrs.
    ENDCHAIN.
    Regards,
    Rich Heilman

  • ABAP program error for user EXIT

    Hi, I wrote code in  EXIT_SAPLRSAP_001
    When check and active it there were no syntax errors but when go rsa3 and check it gives an error at the follwing line
      it_mcekpo[] = c_t_data[].
    Runtime error: The internal talbles are neither compitable nor convertable.
    I have defined it_mcekpo as below:
    DATA  BEGIN OF IT_MCEKPO OCCURS 1.
            include structure mcekpo.
    DATA  END   OF IT_MCEKPO.
    But when I double click on 'c_t_data[]' , I get a message "object not defined, do you want do define".
    Can some one tell me how should I define this, what aption I should choose and what is the strcture.
    I am trying to add afnam, banfn and bednr from ekpo table to MC02M_0ITM (2LIS_02_ITM).
    And is there any naming convention for 'it_mcekpo' and 'c_t_data'?
    Any help is appreciated.
    (This is my first userexit)
    data: begin of it_ekpo occurs 0,
          ebeln like ekpo-ebeln,
          ebelp like ekpo-ebelp,
          afnam like ekpo-afnam,
          banfn like ekpo-banfn,
          bednr like ekpo-bednr,
         bukrs like ekpo-bukrs,
      end of it_ekpo.
    when '2LIS_02_ITM'.
      it_mcekpo[] = c_t_data[].
      select ebeln ebelp afnam banfn bednr bukrs
      from ekpo  into table it_ekpo
        for all entries in it_mcekpo
        where ebeln = it_mcekpo-ebeln and
              ebelp = it_mcekpo-ebelp.
    performance imprv.
      if not it_ekpo is initial.
         sort it_ekpo by ebeln ebelp.
      endif.
      loop at it_mcekpo.
        read table it_ekpo with key ebeln = it_mcekpo-ebeln
                                    ebelp = it_mcekpo-ebelp
                                    binary search.
        if sy-subrc = 0.
          it_mcekpo-zzafnam = it_ekpo-afnam.
          it_mcekpo-zzbanfn = it_ekpo-banfn.
          it_mcekpo-zzbednr = it_ekpo-bednr.
         it_mcekpo-zzabukrs = it_ekpo-bukrs.
       endif.
       modify it_mcekpo.
    endloop.

    Hi,
    TRY the below code :
    TYPES BEGIN OF TYPE_02ITM.
         INCLUDE STRUCTURE MC02M_0ITM.
    TYPES END OF TYPE_02ITM.
    TYPES:  BEGIN OF TYPE__ekpo,
    ebeln like ekpo-ebeln,
    ebelp like ekpo-ebelp,
    afnam like ekpo-afnam,
    banfn like ekpo-banfn,
    bednr like ekpo-bednr,
    bukrs like ekpo-bukrs,
    end of type_ekpo.
    CASE I_DATASOURCE.
    when '2LIS_02_ITM'.
    WHEN '2LIS_02_ITM'.
    DATA:
      ITAB_EKPO TYPE STANDARD TABLE OF TYPE_EKPO
           WITH HEADER LINE
           WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
    DATA:
      ITAB_02ITM TYPE STANDARD TABLE OF TYPE_02ITM
           WITH HEADER LINE
           WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
    ITAB_02ITM[] = C_T_DATA[] .
    select ebeln ebelp afnam banfn bednr bukrs
    from ekpo into table itab_ekpo
    for all entries in ITAB_02ITM
    where ebeln = ITAB_02ITM-ebeln and
    ebelp = ITAB_02ITM-ebelp.
    performance imprv.
    if not itab_ekpo is initial.
    sort itab_ekpo by ebeln ebelp.
    endif.
    loop at ITAB_02ITM.
    read table itab_ekpo with key ebeln = ITAB_02ITM-ebeln
    ebelp = ITAB_02ITM-ebelp
    binary search.
    if sy-subrc = 0.
    ITAB_02ITM-zzafnam = itab_ekpo-afnam.
    ITAB_02ITM-zzbanfn = itab_ekpo-banfn.
    ITAB_02ITM-zzbednr = itab_ekpo-bednr.
    ITAB_02ITM-zzabukrs = itab_ekpo-bukrs.
    endif.
    modify ITAB_02ITM.
    endloop.
    c_t_data[] = ITAB_02ITM[].
    With rgds,
    Anil Kumar Sharma .P

  • Incorrect nesting error in user exit include

    Hi,
    In one of my requirement I had to add an additional screen using EXIT_SAPMM06E_016, this Function module exists in XM06 Function group, this exit holds an include ZXM06U41.
    This function group holds screens, so when I implement a screen and create the PBO module in this particular include, it by default includes
    MODULE STATUS_XXX OUTPUT.
    ENDMODULE.
    When i check this include it says:
    Incorrect nesting: Before the statement "MODULE", the structure introduced by "FUNCTION" must be concluded with "ENDFUNCTION".
    I have no clue where the open function is?
    Your help will be very much appreciated.
    Please help.
    Thanks,
    -Sandeep

    You cannot define a screen module in a function module code.
    Refer to available documentation how to properly implement enhancements of this kind. Enhancement name is MM06E005 (in SMOD). Screen definitions and the corresponding modules will happen in function group XM06, not in the exit function module.
    Edit: To elaborate, your PBO module will go into include ZXM06ZZZ, or better yet, into new include ZXM06O01 which should be part of ZXM06ZZZ (just to keep the usual naming convention).
    Edited by: Tamas Hoznek on Feb 28, 2012 2:51 PM

  • User Exit PO MM06E005 - Screen does not exist

    Hello All,
    I created a new object for user exit 'EXIT_SAPMM06E_012' in Development System. This user exit is under the enhancement MM06E005. The user exit EXIT_SAPMM06E_012 will be used to produce an error message when saving a PO.
    After Transported the Project into Quality System and  I tried running transaction ME22->Select one line Item record in table control -> (Menu) ITEM -> Confirmations -> Overview   to confirm the PO. I have been getting a dump telling me that “SAPLXM06 Screen ‘0111’ Screen does not exist." This is because the screen exit was also included in the activation.
    When I have deactivated the Project its working fine.  This problem occurs only the activation of user exit.
    Thanks & Regards
    Sudheer

    hi,
    the problem when activating the exit you would have checked or activated the screen which currently is there in the development system , or you would have activated the screens and put them in a different request or in $tmp so when the request having the exit got transaported the screen code or activation was not taken along.
    Deactivate the exit and then deactivate the screens also.
    and then try to activate and put all in one request : deactivated and activations.
    Narayani
    Message was edited by:
            Narayani

  • User exits : How to build and use through our form application ?!

    Hi ,
    Im trying to build a user exit based on a C++ program , to be used within our application.
    I installed from the Oracle 8 Client CD the Oracle Pro*C/C++ ver 8.0.5 , i have Developer 2000 rel 6.0 patch 7 installed also .
    Can anyone please provide me with the steps to build a user exit from A-Z , i read many Documents regarding that but all seems to me complicated , since also im not a C programmer , what i did for the time bieng i searched for file that ends *.pc on my hard disk and i found some of these files , i opend the Pro* C/C++ and it generates for me a *.C file , i reached this stage , then what should i do then to complete the task , for me i went directly to Forms and added a Button that calls the USER_EXIT built-in function , but simply it gave me an error message : User exit doesn't exist .
    So Please if you could list for me the steps one by one i would be so graetful to you .
    Thanx all in advance for all your efforts .
    Islam

    Why not make a stored procedure or PL/SQL-procedure? What you have to do is, to build a new version of runform, where you including your user-exits.
    But if you insist: Use the help system. They have a description of how to do it on windows. It's more or less the same on unix.

  • User exit MB_CF001 in MIGO

    Folks,
    I am using the user exit MB_CF001 to get the data from  XMSEG table and send it to an external system. I was asked to call an RFC function module in this user exit to send the XMSEG data to an external system but the user exit documentation clearly says not to use RFC function call in this user exit.
    I also heard that I can do this by using the idocs that get posted after MIGO is done. Could anyone give me step by step procedure how to do this as I am new to IDOCS.
    Points will be rewarded for best answers.
    Thanks,
    Alok

    Dear Alok,
    Below is a documentation about IDOCs. Hope it will be useful to you.
    Data Creation in Idoc
    IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed. Therefore an IDoc data exchange is always an
    asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.
    While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.
    IDoc is a intermediate document to exchange data between two SAP Systems.
    *IDocs are structured ASCII files (or a virtual equivalent).
    *Electronic Interchange Document
    *They are the file format used by SAP R/3 to exchange data with foreign systems.
    *Data Is transmitted in ASCII format, i.e. human readable form
    *IDocs exchange messages
    *IDocs are used like classical interface files
    IDOC types are templates for specific message types depending on what is the business document, you want to exchange.
    WE30 - you can create a IDOC type.
    An IDOC with data, will have to be triggered by the application that is trying to send out the data.
    FOr testing you can use WE19.
    For more information in details on the same along with the examples can be viewed on:
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm#_Toc8400404
    http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a6620507d11d18ee90000e8366fc2/frameset.htm
    http://www.sappoint.com/presentation.html
    http://www.allsaplinks.com/idoc_search.html
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://www.erpgenie.com/sapedi/idoc_abap.htm
    To Create Idoc we need to follow these steps:
    Create Segment ( WE31)
    Create Idoc Type ( WE30 )
    Create Message Type ( WE81 )
    Assign Idoc Type to Message Type ( WE82 )
    Creating a Segment
    Go to transaction code WE31
    Enter the name for your segment type and click on the Create icon
    Type the short text
    Enter the variable names and data elements
    Save it and go back
    Go to Edit -> Set Release
    Follow steps to create more number of segments
    Create IDOC Type
    Go to transaction code WE30
    Enter the Object Name, select Basic type and click Create icon
    Select the create new option and enter a description for your basic IDOC type and press enter
    Select the IDOC Name and click Create icon
    The system prompts us to enter a segment type and its attributes
    Choose the appropriate values and press Enter
    The system transfers the name of the segment type to the IDOC editor.
    Follow these steps to add more number of segments to Parent or as Parent-child relation
    Save it and go back
    Go to Edit -> Set release
    Create Message Type
    Go to transaction code WE81
    Change the details from Display mode to Change mode
    After selection, the system will give this message “The table is cross-client (see Help for further info)”. Press Enter
    Click New Entries to create new Message Type
    Fill details
    Save it and go back
    Assign Message Type to IDoc Type
    Go to transaction code WE82
    Change the details from Display mode to Change mode
    After selection, the system will give this message “The table is cross-client (see Help for further info)”. Press Enter.
    Click New Entries to create new Message Type.
    Fill details
    Save it and go back
    Check below link. It will give the step by step procedure for IDOC creation.
    http://www.supinfo-projects.com/cn/2005/idocs_en/2/
    ALE/ IDOC
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.sappoint.com/abap/ale.pdf
    http://www.sappoint.com/abap/ale2.pdf
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sappoint.com/abap.html
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.docs
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.sappoint.com/abap/ale.pdf
    http://www.sappoint.com/abap/ale2.pdf
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sappoint.com/abap.html
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data...
    1.IDOCs are stored in the database. In the SAP system, IDOCs are stored in database tables.
    2.IDOCs are independent of the sending and receiving systems.
    3.IDOCs are independent of the direction of data exchange.
    The two available process for IDOCs are
    Outbound Process
    Inbound Process
    AND There are basically two types of IDOCs.
    Basic IDOCs
    Basic IDOC type defines the structure and format of the business document that is to be exchanged between two systems.
    Extended IDOCs
    Extending the functionality by adding more segments to existing Basic IDOCs.
    To Create Idoc we need to follow these steps:
    Create Segment ( WE31)
    Create Idoc Type ( WE30)
    Create Message Type ( WE81)
    Assign Idoc Type to Message Type ( WE82)
    Important links
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    www.sappoint.com
    --here u can find the ppts and basic seetings for ALE
    http://sappoint.com/presentation.html
    www.sapgenie.com
    http://www.sapgenie.com/ale/index.htm
    WE30 - you can create a IDOC type.
    An IDOC with data, will have to be triggered by the application that is trying to send out the data.
    >SAP ALE & IDOC
    Steps to configuration(Basis)
    >>1. Create Logical System (LS) for each applicable ALE-enabled client
    >>2. Link client to Logical System on the respective servers
    >>3. Create background user, to be used by ALE(with authorizaton for ALE postings)
    >>4. Create RFC Destinations(SM59)
    >>5. Ports in Idoc processing(WE21)
    >>6. Generate partner profiles for sending system
    The functional configuration(Tcode: SALE)
    • Create a Customer Distribution Model (CDM);
    • Add appropriate message types and filters to the CDM;
    • Generate outbound partner profiles;
    • Distribute the CDM to the receiving systems; and
    • Generate inbound partner profiles on each of the clients.
    >Steps to customize a new IDoc
    >>1. Define IDoc Segment (WE31)
    >>2. Convert Segments into an IDoc type (WE30)
    >>3. Create a Message Type (WE81)
    >>4. Create valid Combination of Message & IDoc type(WE82)
    >>5. Define Processing Code(WE41 for OUT / WE42 for IN)
    >>6. Define Partner Profile(WE20)
    Important Transaction Codes:
    SALE - IMG ALE Configuration root
    WE20 - Manually maintain partner profiles
    BD64 - Maintain customer distribution model
    BD71 - Distribute customer distribution model
    SM59 - Create RFC Destinations
    BDM5 - Consistency check (Transaction scenarios)
    BD82 - Generate Partner Profiles
    BD61 - Activate Change Pointers - Globally
    BD50 - Activate Change Pointer for Msg Type
    BD52 - Activate change pointer per change.doc object
    BD59 - Allocation object type -> IDOC type
    BD56 - Maintain IDOC Segment Filters
    BD53 - Reduction of Message Types
    BD21 - Select Change Pointer
    BD87 - Status Monitor for ALE Messages
    BDM5 - Consistency check (Transaction scenarios)
    BD62 - Define rules
    BD79 - Maintain rules
    BD55 - Defining settings for IDoc conversion
    WEDI - ALE IDoc Administration
    WE21 - Ports in Idoc processing
    WE60 - IDoc documentation
    SARA - IDoc archiving (Object type IDOC)
    WE47 - IDoc status maintenance
    WE07 - IDoc statistics
    BALE - ALE Distribution Administration
    WE05 - IDoc overview
    BD87 - Inbound IDoc reprocessing
    BD88 - Outbound IDoc reprocessing
    BDM2 - IDoc Trace
    BDM7 - IDoc Audit Analysis
    BD21 - Create IDocs from change pointers
    SM58 - Schedule RFC Failures
    Basic config for Distributed data:
    BD64: Maintain a Distributed Model
    BD82: Generate Partner Profile
    BD64: Distribute the distribution Model
    Programs
    RBDMIDOC – Creating IDoc Type from Change Pointers
    RSEOUT00 – Process all selected IDocs (EDI)
    RBDAPP01 - Inbound Processing of IDocs Ready for Transfer
    RSARFCEX - Execute Calls Not Yet Executed
    RBDMOIND - Status Conversion with Successful tRFC Execution
    RBDMANIN - Start error handling for non-posted IDocs
    RBDSTATE - Send Audit Confirmations
    FOr testing you can use WE19.
    Best Regards,
    Rajesh.
    Please reward points if found helpful.

  • Difference b/w Customer exits and User Exits

    Hi,
    Can anybody explain diff b/w user exits and customer exits .
    How to find out and Impement the coding ..
    Thanks Advance
    Rohan.A

    Hi Rohan,
    Check this matter , this may be helpful to you.
    <b>CUSTOMER EXITS</b>
    The 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 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 SAP System, you should take advantage of the exits available in standard 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 SAP 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 the SAP System. You can only use customer exits if they already exist in the SAP System.
    <b>User exits :</b>
    1. Introduction
    2. How to find user exits
    3. Using Project management of SAP Enhancements 
    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_<program name><3 digit suffix> 
    The call to a functionmodule exit is implemented as:
    CALL CUSTOMER.-FUNCTION <3 digit suffix>
    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
    Hope this is helpful.
    Reward all the helpful answers.
    Regards

  • USER EXIT VA01

    if the field " plifz "  in MARC table is initial or zero ,while creating a sales order ,
    i shd stop saving sales order and give error message .
    user exit is :::: USEREXIT_CHECK_VBAP
    HOW TO CHECK IF A  FIELD HAS NO INITIAL VALUE OR ZERO IN IT .

    Hello Vijay,
    Please try field Exit as an alternative solution since you need only a mandatory field check.....
    To create a field Exit
    1)For field exits in R/3 4.6C, execute transaction CMOD. Then type PRFB in the command field.
    2)on the top menu...click on Field exit-> create ->enter the name of data element
    3)enter the data element required for screen field to be mandatory and Execute
    4)another screen comes with a function module name FIELD_EXIT_name of data element
    5)Click create and save it to corresponding function group
    6)you will get a function module with
    import parameter as : INPUT
    export parameter as : OUTPUT
    7) in the source code write the code :
    if input is initial.
    message 'SALES FIELD MADATORY' type 'E'.
    endif.
    8)again to activate execute transaction CMOD. Then type PRFB in the command field. on the top menu...click on Field exit->Activate
    now wherever data element is used the mandatory check will come but you need it only for your program ,so in the same screen click on Assign prog./screen tab and write the name of the program and screen number where you want the particular check
    I believe field exit are not possible if structure field is on the screen...please do the above and check..you can also run the report RSMODPRF to create a field exit
    Hope the suggestions proved useful.
    Reward points if it was of any help
    Regards
    Byju

  • Custom error message in user exit is giving Short dump

    Hi All,
    We have a scenario where in if any user try to create/Change/Delete particular types of contract in SAP system we have to issue error message
    saying ZIN/ZIR contract creation/Change/Deletion is blocked in SAP. This has to be done from the web application. So we are putting below code
    in user exit MV45AFZZ in the form USEREXIT_SAVE_DOCUMENT_PREPARE.
    CONSTANTS: lc_vbcpic01 TYPE sy-uname VALUE u2018VBCPIC01u2019, u201CWeb application user ID
             lc_zin           TYPE vbak-auart VALUE u2018ZINu2019,
                         lc_zir            TYPE vbak-auart VALUE u2018ZIRu2019,
                         lc_text(32)    TYPE c VALUE u2018Check long text for more detailsu2019.
    DATA: l_uname TYPE sy-uname.
    CLEAR: l_uname.
    MOVE sy-uname TO l_uname.
    *If user ID is not the Web application ID then block the creation/Change/Deletion
    IF   l_uname NE lc_vbcpic01
    AND ( vbak-auart EQ lc_zin
    OR    vbak-auart EQ lc_zir ).
    MESSAGE e830(zv) WITH lc_text.
    ENDIF.
    This code is working fine while creating/Changing the contract i.e. Giving us error message so that user wonu2019t be able to create/change the contract.
    But when we delete the contract from VA42, Control is coming to this message statement and is giving Short dump. Below is the error analysis of the dump.
    Error Analysis:
    During "Exit Command" processing, the program tried to send a " " message.
    This is not allowed at this point in processing.
    The program had to be terminated.
    Screen name.............. "SAPMV45A"
    Screen number............ 4001
    If any one has come across such scenario/any work around for this problem please let me know your inputs. Your inputs are highly appreciated.
    I am working on 4.6C version of SAP.
    Note: When i issue information/Warning message contract is getting deleted after displaying the message.
    Thanks,
    Vinod.

    I exactly replicated the same in DELETE_DOCUMENT also
    I am getting the Dump. I tried with exit also , but it continued and deleted. To avoid deletion we have to use Leave program or LEAVE TO CURRENT TRANSACTION.
    Delete Function is Defined as EXIT command. so it is not possible to give error message. To convice you i just copied demo program and raised the error message.
    it is also giving the dump.
    copy the demo program DEMO_DYNPRO_AT_EXIT_COMMAND and make this change , information to error .
    MODULE cancel INPUT.
      MESSAGE e888(sabapdocu) WITH text-001 ok_code input1 input2.
      IF ok_code = 'CANCEL'.
        CLEAR ok_code.
        LEAVE PROGRAM.
      ENDIF.
    ENDMODULE.
    and see...

  • Error message from user exit - current screen becomes grayed(non-editable)

    I am working on a Sales Order (VA01/VA02) user exit(USEREXIT_SAVE_DOCUMENT_PREPARE) in MV45AFZZ program. I am validating certain values entered by user in this exit. Based on a condition, I issue a error message e.g. "message e001(ZV) with .....". I expect the processing to interrupt and the system control  returns to the current screen. When there is an error, error message shows up on the status bar, but the current screen is completely grayed out(non-editable), not able to modify the incorrect entries. I keep hitting ENTER but no change to the grayed screen. Is there anything wrong in the way I issue error message?
    I am on ECC6.
    Thanks.

    could you please help me if possible in my senario :-
    I am validating a field(serial number while creating delivery) in standard exit ZXQSMU04 and written a code to display an error message. The functionality is working correctly on validation and displaying the error message. But once the error is getting trigger the serial number field is becoming in gray mode i.e non editable.
    I tried a lot to overcome this issue but not getting success could anyone help me to make the field editable while triggering the error message.
    Please note : Its an exit and not having any message field in export or return table. Also tried with warning and information message.
    Thanks in advance.
    Regards,
    Gautam Kumar

  • Display error message in user-exit EXIT_SAPMP56T_002

    Hi,
    I'm doing a validation in user-exit EXIT_SAPMP56T_002 (include ZXTRVU03), and I want to display a error message. So, I'm using the instructions:
    continue_with_update = 'N'.
    MESSAGE ID xxx TYPE 'E' NUMBER yyy.
    What happens is that in SAP GUI it works fine, but in SAP Portal it gives a lot of java exceptions.
    Is there other way to display the error message that it works fine in the portal?
    Thanks.
    Sónia

    Hi,
    I tried with that but it doesn't work.
    With the instruction "Message ID..." the portal shows an RFC ERROR SYSTEM FAILURE with all that java exceptions.
    With your suggestion it does not retrieve my message, and instead it retrieves a customized message "Trip cannot be saved in this status, check mileage start and end location", that refers to the expense report and does not make any sense when I'm only creating the trip.
    Any idea for this?
    Thanks.
    Sónia

Maybe you are looking for

  • Is it possible to get the update status of a PDF form through automation

    Hi All, I'm working on adding the ability to load PDF files in a panel control inside a Tab control. Each new load of a PDF file I add a new tabpage and load the file into the new tabpage. When closing one of the tabs I'd like to see if I could check

  • Problems with Document Connect

    I have a problem with Document Connect. I am unable access office live workspace. I have been on the help line with microsoft but they were unable to help. Then I went to an apple store and was informed by one of the sales assistance that Document Co

  • How to schedule an abap report program to run every day, weekend etc..

    Hi, I want to schedule an abap report program to run every day, week, fortnight or month and the output to be redirected to the printer. How to achieve this ? thanks

  • Multiple Selection in Search Result List in PCUI

    Hi, Our requirement is to allow creation of new records in list view of the PCUI application CRMM_ACCOUNT. I'm using old floor plan CRM 4.0 to meet this requirement. But this is causing a problem. It's not allowing multi select in the search result l

  • Source2wsdd problem

    Hello, I am trying to generate my WSDL from the source2wsdd ant task. All goes well except the location attribute in the WSDL. I continously get this value - <soap:address location="http://pls.set.the.end.point.address/"> </soap:address> <source2wsdd