Exit Statement

Hi Friends,
Any one Explain Exit Statement with Example
Regards,
Maya

Hi Maya,
The <b>exit</b> statement prevents further processing from occurring.
Syntax for the exit Statement
exit.
Sample Program
Using EXIT to Stop Program Processing Dead in Its Tracks
1  report ztx1006.
2  write: / 'Hi'.
3  exit.
4  write: / 'There'.
The code produces this output:
Hi
Exit prevents further processing, so the exit on line 3 prevents line 4 from being executed.
exit can be used in many situations. It can have varying effects depending on where it appears in the code. However, it always prevents further processing. Within loop structures, it leaves loop processing introduced by statements such as loop, select, do, and while. Within subroutines, it leaves subroutines introduced by FORM. Its effects in other situations will be fully explored as they arise.
Hope this resolves your query.
Reward all the helpful answers.
Regards

Similar Messages

  • EXIT statement in custome exit

    Hi All,
    I have written EXIT statement in routine XXX of Sales order custom include MV45AFZZ.
    does this EXIT statement inside user exit do any internal commits or incorrect commits. Please explain.
    i heard that output of messages (except message type u201CAu201D) inside user exits triggers an incorrect commit work, the result
    *could be a loss of transactional integrity and possible data inconsistencies,
    Is this above statement is true. Please provide the links that could talk about commits in user exits.
    Thanks,
    Shaik

    hi
    jus have a look at this documentation
    http://help.sap.com/saphelp_nw04/helpdata/en/f1/0a56f5e09411d2acb90000e829fbfe/content.htm
    hope this helps
    regards
    Aakash Banga

  • How to use the WHENEVER SQLERROR EXIT statement in a PL/SQL block.

    Hi,
    I am getting the following error when trying to add the following statement in an PL/SQL block.
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    [exec] ERROR at line 23:
    [exec] ORA-06550: line 23, column 12:
    [exec] PLS-00103: Encountered the symbol "SQLERROR" when expecting one of the
    [exec] following:
    [exec] := . ( @ % ;
    How can i use the above statement in the PL/SQL Block? I have only IF statement in that block( between BEGIN and END).
    Thanks

    Hi,
    Usually there's always more than one solution.
    Can you post an example of what you're trying to accomplish?
    That would be useful.
    (Place the tag before and after your example to maintain formatting en spacing, see the [fac|http://forums.oracle.com/forums/help.jspa] regarding available tags)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to use a event structure with a state machine

    First, I would like to inform you that I only work on LabView part time, and have much to learn.  Anything I do learn, I usually forget until I need it again, because I only work on it part time.
    Using your StopWhileLoopMOD[1].vi, I am trying to put a state machine inside the event structure.  
    Related link: http://forums.ni.com/t5/LabVIEW/How-to-stop-while-loop-in-Event-case/td-p/465564/page/2
    Here is my application:  on the front panel, the user can select any combination of 7 different tests.  I have created cases to perform each step of each test in the correct order, but if the user presses stop, the tests won't stop because some of the cases have a while loop inside the event structure (like you mentioned is a bad idea).  The user should be able to stop the test, reselect tests to perform, and re-start the tests. 
    When the start button is pressed for the event structure, I need all the cases to run in the proper order, unless stop is pressed.
    In the past I have indexed an array and used that to run the state machine, but it won't stop immediately.  
    I have sub VIs that are built in while loops because the outputs of the product needs time to stabilize.  The state machine stops and waits up to a certain number of iterations.  If it passes the test, the while loop stops and the next state starts.  If it takes too long, it exits and reports an error.  Maybe I need to just use the state machine and not an event structure?
    Is there a good example of an event structure?
    metzler CLAD
    Solved!
    Go to Solution.

    I'm not sure exactly what you are asking, but it sounds like you want to script a bunch of tests and if the user says stop, to immediately stop the current test and abandon the others?  I'm going to assume that you know how to clear the array so that it will abandon the others, so I'm guessing that you are having trouble abandoning the current test?  If this is indeed the case, then the problem is that you are not able to propagate the message from the main VI FP which is the GUI to the sub vi which is the test, where the test may or may not have a GUI (FP visible) of it's own.  Threading was the first thing to come to mind, but this may not be necessary using events.
    You can do this by passing a refnum of the stop button to the subVI, where you can then add that wait to the event case structure.
    I've attached 2 VIs, mainvi.vi which is just a loop displays the count*2 (number of seconds passed since running) that will call subvi.vi and then check to see if the stop button is pressed.  mainvi.vi is by no means a state engine, it is just a simple loop for demonstration purposes.  subvi.vi just waits 2 seconds and leaves, it is a better structured state engine with an init state to start a poll case to wait for events and an exit state to clean up.  You can modify this any way you wish to get it to do what you want.  You will note that even if subvi.vi is being executed, it will terminate immediately when the stop button is pressed.
    Hope this helps.
    A
    Attachments:
    mainvi.vi ‏17 KB
    subvi.vi ‏33 KB

  • Producer Consumer with a state machine within the consumer

        Hi All,
    I have been trying to develop a data acquisition system with the producer consumer architecture.  To the left of the two main loops I initialize the serial port and any constants and variables im using.  I also have an obtain queue VI needed for enqueue and dequeue. Then in the producer loop i have a state machine.  The first state is where I wait for a button press on the front panel to write a GO signal on the serial line which will tell the device connected to the serial port to begin sampling data.  After this button press I go into the next state which is called my read state.
    In the read state I use a property node to read all of the available bytes at the serial port and then enqueue this collected data into a queue.  The state machine then is directed to continously go to the read state again and collect more data.
    Now this is where my dilemma is......  The consumer loop has the dequeue VI inside it and after this VI i have a state machine (while loop and case structure) which contains the following states
    1.  Build Array - build an array from the dequeue element and if there is any left over data from the parsing states it will build an array with the left over data and the dequeued data
    2.  Determine packet type - this state looks for the packet type byte(not necessarily the first byte in the message) and also check the next byte (packet length) to ensure that I am at the begininng of this chunk of data.  This state may be a little slow because there can be three different packet types and based on this byte and the packet length it may have to search the array several time to find the valid starting point.  This state also determine the next state to go to based on the packet type.
    3 packet type 1 parsing - parse data and store the remaining data it leftOver array.  Go to exit state.
    4 packet type 2 parsing - "" ""
    5 packet type 3 parsing - "" ""
    6 exit - leave this state machine and fall back to the consumer while loop.
    After it exit I think it should fall back to the consumer while loop and dequeue more data and enter the state machine again to build a new array with the dequeued data and leftover data.  It seems to work when I trace the execution using the Highlight execution feature, however when I run this all at full speed, it seems to go into the consumers 1st and 2nd states back and forth and not completely go through the state machine.
    I tried adding in a delay in the producer loop to give the consumer loop time, but I didnt notice any difference.  Is it possible that my dequeue element is retreiving more data while im still in the state machine, causing the execution to leave the state machine before it finished all states?
    Is there a better approach to take to solve this problem. Basically I need to read data at a 1,000,000 baudrate and parse it as quickly as possible so that I can break it up into 3 different packet types, write the data to a file, and graph the actual data (header info removed) in realtime.  I need to also ensure that I am not losing any of the collected data.  Data loss cannnot occur.

    A couple of things more to go along with Ben's pointers:
    You convert your data from a string, to a U8 array, to a Hex string array in the producer loop, then convert back to a integer to determine what to do with it.  In the process, you create two or three copies of your data, slowing yourself down quite a bit.  The code would be quite a bit more efficient if you left the data as a U8 array.  You can change the format of the controls and indicators to show hex values instead of integer by right clicking on them and selecting Format and Precision...
    Your search code is fairly inefficient.  I made a whack at making it a bit better.  See attachment below.
    If you continue to run into race conditions, you can debug them using a calls to the Windows debug write sprinkled liberally about your code.  Check out the post here for more information.
    Don't let your lack of format LabVIEW training stop you.  The biggest thing to get is the data flow paradigm (aka data is wires, not registers).  Once you get past that and learn how to pass data around using shift registers, queues, events, etc, you are most of the way to mastering LabVIEW.  The rest is just learning the plethora of functionality LabVIEW gives you (yes, I have reimplemented LabVIEW native code more than once in the process of learning).
    Let us know if you need more help.
    This account is no longer active. Contact ShadesOfGray for current posts and information.
    Attachments:
    serialUtil_V3_DFG.zip ‏137 KB

  • Which command I can use to exit from a subvi without exiting from labview in run-time?

    Similiar to 'Exit Sub' command in Visual Basic.

    > Similiar to 'Exit Sub' command in Visual Basic.
    There isn't a command to do this. Since LV is a dataflow language, it
    is important that all the data be delivered to the output terminals.
    BASIC is a procedural language, with all sorts of control flow commands
    like this, and if you are using a functional language or a dataflow
    language, you simply focus on getting to the end of the function. If
    you are in a while loop, you terminate the while loop by the value going
    to the conditional terminal. If you are in a For loop and need to exit
    early, perhaps it should have used a while loop. If there is code in a
    normal diagram that you sometimes do not want to execute, it should
    probably go in a case structure.
    The other reply has some good suggesti
    ons in that you probably have a UI
    or a sequence that you want to exit out of. Organizing your code so
    that you are in a button handling state or exiting state will help you
    organize how you think about the transitions between states. On the
    other hand, there lots of examples and user contributed VIs to look at.
    I'd recommend you get comfortable with a few of them since the state
    machine is just one programming tool, just like the loop and case
    statement that it is built from.
    Greg McKaskle

  • Exiting from a function module.

    Hi,
    I have a function module in which i am extracting output message from NAST based on vbeln.
    I record is not found, then i am updating return table with error message using 'MESSAGE_TEXT_BUILD'.
    Now i have to exit from the function module as my select statement is unsuccessful.
    how do you do this?
    can i use subroutines in a function module?
    thanks,
    Sandeep

    Hi Sandeep,
    You can use EXIT statement to exit out of the FM.
    Yes, you can use sub-routines in Function Module. If you are using EXIT inside a sub-routine, the program control will come out of sub-routine and not the FM> So if it is inside a sub-routine, return sy-subrc value as a parameter of the sub-routine. Outside the sub-routine, check the value and use EXIT statement accordingly.
    Best Regards,
    Ram.

  • Avoiding system.exit(0)

    Hi
    I am using an external .jar file in my java program for parsing a file. My problem is that its main method has System.exit statement in the end i.e after parsing it exits the application. So when i use it my application also gets terminated. I have decompiled it and the only accessible method is main method. Is there any way to avoid this system.exit(0) ?

    EJP wrote:
    You can run it under a SecurityManager and a .policy file which doesn't grant that permission.I am trying to overrite securityManager functions:
    like:
    private static void forbidSystemExitCall() {
        final SecurityManager securityManager = new SecurityManager() {
                @Override
          public void checkPermission( Permission permission ) {
                    System.out.println("persmiion");
            if( "exitVM".equals( permission.getName() ) ) {
             throw new SecurityException("System.exit attempted and blocked.");
                @Override
          public void checkExit(int exit)
              super.checkExit(exit);
              throw new SecurityException("System.exit attempted and blocked.");
        //System.setSecurityManager( securityManager ) ;
      }and calling above code as:
                 try
                        forbidSystemExitCall() ;
                        try
                           Main.main(strings);
                        catch( ExitTrappedException e )
                        finally
                          enableSystemExitCall() ;
                   catch ( Exception ex)
                       System.out.println("error calling main method");
                       ex.printStackTrace();
                   }but above code is not working as i requried.
    Or if you have stuff to do on exit you can add shutdown hooks, see java.lang.Runtime.i could not understand it, please kindly can you explain little bit more... I have not play with java security before.
    BR
    Umer

  • How to implement result states in custom web dynpro components

    Hi all,
    My callable objects are custom implemented -web dynpro Componenets
    How am i to implement the result states in them so that i can use them to take logical decisions.?
    There is decision dialog component in  Process Control Callable Object. It has Exit states. I need my component also to have exit states like that
    Help me to implement this.
    Points assured for help

    Hi Shobhendra,
    You can define the result states of your custom Web Dynpro callable object like this in the getDescription() method:
    //add success result state
    IGPCOResultStateInfo success =               technicalDescription.addResultState("Success");
    success.setDescriptionKey("Success");
    //add failure result state
    IGPCOResultStateInfo failure =               technicalDescription.addResultState("Failed");
    failure.setDescriptionKey("Failure");
    And in the custom comelete() method (which will be called at the end of the execution of the WDP comp from GP) you can set the actual resultstate at runtime:
    executionContext.setResultState("Success");
    or
    executionContext.setResultState("Failed");
    The result states defined in the WDP callable object will appear in the the GP design time and you can set target for each result state.
    For more info on how to implement the WDP callable object check the doc:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50d74ada-0c01-0010-07a8-8c118d408e59">Implementating Web Dynpro callable Object</a>
    Please let me know if you need any further help.
    Thanks,
    Dipankar
    [P.S. Award points for helpful answer]

  • SELECT statement (urgent!)

    Could you please help me with the following statement?
    The FROM clause is incorrect but i don't know what i should write.
    Thank you in advance.
    Maria.
    DECLARE
    A NUMBER;
    CURSOR C1 IS
    SELECT TABLE_NAME, COLUMN_NAME
    FROM USER_TAB_COLUMNS
    WHERE NULLABLE='N' AND TABLE_NAME LIKE 'P_%';
    BEGIN
    FOR i IN C1
    LOOP
    SELECT COUNT(*) INTO A
    FROM i.TABLE_NAME
    WHERE i.COLUMN_NAME IS NOT NULL;
    END LOOP;
    END;
    /

    FOR-LOOP
    Whereas the number of iterations through a WHILE loop is unknown until the loop completes, the number of iterations through a FOR loop is known before the loop is entered. FOR loops iterate over a specified range of integers. The range is part of an iteration scheme, which is enclosed by the keywords FOR and LOOP. A double dot (..) serves as the range operator. The syntax follows:
    FOR counter IN [REVERSE] lower_bound..higher_bound LOOP
    sequence_of_statements
    END LOOP;
    The range is evaluated when the FOR loop is first entered and is never re-evaluated.
    As the next example shows, the sequence of statements is executed once for each integer in the range. After each iteration, the loop counter is incremented.
    FOR i IN 1..3 LOOP -- assign the values 1,2,3 to i
    sequence_of_statements -- executes three times
    END LOOP;
    The following example shows that if the lower bound equals the higher bound, the sequence of statements is executed once:
    FOR i IN 3..3 LOOP -- assign the value 3 to i
    sequence_of_statements -- executes one time
    END LOOP;
    By default, iteration proceeds upward from the lower bound to the higher bound. However, as the example below shows, if you use the keyword REVERSE, iteration proceeds downward from the higher bound to the lower bound. After each iteration, the loop counter is decremented. Nevertheless, you write the range bounds in ascending (not descending) order.
    FOR i IN REVERSE 1..3 LOOP -- assign the values 3,2,1 to i
    sequence_of_statements -- executes three times
    END LOOP;
    Inside a FOR loop, the loop counter can be referenced like a constant but cannot be assigned values, as the following example shows:
    FOR ctr IN 1..10 LOOP
    IF NOT finished THEN
    INSERT INTO ... VALUES (ctr, ...); -- legal
    factor := ctr * 2; -- legal
    ELSE
    ctr := 10; -- not allowed
    END IF;
    END LOOP;
    Iteration Schemes
    The bounds of a loop range can be literals, variables, or expressions but must evaluate to numbers. Otherwise, PL/SQL raises the predefined exception VALUE_ERROR. The lower bound need not be 1, as the examples below show. However, the loop counter increment (or decrement) must be 1.
    j IN -5..5
    k IN REVERSE first..last
    step IN 0..TRUNC(high/low) * 2
    Internally, PL/SQL assigns the values of the bounds to temporary PLS_INTEGER variables, and, if necessary, rounds the values to the nearest integer. The magnitude range of a PLS_INTEGER is -2**31 .. 2**31. So, if a bound evaluates to a number outside that range, you get a numeric overflow error when PL/SQL attempts the assignment, as the following example shows:
    DECLARE
    hi NUMBER := 2**32;
    BEGIN
    FOR j IN 1..hi LOOP -- causes a 'numeric overflow' error
    END LOOP;
    END;
    Some languages provide a STEP clause, which lets you specify a different increment (5 instead of 1 for example). PL/SQL has no such structure, but you can easily build one. Inside the FOR loop, simply multiply each reference to the loop counter by the new increment. In the following example, you assign today's date to elements 5, 10, and 15 of an index-by table:
    DECLARE
    TYPE DateList IS TABLE OF DATE INDEX BY BINARY_INTEGER;
    dates DateList;
    k CONSTANT INTEGER := 5; -- set new increment
    BEGIN
    FOR j IN 1..3 LOOP
    dates(j*k) := SYSDATE; -- multiply loop counter by increment
    END LOOP;
    END;
    Dynamic Ranges
    PL/SQL lets you determine the loop range dynamically at run time, as the following example shows:
    SELECT COUNT(empno) INTO emp_count FROM emp;
    FOR i IN 1..emp_count LOOP
    END LOOP;
    The value of emp_count is unknown at compile time; the SELECT statement returns the value at run time.
    What happens if the lower bound of a loop range evaluates to a larger integer than the upper bound? As the next example shows, the sequence of statements within the loop is not executed and control passes to the next statement:
    -- limit becomes 1
    FOR i IN 2..limit LOOP
    sequence_of_statements -- executes zero times
    END LOOP;
    -- control passes here
    Scope Rules
    The loop counter is defined only within the loop. You cannot reference it outside the loop. After the loop is exited, the loop counter is undefined, as the following example shows:
    FOR ctr IN 1..10 LOOP
    END LOOP;
    sum := ctr - 1; -- not allowed
    You need not explicitly declare the loop counter because it is implicitly declared as a local variable of type INTEGER. The next example shows that the local declaration hides any global declaration:
    DECLARE
    ctr INTEGER;
    BEGIN
    FOR ctr IN 1..25 LOOP
    IF ctr > 10 THEN ... -- refers to loop counter
    END LOOP;
    END;
    To reference the global variable in this example, you must use a label and dot notation, as follows:
    <<main>>
    DECLARE
    ctr INTEGER;
    BEGIN
    FOR ctr IN 1..25 LOOP
    IF main.ctr > 10 THEN -- refers to global variable
    END IF;
    END LOOP;
    END main;
    The same scope rules apply to nested FOR loops. Consider the example below. Both loop counters have the same name. So, to reference the outer loop counter from the inner loop, you must use a label and dot notation, as follows:
    <<outer>>
    FOR step IN 1..25 LOOP
    FOR step IN 1..10 LOOP
    IF outer.step > 15 THEN ...
    END LOOP;
    END LOOP outer;
    Using the EXIT Statement
    The EXIT statement lets a FOR loop complete prematurely. For example, the following loop normally executes ten times, but as soon as the FETCH statement fails to return a row, the loop completes no matter how many times it has executed:
    FOR j IN 1..10 LOOP
    FETCH c1 INTO emp_rec;
    EXIT WHEN c1%NOTFOUND;
    END LOOP;
    Suppose you must exit from a nested FOR loop prematurely. You can complete not only the current loop, but any enclosing loop. Simply label the enclosing loop that you want to complete. Then, use the label in an EXIT statement to specify which FOR loop to exit, as follows:
    <<outer>>
    FOR i IN 1..5 LOOP
    FOR j IN 1..10 LOOP
    FETCH c1 INTO emp_rec;
    EXIT outer WHEN c1%NOTFOUND; -- exit both FOR loops
    END LOOP;
    END LOOP outer;
    -- control passes here
    Joel P�rez

  • Placement of return statement

    Hi,
    I try to make the following bit of code working.
        public byte[] generateSignature(byte[] message) {
            try{
                signature.initSign(keyPair.getPrivate(), randomSource);
                signature.update(message);
                return signature.sign();
            } catch (Exception e) {
                System.out.println("An error has occured while generating the signature.");
                System.out.println("Exception: " + e.getMessage());
                e.printStackTrace();
                System.exit(1);
        }The return signature.sign() statement need to be inside a try clause. But if I compile this, I get an error: Missing Return Statement. I could use a bogus return statement, or return some bogus bytes, but I'm really looking for a better method. (The exit statement is not very nice here, but in some other cases I have no other solution but to exit with an errormessage.)
    And I don't want to define this array of bytes in the class.
    Any ideas how to solve this elegant?
    Cheers,

    The exit statement is not very nice here, but in some other cases I have no other solution but to exit with an errormessage.Yes you do, you can (and should) throw an exception to signal the failure.

  • Exiting from Inner Loop.

    Example.
    Loop at I_catsdb.
    Loop at I_catsdb_tmp.
    endloop.
    endloop.
    How do I come out of the inner loop on certain conditions?

    Hi,
    Use the EXIT statement..
    Loop at I_catsdb.
    Loop at I_catsdb_tmp.
    Check the conditions..
      EXIT. 
    endloop.
    endloop.
    Thanks,
    Naren

  • State Machine and producer consumer design patterns

    Hi!
    In my application I am using state machine(for top level VI) and producer consumer(for subVIs) design patterns throught out.
    If there is no activity on the front panel for 1min then the ideal state is invoked. Following are the situation of the ideal state:
    1. It checks for any hardware present on the network . If no hardware is found on the network within 1 min then the application and LabVIEW exits.
    2. While the ideal state checks for the hardware, and user clicks on any front panel button then it should exit the ideal state. The control
    should be in the respective button state.
    I am able to achive the point#1 mentioned above but could not get the point #2 to work. I am including the snap shot of
    the state machine(default case) and prouducer consumer(deafualt state).
    Each screen has the concept of the ideal state. The only additional step in the subVIs is that when the ideal state is reached and the time has expired then it will close the subVIfront panel.It will go to the exit state of the Main(top level) VI. Thus closing the application and quitting LabVIEW.
    Any ideas or suggestions. Will multithreading and notifiers help?
    TIA
    Rachana
    Attachments:
    Sanpshot_Of_Design.zip ‏75 KB

    Hi Rachana,
    I was thinking about using event structures wherein there would an event case that would handle any value change event for any of the buttons on the front panel. But before suggesting that, I would need to know more about the Ideal State subvi( more specifically, how is it checking for any hardware present on the network and where is the one minute wait coming from?).
    Please feel free to respond to this post with your questions/comments.
    Regards,
    Ankita A.

  • Looping in stored prc even when no loop statement exists

    Hi All,
    There is a stored procedure that is doing a lot of inserts in tables and then finally selecting from those tables. It is used in report.
    The procedure takes 20 hrs - after the last final insert it is going back to the first insert statement and re-running it for the same parameters.
    There are NO loops of any kind. Do we need a EXPLICIT EXIT statement after the last statement so it exits out of code and the session gets closed.
    What could be the issue?
    Could someone give any pointers?
    Regards,

    904385 wrote:
    Hi All,
    There is a stored procedure that is doing a lot of inserts in tables and then finally selecting from those tables. It is used in report.
    The procedure takes 20 hrs - after the last final insert it is going back to the first insert statement and re-running it for the same parameters.
    There are NO loops of any kind. Do we need a EXPLICIT EXIT statement after the last statement so it exits out of code and the session gets closed.
    What could be the issue?
    Could someone give any pointers?
    Regards,You need to show us an example of your code.
    It's possible you can duplicate your statements if you use two terminator characters in an SQL script e.g.
    test.sql
    create table test (x number)
    insert into test (x) values (1);
    /And when run...
    SQL> @c:\test.sql
    Table created.
    1 row created.
    1 row created.
    SQL>the insert gets executed twice.
    This is becuase the ";" on the end of the insert statement causes it to insert and then the subsequent "/" on the next line causes SQL*Plus to execute the previous statement again.

  • How to disable an original statement without making repair via enchancement

    Hello,
    My problem is I want to change a Form in SAP original codes. I wrote my code in an enhancement at the end of the form. But the origianl form contains an "exit" statement. so my enchancement cannot be executed. As far as I know I can only insert an echancement to the beginning or end of a form. I cannot insert it at the begining becouse it would not work proper. How can I disable that "exit" statement to make my code accessible.
    for example:
    *Original code starts here:
    -   statement A
    -   statement B
    -   statement C
    -   if sy-subrc ne 0.
    -       exit.
    -   endif.
    -   statement D
    -   statement E
    *My enchancement goes here:
    -   statement F
    -   statement G
    -   statement H
    what I want is: if sy-subrc is not equal 0 at that condition
    continue execution from "F" statement.
    One could say that move statement "D" and "E" to else block of the condition. but I am not allowed to make repairs to the original code.
    thanks in advance.

    Hi,
    U can make 'EXIT' disable if  it won't affect the other functionalty then
    Write a OSS request to SAP clearly saying ur requirement and wat u want in the std code to make accessible ur code.

Maybe you are looking for