Вы находитесь на странице: 1из 9

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

DebuggingOAFramework­7DifferentTechniques

| 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.

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

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

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

enter the following text in Runner property of jDeveloper Have a look at this demo to

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.

Diagnostics to enable On­Screen display of debug messages. Pro * The debug messages seen using this

Pro

* 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.

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

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.

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

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.

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

Comments(20)

Comments(20) Subscribe to this comment's feed written by Samuel
Comments(20) Subscribe to this comment's feed written by Samuel

written by Samuel Schwartz , September 17, 2007 Hi Anil,

written by Samuel Schwartz , September 17, 2007 Hi Anil, Amazing articles ! Thanks. I have

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

written by Anil Passi , September 17, 2007 Hi Sam

written by Anil Passi , September 17, 2007 Hi Sam

If you wish to walk through the code, then do the following

1.

FTP all the required sub­directories from $JAVA_TOP to myclasses.

This includes all .class files and all the .xml files

 

2. FTP the same sub­directories from $JAVA_TOP to myprojects.

3. Decompile the .class files in myprojects and name those decompiled files to .java

4. Delete the .class files from myprojects

5. FTP the xml files from $PRODUCT_TOP/mds to myprojects

6. Import the required BC4J files that you wish to debug

7. Set breakpoints in desired EO and VO

8. Run the mds page in debug mode, and that will take you straight to breakpoints in EO/VO/AM/CO etc.

 

Thanks,

Anil Passi

written by kartikey , September 19, 2007 Hi Anil , its really a g8 work which you r doing.many many thanks for that.

written by kartikey , September 19, 2007 Hi Anil , its really a g8 work which

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

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

bye

written by Anil Passi , September 19, 2007 Hi Kartik

Are you on R12, if so, please read http://oracle.anilpassi.com/multi­org­r12­33.html and also

and also http://oracle.anilpassi.com/mo ign­2.html In case you are on 11i, you will need to implement the

In case you are on 11i, you will need to implement the logic yourself. There are various options that you have:­

1. Create Org­Groups, say using FND_LOOKUP TYPES and pass the lookup type as parameter.

Lookup codes will be the org­codes for each lookup type.

In the SQL query use _all tables and join to the fnd_lookup_types for the lookup_type passed as parameter.

2. Pass a node of the org hierarchy as a parameter

Again, amend your SQL query with _all synonyms and join to org hierarchy

3. For the same executable , use various concurrent program and pass hidden parameters.

In case, you wish to report accross all org's then ignore above 3 options,and simply use _all synonyms in your SQL

Thanks,

Anil Passi

simply use _all synonyms in your SQL Thanks, Anil Passi written by bompada , September 20,

written by bompada , September 20, 2007 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

written by madhusudhan , September 21, 2007 Hi Anil Do have Apps Functional(manufacturing & distribution)interview questions

madhusudhan , September 21, 2007 Hi Anil Do have Apps Functional(manufacturing & distribution)interview questions
& distribution)interview questions written by Anil Passi , September 22, 2007 Hi Bhaskar

written by Anil Passi , September 22, 2007 Hi Bhaskar

Please try setting profile option “FND Developer Mode” to No and see if debug messages disappear. raiseDeveloperException is primarily used internally by Oracle developers.

 

Having said so, the best way to capture debug messages in OA Framework is FND Logging, as that facilitates on­ screen logging, table based logging & file based logging. For this you can use pageContext.writeDiagnostics in

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

Controller or oadbtransaction.writeDiagnostics in BC4J. All your custom/extended class names will begin with xx, hence you can apply the filter for module = xx%. By doing so, only your custom debug messages will be displayed

Thanks,

Anil Passi

debug messages will be displayed Thanks, Anil Passi written by vidhya , September 26, 2007 hi

written by vidhya , September 26, 2007 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

written by Anil Passi , September 26, 2007 Hi Vidhya

written by Anil Passi , September 26, 2007 Hi Vidhya It isn’t clear from your post

It isn’t clear from your post whether the file on unix box is in a secured area? In case the file is in OA_HTML[non­secured], then simply create a hyperlink to that file in framework page. Users can then right­click the link to save file onto the PC.

If the file exists in secured area, then load that file into a blob into a table. Next, in your OA Framework page, create an attachment table bean that provides access to file in blob. Users can then click on attachment link to open the file.

I am afraid, there is no way you can FTP the file straight from server onto PC using OA Framework.

Thanks,

Anil Passi

written by SS , September 27, 2007

Hi,

Thanks, Anil Passi written by SS , September 27, 2007 Hi, I have to create a

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

written by vidhya , September 27, 2007 Thanks Anil

written by vidhya , September 27, 2007 Thanks Anil

written by Manish Kumar , September 29, 2007 Hey Anil,

written by Manish Kumar , September 29, 2007 Hey Anil,

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

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.

How to compile .fmb in linux machine written by pavan kumar , October 05, 2007 iam not able to compile the .fmb in linux machine it was telling invalid command plz tell me wat is the problem

05, 2007 iam not able to compile the .fmb in linux machine it was telling invalid

written by pavan kumar , October 08, 2007 Hi anil

written by pavan kumar , October 08, 2007 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

written by Anil Passi , October 08, 2007 Hi Pravin, Your apps environment on shell isn't setup correctly. Hence f60gen is not in the path.

, October 08, 2007 Hi Pravin, Your apps environment on shell isn't setup correctly. Hence f60gen

Your dba's should be able to help you with this

Thanks,

Anil Passi

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

OA page debugging written by silpa , October 09, 2007 Hi anil

debugging written by silpa , October 09, 2007 Hi anil We have an OA page. We

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

written by Anil Passi , October 09, 2007 Shilpa

Oracle does not deliver .jpr files. Hence you need to bring the objects yourself into jdev You will need to FTP the page from $PRODUCT_TOP/mds/ And then put that page into myprojects

/ webui

And then put that page into myprojects / webui You can open that page to see

You can open that page to see the server components[VO/EO/AM] etc you need. To run that page, all these dependent objects must be placed in myclasses, as myclasses folder is included in CLASSPATH for OA Framework runtime in jDev.

In case you need to extend BC4J, then open those BC4J objects using server.xml

You will also find my response to Sam [above dated September 17, 2007] useful.

Thanks,

Anil Passi

written by pavan kumar , October 16, 2007 Hi Anil

Passi written by pavan kumar , October 16, 2007 Hi Anil Can u plz tell me

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

Self service page tables written by siva ram , December 24, 2007 Hi Anil,

Self service page tables written by siva ram , December 24, 2007 Hi Anil,

i want to debug one of the self service page to check which tables got updating or inserting behind the page.

7/21/2015

Apps­DebuggingOAFramework­7DifferentTechniques

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

adding a label text written by scott , December 28, 2007 question. in oaframework (new
adding a label text
written by scott , December 28, 2007
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
You must be logged in to a comment. Please register if you do not have an account yet.

Close Window

Оценить