Oracle Applications Architecture
- Internet
computing Architecture is a framework for 3-tired, distributed computing that
supports Oracle Applications products.
- The Three
tiers are
1 Data Base Tier
2 Application
Tier
3 Desk Top Tier
- Database tier
manages Oracle 8i database.
- Application
tier manages Oracle Applications and other tools.
- Desktop tier
provides the user interface displace.
- With Internet
computing architecture, only the presentation layer of Oracle Applications is
on the Desk Top tier in the form of a plug-in to a standard Internet browser.
TEMPLATE FORM
- The TEMPLATE
form is the required starting point for all development of new forms.
- The
development of a new form is started by copying the TEMPLATE.fmb file, located
in $ AU_top / forms/ us, to a local directory and renaming it as appropriate.
TEMPLATE FORM CONTAINS THE FOLLOWING:-
*Platform-independent references to object groups in the APPSTAND
form
(STANDARD _PCAND_VA,
STANDARD_TOOLBAR,
STANDARD_CALENDAR)
*Platform–independent attachments of several libraries .
FND SQF
APPCORE
APPDAYPK
*Several form level triggers with required code.
*Program units that include a specification and a body for the
package APP_CUSTOM, which contains default behaviors for window opening and
closing events.
-In general this code should be modified for the specific form
under development.
* The application’s color pallete, containing the two colors
required by the referenced visual attributes.
* Many referenced objects that support the calendar, the toolbar,
alternative regions and the menu.
* Template form contains simple objects that show typical items
and layout cosmetics.
- These are
deleted after developing the form
Blocks: Block Name, Detail Block
Window: Block Name
Canvas _view: Block Name
* Template form includes plat form-independent attachments of
several libraries.
- Some of the
libraries are attached directly to the TEMPLATE (FNDSOF, APPCORE, APPDAYPK)
while the others are attached to these libraries.
APPCORE, APPDAYPK, FNDSQF, CUSTOM, GLOBE, VERT, JA, JE, JL
APPCORE
- Contains the
packages and procedures that are required of all forms to support the Menu,
Toolbar and other required standard behaviors.
- Procedures
and functions in APPCORE have names beginning with APP.
APPDAYPK
- Contains the
packages that control the Oracle applications calendar feature.
FINDSQF
- Contains
packages and procedures for message dictionary, flex fields, profiles and
concurrent processing.
- It also has
various other utilities for navigation, MRG, WHO etc.
- Procedures
and functions have names beginning with FND.
CUSTOM
- Custom
library allows extension of Oracle Applications forms without modification of
Oracle applications code.
- Custom
library can be used for customizations such as ZOOM (Moving to another form
from one form and querying up specific records), enforcing business rules.
Ex:- Supplier name must be in upper case) and disabling
fields that are not required for a particular site.
- All logic
must branch based on the form and block for which it is run.
- Oracle
applications send events to the Custom library.
- Custom code
can take effect based on the events.
- Which trigger
will fire when cursor moves from one block to another block?
- WHEN_NEW_BLOCK_INSTANCE
- What are the triggers used in CUSTOM.Pll?
- CUSTOM.Pll
contains (CUSTOM package) the following functions and procedures.
-
CUSTOM.ZOOM_AVAILABLE à FUNCTION
-
CUSTOM.STYLEà FUNCTION
- CUSTOM.EVENTà
PROCEDURE.
-
- * Triggers in
Custom.Pll: -
- 1
WHEN _NEW_FORM_INSTANCE
- 2
WHEN_FORM_NAVIGATE
- 3
WHEN_NEW_BLOCK_INSTANCE
- 4
WHEN_NEW_RECORD_INSTANCE
- 5
WHEN_NEW_ITEM_INSTANCE
- 6
ZOOM
- 7
EXPORT
- 8
SPECIAL 1-45
- 9
KEY_Fn (n is a number between 1 and 8)
-
- What is the difference between pre-query and post -query?
- * Pre-query
executes only once for the statement where as post-query executes for each
record.
-
- List of some API’S
- FND_PROGRAM.EXECUTABLE
- FND_PROGRAM.REGISTER
- FND_PROGRAM.PARAMETER
- FND_PROGRAM.ADD_TO_GROUP
- FND_REQUEST.SUBMIT_REQUEST
- FND_PROFILE.VALUE
- FND_PROFILE.GET
-
- How to get second parameter value based on first parameter?
- $flex
- $value
setname.
-
Forms can be development in APPS in two ways
A) Customization by extension (using template.fmb)
B) Customization by modification (using custom.pll)
How to call WHO columns into the form
By using FND_STANDARD API’S
1. FND_STANDARD.FORM_INFO
Provides information about the form.
Should be called form when_new_form – instance – instance trigger.
2. FND_standard.set_who
Loads WHO columns with proper user information.
Should be called from PRE_UPDATE and PRE_INSERT
Triggers for each block with WHO fields
If this is used FND-GLOBAL need not be called.
(FND_GLOBAL.WHO)
3. FND_STANDARD.SYSTEM_DATE
This is a function which returns date.
Behave exactly like SYSDATE built-in.
4. FNID_STANDARD.USER
This is a function which returns varchar2
Behaves exactly like built in USER.
APPCORE API’S
APP_COMBO
APP_DATE
APP_EXCEPTION
APP_FIELD
APP_FIND
APP_ITEM
APP_ITEM_PROPERTY
APP_NAVIGATE
APP_RECORD
APP_REGION
APP_STANDARD
APP_WINDOW
FNDSQF API’S
FND_CURRENCY
FND_DATE
FND_GLOBAL
FND_ORG
FND_STANDARD
FND_UTILITIES.OPEN_URL
FND_UTILITIES. PARAM_EXISTS
How to call flex fields in the form?
By using FND_FLEX.EVENT (EVENT varchar2)
How to register an executable and define a concurrent program through
backend?
By using concurrent processing API’S
1. FND_CONC_GLOBAL.REQUEST_DATA
. SET_REQUEST_GLOBALS
2. FND_CONCURRENT.AF_COMMIT
. AF_ROLLBACK
. GET_REQUEST_STATUS
. WAIT_FOR_REQUEST
. SET_COMPLETION_STATUS
3. FND_FILE. PUT
. PUT_LINE
. NEW_NAME
. PUT_NAMES
. CLOSE
4. FND-PROGRAM. MESSAGE
. EXECUTABLE
. REGISTER
. PARAMETER
. IN COMPATIBILITY
. EXECUTABLE_EXISTS
5. FND_REQUEST. SET-OPTIONS
. SET_REPEAT_OPTIONS
. SET_PRINT_OPTIONS
. SUBMIT_REQUEST
. SET_MODE
6. FND_REQUEST_INFO. GET_PARAM_NUMBER
. GET_PARAM_INFO
. GET_PROGRAM
. GET_PARAMETER
7. FND_SET. MESSAGE
. ADD_PROGRAM
. ADD_STAGE
. IN COMPATIBILITY
8. FND_SUBMIT. SET_MODE
. SET_REQUEST_STATUS
. SUBMIT_PROGRAM
. SUBMIT_SET
* FND_PROGRAM.EXECUTABLE
- Is used to
define a concurrent program executable
- It takes 8
parameters (all are IN mode)
Syntax
procedure FND_PROGRAM.EXECUTABLE
(Executable IN varchar2,
(Full name) à application IN varchar2,
(Executable short name) à short name IN varchar2, Description IN
varchar2 default null, execution_method IN varchar2,
execution_file_name IN varchar2 default null,
(only for spawned & Immedaite) à subroutine_name IN
varchar2 default null,icon_name IN varchar2 default null,language_code IN
varchar2 default (VS)(for Java Conc Program) à execution_file_path IN varchar2
default null,
* FND_PROGRAM.REGISTER
- This procedure no used to define a concument program.
- It has 30 IN paranmeters. Out of which 9 are mandatory, the
remaining are default.
Syntax à procedure FND_PROGRAM.REGISTER
(program
IN varchar2,
application
IN varchar2,
enabled
IN varchar2,
short_name IN varchar2,
description
IN varchar2, default null,
(executable_short_name) à executable_name IN varchar2
executable_application IN varchar2,
mls_function_shelt_name IN varchar2,
mls_function_application IN varchar2,
inerementor IN varhcar2);
56. How to register a table and columns through back end?
* By using AD_DD package
- For
registering a table à AD_DD.REGISTER_TABLE
- For
registering columns à AD_DD.REGISTER_COLUMN.
- AD_DD BPI
doesn’t check for the existence of the registered table or column in the data
base schema, but only updates the required SQL tables.
- It should be
ensured that, all the tables and columns registered exist actually and have the
same format as that defined using AD_DD API.
- Views need
not be registered.
57. How to write to a file through concurrent program?
* By using FND_FILE package and it can be used only for log and
output files.
à FND_FILE package contains procedures to write text to log and output files.
à FND_FILE supports a maximum buffer line size of 32k for both and output
files.
1. FND_FILE.PUT
- This is used
to write text to a file with out a new line character
- Multilane
calls to FND_FILE.PUT will produce consummated text.
Procedure FND_FILE.PUT (which IN Number,Buff IN varchar2);
Which à log output file
- Can be
FND_FILE.LOG or FND_FILE.OUTPUT.
2. FND_FILE.PUT_LINE
- this
procedure as used to write a line of text to a file followed by a new line
character.
Procedure FND_FILE.PUT_LINE (which IN number, buff IN
varchar2);
EX:- FND_FILE.PUT_LINE( FND_FILE.LOG, find_message_get);
3. FND_FILE.NEW_LINE
- This procedure is used to write line terminators to a file
procedure FND_FILE.NEW_LINE (which IN number
LINES IN NATURAL:=1);
Ex:- to write two newline characters to a log file
Fnd_file.new_line
(fnd_file.log,2);
4. FND_FILE.PUT_NAMES
- this
procedure as used to set the temporary log file and output filenames and the
temporary directory to the user specified values.
- This should
be called before calling my other FND_FILE procedure and only once per a
session.
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
boolean default False,
argument1,
arguemnt2,
argument 100) return number;
* If this is submitted from oracle forms, all the arguments (1 to
100 ) must be specified.
How to call WHO columns into the form
By using FND_STANDARD API’S
1. FND_STANDARD.FORM_INFO
Provides information about the form.
Should be called form when_new_form – instance – instance trigger.
2. FND_standard.set_who
Loads WHO columns with proper user information.
Should be called from PRE_UPDATE and PRE_INSERT
Triggers for each block with WHO fields
If this is used FND-GLOBAL need not be called.
(FND_GLOBAL.WHO)
3. FND_STANDARD.SYSTEM_DATE
This is a function which returns date.
Behave exactly like SYSDATE built-in.
4. FNID_STANDARD.USER
This is a function which returns varchar2
Behaves exactly like built in USER.
APPCORE API’S
APP_COMBO
APP_DATE
APP_EXCEPTION
APP_FIELD
APP_FIND
APP_ITEM
APP_ITEM_PROPERTY
APP_NAVIGATE
APP_RECORD
APP_REGION
APP_STANDARD
APP_WINDOW
FNDSQF API’S
FND_CURRENCY
FND_DATE
FND_GLOBAL
FND_ORG
FND_STANDARD
FND_UTILITIES.OPEN_URL
FND_UTILITIES. PARAM_EXISTS
How to call flex fields in the form?
By using FND_FLEX.EVENT (EVENT varchar2)
How to register an executable and define a concurrent program
through backend?
By using concurrent processing API’S
1. FND_CONC_GLOBAL.REQUEST_DATA
. SET_REQUEST_GLOBALS
2. FND_CONCURRENT.AF_COMMIT
. AF_ROLLBACK
. GET_REQUEST_STATUS
. WAIT_FOR_REQUEST
. SET_COMPLETION_STATUS
3. FND_FILE. PUT
. PUT_LINE
. NEW_NAME
. PUT_NAMES
. CLOSE
4. FND-PROGRAM. MESSAGE
. EXECUTABLE
. REGISTER
. PARAMETER
. IN COMPATIBILITY
. EXECUTABLE_EXISTS
5. FND_REQUEST. SET-OPTIONS
. SET_REPEAT_OPTIONS
. SET_PRINT_OPTIONS
. SUBMIT_REQUEST
. SET_MODE
6. FND_REQUEST_INFO. GET_PARAM_NUMBER
. GET_PARAM_INFO
. GET_PROGRAM
. GET_PARAMETER
7. FND_SET. MESSAGE
. ADD_PROGRAM
. ADD_STAGE
. IN COMPATIBILITY
8. FND_SUBMIT. SET_MODE
. SET_REQUEST_STATUS
. SUBMIT_PROGRAM
. SUBMIT_SET
* FND_PROGRAM.EXECUTABLE
- Is used to
define a concurrent program executable
- It takes 8
parameters (all are IN mode)
Syntax
procedure FND_PROGRAM.EXECUTABLE
(Executable IN varchar2,
(Full name) à application IN varchar2,
(Executable short name) à short name IN varchar2, Description IN
varchar2 default null, execution_method IN varchar2,
execution_file_name IN varchar2 default null,
(only for spawned & Immedaite) à subroutine_name IN
varchar2 default null,icon_name IN varchar2 default null,language_code IN
varchar2 default (VS)(for Java Conc Program) à execution_file_path IN varchar2
default null,
* FND_PROGRAM.REGISTER
- This procedure no used to define a concument program.
- It has 30 IN paranmeters. Out of which 9 are mandatory, the
remaining are default.
Syntax à procedure FND_PROGRAM.REGISTER
(program
IN varchar2,
application
IN varchar2,
enabled
IN varchar2,
short_name IN varchar2,
description
IN varchar2, default null,
(executable_short_name) à executable_name IN varchar2
executable_application IN varchar2,
mls_function_shelt_name IN varchar2,
mls_function_application IN varchar2,
inerementor IN varhcar2);
56. How to register a table and columns through back end?
* By using AD_DD package
- For
registering a table à AD_DD.REGISTER_TABLE
- For
registering columns à AD_DD.REGISTER_COLUMN.
- AD_DD BPI
doesn’t check for the existence of the registered table or column in the data
base schema, but only updates the required SQL tables.
- It should be
ensured that, all the tables and columns registered exist actually and have the
same format as that defined using AD_DD API.
- Views need
not be registered.
57. How to write to a file through concurrent program?
* By using FND_FILE package and it can be used only for log and
output files.
à FND_FILE package contains procedures to write text to log and output files.
à FND_FILE supports a maximum buffer line size of 32k for both and output
files.
5. FND_FILE.PUT
- This is used
to write text to a file with out a new line character
- Multilane
calls to FND_FILE.PUT will produce consummated text.
Procedure FND_FILE.PUT (which IN Number,Buff IN varchar2);
Which à log output file
- Can be
FND_FILE.LOG or FND_FILE.OUTPUT.
6. FND_FILE.PUT_LINE
- this
procedure as used to write a line of text to a file followed by a new line
character.
Procedure FND_FILE.PUT_LINE (which IN number, buff IN
varchar2);
EX:- FND_FILE.PUT_LINE( FND_FILE.LOG, find_message_get);
7. FND_FILE.NEW_LINE
- This procedure is used to write line terminators to a file
procedure FND_FILE.NEW_LINE (which IN number
LINES IN NATURAL:=1);
Ex:- to write two newline characters to a log file
Fnd_file.new_line
(fnd_file.log,2);
8. FND_FILE.PUT_NAMES
- this
procedure as used to set the temporary log file and output filenames and the
temporary directory to the user specified values.
- This should
be called before calling my other FND_FILE procedure and only once per a
session.
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
boolean default False,
argument1,
arguemnt2,
argument 100) return number;
* If this is submitted from oracle forms, all the arguments (1 to
100 ) must be specified.
59. How to display Request ID in the reports?
* By using the parameter P_CONC_REQUEST_ID
which needs to be defined always in the reports.
60. How to get username / user id in reports?
- By using the API FND_PROFILE THE
OPTION values
can be manipulated in
client / server profile caches
- FND_PROFILE.GET,
FND_GLOBAL.USER_ID FND_GLOBAL.USER_NAME
- this
procedure is located in FNDSQF library.
- This
procedure is to located to get the current value of the specified user profile
option or null if the profile does not exist.
- The
server_side PL/SQL package FND_GLOBAL returns the values which need to set who
columns for inserts and updates from stored procedures.
- Procedure
FND_PROFILE.GET (name in varchar2,Value out varchar2);
FND_PROFILE.GET (‘USER_ID’, user_id);
* FND_PROFILE.VALUE
- this function exactly works like GET, except it returns the
values of the specified profile option as a function result
Function FND_PROGILE.VALUE (name in varchar2
Return varchar2);
*FND_PROFILE.PUT
- this is used
to put a value to the specified profile option.
- if the option
doesn’t exist, it can also be created with PUT.
Procedure FND_ PROFILE.GET(‘USERNAME’, user name);
FND_PROFILE.GET (‘USER_ID’, user_id);
- username,
user-id, vsp_id , Appl_shrt_Name, Resp_Appl_Id, Form_Name, Form_id,
Form_Appl_Name, Form_Appl_Id, Logon_Date, Last_Lagon_Date, login_id,
Gone_Request_Id, Gone_Program_Id,Gone_program_Application_Id, Gone_Login_Id,
Gone_Print_Output, Gone_printstyle_ these are the user profile options that can
be accessed via user profile option routines.
- the values of
these profile options can be retrieved in forms, reports and program.
- these values
cannot be changed except Gone_Print_Output and Gone_Print_Style.
- SA’s and end
users also cannot see the values or change these values.
In which directory log and output files are stored?
*
APPLCSF is the top-level directory in which the concurrent
manager puts logs and output files.
* APPLLOG and APPLOUT are the subdirectories
in which the concurrent manager puts log and output files.
*APPLCSF variable need to be set in the
prod.env(environmental variable), so that all product log files
$ APPLCSF/ $ APPLLOG à log files
$APPLCSF/ $ APPLOUT à out files
* concurrent manager log and out put files should go to $ FND_TOP/
$ APPLOG and $ FND _TOP / $APPLOUT if $ APPLCSF is not set.
62. How to submit concurrent programs through OS?
- From the
operating system the utility.CONCSUB is used to submit is
concurrent program.
- This is
basically used to test a concurrent program.
- By using the
WAIT token. The utility checks the request status every 60 seconds and returns
the OS prompt upon completion of the request.
- Concurrent
manager doesn’t abort, shutdown or start up until the concurrent request
completes.
* If the concurrent program is compatible with itself, it can be
checked for data integrity and deadlocks by submitting it many times so that it
runs concurrently with itself.
*PL/SQL procedures can submit a request to run a program as a
concurrent process by calling.
FND_REQUEST.SUBMIT_REQUEST
* Before submitting a request, the following functions also should
be called optionally.
FND_REQUEST.SET_OPTIONS
FND_REQUEST.SET_REPEAT_OPTIONS
FND_REQUEST.SET_PRINT_OPTIONS
FND_REQUEST.SET_MODE
63. How to checks the request states?
- A PL/SQL
procedure can check the status of a concurrent request by calling.
FND_CONCURENT.GET_REQUEST_STATUS
FND_CONCURRENT.WAIT_FOR_REQUEST
- FND_CONCURRENT.GET_REQUEST_STATUS
- This function
returns the status of a concurrent request
- If the
request is already computed, it also returns the completion message.
- This function
returns both user-friendly (translatable) phase and status values as well as
developer phase and status values that can drive program logic.
Syntax à Function FND_CONCURRENT.GET_REQUEST_STATUS
(request_id in out number,
application in varchar2 default null,
program in varchar2 default null,
phase out varchar2,
status out varchar2,
dev_phase out varchar2,
dev_status out varchar2,
message out varchar2) return BOOLEAN;
- When
application and program are specified, the request_id of the last request for
the specified program should be returned to request_id.
- Phase, and
status values should be taken from FND_LOOKUPS
dev_phase
dev_status
pending
normal, standby, scheduled, paused
running
normal, waiting, resuming,
terminating.
Complete
normal, Error, warning, cancelled,
terminated
Inactive
disabled, on-hold, No-manager, supended
- FND_REQUEST.WAIT_FOR_REQUEST
- This function
waits for request completion, then returns the request phase/status and
completion message to the caller.
- Goes to sleep
between checks for request completion.
Syntax àFND_CONCURRENT.WAIT_FOR_REQUEST
( request_id in number default
null,
interval in number default 60,
max_wait in numbe default 0,
phase out varchar2,
status out varchar2,
dev_phase out varchar2,
dev_status out varchar2,
message out varchar2) return BOOLEN;
* FND_CONCURRENT.SET_COMPLETION_STATUS
- this function
should be called from a concurrent program to set its completion states.
- This function
returns TRUE on success, other wise FALSE.
Syntax à function FND_CONCURRENT.SET_COMPLETION_STATUS
( status in varchar2,
message in varchar2) return
BOOLEAN;
normal status warning
message à any message Error
64. How to generate fmx at OS level?
- Forms can be
generated on the forms server as the APPLMGR user.
- Generating
the form on the Form server, $ FORM60_PATH
Should be set and the current directory should be
$AV_TOP/forms?us.
Syntax à $F60 gen userid=apps/appsp module=. Fmb
Output_file=/forms?/.fmx
Module_type=form bath =no compile_all=special
65. How to convert a form from 4.5 to 6.0?
- To upgrade forms, the form can be directly compiled in the next release.
- To upgrade forms, the form can be directly compiled in the next release.
Form can be compiled by using ifcmp 60.exe
- FLINT 60 bath
executable can be used to check whether the form is compatible to Apps or not.
66. How to call a form from another form?
- To invoke
another form with in a form the function security routines should be used which
are available in FND_FUNCTION package.
* for this purpose, CALL_FORM built-in cannot be used since the
Oracle Applications libraries do not support it.
*FND_FUNCTION.EXECUTE should be used to open a new session
of a form (CALL_FORM/ OPEN_FORM do not be used)
*APP_NAVIGATE.EXECUTE procedure also can be used to open a form
where an instance of the same form is reused, that has already been opened.
*APP_NAVIGATE.EXECUTE is similar to FND_FUNCTION.EXECUTE, except
that is allow a form to be restarted if it is invoked a second time.
*FND_FUNCITON.EXECUTE always starts a new instance of a form.
Syntax à procedure APP_NAVIGATE.EXECUTE
(Function_name in varchar2,
open_flag in varchar2 default ‘y’
sesson_flag in varchar2 default ‘SESSION’
other_params in varchar2 default null,
activate_flag in varchar2 default ‘ACTIVATE’
pinned in boolean default FALSE);
syntaxà Procedure FND_FUNCTION.EXECUTE
(function name in varchar2,
open flag in varhcar2 default ‘y’
session_flag in varhcar2 default’session’
other_params in varchar2 default null,
activate in varchar2 default ‘Active’
browser_target in varchar2 default null);
67. What is the reason for not getting any data when a multi org
view is required?
- To get the
data correctly, the xxx-ALL must be referenced and the ORG_ID value should be
specified to extract portioned data.
- Multiorg
views are partitioned by using ORG_ID.
- So access
through multiorg views will not return any rows, as the CLIENT_INFO Value is
not set.
- Use
HR_OPERATING UNITS to identify the organization _id of the OU on which query is
based.
- Use
FND_CLIENT_INFO package to set the value in CLIENT INFO using set_org_contest.
- Execute
fnd_client_info.Set_org_context (‘’);
- Now querying
of multiorg views can be done.
68. How do you find that multiorg is installed?
- multi
organization architecture is meant to allow multiple companies or subsidiaries
to store their records with in a single data base.
- Multiple
organization Architecture allows this by partitioning data through views in
APPS schema.
- Implementation
of Multi org generally includes more than one business group.
* To know whether multiorg is existing or not
select multi_org_flag form fnd_product_groups)
- if the result is ‘Y’ means the database is group for multiorg
69. What are the triggers that fire on item?
- Pre_Text_Item
- when_New_Item_Instance
- post_text_Item
- post_Change
- When_validate_Item
- key_Next_Item
- execute fnd_client_info.set_org_contest (‘Org_Id’)
- execute dbms_application_info.set_client_info (‘Org_Id’)
70. Transactional triggers in forms
- Transactional
triggers are the triggers that are related to accessing a data source.
- These
triggers fire for each record that is marked for insert, update or table when
forms would typically insert. Update of delete statements.
- Internally
forms would be calling its internal insert_record, update_Record and
Delete_Record built_ins as appropriate to perform the default processing .
* Important Transaction triggers are
1. ON_LOCK
2. ON_UPDATE
3. ON_INSERT
4. ON_DELETE
71. Which triggers will fire when censor moves from one block to
another block?
Trigger Firing Order
Level
1. Post_Test_Item
Item
2. Post_Record
Block
3. Post_Block
Block
4. When_Create_Record
Block
5. Pre_ Block
Block
6. Pre_Record
Block
7. Pre_Text.Item
Block
8.When_New_Block_Instance
Block
9.When_New_Recrd_Instance
Block
10.When_new_Item_Instance
Form
72. What is the difference between PRE_COMMIT and POST_COMMIT
triggers?
* ‘POST_FORMS_COMMIT triggers is the new name for the POST_COMMIT
triggers.
*When a form is being committed the following triggers are fired
(i) PRE_COMMIT (ii) ON_COMMIT (iii) POST_COMMIT
Pre – Commit Trigger
This trigger fires once during the Post and Commit transaction
process. Before form builder processes any (changes) records to change.
Specifically it fires after form builder determines that there are
inserts, updates or deletes in the form to post or commit, but before it commits
the changes.
This trigger doesn’t fire when there is an attempt to commit, but
validation determines that there are no changed records in the form.
This is a form level trigger.
Enter query mode should be set as ‘No’
This can be used to perform an action, such as setting up special
locking requirements, at any time a database commit is going to occur.
If this trigger fails, the post and commit processes fail, no
records are written to the database and focus remains in the current item.
If a DML is performed in a pre-commit trigger and it fails, ten
manual rollback must be performed, because form builder doesn’t perform an
automatic roll back.
This trigger fires in post and commit transactions.
Post – Commit Trigger
This is also known as post-commit trigger.
Post-commit trigger fires once during the post and commit
transactions.
If there are records in the form that have been marked as inserts,
updates or deletes, the post-forms-commit trigger fires after these changes have
been written to the database but before form builder issues the database commit
to finalize the transaction.
If the operation or application initiates a commit when there are
no records in the form have been marked as inserts, updates or deletes, form builder
fires post-forms-commit trigger immediately, without posting changes to the
database.
This is a form level trigger.
Enter query mode should be set to ‘No’
Post-forms-commit trigger should be used to perform an action,
such as updating an audit trial any time a database commit is about to occur.
If this trigger fails, post and commit processing aborts and form
builder issues a ROLLBACK and decrements the internal save point counter.
This trigger fires in Post and Commit transactions.
How to call a Report in two applications?
*SRW Package is a collection of PL/SQL constructs that contain
many functions, procedures and exceptions that can be referenced in Reports.
1 SRW.Break
2. SRW.Context_Failure
3 SRW.Do_SQL
4. SRW.Do_SQL_Failure
5 SRW.Get_Page_Num
6 SRW.Message
7 SRW.Program_Abort
8 SRW.Refrence
9 SRW.Run_Report
10 SRW.Run_report_Failure
11 SRW.Set_Altr
12 SRW.Integer_Error
13 SRW.Set_Field_char
14 SRW.Set_Field_Num
15 SRW.Set_Maxrow
16 SRW.Trace_Add_Option
17 SRW.Trace_End
18 SRW.Trace_Start
19 SRW.User_Exit
20 SRW.User_Exit_Failure
SRW.Run_Report
SRW.Run_Report (command_line, char);
Executes specified R25 RUN Command
SRW.RUN_REPORT_FAILURE;
Stops report execution when failure of SRW.Run_Report occurs.
By using SRW.Run_Report, another report can be called to
the screan from a button with in one report.
If this is used from a Report Trigger, BATCH=YES must be
passed.
* DESTYPE can only be FILE, PRINTER or MAIL.
Ex:- Function F1 return Boolean is
Begin
SRW.RUN_REPORT
(‘Report=Rep_A P_Param1=20’);
-- calls Report Rep-A and displays to screen
-- Passes a parameter 20 to the param_1
Exception
When SRW.RUN_REPORT_FAILURE Then
SRW. Message (100, ‘Error Calling
Report’);
Raise SRW.Program_Abort;
Return True;
End;
* SRW.DO_SQL (sql statement char);
Executes specified SQL statement
* SRW.DO_SQL_FAILURE
Stops report execution upon SRW.Do_SQL failure.
* SRW.Message (msg_number number, msg_text char);
Displays a specified message and message number
* SRW.Program_Abort
Stops execution of report when raised.
* SRW.Set_Altr
Applies attribute settings, such as font, color to lay out
objects.
This procedure applies formatting attributes to the current frame,
repeating frame, field or boiler plate object.
* SRW.Set_Altr (object_id number, altr SRW.Generic_Altr);
object _id is always zero.
Altr is SRW.Altr (that is, the attributes to change)
*
SRW.set_Field
The procedures in this package are very useful in format triggers.
They are used to change data that will be displayed in a
particular item based on a specific condition.
SRW.Set_Field_char (Object_id, text char);
SRW.Set_Field_Date (Object_id, date date);
SRW.Set_Field_ Num (Object_id, number number);
Can a Report contain more than one template?
Templates define common characteristics and objects that can be applied
to multiple reports.
For example template can be defined that include the company logo
and sets font colors for selected areas of a report.
When a report is created through the Report Wizard, there is an
option of applying a template (.tdf file) to the report.
When a template is chosen, objects in the margin area of a
template are imported into the same locations in the current report section,
over writing any objects if exists.
The characteristics of the objects in the body area of the
template are applied to objects in the body area of the template are applied to
objects in the body area of the current report section.
Any template properties, parameters, report triggers, program
units and attached libraries are also applied.
Different (Multiple) templates can be applied to each section of
the report.
If another template is applied later to a report the existing
template objects will be deleted in the current report section.
How to add a template to the predefined templates list?
i) In a text editor open the Preferences File
ii) scroll down to the template descriptions identified by
Reports. xxx – Template_Reso (who xxx specified a Report style) (Tabular, Break
Above)
iii) For each Report style for which the template is defined
- to the Reports.xxx
– Template_Disc list, add the description that should be appeared on the
template page of the report wizard.
- To the
corresponding Reports. XXX_template_file list; add the file name of the
template in the same position as the addition that is made to the description
list.
iv) Copy the template file (file name.tdf) to
ORACLE_HOME/REPORT 60/ADMIN/TEMPLATE/US
Preferences file:-
Windows à ORACLE_HOME\CAUPREFS.ORA (user
preferences)
ORACLE_HOME\CAGPREFS.ORA (Global Preferences)
Unix à HOME_DIRECOTRY/Prefs.ora (User preferences)
$ORACLE_HOME/tools/admin/prefs.ora( Global Preferences)
78. How to pass a parameter in a request set for three concurrent
programs, which are having same parameter?
i) For the first report in the Report set, click on the parameters
button and ender the parameters that are to the shared by all reports in the
Request (Report) set.
ii) Go to the nest report and click the parameters button and list
the same shared parameters.
iii) Do the above step for each and every report in the request
set
iv)’Modify’ check box can be used to allow the users to change the
values of the parameters in the ‘lower ’reports at submission time..
v) ‘Display) check box can be used to allow the users to see the
parameter values at submission time.
* Request set wizard can be used to quickly create a new Request
set in which all of the request run sequentially or all of the request run in
parallel.
*sequentially à One after another
* parallel à All at once.
- The action can be set whether to continue processing or abort
processing. If a request ends with the statues ‘Error’.
79. What are Global variables in Reports?
*Global variables are the variables that can be assigned to
parameters in reports and those parameters can be used in reports.
create_parameter_list (------)
add_parameter (----:Global_var);
run_product(….);
80. what are Handlers?
* Handler is a group of packaged procedures which is used by
Oracle Applications to organize . PL/SQL code in forms.
- Handlers
provide a way to centralize the code so that it becomes easier to develop,
maintain and debug.
- The packaged
procedures available in a handler are called form the triggers by passing the
name of the trigger as an argument for the procedure to process.
* Handlers are types:-
1) Item Handlers
2) Event Handlers
3) Table Handlers
4) Business Rules
- Handlers reside in program units in the form or in stored packed
in the database.
Adding Table handler Logic
Coding logic for window and alternative region control.
Adding fin-windows and/or ROW-LOV’S and enables query-find.
Coding logic for item relations such as dependent fields.
Coding messages to use message dictionary.
Adding FF logic if required.
Adding choices to the special menu and logic to modify choices the
default menu and tool bar behavior is necessary.
Coding any other logic.
Creating a form function for the developed form and registering
any sub functions.
Testing the form by itself.
Registering the form with AOL.
Adding the form function to a menu or creating custom menu.
Assigning the menu to the responsibility and assigning the
responsibility to the user.
Testing the form within Oracle Applications.
Registering of Application, form and a concurrent program through
Application developer Responsibility
Application:-
Responsibility
à Application Developer
Form:-
Menu:-
Messages:-
Table:-
Sequence:-
Concurrent
Program:-
Application Developer (Responsibility)
*Flex field
+Key
+Descriptive
-Test
*Concurrent
-Program
-Executable
-Library
*Application
-Register
-Form
-Function
-Menu
-Messages
+Database
+Lookups
+Validation
*Profile
*Attachments
- Document
Entities
- Document
Categories
- Attachment Functions
*Other
*Requests
- Run
-Set
-Profile
-Concurrent
-Change Organization
-Running Jobs
+Key
+Descriptive
-Register
-Register
-Segments
-Segments
-Aliases
-Values
-Cross Validation
-Values
+Lookups
-Groups
-Application Object Library
-Accounts
-Common
+Database
+Validation
-Table
-Set
-View
-Values
-Sequence
Lexical
references cannot be made in Pl/SQL statements.
Bind
references can be done in a PL/SQL statements.
Lexical parameters
can be referenced by entering an ampersand () followed immediately by the
column name or parameter.
Before
creating the query, a column or parameter in the data model should be created
for each lexical reference in the query.
For lexical
parameters, initial value must be defined so that report builder uses this
value to validate the query with a lexical reference.
Token
If Oracle
reports are executed by a concurrent program, (for Oracle Reports Program),
then a keyword or a parameter with the same name as in the report builder,
should be defined which for each parameter, which is known as token.
This is used
to pass the parameters to the reports from the application (SRS Window)
Request Set:Request set is the
group of requests, that can be submitted regularly using a single transaction.
Incompatibility
These are the
list of programs that can be defined as incompatible with a certain program.
If any
program is defined as incompatible to a particular program, then that program
should not run simultaneously with the concurrent program, because they might
interfere with its execution.
Application Developer Responsibility
Various Screens
Different Executable Methods
1
Host
2
Immediate
3
Java Stored
Procedure
4
Java
Concurrent Program
5
Multi
Language Function
6
Oracle
Reports
7
PL/SQL stored
Procedure
8
Request set
stage function
9
Spawned
10
SQL*Loader
11
SQL*Plus
Concurrent Library
Library types
Transaction Library
User
Access Levels
Extensible
System
List of values
List types
Long List of Values
Poplist
No security
Security type
Hierarchical Security
Non- Hierarchical Security
Char
Format type
Date
Date time
Number
Standard date
Standard date time
Time
Validation
types à Dependent
Independent
None
Pair
Special
Table
Translatable Independent
Translatable Dependent
function
Type
form
report
85. What is a Data Group?
- A data group is
a group of oracle applications and the Oracle ID’s of each application.
- Oracle ID
grants access privileges to tables in an Oracle Database.
- Data group
determines which Oracle Data base accounts a responsibilities forms, concurrent
programs and reports connect to.
86. What is a Responsibility?
- Responsibility
defines Applications Privileges.
- A
responsibility is a level of authority in Oracle Applications that lets users
only those Oracle Applications functions and data appropriate to their roles in
an organization.
- Each user has
at least one or more responsibilities and several users can share the same
responsibility.
* Each
responsibility allows access to
- a specific
application or a set of applications.
- A set of
books.
- A restricted
list of windows that an user can navigate
- Reports in a
specific application.
87. What are security Attributes?
- Security
Attributes are used by Oracle self-service web Applications to allow rows of
data to be visible to specified users responsibilities based on the specific
data contained in the row.
88. What is a Profile Option?
- Profile
options are the set of changeable options that affects how the application
looks and behaves.
- By setting
profile options, the applications can be made to react in different ways for
different users depending on the specific user attributes.
89. What are steps involved in developing a flex field?
- Designing the
table structure
- Creating
fields on the form (Visible/Hidden)
- Calling
appropriate routines
- Registration
of the flex field.
- Definition of
the flex field.
90.
What is an application /Module?
- Application
is a collection of forms, function and menus.
91. What are Alerts?
- Alert is a
mechanism that checks the database for a specific exception condition.
- An alert is
characterized by the SQL select statements it contains.
- A SQL select
statement fells the application what database exception to identify as well as
what output to produce for that exception.
No comments:
Post a Comment
Thanks for your comments submitted.,will review and Post soon! by admin.