You are on page 1of 6

41. What is use of APPDAYPK library?

Ans: By using this library you can change the functionality of menu action and tool bar actions, and you
can add custom help files in the application.
APPDAYPK contains the packages that control the Oracle Applications Calendar feature.
42. What is use of FNDSQF library?
Ans: FNDSQF contains packages and procedures for Message Dictionary, flexfields, profiles, and
concurrent processing. It also has various other utilities for navigation, multicurrency, WHO, etc.
FND_CURRENCY: Dynamic Currency APIs
FND_GLOBAL: WHO Column Maintenance
FND_ORG: Organization APIS
FND_STANDARD: Standard APIs
FND_UTILITIES: Utility Routines
43. What is a reference trigger? Can we modify a reference trigger?
Ans: Reference trigger is a trigger, definition of the trigger will be in some other file.
We can, But Oracle Application advise against modifying the reference trigger. Because this change will
affect the whole application.
44. Why we have to create packages instead of procedure / function?
Ans: If we create procedure/function, this will be compiled every call of the procedure/function, But if
you createpackage it will not complied every call, It will increase performance of the application.
45. Can you comment your form? How?
Ans: Yes.
You can give comment of the from in Form module comment window.
By using FND_Standard.Form_info procedure you can comment your form, this is in Pre_Form trigger.
46. Which form objects we should not use?
Ans:
Activex, Vbx, Ocx, Ole
Timer
Mouse Trigger
Open_Form
Combo Box
Test_io, Host built-in
47. How can we change the profile value?
Ans: By using FNDSQF library we can change the profile values.
48. What are the triggers we should not modify?
Ans: Close_this_window, Close_window, Export, Folder_Action, Key-Commit, Key-Edit, Key-Exit,
Key-Help, Lastrecord, Menu_to_Appcore, Standard_Attachment, When_window_closed,
When_form_navigate, Zoom
49. Shall we delete exiting triggers?
Ans: We should not delete any form level trigger. But Oracle application not
encouraging deletion of any trigger.
50. What is the difference between writing code in Programme Unit and Library Files?
Ans: The code written in Programme unit is forms specific, whereas code written in Library files, can be
used across the forms.

Ans:
PRE-FORM
WHEN-NEW-FORM-INSTANCE
PRE-BLOCK
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-ITEM-INSTANCE
POST-BLOCK, POST-FORM
52. What is the utility used to call the report from the forms?
Ans: RUN_REPORT
53. What is a Property Class? Different methods of creating property class?
Ans: Property Class is defining properties of objects along with their settings. The property
class inheritance allowsthe user to perform global changes very quickly and efficiently.
Methods:
Object Navigator Method
Properties Window Method
54. WHEN-NEW-FORM trigger written at Form Level, Block Level and Item Level
which one will fire first?
Ans: The trigger written at the lower level Item Level Fires first.
55. In the previous question circumstance, is it possible to change the order of trigger Execution? If
Yes, where it needs to be changed?
Ans: Yes, in the trigger property (Before, After, Default)by changing the attributes.
56. Form Registration Steps
Ans: Save as the TEMPLATE.fmb as your continent form name such as emp.fmb
Delete the BLOCK_NAME, DATA_BLOCK, BLOCK_NAME and BLOCK_NAME in Data Block, Canvas and
Window list.
Create window, canvas and block in the module and assign the subclass information to properties of
them.
Change the code in the package of app_custom in the program units.
when_window_closed
if (wnd = 'window_name') then
app_window.close_first_window;
end if;
when_window_opened
if (wnd = 'window_name') then
GO_BLOCK('Block_name');
Change the code in the pre_form trigger as bellow
app_window.set_window_position('window_name',NULL,'block_name');

Copy the fmb and pll file into AU_TOP/forms/US and AU_TOP/resource directories respectively and
compile them.

Form
======================
f60gen F20601.fmb Userid=apps/g00g1e
mv F20601.fmx /apps/qoedv2/appl_top/xxcpd/11.5.0/forms/US

pll
=====================
f60gen Module=XXCPDLXPLAVA.pll Module_Type=LIBRARY Userid=apps/g00g1e

In front-end application, go to the following path
Application DeveloperApplicationform and create one new record
Application DeveloperApplicationFunction create one function and link the form to this function.
Application DeveloperApplicationMenu and create the menu and link the function to this menu.
57. Create the messages in Apps.
Ans: Go to Application DeveloperApplicationmessage and create one message in the form and run
request.
Go to Viewrequests, select submit new request
Select the Generate Message program and give input parameters for this form.
You can access this messages in the form level code as below.

Fnd_message.set_name(Application_id, Message_Name)
Fnd_message.show.

2. Fnd_message.set_name(Application_id, Message_Name)
Fnd_message.set_token(Token_varialbe in the message Dictionary, Value)
fnd_message.show.
58. PRE FORM
Ans:
FND_STANDARD.FORM_INFO($Revision: $,

,
,
$Date: $,
$Author: $);
APP_STANDARD.EVENT(PRE FORM);
APP_WINDOW.SET_WINDOW_POSITION(BLOCKNAME, FIRST_WINDOW);
59. To Code the Zooms into Custom.pll
Ans:
Open the $AU_TOP/RES/PLSQL/CUSTOM.PLL
Code the custom function Zoom_available this function return Boolean we check here the form name
and block name and return true.
And then code the event procedure here we check for event if it is ZOOM then we check for the form
and the block name and using FND_FUNCTION.EXECUTE open the new form fnd_function.execute takes
4 parameters
FND_FUNCTION.EXECUTE(FUNCTION_NAME=> ,
OPEN_FLAG=> ,
SESSION_FLAG=> ,
OTHER_PARAMS=> );
60. Find Window
Ans:
Copy the query_find object from appsstand.fmb
New Button: When-Button-Pressed write this code :- app_find.new(Resultant Block);
Find button: When-button-Pressed write this code :- apps_find.new(Resultant Block);
2) Pre-Query trgger at resultant block execution style before
if :parameter.g_query_find =TRUE Then
Copy(:QF_block.empno,:emp.empno);
Source , destination
App_find.query_range(hiredate_from,hiredate_to,emp.hiredate )
3) Create user defined trigger QUERY_FIND BLOCK level (override)
App_find.query_find(Resultant window , find window , find block);


PLSQL LIMIT

declare
cursor a_cur is
select program_id
from airplanes;
type myarray is table of a_cur%rowtype;
cur_array myarray;
begin
open a_cur;
loop
fetch a_cur bulk collect into cur_array limit 1000;
exit when a_cur%notfound;
end loop;
close a_cur;
end;

/
FOR More info Please go through the URL: http://psoug.org/reference/array_processing.html
Posted by Manohar Babu at 3:54 AM No comments:
Email ThisBlogThis!Share to TwitterShare to Facebook
Labels: PL/SQL TABLE
PL/SQL EXTEND
PL/SQL EXTEND

Definition:

EXTEND is one of the Oracle PL/SQL collection methods which is used with nested tables and VARRAYS to
append single or multiple elements to the collection. Note that EXTEND cannot be used with associative
arrays. EXTEND has three forms:

EXTEND, which adds a single NULL instance.
EXTEND(n) which adds multiple NULL instances. The number of instances is specified by n.
EXTEND(n,m) which appends n copies of instance m to the collection.

Note that forms one and two cannot be used for NOT NULL specified collections.

Example Usage:

The PL/SQL block below declares a PL/SQL table collection and appends the first cell at the end of the
collection.

DECLARE

type psoug_tab is table of number;
ptab psoug_tab;

BEGIN

ptab := psoug_tab();
ptab.extend;
ptab(1) := 100;
dbms_output.put_line('value at index(1) is '||ptab(1));
ptab.extend(5,1);
dbms_output.put_line('value at index(4) is '||ptab(4));

END;



value at index(1) is 100

value at index(4) is 100



PL/SQL procedure successfully completed.
Posted by Manohar Babu at 3:52 AM No comments:
Email ThisBlogThis!Share to TwitterShare to Facebook
Labels: PL/SQL TABLE
PL/SQL Normal Insert and Bulk Insert
PL/SQL NORMAL INSERT AND BULK INSERT

create table forall_test (
id number(10),
code varchar2(10),
description varchar2(50));

alter table forall_test add (
constraint forall_test_pk primary key (id));

alter table forall_test add (
constraint forall_test_uk unique (code));

set serveroutput on


declare
type t_forall_test_tab is table of forall_test%rowtype;

l_tab t_forall_test_tab := t_forall_test_tab();
l_start number;
l_size number := 10000;
begin
-- populate collection.
for i in 1 .. l_size loop
l_tab.extend;

l_tab(l_tab.last).id := i;
l_tab(l_tab.last).code := to_char(i);
l_tab(l_tab.last).description := 'description: ' || to_char(i);
end loop;

-- execute immediate 'truncate table forall_test';

-- time regular inserts.
l_start := dbms_utility.get_time;

for i in l_tab.first .. l_tab.last loop
insert into forall_test (id, code, description)
values (l_tab(i).id, l_tab(i).code, l_tab(i).description);
end loop;


dbms_output.put_line('normal inserts: ' ||
(dbms_utility.get_time - l_start));

execute immediate 'truncate table forall_test';

-- time bulk inserts.
l_start := dbms_utility.get_time;

forall i in l_tab.first .. l_tab.last
insert into forall_test values l_tab(i);

dbms_output.put_line('bulk inserts : ' ||
(dbms_utility.get_time - l_start));

commit;
end;

/

You might also like