Oracle Apps Interview Questions

By | May 4, 2015

Introduction

Find 100 + Oracle Apps interview questions. Earlier i had published the questions available in form of parts approachable on different pages but as i have received several emails where learners has provided the feedback to put all oracle apps questions in one page, It will be easy for reading and searching the relevant stuff. So here is a big list of all oracle apps technical questions. For Oracle HRMS questions pool, I shall post a separate article that will contain a similar big list of Oracle HRMS questions.

Oracle Apps Interview Questions

These questions are mostly technical (in nature) addressing the theoretical concepts as well as the real time issues which i faced during my working experience. It also includes the questions that i came across during Apps interviews.

Part 1 – 10 Questions
Part 2 – 10 Questions
Part 3 – 10 Questions
Part 4 – 10 Questions
Part 5 – 20 Questions
Part 6 – 20 Questions
Part 7 – 20 Questions
Part 8 – 20 Questions

List of Oracle Apps Technical Interview Questions – Part 1

1. Which is the most commonly used package in apps that uses Autonomous Transaction?
2. How to migrate Self Service personalization from one instance (say development instance) to other (say production) instance?
3. What are the main differences between Forms Personalization when compared to personalization done through CUSTOM.pll?
4. How does forms personalization work?
5. Why is CUSTOM.pLL needed when we already have forms personalization?
6. How to identify the form executable?
7. Please tell me the difference between Conversions and Interfaces?
8. How to submit concurrent program through pl/sql?
9. Why do we use data source as procedure in Oracle forms? What is the use of taking procedure as Data Source?
10. Can a Calculated item be stored in a database?

1. Which is the most commonly used package in apps that uses Autonomous Transaction?

FND_LOG, this is used for debugging. This has a procedure named string, which does a commit. Hence your debug messages are not lost in the event of rollback during unhanded exception.

Back to top

2. How to migrate Self Service personalization from one instance (say development instance) to other (say production) instance?

In R12, Using the Functional Administrator responsibility, you can export from Dev instance and then import in PROD instance.

Back to top

3. What are the main differences between Forms Personalization when compared to personalization done through CUSTOM.pll?

Forms Personalization

Difference Between Forms Vs Custom.pll Personalization

Forms Personalization

  • It is stored in tables
  • It can be restricted at site/responsibility/user level
  • It is easy to disable/enable with click of a button
  • It is applied once you create personalization and   re open the form.
  • Functional/ Technical consultant can do it.
  • It can be moved easily through FNDLOAD from one instance to other
  • It is stored in tables which contain who columns with which we have the ability to track who created/modified it

Personalization through Custom.pll

  • It is stored in files
  • It is complicated in it
  • In order to enable or disable, you need to change in custom.pll and recompile it
  • It needs recompilation of custom.pll which involves mostly DBA involvement.
  • It is migrated by migrating the custom.pll
  • No such option available for custom.pll

Back to top

4. How does forms personalization work?

Oracle forms have triggers that we trap to write our business logic. Oracle has a standard practice of calling a generic piece of code from each trigger(at form level).  In this generic piece of code Oracle checks in personalization tables to see if anything extra needs to be done for the events being executed. For details of example, see the article for forms personalizations.

Back to top

5. Why is CUSTOM.pLL needed when we already have forms personalization?

Just like any technology, forms personalization has its limitations. Limitation example  of forms personalizations:
For example you wish to prompt a message to user DO YOU WISH TO CREATE THIS PERSON AS SUPPLIER OR CUSTOMER OR EMPLOYEE. Lets say this message will prompt three options, create customer , create supplier or create vendor. Depending upon what user selects, you wish to navigate to one of relevant screens from the current TCA screen. For this, you have no choice but to use CUSTOM.pll

Back to top

6. How to identify the form executable?

Method1

Open the form to be customized in Oracle Apps from respective Responsibility/Menu
Next select menu /Help/About Oracle Application.
Here, scroll down within the subwindow and search for fmx. This is the executable that oracle application runs when specific form is invoked.

Method2

Query the responsibility definition which has the form attached to this. Note down the Menu which is attached to Responsibility. Go to the menu definition screen and find the form function attached to this menu. From this form function find the form attached to this function.

Back to top

7. Please tell me the difference between Conversions and Interfaces?

Conversion is an activity that is normally done when you are upgrading the system or migrating the system from legacy to Oracle.

Main characteristic of conversions are as follows

  • It is a program
  • It’s a onetime data transfer
  • Volume of data is already known at the start of activity
  • It is used in upgrading and migration of projects

Interface is to transfer data from one place to another on schedules basis. For example, Branches can submit their data to head office on daily basis. Such task is done through interfaces.

Main characteristic of interface are as follows

  • It is a program to transfer data from one location to another
  • It is schedules according to business requirement
  • Volume of data depended on business activities and hence not known in advance
  • All exception should be handled
  • It is used in enhancements/ customization projects or where third part software are operating and we need integration with oracle.

Back to top

8. How to submit concurrent program through pl/sql?

Function FND_REQUEST.SUBMIT_REQUEST

( application in varchar2 default null,
program in varchar2 default null,
description in varchar2 default null,
start-time in varchar2 default null,
sub_request in bookan default False,
argument1,
arguemnt2,
argument 100) return number;

* If this is submitted from oracle forms, all the arguments ( 1 to 100 ) must be specified

Back to top

9. Why do we use data source as procedure in Oracle forms? What is the use of taking procedure as Data Source?
To increase the control and security.
To specify a Query at runtime, Eg: in case of manager logs in he can see more info wherein if its employee he will be able to see less data
If you want to specify any complicated business rule to be executed before getting data, you can achieve through the server side procedure which will be much faster.

Back to top

10. Can a Calculated item be stored in a database?
No, It is not possible.

 

List of Oracle Apps Technical Interview Questions – Part 2

1. When we Create a Responsibility for HR, What are three security profiles that should be set?
2. What is ALERT?
3. What is difference between concurrent program and concurrent request?
4. What is Multi Org?
5. How do you mail the output of a report?
6. What are the mandatory parameters given in Reports?
7. What are four steps needed to implement a user hook?
8. How can i know which application uses AME?
9. What is the p_validate control parameter?
10. Can I use an API on an application table on which an event-based alert is defined?

1. When we Create a Responsibility for HR, What are three security profiles that should be set?
HR: Business Group
HR:Security Profile
HR: User type

Back to top

2. What is ALERT?
Oracle Alerts are used to monitor unusual or critical activity in Oracle Apps database. The flexibility of ALERTS allows a database administrator the ability to monitor activities from tablespace sizing to activities associated with particular applications.
There are two types of Alerts. 1- Periodic Alert 2- Event Based Alerts

Back to top

3. What is difference between concurrent program and concurrent request?
Concurrent program stores the definition of what needs to be run and what parameters it can accept where as concurrent request is submitting the concurrent program for output.

Back to top

4. What is Multi Org?
Multi-Org is an Oracle Financials feature that lets you identify specific data and financial transactions as belonging to a single organization – classified as an `Operating Unit’ within your enterprise. This is essential for large customers with multiple lines of business or divisions where you want to secure access to information and simplify processing and reporting.

Back to top

5. How do you mail the output of a report?
You can email output of a concurrent program either through PL/SQL or Shell script

Using PL/SQL: For this you can use UTL_SMTP package in your concurrent program to send the mail

Using Shell Script: Use MAILX called in a shell script registered as a concurrent program with parameters File name and path.For references refer to blog: http://oracle.anilpassi.com/email-output-of-concurrent-program-request-2.html

Back to top

6. What are the mandatory parameters given in Reports?
There is one parameter P_CONC_REQUEST_ID. If you want to use AOL functionality through user exits or you want to use profile values through FND_PROFILE.VALUE(), then above mentioned parameter must be defined.

Note: In case you don’t need to use above mentioned things, oracle apps report will work fine even if P_CONC_REQUEST_ID parameter does not exist in the oracle report.

Back to top

7. What are four steps needed to implement a user hook?
Four steps are required to implement API User Hooks:
1. Determine the API to which you need to hook extra logic
2. Write the PL/SQL procedure that executes your logic.
3. Register your procedure with one or more specific user hooks.
4. Run the pre-processor program that hooks your PL/SQL procedure to the hook(s).

For More Details on this topic, Click here

Back to top

8. How can i know which application uses AME?
we can check the user guide of the module or check the in the table.
select * from AME_CALLING_APPS_VL

Back to top

9. What is the p_validate control parameter?
Every HRMS API has a p_validate control parameter.
When the parameter is set to FALSE then all the business function validation is performed.If every thing is validated then row can be inserted/updated/deleted accordingly.

If p_validate is set to TRUE then only the actual operation is validated. A savepoint is issued at the start of the call and a rollback is done at the end of the call.

Back to top

10. Can I use an API on an application table on which an event-based alert is defined?
No, if an event-based alert defined on an application table then the API will give error. To run API the alert has to be disabled and re-enabled after the API has been executed.

Back to top

 

 

List of Oracle Apps Technical Interview Questions – Part 3

1. Can AME send notifications?
2. How do we know whether AME is configured or not for a application?
3. What is the use of ID_FLEX_NUM?
4. How do i identify the Package name and version of the API?
5. What is Object version number and how do I assign values for it in an API?
6. What is the difference between org_id and organization_id?
7. What are user exits in reports and name a few?
8. How do you submit a concurrent program from PL/SQL Procedure?
9. What is RAISE_APPLICATION_ERROR used for?
10. What are the different cursors available in PL/SQL ?

1. Can AME send notifications?
AME doesn’t have any feature to send notifications.it is responsibility of calling application of sending notification, capturing the response and updating AME with response

Back to top

2. How do we know whether AME is configured or not for a application?
Check the profile AME installed at application level.It should be set to YES

Back to top

3. What is the use of ID_FLEX_NUM?
It is used to define the Structure Definition. The Structure Definition is held in FND_ID_FLEX_STRUCTURES table.

Back to top

4. How do i identify the Package name and version of the API?
SELECT text FROM all_source WHERE name like ‘HR_EMPLOYEE_API%’AND text LIKE ‘%Header%’;

Alternatively use the Integration Repository Responsibility (R12)

Better approach is to use the second option as it gives you quick way to find with detailed knowledge base about API signature parameters and default expected values in more readable format.

Back to top

5. What is Object version number and how do I assign values for it in an API?
Object Version number is an assigned number to a row in a database table. When a new row inserted its number is set to 1. If any updates performed on the row then the Object version number is incremented. Every API has the p_object_version_number control parameters.

For create APIs this parameter is defined as an OUT parameter the API assigns the Object version number to be 1 for row inserts.

For update APIs the parameter is defined as IN OUT, for update API the object version number is mandatory. You get the version number from the table record which is going to be updated and pass it to API, then API increments this Object version number.

Back to top

6. What is the difference between org_id and organization_id?
org_id refers to unique identifier for the Operating Units and organization_id refers to the unique identifier for Inventory Organizations.

Back to top

7. What are user exits in reports and name a few?
User exits provided a way to pass control from Reports Builder to a Oracle Apps environment. Using this we can get profile values in oracle reports which are set at application level for user running the report. Further through user exits, we can get Application Object Library data through standard user exit functions.

Another explanation of User Exits is

As the name indicates user exits are the programs written in any of the language like Java C++ Pro C to perform certain action. User exit when called from Report triggers moves the control from report to this outside program there it performs the action programmed and returns back to report environment.The program which makes USER to EXIT from ongoing environment to perform certain action is USER EXIT.

Names of User Exit are

1. FND SRWINIT
2. FND SRWEXIT
3. FND FORMAT_CURRENCY
4. FND FLEXIDVAL
5. FND FLEXSQL FND SRWINIT
6. FND SRWEXIT
7. FND FORMAT_CURRENCY
8. FND FLEXIDVAL
9. FND FLEXSQL

Back to top

8. How do you submit a concurrent program from PL/SQL Procedure?
FND_REQUEST.SUBMIT_REQUEST()

Back to top

9. What is RAISE_APPLICATION_ERROR used for?
The RAISE_APPLICATION_ERROR is a procedure defined by Oracle that allows to raise an exception and associate an error number and message with the procedure.

Back to top

10. What are the different cursors available in PL/SQL ?
Explicit Cursors, Implicit Cursors, Ref Cursors

Back to top

 

 

List of Oracle Apps Technical Interview Questions – Part 4

1. What is the SQL statement used to display the text of a procedure stored in database?
2. Can you use COMMIT in a trigger?
3. What is an autonomous transaction ?
4. What is Ref Cursor?
5. Can triggers be used on views? If so How?
6. How do you declare user defined Exception?
7. “UPDATE …..; CREATE TABLE E(….); ROLL BACK;” To which save point will the changes be Rolled Back?
8. what is External table?
9. What is global temporary table?
10. What is ROWID?

1. What is the SQL statement used to display the text of a procedure stored in database?
select text from dba_source where name = ‘Procedurename’

Back to top

2. Can you use COMMIT in a trigger?
Yes but by defining an autonomous transaction.

Back to top

3. What is an autonomous transaction ?
An autonomous transaction is an independent transaction that is initiated by another transaction (the parent transaction). An autonomous transaction can modify data and commit or rollback independent of the state of the parent transaction.

Back to top

4. What is Ref Cursor?
A: A ref cursor is a variable, defined as a cursor type, which will point to a cursor result. The advantage that a ref cursor has over a plain cursor is that is can be passed as a variable to a procedure or a function.

Ref Cursors are of 2 types: Weak and Strong.

Strong ref cursor (also called static structure type)

When return type included then it is called strong or static structure type
static ref cursor support different type of select statement but all of same structure ,but not necessary that the table should be same

Syntax:

type is ref cursor [return ];
syntax for open statement:

Weak ref cursor (also called dynamic structure type )

This ref cursor allows us to any type of select statement irrespective of data structure. i .e any table

Syntax:

open for select statement …….;

———–Strong Ref Cursor Example———————-
declare

type emprefcur is ref cursor return emp%rowtype;
ec emprefcur;
v_ec ec%rowtype;

begin

open ec for select * from emp;
loop

fetch ec into v_ec;
exit when ec%notfound;
dbms_output.put_line (v_Ec.empno);
dbms_output.put_line (v_ec.ename);

end loop;
close ec;

dbms_output.put_line (‘————————-‘):

open ec for select * from emp;
loop

fetch ec into v_ec;
exit when ec%notfound;
dbms_output.put_line (v_Ec.empno);
dbms_output.put_line (v_ec.ename);

end loop;
close ec;
end;

———–Weak Ref Cursor Example———————-

declare

type refcur is ref cursor;
xc refcur;
v_Ec emp%rowtype;
v_dc dept%rowtype;

begin

open xc for select * from emp;
loop

fetch xc into v_ec;
exit when xc%notfound;
dbms_output.put_line(v_ec.ename);
dbms_output.put_line (v_Ec.empno);

end loop;
close xc;
dbms_output.put_line (‘————————————–‘);

open xc for select * from dept;
loop

fetch xc into v_dc;
exit when xc%notfound;
dbms_output.put_line (v_dc.deptno);
dbms_output.put_line (v_dc.dname);
dbms_output.put_line (v_dc.loc);

end loop;
close xc;

end;

Back to top

5. Can triggers be used on views? If so How?
Yes only INSTEAD OF trigger can be used to modify a view.
CREATE OR REPLACE TRIGGER trigger_name
INSTEAD OF INSERT ON view name
begin … end;

Back to top

6. How do you declare user defined Exception?
DECLARE

ex_custom EXCEPTION;

BEGIN

RAISE ex_custom;

EXCEPTION  WHEN ex_custom THEN

DBMS_OUTPUT.PUT_LINE(SQLERRM);

END;

Back to top

7. “UPDATE …..; CREATE TABLE E(….); ROLL BACK;” To which save point will the changes be Rolled Back?
Updates done wouldn’t be Rolled Back as CREATE statement which is a DDL would issue a COMMIT after the creation of the table.

Back to top

8. what is External table?
External tables can be used to load flat files into the database.
Steps:

  • First create a directory say ext_dir
  • Second place the flat file (file.csv) in it
  • Third grant read/write access to it.

Then create the table as below:
create table erp_ext_table (

i Number,
n Varchar2(20),
m Varchar2(20)
)

organization external (

type oracle_loader
default directory ext_dir
access parameters (
records delimited by newline
fields terminated by ,
missing field values are null
)
location (file.csv)
)
reject limit unlimited;

Back to top

9. What is global temporary table?
Global temporary tables are session specific tables. The data in a global temporary table is private, such that data inserted by a session can only be accessed by that session. The session-specific rows in a global temporary table can be preserved for the whole session, or just for the current transaction. The ON COMMIT DELETE ROWS clause indicates that the data should be deleted at the end of the transaction.

CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT DELETE ROWS;

In contrast, the ON COMMIT PRESERVE ROWS clause indicates that rows should be preserved until the end of the session.
CREATE GLOBAL TEMPORARY TABLE my_temp_table (
column1 NUMBER,
column2 NUMBER
) ON COMMIT PRESERVE ROWS;

Miscellaneous Features include:

* If the TRUNCATE statement is issued against a temporary table, only the session specific data is truncated. There is no affect on the data of other sessions.
* Data in temporary tables is stored in temp segments in the temp tablespace.
* Data in temporary tables is automatically deleted at the end of the database session, even if it ends abnormally.
* Indexes can be created on temporary tables. The content of the index and the scope of the index is the same as the database session.
* Views can be created against temporary tables and combinations of temporary and permanent tables.
* Temporary tables can have triggers associated with them.
* Export and Import utilities can be used to transfer the table definitions, but no data rows are processed.

Back to top

10. What is ROWID?
ROWID is a pseudo column attached to each row of a table. It is 18 characters long, blockno, rownumber are the components of ROWID

Back to top

 

 

List of Oracle Apps Technical Interview Questions – Part 5

1. What is difference between TRUNCATE & DELETE
2. We have one million records in our log table, which command either Delete/ Truncate should be used and why?
3. What are the advantages of VIEW?
4. What are SQLCODE and SQLERRM and why are they important for PL/SQL developers?
5. how to find out duplicate records ?
6. What are the different types of files used in SQL Loader ?
7. Can you have multiple layout templates for a single data template?
8. What is the executable and concurrent program used to develop a report without RDF?
9. How to do conditional formatting in XML Publisher?
10. What is the difference between Conditional Formatting and format trigger?
11. I want to create a report output in 10 languages, do I have to create 10 layout templates?
12. How do you pass parameters to your report?For RDF based Reports
13. What are the various sections in the data template?Parameter section
14. What triggers are supported in Data template?
15. Where is the trigger code written?
16. What is the file supporting the translation for a layout template?
17. How do you display the company logo on the report output?
18. In order to enable the attachment feature, what minimum information is needed to know.
19. What are steps to enable attachment feature on any apps form?
20. How do you get profile options values from with in an PL/SQL procedure?

1. What is difference between TRUNCATE & DELETE

*  TRUNCATE is a DDL command whereas DELETE is a DML command.
*  TRUNCATE is much faster than DELETE.

When you user DELETE statement, all data get copied into the Rollback Tablespace first, then delete operation get performed. Thatswhy when you user ROLLBACK statement after deleting rows from a table ,you can get back the data(System get it for you from the Rollback Tablespace). All this process take times.

But when you use TRUNCATE statement, it removes data directly without copying it into the Rollback Tablespace. Thatswhy TRUNCATE is faster. Once you Truncate you cann’t get back the data.

*  You cann’t rollback in TRUNCATE but in DELETE you can rollback.TRUNCATE removes the record permanently.
*  In case of TRUNCATE ,DML Trigger doesn’t get fired.But in DML commands like DELETE .Trigger get fired.
*  You cann’t use conditions(WHERE clause) in TRUNCATE.But in DELETE you can write conditions using WHERE clause
*  That TRUNCATE command resets the High Water Mark for the table but DELETE does not has any impact on higher water mark.

Back to top

2. We have one million records in our log table, which command either Delete/ Truncate should be used and why?

Truncate should be used as it will not generate redo logs and hence data will be wiped out much fastly.

Back to top

3. What are the advantages of VIEW?

* To protect some of the columns of a table from other users.
* To hide complexity of a query.
* To hide complexity of calculations.

Back to top

4. What are SQLCODE and SQLERRM and why are they important for PL/SQL developers?

The SQLCODE returns the value of the error number for the last error encountered.

The SQLERRM returns the actual error message for the last error encountered. They can be used in exception handling to report, or, store in an error log table, the error that occurred in the code. These are especially useful for the WHEN OTHERS exception.

Back to top

5. how to find out duplicate records ?

select * from emp where rowid not in ( select min(rowid) from emp group by ename);

Back to top

6. What are the different types of files used in SQL Loader ?

There are 5 files are user in SQL Loader.
they are.

1. Data File.
2.Control File.
3.Log file.
4.Bad File.
5.Discard file.

data file and control file are required file.
example
SQL> sqlldr userid=apps/apps control=XYZ.ctl

This control file contain the reference of data file. Log file and Bad file automatically created by sql Loader whereas Discard file is optional.

Back to top

7. Can you have multiple layout templates for a single data template?

Yes, multiple layouts can be defined, user has a choice here to use one among them at run time during conc request submission

Back to top

8. What is the executable and concurrent program used to develop a report without RDF?

XDODTEXE is used as executable and jAVA concurrent program is used as concurrent program for developing report without RDF.

Back to top

9. How to do conditional formatting in XML Publisher?

Conditional formatting in BI Publisher/ XML Publisher can be done in these some of the following way:
1) if statements
2) if then else statements :
3)choose statements : for multiple conditions

There are more ways for conditional formatting in addition to the above mentioned methods like column formatting, row formatting etc.

Back to top

10. What is the difference between Conditional Formatting and format trigger?

In Oracle reports, we have two option to control the formatting of data

Through GUI
This is user interface in oracle reports where we can define the conditions and logic to display data as per our requirement. e.g If amount > 100 its colos should be red other wise no color. Etc

Through Format Triggers
For each text item in oracle reports, you can attach a format trigger, it returns a BOOLEAN value. If you return FALSE, value will not be displayed in output. In this way you can control the behavior e.g if amount is zero no need to display the data etc.

Another person replied this question in following words.
Both provide the same functionality, used to format the output based on particular conditions. Format triggers provide a wide variety of options when compared to conditional formatting(GUI). In format Triggers we have the option to write PL/SQL code where as conditional formatting is GUI based which provide limited options.

Back to top

11. I want to create a report output in 10 languages, do I have to create 10 layout templates?

No, BI Publisher provides the required translation for your templates, based on the number of languages installed in your oracle apps environment requires outputs are provided

Back to top

12. How do you pass parameters to your report?For RDF based Reports

Token defined at concurrent program parameter level should be exactly same as parameter defined in RDF report.
Token for each parameter should match with respective parameter in RDF report to pass the data. If they mismatch, there will be no error but data will not be passed.

For XML Based Reports (Where executable is XDODTXE)

Token defined at concurrent program parameter level should be exactly same as parameter defined in data template.

Back to top

13. What are the various sections in the data template?Parameter section

Trigger Section
Sql stmt section
Data Structure section
Lexical Section

Back to top

14. What triggers are supported in Data template?

Before report and After report are supported

Back to top

15. Where is the trigger code written?

The code is written in the plsql package which is given under ‘defaultpackage’ tag of data template.

Back to top

16. What is the file supporting the translation for a layout template?

XLIFF is the file that supports the translation, you can modify the same as required.

Back to top

17. How do you display the company logo on the report output?

Copy and paste the logo (.gif. or any format) on the header section of .rtf file . Ensure you resize per the company standards.

Back to top

18. In order to enable the attachment feature, what minimum information is needed to know.

Once the block we want to enable attachments for is identified, we have to identify the following information for it.
*  Form Name: PERWSMEA
*  Function Name: PERWSMEA
*  Block Name: MEA
*  Base Table Name: PER_MEDICAL_ASSESSMENTS
*  Primary Key Columns: MEDICAL_ASSESSMENT_ID

Back to top

19. What are steps to enable attachment feature on any apps form?

1. Define document entity
2. Define document category
3. Enable Attachment for the form using “Attachment Functions” menu item in attachments Menu
I. Associate document category created in step2 with attachment function created in step 3.
II. Click on Block button and identify block access method (either allow change of Query Only). Click on Entities
a. select the the privileges
b. Assign primary key fields.

Back to top

20. How do you get profile options values from with in an PL/SQL procedure?

By calling the standard FND_PROFILE.VALUE() procedure.

Following are the FND_PROFILE values that can be used in the PL/SQL code:

fnd_profile.value(‘MFG_ORGANIZATION_ID‘);
fnd_profile.value(‘ORG_ID‘);
fnd_profile.value(‘LOGIN_ID‘);
fnd_profile.value(‘USER_ID‘);
fnd_profile.value(‘USERNAME‘);
fnd_profile.value(‘CONCURRENT_REQUEST_ID‘);
fnd_profile.value(‘GL_SET_OF_BKS_ID‘);
fnd_profile.value(‘SO_ORGANIZATION_ID‘);
fnd_profile.value(‘APPL_SHRT_NAME‘);
fnd_profile.value(‘RESP_NAME‘);
fnd_profile.value(‘RESP_ID‘);

Back to top

 

List of Oracle Apps Technical Interview Questions – Part 6

1. What are steps to register a discoverer report?
2. How to repeat the header of the template on each and every page of the output?
3. How many ways we can display images in a BI Publisher Report?
4. What is dynamic SQL?
5. What are the differences between Function and Procedure?
6. What is the SQL statement used to display the text of a procedure stored in database?
7. Can you call a sequence in SQL Loader?
8. What is the impact of exclusion of a function from a responsibility.
9. How Concurrent Manager Manages the Requests with Different and Same Priorities?
10. What is the Life Cycle of a concurrent Request?
11. What is the Range of Priorities of Concurrent Programs and whats the default Value?
12. What is the Level of Priority in Profile Option among (Site, Application, Responsibility, User)?
13. Can we use Profile Option’s Value is Concurrent Program’s Parameters?
14. What is NOCOPY Compiler hint? What is the purpose to use it in OUT Parameters in Oracle Procedures?
15. How to stop processing for Errors in Oracle Forms PL/SQL?
16. How to stop processing for Errors in Oracle Stored Procedure?
17. What is datatype of Forms Global Variable?
18. How does the command POST differs from COMMIT in Oracle Forms ?
19. Which Method should be used for exiting the form ?
20. What are the replacement for set_item_property and get_item_property methods?

1. What are steps to register a discoverer report?

Following are the steps to register a discoverer report in Oracle Apps. Make sure you followed each and every one correctly.

1. Login to Application Developer–>Function
2. Enter Function, User Function Name, Description (Optional) in Description Tab.
3. In Properties Tab, Select Type “SSWA jsp function”
4. In Form Tab, provide following details in Parameter Field mode=DISCO&workbook= &parameters=~*~*~
Note: Parameter is an option thing
5. In HTML Tab, write OracleOasis.jsp in HTML Call field
6. Now navigate to Responsibility which contains the Menu to which you added this function.
7. Click the Function Name to Display the report.

Back to top

2. How to repeat the header of the template on each and every page of the output?

use in order to repeat that specific section in each page of the output and also to reset the page number.

Back to top

3. How many ways we can display images in a BI Publisher Report?

It can be done in 5 different ways

1. Direct insertion into RTF template
2. URL Reference
3. OA_MEDIA directory reference
4. Images from BLOB datatype from database
5. Using UI Beans

Back to top

4. What is dynamic SQL?

Dynamic SQL allows you to construct a query, a DELETE statement, a CREATE TABLE statement, or even a PL/SQL block as a string and then execute it at runtime.

Back to top

5. What are the differences between Function and Procedure?

Function has to return a value where procedure does not return value. Function can be used in SQL statements and procedures cannot.

Back to top

6. What is the SQL statement used to display the text of a procedure stored in database?

select text from dba_source where name = ‘Procedurename’

Back to top

7. Can you call a sequence in SQL Loader?

A: Yes

Back to top

8. What is the impact of exclusion of a function from a responsibility.

When you exclude a function from a responsibility, all occurrences of that function throughout the responsibility’s menu structure are excluded.

Back to top

9. How Concurrent Manager Manages the Requests with Different and Same Priorities?

The priority of a concurrent request is determined by application username, and is set by the System Administrator using the Concurrent:Priority user profile option.

The first available concurrent manager compares the request’s priority to other requests it is eligible to process, and runs the request with the highest priority.

When choosing between requests of equal priority, the concurrent manager runs the oldest request first.

Back to top

10. What is the Life Cycle of a concurrent Request?

A concurrent request proceeds through three, possibly four, life cycle stages or phases:

Pending Request is waiting to be run
Running Request is running
Completed Request has finished
Inactive Request cannot be run

Within each phase, a request’s condition or status may change.

Back to top

11. What is the Range of Priorities of Concurrent Programs and whats the default Value?

Priorities range from 1 (highest) to 99 (lowest). The standard default is 50.

Back to top

12. What is the Level of Priority in Profile Option among (Site, Application, Responsibility, User)?

site has the lowest priority, superseded by application, then responsibility, with user having the highest priority.

Back to top

13. Can we use Profile Option’s Value is Concurrent Program’s Parameters?

Profile option settings may be used as a default value for a concurrent program’s parameter or flexfield’s segment.
To use a profile option’s setting as a default value, navigate to the form’s Default Type field and select Profile. Then, enter the profile option’s internal name in the Default Value field

Back to top

14. What is NOCOPY Compiler hint? What is the purpose to use it in OUT Parameters in Oracle Procedures.

Oracle has two methods of passing passing OUT and IN OUT parameters in PL/SQL code:

Pass By Value: The default action is to create a temporary buffer (formal parameter), copy the data from the parameter variable (actual parameter) to that buffer and work on the temporary buffer during the lifetime of the procedure. On successful completion of the procedure, the contents of the temporary buffer are copied back into the parameter variable. In the event of an exception occurring, the copy back operation does not happen.

Pass By Reference: Using the NOCOPY hint tells the compiler to use pass by reference, so no temporary buffer is needed and no copy forward and copy back operations happen. Instead, any modification to the parameter values is written directly to the parameter variable (actual parameter).

Under normal circumstances you probably wouldn’t notice the difference between the two methods, but once you start to pass large or complex data types (LOBs, XMLTYPEs, collections etc.) the difference between the two methods can become quite considerable. The presence of the temporary buffer means pass by value requires twice the memory for every OUT and IN OUT parameter, which can be a problem when using large parameters. In addition, the time it takes to copy the data to the temporary buffer and back to the parameter variable can be quite considerable.

Back to top

15. How to stop processing for Errors in Oracle Forms PL/SQL?

RAISE FORM_TRIGGER_FAILURE is used to halt the processing if any business rule fails in Oracle Forms PL/SQL.

Use FND_MESSAGE to display an error message,then to stop processing use following code:

IF (error_condition) THEN

fnd_message.set_name(appl_short_name,message_name);

fnd_message.error;

RAISE FORM_TRIGGER_FAILURE;

END IF;

Back to top

16. How to stop processing for Errors in Oracle Stored Procedure?

If a failure occurs in a stored procedure and you want to stop further Processing, use the package procedures FND_MESSAGE.SET_NAME
to set a message, and APP_EXCEPTION.RAISE_EXCEPTION to stop processing:

IF (error_condition) THEN

fnd_message.set_name(appl_short_name,message_name);
APP_EXCEPTION.RAISE_EXCEPTION;

END IF;

Back to top

17. What is datatype of Forms Global Variable?

Char(255)

Back to top

18. How does the command POST differs from COMMIT in Oracle Forms ?

Post writes data in the form to the database but does not perform database commit. Commit permanently writes data in the form to the database.

Back to top

19. Which Method should be used for exiting the form ?

The Oracle Applications forms have special exit processing. Do not call EXIT_FORM directly;
always call do_key(’EXIT_FORM’). To exit the entire Oracle Applications suite, first call:
copy(’Y’,’GLOBAL.APPCORE_EXIT_FLAG’);Then call:do_key(’exit_form’);

Back to top

20. What are the replacement for set_item_property and get_item_property methods?

Replace with APP_ITEM_PROPERTY.SET_PROPERTY and APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE.

These APPCORE routines set the properties in the Oracle Applications standard way and change the propagation behavior. Some properties use the native Oracle Forms SET_ITEM_PROPERTY. For a complete list of properties that APP_ITEM_PROPERTY.SET_PROPERTY covers, see the documentation for that routine.

Use APP_ITEM_PROPERTY.GET_PROPERTY when getting Oracle Applications specific properties. Use the Oracle Forms built–in when setting or getting other properties.

Back to top

 

 

List of Oracle Apps Technical Interview Questions – Part 7

1. Which Method should be used to open form programmatically instead of open_form anf call_form and tell the reason?
2. What is the important point regarding Module Name and Frst Navigation Data Block for starting a new custom forms?
3. How to Disable Specific Menu Entries?
4. What are the XML Publisher Tables?
5. How to upload RTF Template from backend?
6. What is Request Security Group?
7. What is Function and Sub Functions in Oracle Apps?
8. How to Open a Form in query Only Mode?
9. Forms Package variables defined in its specification, is it visible to attached libraries and vice versa?
10. The value recorded in system.Last_record variable is of type?
11. Can a single canvas have multiple windows ?
12. What ERASE package procedure does ?
13. What is Object Group ?
14. A query fetched 10 records How many times does a PRE-QUERY Trigger  and POST-QUERY Trigger will get executed ?
15. Can a root window be made modal?
16. Can we make a display item as database item?
17. What are bind parameter and lexical parameter used for?
18. Name few Oracle Forms Triggers that are changed in Oracle Apps?
19. What are the property classes for the following in Oracle Apps?
20. how to populate list dynamically?

1. Which Method should be used to open form programmatically instead of open_form anf call_form and tell the reason?

FND_FUNCTION.EXECUTE should be used instead of CALL_FORM or OPEN_FORM whenever there is need to open a form programmatically.

FND_FUNCTION.EXECUTE allows to open forms without bypassing Oracle Applications security, and takes care of finding the correct directory path for the form.

Back to top

2. What is the important point regarding Module Name and Frst Navigation Data Block for starting a new custom forms?

Module Names
Make sure that in each of your forms, the Module Name matches the file name. For example, if a form is called POXPOMPO.fmb, make sure the Module Name (visible in Oracle Forms Developer) is POXPOMPO. This is especially important if you reference objects from your form. Zoom also relies on the Module Name being correct.

First Navigation Data Block
Set this property to the name of the first block that users visit when a form is run. Do not set to a WORLD or CONTROL block. This property also controls where the cursor goes after a CLEAR_FORM, as well as the default ”Action–>Save and Proceed” behavior.

Back to top

3. How to Disable Specific Menu Entries?

If for certain windows you want to disable some menu entries, use the APP_SPECIAL routines to do so. Enable and disable SAVE to control the ”File–>Save” and ”File–>Save and Enter Next” menu entries. Save is automatically disabled when you call APP_FORM.QUERY_ONLY MODE.

Back to top

4. What are the XML Publisher Tables?

PER_GB_XDO_TEMPLATES
XDO_DS_DEFINITIONS_B
XDO_DS_DEFINITIONS_TL
XDO_DS_DEFINITIONS_VL
XDO_LOBS
XDO_TEMPLATES_B
XDO_TEMPLATES_TL
XDO_TEMPLATES_VL
XDO_TRANS_UNITS
XDO_TRANS_UNIT_PROPS
XDO_TRANS_UNIT_VALUES

Back to top

5. How to upload RTF Template from backend?

Using XDO Loader,we can upload an RTF from backend.

Back to top

6. What is Request Security Group?

A request security group defines the concurrent programs, including requests and request sets that may be run by an application user under a particular responsibility.To set up request security, you define a request group using the Request Groups form. Using the Responsibilities form, you assign the request group to a responsibility. The request group is then referred to as a request security group.

Back to top

7. What is Function and Sub Functions in Oracle Apps?

A function is a part of an application’s functionality that is registered under a unique name for the purpose of assigning it to, or excluding it from, a responsibility.

There are two types of functions: form functions, and non–form functions. For clarity, we refer to a form function as a form, and a non–form function as a sub function, even though both are just instances
of functions in the database.

Form (Form Function):
A function that invokes a form. Form functions appear in the Navigate window and can be navigated to.

Subfunction (Non–Form Function):
A function that is executed from within a form. Subfunctions can only be called by logic embodied within a Form Function. Subfunctions do not appear in the Navigate window and cannot be navigated to.

Back to top

8. How to Open a Form in query Only Mode?

Enter the parameters you wish to pass to your function. Separate parameters with a space. For a form function, if you specify the parameter QUERY_ONLY=YES, the form opens in query–only mode.

Back to top

9. Forms Package variables defined in its specification, is it visible to attached libraries and vice versa?

A package variable defined in a form is not visible to any attached library; a variable defined in an attached library is visible to the form.

Back to top

10. The value recorded in system.Last_record variable is of type

a. Number
b. Boolean
c. Character.

Boolean

Back to top

11. Can a single canvas have multiple windows ?

No, we cant have more than one window for a single canvas but the reverse is possible ie; for a window we can attach any number of canvases

Back to top

12. What ERASE package procedure does ?

Erase removes an indicated global variable.

Back to top

13. What is Object Group ?

Object Group is a container for a group of objects. If you want to package related objects so you can copy or subclass them in other module

Back to top

14. A query fetched 10 records How many times does a PRE-QUERY Trigger  and POST-QUERY Trigger will get executed ?

PRE-QUERY fires once.
POST-QUERY fires 10 times.

Back to top

15. Can a root window be made modal?

No.

Back to top

16. Can we make a display item as database item?

No

Back to top

17. What are bind parameter and lexical parameter used for?

A bind reference replaces a single value or expression. To create a bind reference in a query, prefix the parameter name with a colon (:).

A lexical reference is a text string and can replace any part of a SELECT statement, such as column names, the FROM clause, the WHERE clause, or the ORDER BY clause. To create a lexical reference in a query, prefix the parameter name with an ampersand (&).

Back to top

 18. Name few Oracle Forms Triggers that are changed in Oracle Apps?

 

Traditional Function
Oracle Apps Equivalent Function
CALL_FORM
FND_FUNCTION.EXECUTE
EXIT_FORM
do_key(’EXIT_FORM’)
To exit the entire Oracle Applications suite, first call:
copy(’Y’,’GLOBAL.APPCORE_EXIT_FLAG’);
Then call:
do_key(’exit_form’);
SET_ITEM_PROPERTY
APP_ITEM_PROPERTY.SET_PROPERTY  APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE
GET_ITEM_PROPERTY
APP_ITEM_PROPERTY.GET_PROPERTY
OPEN_FORM
Use FND_FUNCTION.EXECUTE. This routine is
necessary for function security.Both OPEN_FORM and FND_FUNCTION.EXECUTE cause the POST–RECORD and POST–BLOCK triggers to fire.
CLEAR_FORM
Use do_key(’clear_form’). This routine raises
the exception FORM_TRIGGER_FAILURE if there is an invalid record.
COMMIT
do_key(’commit_form’)
VALIDATE
APP_STANDARD.APP_VALIDATE

Back to top

19. What are the property classes for the following in Oracle Apps?
Item Type
Property Class Name
Textual buttons
BUTTON
Iconic buttons
BUTTON_ICONIC
Text Items
TEXT_ITEM
Text Item as display Item
TEXT_ITEM_DISPLAY_ONLY
WHO Columns
CREATION_OR_LAST_UPDATE
Display Items
DYNAMIC_TITLE
Poplists
LIST
Option Groups
RADIO_GROUP
Check Boxes
CHECKBOX
LOV
LOV

Back to top

 

 20. how to populate list dynamically?
There are two ways either through record group by using this code 1 or by using code 2
Code 1
PROCEDURE Pop_List IS
/*
** Built-in: CREATE_GROUP_FROM_QUERY
**Example: Create a record group from a query, and populate it.
*/
         list_id ITEM;
list_name VARCHAR2(40) := ‘BLOCK3.item’;
rg_name VARCHAR2(40) := ‘Employee_Names’;
rg_id RecordGroup;
errcode NUMBER;
outcome NUMBER;
BEGIN
/*
** Make sure group doesn’t already exist
*/
list_id :=Find_Item(list_name);
rg_id := Find_Group( rg_name );
/*
** If it does not exist, create it and add the two
** necessary columns to it.
*/
IF Id_Null(rg_id) THEN
rg_id := Create_Group_From_Query( rg_name,’SELECT ENAME,ENAME FROM EMP’,FORM_SCOPE,200);
END IF;
IF Not Id_Null(rg_id) THEN
delete_group(rg_id);
rg_id := Create_Group_From_Query( rg_name,’SELECT ENAME,ENAME FROM EMP’,FORM_SCOPE,200);
END IF;
/*
** Populate the record group
*/
errcode := Populate_Group_with_query( rg_id,’SELECT ENAME,ENAME FROM EMP’ );
IF errcode = 0 THEN
outcome := GET_GROUP_ROW_COUNT(rg_id);
Message(outcome);
END IF;
Clear_List(list_id);
Populate_List(list_id,rg_id);
END;
Code 2
ADD_LIST_ELEMENT : Adds a single element to a list item.
Add_List_Element(list_name VARCHAR2, list_index, NUMBER,list_label VARCHAR2, list_value VARCHAR2);

 

 

List of Oracle Apps Technical Interview Questions – Part 8

1. Trigger Firing Sequence in Oracle Forms

Trigger Firing sequence:
This is most important thing to understand in Oracle D2K Forms When you open a form following triggers are executed

First Logon Triggers are fired
1.PRE-LOGON
2.ON-LOGON
3.POST-LOGON

After that Pre Triggers at Form Level
4. PRE-FORM
5. PRE-BLOCK
6. PRE-TEXT

After that WHEN-NEW Triggers
7. WHEN-NEW-FORM-INSTANCE
8. WHEN-NEW-BLOCK-INSTANCE
9. WHEN-NEW-ITEM-INSTANCE

After that ITEM Level Triggers, focus is on the first item of the Block. If you type some data and press the tab key following trigger will fire in sequence

10.KEY-NEXT-ITEM (This trigger is present on the item level).
11.POST-CHANGE (This trigger is present on the item level).
12.WHEN-VALIDATE-ITEM (This trigger is present on the item level).
13.POST-TEXT-ITEM (This trigger is present on the item level).
14.WHEN-NEW-ITEM-INSTANCE (Block Level Trigger).Now focus will go the next item present on the form.

If there are no further items present on the screen them if we enter data and press tab key then only KEY-NEXT-ITEM is fired.
Now suppose we close the form then the item level triggers are fired.
POST TRIGGERS
15.POST-BLOCK
16.POST-FORM

2. What is Work Directory and Which Profile Option to set for this?
The Work Directory feature enables a developer, support consultant, or other technical specialist to test modifications to forms and concurrent programs in Oracle Applications without affecting users of the same code tree. Using the Work Directory, a user can be logged into an Oracle Applications system but access a version of a form or concurrent program that is not within the standard $PROD_TOP directory.

For example, an on–site developer can test out a new version of a custom form without affecting other testing on the system. You can use the Work Directory feature for alternate files of forms and concurrent programs only. set the profile option ‘FND: Override Directory’ with the path for the directory containing the alternate file.

Note: Set this profile option at the User Level else all users will be impacted

3. What is the purpose of following PL/SQL libraries ?
FNDSQF    – Routines for Flexfields, Function security, User Profiles,  Message Dictionary (FNDSQF)
APPCORE,APPCORE2   – Standard user interface routines (APPCORE, APPCORE2)
APPDAYPK – Routines for Calendar widget (APPDAYPK)

4. How we can avoid the referenced objects security during custom forms development?
Oracle Forms Developer allows referenced objects to be overridden in the local form. Oracle Forms Developer also does not normally provide any indication that an object is referenced unless you set a special environment variable (Registry setting for NT). Set the Overview of Coding Standards 1 – 9 environment variable (Registry setting) ORACLE_APPLICATIONS to TRUE before starting Oracle Forms Developer. This setting allows you to see the reference markers (little flags with an ”R” in them) on referenced objects so you can avoid changing referenced objects unintentionally. Any object referenced from the APPSTAND form must never be changed.

5. How do I submit a Series of requests from PL/SQL?
if we need to submit 2 or more programs serially we need to submit from back end by using below
FND_CONCURRENT.WAIT_FOR_REQUEST

6. How can we delete a Concurrent Program which is already registered?
From front end, we can only disable a concurrent program. Only option to delete a concurrent program is through API.

Begin
fnd_program.delete_program(‘CONC_PROG_SHORT_NAME’,’APPLICATION_SHORT_NAME’);
fnd_program.delete_executable(‘EXECUTEABLE_SHORTNAME’, ‘APPLICATION_SHORT_NAME ‘);
end;

7. What so you mean by Hierarchical and non Hierarchical security type in value set?
This comes into picture when security rule comes into picture.
For example Say Maintenance is the one of the accounts, in that we have cleaning, painting expenses, when we are not accessible to main a/c (i.e maintenance) we cannot use sub a/c i.e cleaning and painting when you select Hierarchical security, when it is non-Hierarchical we can use sub a/c i.e painting, cleaning etc…

8. What is quick code? Why is it called a quick code?What is steps of defining a quick code?
When we define a lookup. There is one mandatory field called ‘Code’. It is known as Quick Code or Lookup Code. It is short names given to some field values which is stored in Meaning field. An example is two letter codes given to Country names. In this example PK will be quick code for Pakistan.
Why it is called quick code They are called quick codes as they help in searching the looking values. Being short, they are easy to remember and easy to type while data entry. Hence making the work quick.

Step to Define
HRMS Main Responsibility ->Other Definitions->Application Utilities Lookups
Open the screen and define lookup value. Code field will contain the quick code.

9. What is ‘$flex$ and ‘$profile$, What is the use of ‘$flex$’?

$flex$.value
It is used to retrieve the value selected in previous value set and generally used in Table type value. For Example, we have two fields 1. Country and 2. City. We need that in city field only those cities should be visible which are in country selected in field 1. In order to achieve this task, we have to pass the reference of selected value from first value set. This is done by using $flex$.Country_ID in city value set definition.

$profile$.profile option name
It is used to retrive value for that profile option $profiles$. are used to get the values of environment variables like org_id or mfg_Organization_id etc which are related to the current apps environment. Ex.  $profiles$.org_id would return the operating unit which is active at that time for the user.

10. How can I change in custom.pll?
After changes how can I send on the server and what’s effect in this condition?
1. FTP  the Custom.pll from $AU_TOP/resource
2. Open the Custom.pll in Forms Buildet DS
3. Include the following code for your Form logic :

begin
Form_Name varchar2(50) := name_in(‘system.current_form’);
If Form_Name = ‘YOUR CUSTOM FORM” then
begin
include your logic
end;
end;

4. Once changes over , using the following command to generate the CUSTOM.plx
f60gen module=CUSTOM.pll userid=apps/apps@mfgdev module_type=LIBRARY
to generate the latest CUSTOM.plx and move this CUSTOM.plx to $AU_TOP/resource

11. Why does Help->Tools->Examine ask for a password?
The profile option Utilities:Diagnostics is set to NO. This profile option controls whether users can use the Examine utility. The password should be the APPS password.

12. How do I cancel a running concurrent request?
From Oracle Apps Main Menu go to View->Requests. Click Find Button to locate the concurrent request. Once you select any concurrent request you can Cancel it or Hold it by using the Cancel or Hold buttons. You can cancel or hold only your submitted requests.
Note: The Sysadmin responsibility can cancel or hold any running request

13. How do you pass the parameters from one form to another form?
To  pass  one  or  more  parameters to a called form, the calling form must perform  the  following steps in a trigger or user named routine·
Create_parameter_list built-in function to programmatically create a parameter list·
Add parameter  built-in procedure to add one or more parameters list.
Execute  the call_form, New_form or run_product built_in procedure and include  the  name  or  id of the parameter list to be passed to the called form.

14. What are the different types of windows?
Different types of windows are
1. Document window
2. Dialog window

15. What are the types of canvas-views?
Content View,
Stacked View,
tabbed view

16. If the same trigger is present in Form, Block and Item level, normally the item level will fire first. How to change this default one. That is I want to fire the block level or form level. How to do this?
Using the Override property of trigger

17. Difference Between use $$DBDATETIME$$  and $$DBDATE$$
In forms?

To give initial value as sysdate, we should user $$DBDATE$$ which gives the current time of server, which stores date of DD-MON-YYYY format. If you want to store date and time, you should use $$DBDATETIME$$ which stores upto DD-MON-YYYY HH:MI:SS format. $$DBTIME$$ stores only HH:MI:SS format. If you want to give local system time i.e. operating system time..then use $$DATE$$, $$DATETIME$$, $$TIME$$.

18. Is it possible to attach same library to more than one form?
Yes

19. Why do we use data source as procedure in Oracle forms? What is the use of taking procedure as Data Source?
To increase the control and security.
To specify a Query at runtime, Eg: in case of manager logs in he can see more info wherein if its employee he will be able to see less data
If you want to specify any complicated business rule to be executed before getting data, you can achieve through the server side procedure which will be much faster.

20. Can a Calculated item be stored in a database?
No it is not possible.

If have like contents in this post and you think it can be helpful to others, please share it at least once in your circle, in this way, you will join me in my cause to Learn Share and Grow. Come on, Lets Grow Together.

Related Posts

Free Online Test
Solved Issued of Empty Email Notification
Steps for creating custom form in Oracle Apps
How to create backend logging mechanism
Useful Apps SQL Queries Pool
Top 10 Apps Technical Interview Questions