July 27, 2015

Interview FAQ's-Oracle Apps Technical and Oracle forms


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.
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?
  1. Pre_Text_Item
  2. when_New_Item_Instance
  3. post_text_Item
  4. post_Change
  5. When_validate_Item
  6. 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.

COALESCE-SQL

Coalesce- return the null values from the expression. It works similar to a case statement where if expression 1 is false then goes to expr...