Saturday, August 3, 2019

Oracle Forms


How to create an Oracle form from scratch?
Form Name: Customers.fmb
Deployed Application: Custom AR Application
Responsibility: US Receivables Super User

Step 1: COPYING FILES FROM THE SERVER

a) Copy TEMPLATE.fmb file from $AU_TOP/forms/US folder to a local directory. Also download APPSTAND.fmb file and place it in D:\DevSuiteHome_1\forms

b) Copy All PL/SQL Libraries from $AU_TOP/resource/US folder (one time only). Download all the .pll and .plx files to D:\DevSuiteHome_1\forms

LIST OF .PLL

APPCORE.PLL
APPCORE2.PLL
APPDAYPK.PLL
APPFLDR.PLL
CUSTOM.PLL
FNDMOAC.PLL
FNDSQF.PLL
FV.PLL
GHR.PLL
GLOBE.PLL
GMS.PLL
HRKPI.PLL
JA.PLL
JE.PLL
JL.PLL
OPM.PLL
PQH_GEN.PLL
PSA.PLL
PSAC.PLL
PSB.PLL
VERT.PLL
VERT1.PLL
VERT2.PLL
VERT3.PLL
VERT4.PLL

Step 2: DESIGN THE FROM IN ORACLE FORMS BUILDER

a) Remove the Defaults
                        >Open Oracle Forms Builder
                        >Open the form TEMPLATE.fmb
                        >Rename the form (ex XX_abcd1)
                        >Delete the followings from object nevigator.
                                    >Go to Data Blocks and delete BLOCKNAME, DETAILBLOCK
                                    >Go to Windows and delete BLOCKNAME
                                    >Go to Canvases and delete BLOCKNAME
b) Create a new Window (ex WINDOW10)
c) Create a new Canvas (ex CANVAS10) and attached it to the new Window via Property Palate
d) Create a new Datablock (ex CUSTOMERS) wth items  from a table.
e) Create a frame in the Canvas and attached the items
f) Modify the PRE-FORM Trigger
                        >Go to triggers—PREFORM
                        >Original Code:
                   

FND_STANDARD.FORM_INFO(‘$Revision: 120.0 $’, ‘Template Form’, ‘FND’,
‘$Date: 2005/05/06 23:25  $’, ‘$Author: appldev $’);
 app_standard.event(‘PRE-FORM’);
 app_window.set_window_position(‘BLOCKNAME’, ‘FIRST_WINDOW’);
                      
                        >Modified Code:
                      
  FND_STANDARD.FORM_INFO(‘$Revision: 1.0 $’, ‘XXARCUST_1’,’CUST_FORM’,
  ’$Date: 2010/01/06 16:25  $’, ‘$Author: Dibyajyoti $’);
   app_standard.event(‘PRE-FORM’);
    app_window.set_window_position(‘WINDOW10′, ‘FIRST_WINDOW’);
                      
                        > Compile the code

g) Modification for Program unit
                        > Go to APP_CUSTOM*(Package Body)
                        >Type your First window name in place of <your first window>
                        > Compile the code
h) If any Item in the Datablock is of Date type and you want to attach a standard calender to it
    (ex Orderdate item of Customers datablock), do the following
                        > Go to Orderdate > Property palate > Subclass Information > Property Class
                        > Give property class name as TEXT_ITEM_DATE
                        > Attach LOV as ENABLE_LIST_LAMP
                        > Create KEY-LISTVAL item level trigger & add following code into it
                           calendar.show; and compile the trigger.

Step 3: DEPLOY THE FORM IN THE SERVER

                         > Upload your .fmb file

Step 4: CREATE THE .fmx FILE IN THE SERVER

>Type the code
$ORACLE_HOME/bin/frmcmp_batch module=$XXAR_TOP/forms/US/CUSTOMERS.fmb         userid=<username>/<password>  output_file=$XXAR_TOP/forms/US/ CUSTOMERS.fmx module_type=form  compile_all=special

Step 5: REGISTARING THE FORM IN ORACLE APPS

a) Registaring the FORM in Oracle Apps
                        > Go to Application Developer  —> Application —> Form
                        > Give the details:
                      
                         FORM: CUSTOMERS(name of the custom form)
                         APPLICATION: Custom AR Application
                         User Form Name: CUSTOMERS_DETAIL
                         Description: Customer Detail form
                        > save

b) Registaring the FORM to a form function
                        > System Administrator —->Application —-> Function
                        > Give the details:

                         Form—->form:CUSTOMERS_DETAIL
                         Function:XX_CUSTOMER_DETAIL
                         APPLICATION: Custom AR Application
                         Properties —> Type: Form
                         User Function Name: CUSTOMERS_DETAIL_FUNCTION

                        > save
c) Finding the menu to which the above form function is to be attached. Again the menu is attached to a responsibilty. So we have go in the reverse order to find the menu name.
                        > System Administrator —->Security —-> Responsibility —->Define
                        > Press F11
                        > Responsibility Name: %US%Rec (searching for US Receivables Super User)
                        > Press Ctrl + F11

                        > This things will come in the form
                         Responsibility Name: US Receivables Super User
                          Application:Receivables (will come automatically )

                        >Take the Menu name   —>AR_NAVIGATE_GUI
                      
d) Attaching the function to a Submenu of the above Main menu
                        > System Administrator —->Application —> Menu
                        > Press F11
                        > Menu: AR_NAVIGATE_GUI
                        > Press Ctrl+F11

                        > Promt: Custom Interfaces
                        > Submenu: XXAR_CUSTOM
                      

                        >System Administrator —->Application —> Menu
                        > Press F11
                        > Menu: XXAR_CUSTOM
                        > Press Ctrl+F11
                        > Create a new
                        > Promt: Customer Detail Form (It will display in the nevigator)
                        >Function: CUSTOMERS_DETAIL_FUNCTION (Attach the function to the submenu)
                        > save
                        >One request has been submitted to recompile your menus in the database
e) Viewing the request submitted in the background to recompile the menus to attach the function
                        > Go to View——–>Requests———>Find
                        >The status should be :Compiled  Normal

Step 6: VIEWING THE FORM IN ORACLE APPLICATION:

                        >Go to Oracle apps front end.
                        >Login with username and password
                        >Go to US Receivables Super User—>Custom Interfaces —>Customer Detail Form
FND_STANDARD.SET_WHO doesn't work / not working
Even though FND_STANDARD.SET_WHO is set in pre-insert and pre-update data block triggers it fails to show record history.

Use app_special.enable('ABOUT', PROPERTY_ON) in WHEN-NEW-BLOCK-INSTACE trigger of corresponding blocks along with set_who.
Oracle Forms Interview Questions
What do you understand by Oracle forms and why are they required?
Ans: Oracle forms are the user interfaces that are developed to present the data to the user. This data can be presented once retrieved from the Oracle database. If required, forms can be integrated with web services or Java to follow SOA architecture. Forms are created at source as .fmb files and later compiled into .fmx (executable file).
Oracle Forms include:
Forms Developer: It helps in development and compilation of Oracle Forms.
Forms Services: It is considered for deployment of Forms.
Explain the different levels at which Oracle Form Services interact.
Ans: Oracle Form Services is a three-tier application and hence it will interact at the below levels:
Client Level
Server Level
Database Level
At the client level, HTTP requests will be sent by a client to the system. This request will be received by the Forms Listener Servlet at a server and it will initiate Forms Runtime process. This process will send the request to the database to retrieve the information and send it back to the client.
This completes the workflow of user interaction through Oracle Forms Services.
Can we invoke one form from another in a multi-forms application?
Ans: Yes, we can invoke one form from another with the help of the below built-in functions:
OPEN_FORM: It opens up the requested form along with the current form and the user can navigate to both the forms in the same session.
NEW_FORM: It will also open up new form but after exiting from the current form.
CALL_FORM: It will open the requested form by keeping the parent form active but hidden. Once exited from the requested form, control goes back to the parent form.
What do you understand by LOV and how can it be used?
Ans: LOV is a list of values populated in a pop-up window and is displayed to the end user for selection. These values can be assigned and invoked statically or dynamically in LOV.
There is a related property known as ‘LOV for Validation’ which is used to validate contents of LOV. If this property is set to true, the current value of text item is compared with the values displayed in the first column of LOV.
If any of the LOV value matches with the text item, then validation succeeds and LOV will not be displayed. If not matched, LOV will be displayed and a search will happen based on the text item.
What is a canvas in Oracle Forms?
Ans: Canvas is a layer within a window where the visual objects like interface items or graphics can be placed.
Oracle forms support four types of canvas as mentioned below:
Content canvas (default canvas)
Tab canvas
Toolbar canvas
Stacked canvas
In what sequence do triggers get fired by Oracle Forms?
Ans: Oracle forms follow the below hierarchy for triggers execution:
Pre-form
Pre-block
Pre-record
Pre-text item
When-new-form-instance
When-new-block-instance
When-new-record-instance
When-new-item-instance
Post-text_item
Post-Record
Post-Block
Post-Form
Explain master-detail relationship with some examples.
Ans: Master-Detail relationship is the relationship among different business entities following the parent-child relationship pattern. There will be one parent entity linked to many child entities.
For Example, we can have one master named as COMPANY with different details as DEPARTMENTS (HR, FINANCE, OPERATIONS, ADMIN etc.).
This relationship can be implemented with the help of two data blocks where the first data block represents master table while the other represents detail table.
Name the different triggers associated with Oracle forms having a master-detail relationship.
Ans: Below is the triggers which get created during creation of master-detail block:
ON-CHECK-DELETE-MASTER
ON-CLEAR-DETAILS
ON-POPULATE-DETAILS
What are the various configuration files that are used by Oracle Forms?
Ans: The configuration files include:
default.env
formsweb.cfg
ftrace.cfg
base.htm,basejini.htm & basejpi.htm
Using the above config files, a user can specify different parameters for the forms as per the requirement.
What do we mean by record group in Oracle Forms?
Ans: A record group is a framework of rows and columns within the Oracle Forms similar to a table in the Oracle database.
Record groups can be:
Query Record Group
Non-Query Record Group
Static Record Group
A query record group is associated to SELECT statement and can be created or updated during design or execution. While a non-query record group is not associated with any query and hence it can be created or updated during execution only.
The static record group is again not associated with any query and can be created or updated during the design phase only.
What is a reference trigger? Can we modify a reference trigger?

Answers:
--------
Only the comment property can be changed for a trigger referenced in the oracle forms.

Triggrer is one type of event which is occure during any dml operation.like insrt,update,delete...etc

What are the triggers we should not modify?

Answers:
--------
Here are the form triggers that must not be changed
CLOSE_THIS_WINDOW, CLOSE_WINDOW, EXPORT, FOLDER_ACTION, KEY?COMMIT, KEY?EDIT, KEY?EXIT, KEY?HELP,LASTRECORD, MENU_TO_APPCORE, STANDARD_ATTACHMENTS, WHEN?WINDOW?CLOSED, WHEN?FORM?NAVIGATE, ZOOM .

Shall we delete exiting triggers?

Answers:
--------
We must not delete the triggers which comes from the Templates.

Name the directory having the FORMS source codes ( FMB files ) ?

Answers:
--------
They will be found in
/App_server/oas01/app/.../11.5.9/prodappl/ar/11.5.0/forms/US/XXXXXXXX.fmx

They (.fmb) r in AU Top's forms/<Language> folder

What is template form?

Answers:
--------
Template Form is a form that is to be used for building a new form and this form references all the standard libraries like(FNDSQF,APPCORE,APPCORE2,APPDAYPK,CUSTOM) which are used to build a form as per the oracle standards.This Template form has been provided by Oracle only.

Navigation for this Template form is:

APPL_TOP/au_TOP/FORMS/US/TEMPLATE.fmb

What is use of custom library?

Answers:
--------
Custom.pll is used to implement any new pl/sql code that you would need to write in customizing forms.

Why we have to create packages instead of procedures / functions?

Answers:
--------
All related procedures and functions required for a particular task are grouped together in a package. Packages have certain advantages -
1. The first time it is referred in your code, it is loaded in memory. For subsequent reads, it reduces the Disk I/O required.
2. Packages improve performance and provide easy maintenance

All related procedures and functions required for a particular task are grouped together in a package. Packages have certain advantages -
1. The first time it is referred in your code, it is loaded in memory. For subsequent reads, it reduces the Disk I/O required.
2. Packages improve performance and provide easy maintenance

&

procedure or function is a special task which is implemented by any program.when Package is set of classes or interface which is contain more information & which is implemented in a program

Name the directories where you have to copy your Fmb and Fmx files?

Answers:
--------
FMB has to be placed on $AU_TOP/forms/US and FMX has to be placed in the custom top!

Can we put all the logic in the trigger?

Answers:
--------
If you are talking about FORMS trigger (event) then NO. You should not keep your logic in the trigger, rather you should right the code in a routine and to be executed based on the trigger event checks.

What is custom development ?

Answers:
--------
Creating a custom directory in the server like 'XXX_TOP' and creating a directory structure in the Apps server required for implementing completely customized Application like our own forms, reports etc. The above mentioned task may totally called as custom development.

What are the steps you have to follow to register a Form?

Answers:
--------
ftp the form (.fmx) to resp. tops/forms/us folder

ftp the form (.fmb) to $au_top/form/us folder (not mandatory but fmb's are kept here only)

add form to a function

function to menu/submenu

menu/submenu to the responsibility

responsibility to the user.

What are the steps you have to follow to register a custom application?

Answers:
--------
1>Register custome application in AOl
2>create a physical director structure under APPL_TOP
3>modify the enviroment file to include custom schema path
4>in the backend register the custom schema as user
5>register the user with aoL
6>add the custom schema to standard data group
7>register all the custom table with the application
8>create synonyms in apps schema for custom objects

How do you find out the FMB file name?

Answers:
--------
Go to the Help menu on the applications window and select About Oracle Applicaitons.

Under the title Current Form you will get the executable file name (.fmx).

Form path : /............./forms/US/XXXXXX.fmx

The fmb name is XXXXXX.fmb

What is Form sub function?

Answers:
--------
A subfunction is a securable subset of form functionality.A function executed from with in a form

How the form sub function is implemented?

Answers:
--------
Mostly through buttons or graphical elements of the form

What is folder form?

Answers:
--------
Folder form is adjustable form layout where you can change the postion,promt and number of feilds displayed and the default query with which the form has to be opened

Why we have to maintain the file names in Capital Letter?( Library/FMB)

Answers:
--------
It is not mandatory to maintain the file name in Capital letter. Oracle Apps forms/reports are by default in Capital letter. If you use the Unix version of Ora Apps then it is better to maintain your customized file name in Capital. Since Unix is case - sensitive, during registration of customized forms/reports in Ora Apps 11i there will be problem.

What is customization?

Answers:
--------
Customisation is changing standard oracle applications functionality to suit business requirements of implementing company

What is ZOOM? How it works?

Answers:
--------
Zoom allows the addition of user-invoked logic on a per-block basis. For example, you may want to allow access to the Vendors form from within the Enter Purchase Order form while the user is in the PO Header block of that form. You can enable Zoom for just that block, and when the user invokes it, you can open the Vendors form. Example code here:--function zoom_available return boolean is form_name varchar2(30) := name_in('system.current_form'); block_name varchar2(30) := name_in('system.cursor_block'); begin if (form_name = 'DEMXXEOR' and block_name = 'ORDERS') then return TRUE; else return FALSE; end if; end zoom_available;


In one of the Standard Oracle Form(Quoting Form), the Export (File -> Export) functionality is disabled. How can I enable this Export Functionality?

Answers:
--------
Export function is disable when you intial open to the responisibility .that automatically enable when you enter into specific form and you need to export that data.Example :-Login as a Application Developer navigate to Application-->Registerand preess f11 and press ctrl+f11 then you wil get all applicatins now if you want to export all data go to the file and see The function is eabled


Why are views used in the data blocks of a standard form instead of mapping directly into the base tables?

Answers:
--------
This is because base tables have huge amount of data and because of which if we work directly on the base tables, it will hit the performance. Also, views are simplified versions of the base tables which are easy to understand and hence to work upon.

No comments:

Post a Comment

Link between Receivables, Payables and Projects

 --Link between AP, AR and PA select aia.* from ap_invoices_all aia ,pjc_exp_items_all peia ,pjb_bill_trxs pbt ,pjb_inv_line_dists pild ,pjb...