| Home |
| Technical Articles |
| Training Articles |
| Receive Email for New Articles |
| Contributors |
| Hands-On-Training |
| Consultancy Services |
Technical Articles
Oracle Application Framework
Debugging OA Framework - 7 Different Techniques | Debugging OA Framework - 7 Different Techniques | | Print | |
| Written by Anil Passi | |
| Saturday, 15 September 2007 | |
|
In this article, I will explain seven different methods to debug OA Framework pages in Oracle eBusiness Suite. Each of these methods are explained using working Audio-Video demo, hence you will need your headphones. Some of these techniques are applicable when running the Framework pages from jDeveloper, whereas other debugging techniques apply when debugging OA Framework Pages from eBusiness Suite responsibility. Each method of debugging OA Framework pages has its own merits, and hence you must apply one of the techniques that suites the most to your situation. 1. Use System.out.println When running the OA Framework pages from jDeveloper itself, you can write debug messages using System.out.println. These debug messages will be displayed in the console of jDeveloper. Pro * Ease of use, as you simply enter free text messages * Debug messages simply appear without the need to set any profile options Cons * Too much typing, which can be avoided when using the debugger of jDeveloper. * You can debug only those pieces of code that you suspect are causing the error. Unlike to this approach, using jDeveloper debugging, breakpoints can be set for exceptions/classes as well. Click here to see a quick working demo for debuging OA Framework using System.out.println 2. Use jDeveloper inbuilt Debugger This happens to be my favourite mechanism to debug OA Framework Pages, for the following reasons Pro * To get started just one breakpoint is required, as more and more breakpoints can be added in runtime itself. * You can set generic breakpoints, for example, you can set breakpoint on exceptions, which will take you to the exact line of code from where the exception was being raised * jDeveloper makes it possible to try different scenarios, for example, you can change the variable values at runtime Cons * Given that you do not have source code of base classes, debugger usually dives into those classes without giving many visible details. One may find this annoying. * Some versions of OAFwk raise exceptions[caught internally by Oracle] like Classcast exception even before the page renders. Debugger often pauses when those exceptions are raised. This can be overcome by clicking on “resume button” of debugger. Click here for demo of debugging via jdeveloper debugger The demo in above link also shows how you can change the variable values at runtime. Click here for demo of using debugger to trap classcast exceptions The demo in above link shows how you can set breakpoints for specific Exceptions that can be raised from OA Framework Pages 3. Use jDeveloper debugging feature, by changing Java VM runtime option Djbo.debugoutput Lets say, for this exercise, I wish to find the exact piece of SQL Statement that my screen fires, when doing an update. In order to do so, we can append text -Djbo.debugoutput=console to runner property As shown below, I can enter the following text in Runner property of jDeveloper 4. Use the FND Debug Logging feature, to see debug messages on the OA Framework Screen itself The debug messages can either been seen on the same screen or those can be spooled into a table named FND_LOG_MESSAGES In jDeveloper, you must include OADiagnostic in the “Run Options”. This is effectively similar to setting profile option “FND Diagnostics” to Yes in eBusiness Suite. Using this option, you will be able to click on Diagnostics to enable On-Screen display of debug messages. * The debug messages seen using this technique are exactly the same as the debug messages seen in eBusiness Suite, once FND%Log% profile options are available. * There is tremendous amount of debug messages in FND classes given by Oracle. * This approach is the most useful when investigating red coloured error message “Please contact your system administrator” Cons * Prior to 11.5.10, this option might bring your application session down to its knee. But I notice from 11.5.10 onwards, these debug messages are captured very efficiently. * The debugging is limited to the debug messages in place. To maximise the listing of debug messages, try to use statement level debugging. Click here for the demo of doing on-screen debugging for OA Framework pages 5. SQL Trace for Oracle Framework Sessions We often use this technique for tracing the SQL statements executed by Oracle Forms or by concurrent programs. The same technique can be applied to OA Framework too. You can run the SQL*Trace either when running the application pages from “OA Framework” or when running OA Framework pages from within eBusiness Suite. For jDev, ensure that OA Diagnostics has been included in jDeveloper Project property “Run Options”. Alternately ensure that profile option “FND Diagnostics” has been setup against your username. Click here for the demo of SQL*Trace on OA Framework Pages 6. Use FND Logging profile options to capture debug messages into a table named FND_LOG_MESSAGES Use the FND Debug Logging feature, to see debug messages. The debug messages can either been seen on the same screen or those can be spooled into a table named FND_LOG_MESSAGES Please click on this link to see an article on FND Logging 7. Use raiseDeveloperException. I had all but forgotten about this technique, until I discussed this paper with Mr Senthil prior to its publication. He reminded of raiseDeveloperException. You can raise debug messages to be displayed in OA Framework pages using raiseDeveloperException. By doing so, your debug messages will be visible onto the top portion of the screen. This is very similar to System.out.println, however the key difference being that raiseDeveloperException displays the debug message on top portion of the page itself. Pro * Ease of use, as you simply enter free text messages * Debug messages simply appear without the need to set any profile options * Debug messages appear on the top portion of the page and hence the ease of visibility when testing your code in jDeveloper Cons * Too much typing, which can be avoided when using the debugger of jDev. * You can debug only those pieces of code that you suspect are causing the error. Click here for the working demo of this technique to debug OA Framework Page. Comments
(20)
Hi Anil ,
its really a g8 work which you r doing.many many thanks for that. I hv a question sorry i did not get the right form so i m using this.I hv created a sqlplus based report and registered it in apps as a concurrent report which run for US,UK ,CANADA.although i hv set org _id and it is running fine now i want to do a modification .I want to run this report through one geographic responsibility and it should collect all the data of all geographic Ex if I m in PA US superuser i want to run this report for US and UK as i hv set the org_id :default:profile it is only getting data of US not UK .I want that user can able to get data of UK and US through PA US superuser or UK and canada or US UK canada means to get data of other country user should change not responsibility he can get data of all country by one responsibility. Plz help me asap by mail or . I will be very thankful bye
Hi Anil,
very useful information. Appreciate your help. I have a doubt - is there any way to stop developer exceptions all at once. For example I have 10 places where i have raised this developer exceptions. Just before delivering my code I have to disable these lines, so is there any way to unset all at a time. Thanks in advance. Bhaskar
Hi Anil
Do have Apps Functional(manufacturing & distribution)interview questions
hi anil,
i want to know how to download a report from unix folder to local system through OAF. can we do this. can u tell me the solution
Hi,
I have to create a new employee number using person types. There are three Employee types like Type1, Type2, Type3. All the three person types must have unique series of numbers(numeric or alphanumeric). Regards SS
Thanks Anil
Hey Anil,
First of all thanks for starting such a nice thread. Its really helpful. I am facing a problem with OADefaultHideShowBean. I have a page in which a shared region is embedded twice. That shared region contains a HideShow region by making use of OADefaultHideShowBean. But when i click on the show hide link of the region embedded second it hides/shows the region that was embedded first. When the hide/show link of first region is clicked change happens only for the first region. Please guide how to proceed to solve this problem? The page layout is as follows Page1 (Main Page)-- -ShowHideRN (1st) -Shared Region -- ShowHideRN (2nd) when show/hide link of 2nd instance is clicked change happens only in the first instance.
iam not able to compile the .fmb in linux machine it was telling invalid command
plz tell me wat is the problem
Hi anil
iam not able to compile the .fmb in linux machine it was telling invalid command plz tell me wat is the problem Thanks Pavan P
Hi anil
We have an OA page. We need to make some changes to this page. Could you tell me the steps to be followed to download the page and the entire project related to it? Thanks Silpa
Hi Anil
Can u plz tell me the forms log file location when we are compiling the .fmb(form) where should be log file will be created. Thanks Pavan P
Hi Anil,
i want to debug one of the self service page to check which tables got updating or inserting behind the page. i know that we can check in the oracle forms through HELP---DIAGONASTICS--EXAMINE to check the column and table. Same way how to check in the Oracle HTML page (OA). Thanks, Siva
question. in oaframework (new to it) i need to add a item ( as message style text)
when the button is hit, i want the blank prompt to say Created on date (date is a variable) . how would i go about doing this. my page works but not sure how this would be done thanks scott You must be logged in to a comment. Please register if you do not have an account yet.
|
Amazing articles ! Thanks.
I have a doubt. Supposing I want to walkthrough the code (not debug), right from the screen to the EO's and VOs, in Jdeveloper. Is it possible to import the source code, viz, .jsp, .xml (using a patch from metalink) into jdeveloper ?
Regards,
Sam