How to debug variable exit in Bi 7.0

Hi Experts,
      I  have code in variable exit in Bi 7.0, I am trying to debug in RSRT but im not able see my source code, Can you any body suggest me any thing or can suggest me steps to debug variable exit in bi 7.0.
Thanks
Vinod Kumar

Hi Vinod,
1) add following code into your exit-routine, at ??? fill your user-name:
Routine will STOP here,
than in new session call transaction SM50
find your query-request and mark the line
now go to menue line to -program/session and -debugging
  DATA: help.
  WHILE help IS INITIAL
    AND sy-uname = '???'.
  ENDWHILE.
2) after activation of exit-rountine start your query
3) open new session and call transaction SM50
4) check the list and look for your query-request and mark the line
5) now go to menue line to -program/session and -debugging
6) the run will stop at your while-statement
7) now you must change the contents of the variable help to '1' to leave the while-loop
8) with F5-Key you can proceed your coding
Regards
Edi
Edited by: Eduard Meder on Feb 19, 2009 12:40 PM

Similar Messages

  • VARIABLE EXITS

    Hi floks;
    I need some information on why and how to create variable exits in BEx? can you please give me and business scenarios why to create variable exits and virtual KF exits? any documents would be highle appreciated also. [email protected]
    Regards:
    Gandaki

    Hi,
    Customer or Variable exit is done in CMOD transaction. There are 2 kinds of Exit project available for BEX one at the Data target level EXIT_SAPMRSRU_001 and one at the query level EXIT_SAPLRRS0_001.
    Please see document below,
    http://help.sap.com/saphelp_nw04/helpdata/en/f1/0a56f5e09411d2acb90000e829fbfe/content.htm
    Hope this helps
    Arun

  • Debugging the variable Exit  -  EXIT_SAPLRRS0_001

    Hi Guys
    Not sure how to debug the variable exit with setting break point.
    I need to check if my variable it correctly populated after written code in ZXRSRU01 .
    Any help will be awarded.
    Thanks in advance
    Kirk

    Hi Kirk,
    after When'Data Source'.
    Write : <b>BREAK-POINT</b>
    Save and activate the code and execute the report. Provide required input and execute. It will go into debugging more.
    Dont forget to remove the "break-point" before transporting to Quality/Production.
    Hope it helps.

  • How do I...Mimic Replacement Path with Query using Customer Variable Exits?

    Hello SDN:
    We are on BW 3.5 SP16.
    We are currently using a replacement path Query(RP) with variables
    to populate a variable in another Query(T).
    The problem we are having is with performance.
    The entry of variables in replacement path Query(RP) is optional (This is necessary there cannot be required values)
    When results from Replacement Path Query are small performance is fine. (e.g. 10 seconds)
    When results from Replacement path query are large performance suffers. (e.g. 1+ minutes)
    Users are free to leave the replacement path variables empty resulting in a large set of data to be replaced. This is the worst performance case.
    We would like to discover a way to conditionally execute the replacement path query. That is if users do not enter values for the replacement Query(RP) variables do not execute the replacement path query(RP).
    Does anyone know if this is possible within reason and in customer exit space?
    We have reviewed the situation from all angles and the requirement for the replacement path FUNCTIONALITY and the freedom for the user to leave variable values blank remains.
    I've been searching and reading SDN and SAP notes for about a week and do not find threads which address this situation.
    We are also exploring Customer variable exits to mimic replacement path functionality
    (different topic subject="How do I...Mimic Replacement Path with Query using Customer Variable Exits?")
    Any help will be appreciated
    Many thanks
    David Schuh

    My appologies-I posted this message with the wrong subject. I will repost it with appropriate subject.
    dave schuh

  • How to create the Exit Variable

    Dear all,
    I want to create the exit Variables  for query.
    But How to create the exit variables.
    Dose Anyone could share some document?
    Thanks
    Best regards,
    Leon

    Hi,
    Check this out:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1b439590-0201-0010-ea8e-cba686f21f06
    assign points if useful ***
    oops this is for authorization in BW reports***
    anyways keep this,.. it may be help for you though this may not answer your Qn. on exit variable.
    Thanks,
    Raj
    Message was edited by: Raj

  • How to create customer exit variable

    Hi guys,
    please any one can help for how to create customer exit variabel.
    Regards.

    Hi!
    welcome to SDN.
       its very simple.just go to Bex query designer. there u can use the following <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/ac/789b3c4d4d8d15e10000000a114084/content.htm">Link</a> to create a variable.. but use the processing type user exit.
    after that go to transaction SE37 in BW and opent he function module EXIT_SAPLRRS0_001
    and in that there is a include  ZXRSRU01.... just double click on it and edit that...
    there u can write code for your variable ,...for example write code inside
    case "ZMY_VARIABLE"
    *code for ur variable
    endcase
    u can use the following
    <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/f1/0a56f5e09411d2acb90000e829fbfe/content.htm">link for help</a>

  • How to create customer exit for characteristic variables and for text vars.

    hi friends,
      can anybody tell me how to create customer exit for characteristic variables and for text variables in bw ides system.
    thanks,
    sree

    Hi,
    Please have a look at:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f1a7e790-0201-0010-0a8d-f08a4662562d
    Krzys

  • How to debug a program exit in a Workflow ?

    Hi experts,
                      How to debug a program exit in a workflow when the workflow is triggered ?
    thanks in advance
    regards
    Ashwin

    In 4.6c I did this by creating a function module and a table (zsm50_debug). In the table are just two fields: User name (key), and a flag (yes/no).
    The function module:
    FUNCTION zsm50_debug.
    *"*"Local interface:
    *"  IMPORTING
    *"     REFERENCE(Z_DEBUG_USER) LIKE  SY-UNAME
      DATA: z_exit,
            z_debug.
      CLEAR: z_debug.
      DATA: starttime   TYPE t,
            currenttime TYPE t,
            time_passed TYPE i.
      starttime = sy-uzeit.
    * Check if debugging is switched on
      SELECT SINGLE debug FROM  zsm50_debug
                          INTO  z_debug
                          WHERE uname = z_debug_user.
    * Debugging is switched on:
      IF z_debug = 'X'.
    *   Not an endless loop, but it will continue after approx. 1 minute...
    *   Plenty of time to go to SM50 to debug the program and continue!
        DO.
    *     Change the value of z_exit to 'X' to exit the loop an stay in
    *     debug mode.
          IF z_exit = 'X'.
            EXIT.
          ENDIF.
    *     To prevent an endless loop (if the user forgot that debugging was
    *     switched on in ZSM50_DEBUG, time is measured to allow the program
    *     to continue after 2 minutes
          GET TIME FIELD currenttime.
          time_passed = currenttime - starttime.
          IF time_passed > 120.
            WRITE: / '!!!==========================================!!!'.
            WRITE: / '!!!DEBUGGING STILL SWITCHED ON IN ZSM50_DEBUG!!!'.
            WRITE: / '!!!    Program was delayed by two minutes    !!!'.
            WRITE: / '!!!==========================================!!!'.
            EXIT.
          ENDIF.
        ENDDO.
      ENDIF.
    ENDFUNCTION.
    This FM reads the table and checks if the flag is switched on. If so, it loops for two minutes. After that, it continues regardless. If not flagged, it continues immediately.
    This way, you can debug any program that is running in the background.
    In every method I program I add this FM right in the beginning. With authorization for SM50, I can then debug the program (in production it may be difficult to get the correct server, if there are more).

  • Function Exit , How to Debug

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

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

  • How to find screen exits?

    Hello,
            I want to know the procedure to find out the Screen exits available for a particular Txcode? Please to know this Concept.
    Thks

    Hi,
    Finding Screen Exit:
    1. in se11, goto table MODSAP
    View table contents
    2. in Type field, enter 'S' (for screen exit)
    3. For that tcode, u should know the program name
    or the CALLING SCREEN.
    eg. SAPLLMOB
    4. then type SAPLLMOB* and execute
    For Further:
    ERPGenie.COM -> SAP Technical -> ABAP -> Tips and Tricks -> SAP ABAP Field Exits
    V4.6c onwards no longer supports field exits!!! In any case here's how to activate them:
    Activation of the field exits and assignment of the dynpros is carried out using program RSMODPRF. For this purpose, the program must be started without parameters (input fields remain blank).  If required, new field exits can be created using program RSMODPRF (see below for documentation).
    Field Exits for Data Elements
    Description
    Maintenance transaction for creating and activating field exits
    As part of the extension concept, SAP allows you to install a field exit for each screen field. Similar to the conversion exit, the system branches at the field exit at DCI (DATA COMMUNICATIONS INPUT) to a function module, if the field is an input field and a function code was triggered. The function module must adhere to the following naming convention:
    Prefix: FIELD_EXIT_
    Infix: <Data element name>
    Suffix: _0 to _9 (optional), _A to _Z
    The interface is automatically generated during the creation of the function module, and has 2 parameters:
    Import parameter: INPUT
    Export parameter: OUTPUT
    After a function code has been triggered the contents of the field are made available to the FB via the "INPUT" import parameter. You can edit this and, when changed, make it available to the ABAP/4 processor in "OUTPUT". The input field contents are usually passed on: you can simply write OUTPUT = INPUT.
    If, e.g., you have activated the field exit for the data element 'PROGRAM', then the fields of all the screens, which refer to the data element 'PROGRAM', branch to the function module FIELD_EXIT_PROGRAM. This includes the field 'Program' of the initial screen SAPMS38M0100 in transaction SE38, for example.
    If you do not want the function module to be accessed from all screens, assign particular screens to the data element PROGRAM. By allocating an exit number, it is also possible to branch to other function modules with the corresponding suffix _0 ... _Z.
    Example: You have assigned screen SAPMS38M0100 and exit number 5 to data element 'PROGRAM'. The corresponding field on SAPMS38M0100 branches to FIELD_EXIT_PROGRAMM_5.
    As soon as you activate an exit, the corresponding screens are invalidated.
    Note: Field exits are only taken into account during screen generation if the parameter abap/fieldexit = 'YES' is set in the system profile.
    Requirement
    Set the profile parameter abap/fieldexit = 'YES' before system start.
    Limitations
    The following ABAP statements are not allowed in the function modules of field exits:
    BREAK-POINT,
    CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT,
    COMMIT WORK, ROLLBACK WORK,
    COMMUNICATION RECEIVE,
    EXIT FROM STEP-LOOP,
    MESSAGE I, MESSAGE W.
    Note:
    Field exits cannot be edited with the debugger.
    You should not use any external Performs in field exits. The ABAP processor shares the table work areas of externally called programs with those of the first caller. This could lead to errors at field exits that can hardly be analyzed, as field exits are sometimes slipped into the flow of the program at unforeseen events.
    Questions and answers on field exits
    1. A field exit was created with the CMOD and activated, but it does not get executed when the screen is called.
    Since the field exit is not executed until DCI, some action must occur in the screen (e.g. press Return, saving....).
    Set the abap/fieldexit profile parameter to YES and start the system again.
    After the FIELD_EXIT... function module has been activated and the field exit has been activated, the transaction in whose screen the field exit is to be executed must be terminated. The screen is not generated until it is called.
    Do not work on different application servers, otherwise there may be a delay before the field exit becomes active.
    The profile parameter must be set either on all application servers or on none.
    If the field exit is to be active in certain screens only, then you should check whether you have selected the correct program and the correct screen number (Careful with SUBSCREENS Do not rely on the F1 information for the field!
    2. How does setting abap/fieldexit affect the performance?
    If a screen is generated and the profile parameter is set, then the system checks in 2 tables (TDDIR, TDDIRS) to see whether a field exit has to be generated for the field. In practice the screen load after a Put is not generated until the screen is called. The user will not experience a noticeable delay, since screen generation is extremely fast.
    3. Can the contents of other screen fields be read in a field exit?
    In principle all fields can be copied to global variables in the TOP or the function group. However, since the order in which the field exits are called is not guaranteed, this possibility should not be used.
    4. How does the field exit work in step-loop fields?
    After data input to DCI the field exit will be called as many times as fields are visible on the step-loop. The SY-STEPL system variable is incremented each time. If a new value is assigned to be field, then it will be visible in the module between LOOP. ENDLOOP. This module will also be called as many times as there are visible step-loop lines.
    5. Can field exits be debugged?
    No. Field exits have to be tested in isolation in the development environment. To analyze problems that occur only in the screen environment, the relevant variables can be written to the file system using TRANSFER... and can be analyzed there.
    6. What should one do if the field contents are not getting transported to ABAP/4?
    Check whether you have assigned a value to the OUTPUT field.
    7. When does the field exit get called in the case that there is a conversion exit attached to the data element?
    The field exit will be called after the conversion exit. This means that the INPUT field contains the data in the same form as that in which the ABAP/4 program also gets them.
    Regrdas,
    Shiva Kumar

  • Debugging Customer Exit.

    Hi All,
    I have created a customer exit variable. Its selected for ready for input and i have written the code for it to modify the entered value according to the requirement.
    I am trying to debug the code but, while debugging it, i_step value is 1 at start. Then it prompts me for the variable input. After I enter the value, the debugger stops at break point and the value of i_step is 3. My question is wont it stop at i_step = 2 ??
    Please advice how to debug such scenarion.
    Thanks,
    Anjum.

    Hi  nasarat anjum,
    If variable getting filled through User Exit, it not supposed to be ready for user entry.
    The following values are valid for I_STEP:
    · I_STEP = 1
    Call up takes place directly before variable entry
    · I_STEP = 2
    Call up takes place directly after variable entry. This step is only started up when the same variable could not be filled at I_STEP=1.
    · I_STEP = 3
    In this call up, you can check the values of the variables. Triggering an exception (RAISE) causes the variable screen to appear once more. Afterwards, I_STEP=2 is also called up again.
    Check: How to... Create & Populate User Exit variable
    So if you want to validate input value, you need to write code under I_STEP = 3
    Hope it Helps
    Srini

  • How to debug when you can't recreate error consistently

    I have a simple illustrator-type application in which I draw rounded rectangles to a JPanel and then the user is able to move them around (the position and repaint is done in via the mouseDragged interface.
    Sometimes, the application shuts down when I am dragging a box with this message:
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d236a0c, pid=3400, tid=2716
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_07-b03 mixed mode, sharing)
    # Problematic frame:
    # C [dcpr.dll+0x6a0c]
    # An error report file with more information is saved as hs_err_pid3400.log
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    I checked the error report and it suggests the problem is within the PathFiller.WriteAlpha. The entire report is below. The problem I have is that if I restart the application and place boxes in the exact same locations as before, and try moving the one that caused the error, the error is not thrown.
    I have no idea how to debug this as I can't even consistently reproduce. I just upgraded to the newest JDK (I think it was 7).
    Thanks for any insight and help you can offer.
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d236a0c, pid=3400, tid=2716
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_07-b03 mixed mode, sharing)
    # Problematic frame:
    # C [dcpr.dll+0x6a0c]
    --------------- T H R E A D ---------------
    Current thread (0x00acae38): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=2716]
    siginfo: ExceptionCode=0xc0000005, reading address 0x00000007
    Registers:
    EAX=0x00a9c6b8, EBX=0x02e33930, ECX=0x00a9c6a4, EDX=0x00000001
    ESP=0x0303f314, EBP=0x0303f328, ESI=0x00a35f1c, EDI=0xffffffff
    EIP=0x6d236a0c, EFLAGS=0x00010286
    Top of Stack: (sp=0x0303f314)
    0x0303f314: 02e2865c 00a35f1c 02e33930 ffffffff
    0x0303f324: 02e2865c 0303f34c 6d236ce8 02e33930
    0x0303f334: 00a35f1c 02e33930 02e2865c 02e33930
    0x0303f344: 00acaef8 02e34774 0303f378 6d2326be
    0x0303f354: 02e33930 00a35f1c 02f13380 00000001
    0x0303f364: 00000020 00000000 22fb02e8 22fad0d0
    0x0303f374: 00acae38 0303f3a0 00b6a767 02f13380
    0x0303f384: 0303f3b8 0303f3b4 00000001 00000020
    Instructions: (pc=0x6d236a0c)
    0x6d2369fc: 85 ff 89 7d f8 0f 84 16 01 00 00 eb 03 8b 7d f8
    0x6d236a0c: d9 47 08 d8 15 50 c0 23 6d 8b 47 04 d9 55 fc 89
    Stack: [0x03000000,0x03040000), sp=0x0303f314, free space=252k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C [dcpr.dll+0x6a0c]
    C [dcpr.dll+0x6ce8]
    C [dcpr.dll+0x26be]
    J sun.dc.pr.PathFiller.writeAlpha8([BIII)V
    J sun.java2d.pipe.DuctusRenderer.getAlpha(Lsun/dc/pr/Rasterizer;[BIII)V
    J sun.java2d.pipe.DuctusShapeRenderer.renderPath(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;Ljava/awt/BasicStroke;)V
    J sun.java2d.pipe.DuctusShapeRenderer.fill(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;)V
    J sun.java2d.pipe.PixelToShapeConverter.fillRoundRect(Lsun/java2d/SunGraphics2D;IIIIII)V
    J sun.java2d.SunGraphics2D.fillRoundRect(IIIIII)V
    J writingplatform.PlatformNode.paintComponent(Ljava/awt/Graphics;)V
    J writingplatform.TextNode.paintComponent(Ljava/awt/Graphics;)V
    J writingplatform.PlatformPanel.paintComponent(Ljava/awt/Graphics;)V
    J javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
    J javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V
    J javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z
    J javax.swing.JComponent._paintImmediately(IIII)V
    J javax.swing.JComponent.paintImmediately(IIII)V
    J javax.swing.RepaintManager.paintDirtyRegions()V
    J javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V
    J java.awt.event.InvocationEvent.dispatch()V
    J java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
    J java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z
    v ~RuntimeStub::alignment_frame_return Runtime1 stub
    j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
    j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
    j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
    j java.awt.EventDispatchThread.run()V+9
    v ~StubRoutines::call_stub
    V [jvm.dll+0x86401]
    V [jvm.dll+0xdb172]
    V [jvm.dll+0x862d2]
    V [jvm.dll+0x8602f]
    V [jvm.dll+0xa0bcb]
    V [jvm.dll+0x10bdad]
    V [jvm.dll+0x10bd7b]
    C [MSVCRT.dll+0x2a3b0]
    C [kernel32.dll+0xb50b]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    J sun.dc.pr.PathFiller.writeAlpha8([BIII)V
    J sun.java2d.pipe.DuctusRenderer.getAlpha(Lsun/dc/pr/Rasterizer;[BIII)V
    J sun.java2d.pipe.DuctusShapeRenderer.renderPath(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;Ljava/awt/BasicStroke;)V
    J sun.java2d.pipe.DuctusShapeRenderer.fill(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;)V
    J sun.java2d.pipe.PixelToShapeConverter.fillRoundRect(Lsun/java2d/SunGraphics2D;IIIIII)V
    J sun.java2d.SunGraphics2D.fillRoundRect(IIIIII)V
    J writingplatform.PlatformNode.paintComponent(Ljava/awt/Graphics;)V
    J writingplatform.TextNode.paintComponent(Ljava/awt/Graphics;)V
    J writingplatform.PlatformPanel.paintComponent(Ljava/awt/Graphics;)V
    J javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
    J javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V
    J javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z
    J javax.swing.JComponent._paintImmediately(IIII)V
    J javax.swing.JComponent.paintImmediately(IIII)V
    J javax.swing.RepaintManager.paintDirtyRegions()V
    J javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V
    J java.awt.event.InvocationEvent.dispatch()V
    J java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
    J java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z
    v ~RuntimeStub::alignment_frame_return Runtime1 stub
    j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
    j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
    j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
    j java.awt.EventDispatchThread.run()V+9
    v ~StubRoutines::call_stub
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x000360c0 JavaThread "DestroyJavaVM" [_thread_blocked, id=696]
    =>0x00acae38 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=2716]
    0x00ac5530 JavaThread "AWT-Windows" daemon [_thread_in_native, id=3396]
    0x00ac50b0 JavaThread "AWT-Shutdown" [_thread_blocked, id=2656]
    0x00ac3eb8 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1644]
    0x00a6ef28 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=408]
    0x00a6dc28 JavaThread "CompilerThread0" daemon [_thread_blocked, id=992]
    0x0003fda0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1756]
    0x00a42240 JavaThread "Finalizer" daemon [_thread_blocked, id=2156]
    0x00a40d58 JavaThread "Reference Handler" daemon [_thread_blocked, id=328]
    Other Threads:
    0x00a3e460 VMThread [id=3024]
    0x00a702a8 WatcherThread [id=1740]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 576K, used 20K [0x22a70000, 0x22b10000, 0x22f50000)
    eden space 512K, 2% used [0x22a70000, 0x22a73220, 0x22af0000)
    from space 64K, 12% used [0x22af0000, 0x22af2128, 0x22b00000)
    to space 64K, 0% used [0x22b00000, 0x22b00000, 0x22b10000)
    tenured generation total 1408K, used 435K [0x22f50000, 0x230b0000, 0x26a70000)
    the space 1408K, 30% used [0x22f50000, 0x22fbcd10, 0x22fbce00, 0x230b0000)
    compacting perm gen total 8192K, used 388K [0x26a70000, 0x27270000, 0x2aa70000)
    the space 8192K, 4% used [0x26a70000, 0x26ad1170, 0x26ad1200, 0x27270000)
    ro space 8192K, 67% used [0x2aa70000, 0x2afcd9f8, 0x2afcda00, 0x2b270000)
    rw space 12288K, 46% used [0x2b270000, 0x2b813808, 0x2b813a00, 0x2be70000)
    Dynamic libraries:
    0x00400000 - 0x0040d000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\java.exe
    0x7c900000 - 0x7c9b0000      C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c8f4000      C:\WINDOWS\system32\kernel32.dll
    0x77dd0000 - 0x77e6b000      C:\WINDOWS\system32\ADVAPI32.dll
    0x77e70000 - 0x77f01000      C:\WINDOWS\system32\RPCRT4.dll
    0x77c10000 - 0x77c68000      C:\WINDOWS\system32\MSVCRT.dll
    0x6d730000 - 0x6d8c7000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\client\jvm.dll
    0x77d40000 - 0x77dd0000      C:\WINDOWS\system32\USER32.dll
    0x77f10000 - 0x77f57000      C:\WINDOWS\system32\GDI32.dll
    0x76b40000 - 0x76b6d000      C:\WINDOWS\system32\WINMM.dll
    0x6d2f0000 - 0x6d2f8000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\hpi.dll
    0x76bf0000 - 0x76bfb000      C:\WINDOWS\system32\PSAPI.DLL
    0x6d700000 - 0x6d70c000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\verify.dll
    0x6d370000 - 0x6d38d000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\java.dll
    0x6d720000 - 0x6d72f000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\zip.dll
    0x6d070000 - 0x6d1d7000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\awt.dll
    0x73000000 - 0x73026000      C:\WINDOWS\system32\WINSPOOL.DRV
    0x76390000 - 0x763ad000      C:\WINDOWS\system32\IMM32.dll
    0x774e0000 - 0x7761d000      C:\WINDOWS\system32\ole32.dll
    0x5ad70000 - 0x5ada8000      C:\WINDOWS\system32\uxtheme.dll
    0x73760000 - 0x737a9000      C:\WINDOWS\system32\ddraw.dll
    0x73bc0000 - 0x73bc6000      C:\WINDOWS\system32\DCIMAN32.dll
    0x73940000 - 0x73a10000      C:\WINDOWS\system32\D3DIM700.DLL
    0x6d2b0000 - 0x6d2ef000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\fontmanager.dll
    0x74720000 - 0x7476b000      C:\WINDOWS\system32\MSCTF.dll
    0x7c9c0000 - 0x7d1d5000      C:\WINDOWS\system32\shell32.dll
    0x77f60000 - 0x77fd6000      C:\WINDOWS\system32\SHLWAPI.dll
    0x773d0000 - 0x774d2000      C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
    0x5d090000 - 0x5d127000      C:\WINDOWS\system32\comctl32.dll
    0x605d0000 - 0x605d9000      C:\WINDOWS\system32\mslbui.dll
    0x77120000 - 0x771ac000      C:\WINDOWS\system32\OLEAUT32.DLL
    0x6d530000 - 0x6d543000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\net.dll
    0x71ab0000 - 0x71ac7000      C:\WINDOWS\system32\WS2_32.dll
    0x71aa0000 - 0x71aa8000      C:\WINDOWS\system32\WS2HELP.dll
    0x6d550000 - 0x6d559000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\nio.dll
    0x6d230000 - 0x6d253000      C:\Program Files\Java\jdk1.5.0_07\jre\bin\dcpr.dll
    VM Arguments:
    java_command: writingplatform.Main
    Launcher Type: SUN_STANDARD
    Environment Variables:
    CLASSPATH=C:\Program Files\Java\jre1.5.0_05\lib\ext\QTJava.zip
    PATH=C:\Program Files\Microsoft DirectX 9.0 SDK (August 2005)\Utilities\Bin\x86;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\SSH Communications Security\SSH Secure Shell
    USERNAME=Wanderer
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 9, GenuineIntel
    --------------- S Y S T E M ---------------
    OS: Windows XP Build 2600 Service Pack 2
    CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
    Memory: 4k page, physical 1047764k(366012k free), swap 2518724k(2059484k free)
    vm_info: Java HotSpot(TM) Client VM (1.5.0_07-b03) for windows-x86, built on May 3 2006 01:04:38 by "java_re" with MS VC++ 6.0

    This is not your bug, it's Sun's. All you can do is to:
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    On the other hand, if you cannot afford to wait and just
    want to find a quick workaround, you will at least need
    to find a way to reproduce the bug with a reasonable
    frequency. If you are absolutely unable to reproduce it,
    just forget it, but still report it to Sun.

  • How to debug and find the exact constraint violation error

    {122712 14:22:36:ErrorCode -1 with ErrorMessage as ORA-00001: unique constraint (OPS$CMS.PK_TB_ML_EXER_UPLOAD) violated has occured for [SSO16063259009], [CMSCOST_USER] pk_xop_subsales.pr_process_exer }
    {PROCEDURE pr_process_exer(
    p_voucher_num           tb_xop_order_manager_t.voucher_num%TYPE,
    p_status_type           tb_xop_order_manager_t.status_type%type,
    p_dest                    tb_xop_order_manager_t.dest%type,
    p_reference_key            tb_xop_order_manager_t.reference_key%type,
    p_seq_num                tb_xop_order_manager_t.seq_num%type,
    p_return_code            tb_xop_order_manager_t.return_code%type,
    p_reason_desc           tb_xop_order_manager_t.reason_desc%type,
    p_activity_qty            tb_xop_order_manager_t.activity_qty%type,
    p_leaves_qty            tb_xop_order_manager_t.leaves_qty%type,
    p_exec_price            tb_xop_order_manager_t.exec_price%type,
    p_current_status        tb_xop_order_manager_t.current_status%type,
    p_err_cur          OUT  ref_cursor)
    IS
    CURSOR get_order_dtls(v_voucher_num tb_xop_order_manager_t.voucher_num%type)
    IS
    SELECT *
    FROM   tb_xop_order_manager_t
    WHERE  voucher_num = v_voucher_num;
    CURSOR get_mail_cd(v_opt_num OPTIONEE.opt_num%TYPE) IS
          SELECT mail_cd, sp_mail_cd
          FROM XOP_OPTIONEE
          WHERE opt_num = v_opt_num;
    cursor get_opt_dtls(v_opt_num OPTIONEE.opt_num%TYPE) IS
    select
    SUBSTR(trim(O.name_first) || ' ' || trim(O.name_mi) || ' ' ||
              trim(O.name_last), 1, 35) p_name,
            SUBSTR(O.address1, 1, 35) opt_addr1,
              SUBSTR(O.address2, 1, 35) opt_addr2,
              SUBSTR(O.address3, 1, 35) opt_addr3,
              SUBSTR(O.address4, 1, 35) opt_addr4,
              SUBSTR(O.address5, 1, 35) opt_addr5,
              SUBSTR(O.address6, 1, 35) opt_addr6,
            SUBSTR(trim(O.city) || ' ' || trim(O.state) || ' ' ||
            trim(O.zip) || ' ' || trim(O.country), 1, 35) city_state_zip_country,
            trim(O.city) city,
            trim(O.state) state,
            trim(O.zip) zip,
            trim(O.country) country
    from  optionee o
    where o.opt_num = v_opt_num;
    --CQ:PCTUP00210726- Added wire instructions audit for deleted wire info.
    CURSOR c_wire_instruction (
          in_wire_seq_no           TB_XOP_WIRE_INSTRUCTIONS.wire_seq_no%TYPE ) IS
          SELECT ml_brok_acct_num,
                 ssn,
                 plan_num,
                 instr_type,
                 aba_routing_num,
                 swift_routing_code,
                 bank_name,
                 bank_acct_num,
                 name_on_account,
                 bank_addr_1,
                 bank_addr_2,
                 bank_addr_3,
                 city,
                 state,
                 country,
                 zip,
                 bank_ident_num,
                 addtl_info
            FROM TB_XOP_WIRE_INSTRUCTIONS
           WHERE wire_seq_no = in_wire_seq_no
           UNION
           SELECT ml_brok_acct_num,
                 ssn,
                 plan_num,
                 instr_type,
                 aba_routing_num,
                 swift_routing_code,
                 bank_name,
                 bank_acct_num,
                 name_on_account,
                 bank_addr_1,
                 bank_addr_2,
                 bank_addr_3,
                 city,
                 state,
                 country,
                 zip,
                 bank_ident_num,
                 addtl_info
            FROM TB_XOP_WIRE_INSTRUCTIONS_AUDIT
           WHERE wire_seq_no = in_wire_seq_no;
    CURSOR c_order_qty IS
    SELECT order_qty
    FROM tb_xop_order_manager
    WHERE voucher_num = p_voucher_num;
    v_order_qty     tb_xop_order_manager.order_qty%TYPE;
    v_wire_instruction             c_wire_instruction%ROWTYPE;
    v_order_dtls      get_order_dtls%rowtype;
    v_opt_dtls        get_opt_dtls%rowtype;
    v_settle_dt       tb_ml_exer_upload.settle_dt%type;
    v_cusip_num       corp.cusip_num%type;
    v_err_cd          number(12):=0;
    v_err_msg         varchar2(4000);
    v_compy_nme       tb_fc_Compy.compy_nme%type;
    v_ml_sec_num      tb_fc_compy.ml_sec_num%type;
    v_mail_cd         xop_optionee.mail_cd%type;
    v_count1            PLS_INTEGER := 0;
    v_sum_activity_qty  tb_xop_order_manager_t.activity_qty%TYPE;
    v_transact_no       PLS_INTEGER;
    v_ivr_plan_num      tb_fc_compy.ivr_plan_num%TYPE;
    wait_for_more       EXCEPTION;
    exceeds_order_qty   EXCEPTION;
    --Added for CQ# PCTUP00481233
    v_sub_totfee number;
    v_sub_fixedfee1 number;
    v_sub_fixedfee2 number;
    v_sub_fixedfee3 number;
    v_sub_secfee number;
    v_sub_feenum number;
    --Added for CQ# PCTUP00481233
    v_fixedfee1 tb_xop_order_manager_t.fixed_fee1%TYPE; --SPIF# 43161- variable to hold fixed fee1
    BEGIN
        OPEN c_order_qty;
        FETCH c_order_qty INTO v_order_qty;
        CLOSE c_order_qty;
        dbms.output.put_line('completed1');
        IF v_order_qty <> p_activity_qty THEN
          dbms.output.put_line('completed2');
            IF p_status_type = 'EO' AND v_order_qty < p_activity_qty THEN
                RAISE exceeds_order_qty;
                  dbms.output.put_line('completed3');
            ELSIF p_status_type = 'EO' AND v_order_qty > p_activity_qty THEN
                -- Partial Execution
                INSERT INTO tb_xop_hold_multi_orders
                    ( voucher_num
                    , reference_key
                    , seq_num
                    , return_code
                    , reason_desc
                    , status_type
                    , activity_qty
                    , leaves_qty
                    , exec_price
                    , current_status
                    , waiting
                    ,activ_dt )
                VALUES
                    ( p_voucher_num
                    , p_reference_key
                    , p_seq_num
                    , p_return_code
                    , p_reason_desc
                    , p_status_type
                    , p_activity_qty
                    , p_leaves_qty
                    , p_exec_price
                    , p_current_status
                    , 'Y'
                    ,SYSTIMESTAMP );
                      dbms.output.put_line('completed4');
            ELSE
                IF p_status_type = 'BE' THEN
                    SELECT COUNT(1) INTO v_count1
                    FROM tb_xop_hold_multi_orders
                    WHERE voucher_num = p_voucher_num;
                      dbms.output.put_line('completed5');
                    IF v_count1 > 0 THEN
                        INSERT INTO tb_xop_hold_multi_orders
                            ( voucher_num
                            , reference_key
                            , seq_num
                            , return_code
                            , reason_desc
                            , status_type
                            , activity_qty
                            , leaves_qty
                            , exec_price
                            , current_status
                            , waiting
                            ,activ_dt)
                        VALUES
                            ( p_voucher_num
                            , p_reference_key
                            , p_seq_num
                            , p_return_code
                            , p_reason_desc
                            , p_status_type
                            , (-1) * p_activity_qty
                            , p_leaves_qty
                            , p_exec_price
                            , p_current_status
                            , 'Y'
                            ,SYSTIMESTAMP );
                        UPDATE tb_xop_hold_multi_orders
                        SET waiting = 'Y'
                        WHERE voucher_num = p_voucher_num;
                          dbms.output.put_line('completed6');
                    END IF;
                END IF;
            END IF;
              dbms.output.put_line('completed7');
            SELECT SUM(NVL(activity_qty,0)) INTO v_sum_activity_qty
            FROM tb_xop_hold_multi_orders
            WHERE waiting = 'Y'
            AND voucher_num = p_voucher_num;
            IF v_sum_activity_qty > 0 THEN
                IF v_sum_activity_qty <> v_order_qty THEN
                    RAISE wait_for_more;
                ELSE
                    -- final order in the partial execution; complete the process
                    UPDATE tb_xop_hold_multi_orders
                    SET waiting = 'N'
                        , process_dt = SYSDATE
                    WHERE voucher_num = p_voucher_num;
                END IF;
            END IF;
        END IF;
        UPDATE tb_xop_order_manager_t
        SET activ_dt = TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) || '.000'
            , dest = p_dest
            , reference_key = p_reference_key
            , seq_num = p_seq_num
            , return_code = p_return_code
            , reason_desc = p_reason_desc
            , status_type = p_status_type
            , activity_qty = v_order_qty --p_activity_qty
            , leaves_qty = 0 --p_leaves_qty
            , exec_price = p_exec_price
        WHERE voucher_num = p_voucher_num;
        dbms.output.put_line('completed8');
         * SPIF# 43161- Update of current status to PO moved at the end, same as how PROD works.
    IF (p_status_type = 'EO') THEN
      BEGIN
        select cusip_num
          into   v_cusip_num
          from   corp;
      EXCEPTION
          WHEN NO_DATA_FOUND THEN
              SELECT cusip_num
                INTO v_cusip_num
                FROM tb_xop_espp_compy
               WHERE compy_acronym = replace(replace(user,'CMS'),'_USER');
          WHEN OTHERS THEN
              NULL;
      END;
       select compy_nme,ml_sec_num, ivr_plan_num
       into   v_compy_nme,v_ml_sec_num, v_ivr_plan_num
       from   tb_fc_compy
       where compy_acronym = replace(replace(user,'CMS'),'_USER')
       UNION ALL
       select compy_nme, je_ml_security_number, ivr_plan_num
       from tb_xop_espp_compy
       where compy_acronym = replace(replace(user,'CMS'),'_USER');
    --   where  ivr_plan_num = replace(substr(p_voucher_num,1,7),'SSO','XOP');
      open get_order_dtls(p_voucher_num);
      FETCH get_order_dtls INTO v_order_dtls;
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_order_dtls.exer_date + 1));
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_settle_dt + 1));
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_settle_dt + 1));
       FOR c_mail_cd IN get_mail_cd(v_order_dtls.opt_num)
       LOOP
         v_mail_cd := c_mail_cd.mail_cd;
         -- Do we need to get sp_mail_cd and overlay with the sp_mail_cd in order_manager_t???
       END LOOP;
       OPEN get_opt_dtls(v_order_dtls.opt_num);
       FETCH get_opt_dtls INTO v_opt_dtls;
       CLOSE get_opt_dtls;
      v_fixedfee1 := nvl(v_order_dtls.fixed_fee1, 0);
       * SPIF# 43161- atleast one handling fee per day of transaction
      v_fixedfee1 := pk_xop_enh_exerupdate.chrg_tranxfixed_fee(v_fixedfee1,
                                                               v_order_dtls.symbol,
                                                               v_order_dtls.corp_acronym,
                                                               v_order_dtls.opt_num);
      --Insert into tb_ml_exer_upload
      --Added for CQ# PCTUP00481233
       Pk_Xop_Transactmodel.GET_FEE(v_order_dtls.GROUP_ID,v_order_dtls.SVC_ID,'SQ',v_order_dtls.opts_exer,
                                    round(v_order_dtls.exec_price, 4),v_sub_totfee,v_sub_fixedfee2,v_sub_fixedfee1,
                                    v_sub_fixedfee3,v_sub_secfee,v_sub_feenum,lpad(v_order_dtls.ssn,9,0));
       v_order_dtls.sec_fee:=v_sub_secfee;
       UPDATE tb_xop_order_manager_t
        SET sec_fee=v_sub_secfee
        WHERE voucher_num = p_voucher_num;
        dbms.output.put_line('completed8');
      --- End CQ # PCTUP00481233
      INSERT INTO tb_ml_exer_upload
                            (exer_num,exer_seq,
                             exer_dt, written_flag, backout_flag, output_line,
                             je_flag, opts_exer,
                             tot_tax,shrs_sold,comm_value,tot_fee,
                             mkt_prc,exer_type, soc_sec,
                             name_first, name_mi,
                             name_last,check_addr_1,check_addr_2,check_addr_3,
                             check_addr_4,check_addr_5,city,state,zip,country,
                             city_state_zip_country,
                             p_name,opt_addr1,opt_addr2,opt_addr3,opt_addr4,
                             opt_addr5,opt_addr6,
                             settle_dt,send_to_citibank_flag,
                             dom_chek_distr,foreign_currency_code,
                             distribution_method,wire_seq_no,
                             cusip_num, ml_retail_account,multi_curr_handling_fee,
                             ml_sec_num, corp_name,upd_optionee_addr,
                             outbound_flag, -- make it N
                             corp_symbol,taxwire_approve, -- make it not applicaplabe
                             exersource,
                             mail_cd, sp_mail_cd,
                             backup_withholding,
                             user_id,
                             acct_num_othr)
       VALUES(v_order_dtls.exer_num,0,v_order_dtls.exer_date,'N','N',NULL,
    -- PG 12/12/05 Changed to populate the je_flag based on dom_chek_distr         'D',
    -- PG 12/16/05 JE should not be generated for international checks.. So 'Y' always
              'Y', --je_flag
              v_order_dtls.opts_exer,0,--total tax will be 0.
              v_order_dtls.opts_exer, --shrs_sold,
              v_order_dtls.comm_value,
              --SPIF# 43161- replaced nvl(v_order_dtls.fixed_fee1, 0) with v_fixedfee1
              v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), --v_order_dtls.fees_amt,
              round(v_order_dtls.exec_price, 4),v_order_dtls.exer_type,
              LPAD(v_order_dtls.ssn,9,'0'), --v_order_dtls.ssn, Modified by Suresh on 02/08/07 for SPIF # 37210
              v_order_dtls.name_first,v_order_dtls.name_mi,v_order_dtls.name_last,
              v_order_dtls.check_addr_1,v_order_dtls.check_addr_2,v_order_dtls.check_addr_3,
              v_order_dtls.check_addr_4,v_order_dtls.check_addr_5,nvl(v_order_dtls.city,v_opt_dtls.city),
              nvl(v_order_dtls.state,v_opt_dtls.state),nvl(v_order_dtls.zip,v_opt_dtls.zip),
              nvl(v_order_dtls.country,v_opt_dtls.country),
              SUBSTR(nvl(v_order_dtls.city||v_order_dtls.state||v_order_dtls.zip||v_order_dtls.country,
                  v_opt_dtls.city_state_zip_country),1,34), -- COLUMN LENGTH MAX IS 35
              v_opt_dtls.p_name,v_opt_dtls.opt_addr1,v_opt_dtls.opt_addr2,v_opt_dtls.opt_addr3,
              v_opt_dtls.opt_addr4,v_opt_dtls.opt_addr5,v_opt_dtls.opt_addr6,
              v_settle_dt,decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
              v_order_dtls.dom_chek_distr,v_order_dtls.foreign_currency_code,
              v_order_dtls.distribution_method,v_order_dtls.wire_seq_no,
              v_cusip_num,v_order_dtls.acct_num,v_order_dtls.multi_curr_handling_fee,
    --          nvl(fn_get_sec_num(replace(substr(p_voucher_num,1,7),'SSO','XOP'),v_order_dtls.symbol),v_ml_sec_num),
              nvl(fn_get_sec_num(v_ivr_plan_num, v_order_dtls.symbol),v_ml_sec_num),
              v_compy_nme,v_order_dtls.upd_optionee_addr,
              'N', --'N' is for outbound flag.
              v_order_dtls.symbol,'D', --'D' for taxwires disabled
              'S', -- 'S' for source being subsequent sale.
              v_mail_cd,  --need to get mail_Cd??
              v_order_dtls.sp_mail_cd,v_order_dtls.backup_withholding,
              user,v_order_dtls.acct_num_othr);
    IF (NVL(v_order_dtls.wire_seq_no,0) > 0) THEN
       OPEN c_wire_instruction(v_order_dtls.wire_seq_no);
       FETCH c_wire_instruction INTO v_wire_instruction;
       CLOSE c_wire_instruction;
      INSERT INTO TB_XOP_TRANSACT_WIRE_INSTR
                           (user_id, exer_num, wire_seq_no, ml_brok_acct_num, ssn,
                            plan_num, instr_type, aba_routing_num,
                            swift_routing_code, bank_name, bank_acct_num,
                            name_on_account, bank_addr_1, bank_addr_2, bank_addr_3,
                            city, state, country, zip, bank_ident_num, addtl_info )
                        VALUES
                           (USER,v_order_dtls.exer_num, v_order_dtls.wire_seq_no,
                            v_wire_instruction.ml_brok_acct_num, v_wire_instruction.ssn,
                            v_wire_instruction.plan_num, v_wire_instruction.instr_type, v_wire_instruction.aba_routing_num,
                            v_wire_instruction.swift_routing_code, v_wire_instruction.bank_name, v_wire_instruction.bank_acct_num,
                            v_wire_instruction.name_on_account, v_wire_instruction.bank_addr_1, v_wire_instruction.bank_addr_2,
                            v_wire_instruction.bank_addr_3, v_wire_instruction.city, v_wire_instruction.state, v_wire_instruction.country, v_wire_instruction.zip,
                             v_wire_instruction.bank_ident_num, v_wire_instruction.addtl_info);
            dbms.output.put_line('completed10');
    END IF;
    /* PG 01/05/06 Call the check conversion only for international checks and wires */
    IF v_order_dtls.dom_chek_distr = 'N' AND v_order_dtls.distribution_method IN ('W', 'D', 'C') THEN
        /* PG 12/20/05 To process subsequent sales with wire or foreign currency distribution */
         v_transact_no := 88;
         pk_xop_citibank_forex.pr_cashconversion_ins_request( v_order_dtls.acct_num
                                                              , LPAD(v_order_dtls.ssn,9,'0') --v_order_dtls.ssn, Modified by Suresh on 02/15/07 for SPIF # 37210
                                                              , v_order_dtls.distribution_method
                                                              , v_order_dtls.foreign_currency_code
                                                              , v_order_dtls.wire_seq_no
                                                              , ROUND((v_order_dtls.opts_exer * round(v_order_dtls.exec_price, 4)),2)
                                                                - ROUND(v_order_dtls.comm_value,2)
                                                                - ROUND(nvl(v_order_dtls.fixed_fee1,0) + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0),2)
                                                                - nvl(v_order_dtls.multi_curr_handling_fee,0)
                                                                - nvl(v_order_dtls.backup_withholding,0) -- net proceeds
                                                              , v_order_dtls.multi_curr_handling_fee --handling fee
                    --Modified by Bhaskar/Suresh on 03/02/2006    --, v_order_dtls.login_name
                                                              , CASE v_order_dtls.login_name WHEN 'CLIENT/' THEN v_order_dtls.login_name||'SSO' ELSE v_order_dtls.login_name||'/SSO' END
                                                              , v_transact_no -- transact_no as place holder for exer_type 88
                                                              , v_order_dtls.check_addr_1
                                                              , v_order_dtls.check_addr_2
                                                              , v_order_dtls.check_addr_3
                                                              , v_order_dtls.check_addr_4
                                                              , v_order_dtls.upd_optionee_addr
                                                              , v_order_dtls.city
                                                              , v_order_dtls.state
                                                              , v_order_dtls.zip
                                                              , v_order_dtls.country
                                                              , v_order_dtls.login_ipaddress
                                                              , v_order_dtls.fcnum
                                                              , v_order_dtls.opt_num
                                                              , v_settle_dt,
                                                              p_exer_num => v_order_dtls.exer_num
    END IF;
    COMMIT;
    close get_order_dtls;
    END IF;
      * SPIF# 43161- Update to current status into PO is moved to this part, same as PROD.
    UPDATE tb_xop_order_manager_t
    SET exec_dttime = decode(p_status_type,'EO',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),null)
         , exer_date  = TRUNC(SYSDATE)
         , cancel_dttime = decode(p_status_type,'CX',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),'UR',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),null)
         , current_status = 'PO'
         , sum_status = decode(p_status_type,'EO','X','C')
         , sum_stat_dttime = SYSDATE
    WHERE voucher_num = p_voucher_num;
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
    EXCEPTION
            dbms.output.put_line('completed200');
    /* PG 02/10 handled 'partial fill order' exception */
      when wait_for_more then
          v_err_cd := 0;
          v_err_msg := 'ORA-0000: normal, successful completion';
          pr_xop_log_errors('Partially filled; Waiting for more - Activity qty:' || to_char(v_sum_activity_qty)|| ' pk_xop_subsales.pr_process_exer');
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
      when exceeds_order_qty then
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
          pr_xop_log_errors('Activity quantity exceeded the Order_qty - Activity qty: ' || to_char(p_activity_qty) || ' pk_xop_subsales.pr_process_exer');
      when others then
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
          pr_xop_log_errors('ErrorCode '||SQLCODE||' with ErrorMessage as '||SQLERRM||' has occured for '||user||'pk_xop_subsales.pr_process_exer');
                dbms.output.put_line('completed125');
    END pr_process_exer;
    Hi friends, any1 help me out how to define the ref-cursor in declaration section, and how to find at what situation the constraint error occurred..

    956684 wrote:
    Hi,.
    Friends plz help me out ..how to debug and find the exact position of the constraint violation..thank you for the help..There isn't a way to trace it unless you have caught the exception raised.
    As a way to start the debug, you will have to monitor
    1. All DML's against the Table on which you have constraint. More specifically, the DML's that act on the column you have constraint on.
    2. Use Exception Handling, to log the Error and the data that causes the constraint to fail.
    3. Do not forget to monitor the Triggers, if they are used, that would write some data into the column you have constraint on.
    Or
    Another way to trace is:
    select *
      from user_source
    where lower(text) like '%your_table_name%';
    order by type, name, line;Look at the lines, exclude that are in Declaration or in SELECT statements and target the DML's.
    Looking at the un-formatted code you posted, this statement looks like a culprit.
    INSERT INTO tb_ml_exer_upload
    (exer_num,exer_seq,
    exer_dt, written_flag, backout_flag, output_line,
    je_flag, opts_exer,
    tot_tax,shrs_sold,comm_value,tot_fee,
    mkt_prc,exer_type, soc_sec,
    name_first, name_mi,
    name_last,check_addr_1,check_addr_2,check_addr_3,
    check_addr_4,check_addr_5,city,state,zip,country,
    city_state_zip_country,
    p_name,opt_addr1,opt_addr2,opt_addr3,opt_addr4,
    opt_addr5,opt_addr6,
    settle_dt,send_to_citibank_flag,
    dom_chek_distr,foreign_currency_code,
    distribution_method,wire_seq_no,
    cusip_num, ml_retail_account,multi_curr_handling_fee,
    ml_sec_num, corp_name,upd_optionee_addr,
    outbound_flag, -- make it N
    corp_symbol,taxwire_approve, -- make it not applicaplabe
    exersource,
    mail_cd, sp_mail_cd,
    backup_withholding,
    user_id,
    acct_num_othr)
    VALUES(v_order_dtls.exer_num,0,v_order_dtls.exer_date,'N','N',NULL,
    -- PG 12/12/05 Changed to populate the je_flag based on dom_chek_distr 'D',
    -- PG 12/16/05 JE should not be generated for international checks.. So 'Y' always
    'Y', --je_flag
    v_order_dtls.opts_exer,0,--total tax will be 0.
    v_order_dtls.opts_exer, --shrs_sold,
    v_order_dtls.comm_value,
    --SPIF# 43161- replaced nvl(v_order_dtls.fixed_fee1, 0) with v_fixedfee1
    v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), --v_order_dtls.fees_amt,
    round(v_order_dtls.exec_price, 4),v_order_dtls.exer_type,
    LPAD(v_order_dtls.ssn,9,'0'), --v_order_dtls.ssn, Modified by Suresh on 02/08/07 for SPIF # 37210
    v_order_dtls.name_first,v_order_dtls.name_mi,v_order_dtls.name_last,
    v_order_dtls.check_addr_1,v_order_dtls.check_addr_2,v_order_dtls.check_addr_3,
    v_order_dtls.check_addr_4,v_order_dtls.check_addr_5,nvl(v_order_dtls.city,v_opt_dtls.city),
    nvl(v_order_dtls.state,v_opt_dtls.state),nvl(v_order_dtls.zip,v_opt_dtls.zip),
    nvl(v_order_dtls.country,v_opt_dtls.country),
    SUBSTR(nvl(v_order_dtls.city||v_order_dtls.state||v_order_dtls.zip||v_order_dtls.country,
    v_opt_dtls.city_state_zip_country),1,34), -- COLUMN LENGTH MAX IS 35
    v_opt_dtls.p_name,v_opt_dtls.opt_addr1,v_opt_dtls.opt_addr2,v_opt_dtls.opt_addr3,
    v_opt_dtls.opt_addr4,v_opt_dtls.opt_addr5,v_opt_dtls.opt_addr6,
    v_settle_dt,decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
    v_order_dtls.dom_chek_distr,v_order_dtls.foreign_currency_code,
    v_order_dtls.distribution_method,v_order_dtls.wire_seq_no,
    v_cusip_num,v_order_dtls.acct_num,v_order_dtls.multi_curr_handling_fee,
    -- nvl(fn_get_sec_num(replace(substr(p_voucher_num,1,7),'SSO','XOP'),v_order_dtls.symbol),v_ml_sec_num),
    nvl(fn_get_sec_num(v_ivr_plan_num, v_order_dtls.symbol),v_ml_sec_num),
    v_compy_nme,v_order_dtls.upd_optionee_addr,
    'N', --'N' is for outbound flag.
    v_order_dtls.symbol,'D', --'D' for taxwires disabled
    'S', -- 'S' for source being subsequent sale.
    v_mail_cd, --need to get mail_Cd??
    v_order_dtls.sp_mail_cd,v_order_dtls.backup_withholding,
    user,v_order_dtls.acct_num_othr);What is the Table structure of tb_ml_exer_upload and what columns do you have constraints on?
    Which column of the table tb_ml_exer_upload is your Primary Key (because constraint name mentions pk_tb_ml_exer_upload)?
    Edited by: Purvesh K on Jan 4, 2013 12:57 PM

  • Help in Variable exit in Bi 7.0

    Hi Experts,
        For my requirement  I need write a variable exit in BI 7   based on start date and end date.1)If  user enquiry date is  lies between current month +last 2 month then get data of 3 months ie current month( complete data   before current week) + last 2month.  2)If user enquiry date lies beyond (current month + last 2 months ) then he get only data on which date lies.Can any suggest me how write variable exit  for requirement and what would be abap code i need  in variable exit.
    Thanks
    Vinod
    Edited by: vinod  kumar on Jan 27, 2009 5:35 AM

    Hi Vinod,
      Check here.........
    Customer Exit variable
    Customer Exit for Query Variable
    Customer Exit for Query Variable
    Re: variable customer exit
    Thanks,
    Vijay.

  • How to debug a ABAP Routine which is in Infopackage Data selection Tab

    Hi ,
       Please let me know How to debug a ABAP Routine which is in Infopackage Data selection Tab.

    Hi,
    You can try to create infinite loop:
    DATA: STOP.
    WHILE STOP IS INITIAL. ENDWHILE.
    Start InfoPackage and then go to SM50 and swich on debugging for your process. Then in debugger you can change value of STOP variable to skip the loop.
    Krzys

Maybe you are looking for

  • Iphone 5 does not charge via USB laptop in sleep

    I hook my iPhone 5 up to my Lenovo G570 laptop. When the laptop is not sleeping, the iPhone charges just fine. When the laptop sleeps, the iPhone no longer charges. BUT.... The USB port on the laptop powers and charges other USB devices just fine, ev

  • Saving from Single User Mode???

    ok, so my computer *****, and i just want to reformat the drive and start from scratchville. is there any way to have a USB Thumbdrive or external hard drive attached and move files from single user mode to the thumb drive to store it. and then once

  • Connect Oracle 10g and OWB to SQL Server 2005 in Windows XP

    I am unable to create a working connection between Oracle 10g and a SQL Server database. I have followed the instructions in several sources, but when I attempt to connect to the MSSQL database through SQL Plus or SQL Developer, I get the ORA-03135 e

  • Publishing Site Template Missing - MOSS 2007

    Hi All, I can't see the "Publishing Site" template in the list while creating a site/site collection. The publishing feature is activated in both site collection level and site level. I can see only "Publishing Site with Workflow" and "News site" und

  • Issue with late coming hrs deduction

    Hello, We have positive time management in place for plant workmen and one absence configured called Late coming to duty. for which deduction take place in case person reports late in duty. Now issue is, if workers are doing off-day duty on sunday or