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
-
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:
GandakiHi,
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
KirkHi 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. -
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 SchuhMy 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,
LeonHi,
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,
sreeHi,
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
AshwinIn 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 reportHi,
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.
ThksHi,
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.0This 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 AMHi 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