Sunday 2 November 2014

Diff Between InboundInterface and Conversion

Diff Between InboundInterface and Conversion:
===================== ================

Interface                                     Conversion
=========                            ==========

1)Interface will be used to upload the            1)Conversion is one-Time Data Transfer
  data multiple times.
  Regularley every week or month or day

2)Client Will be using Legacy system.     2)Client will use Only ORacle Applications.
  and also Oracle Applications                       once data is uploaed from legacy then legacy
                                 system will be closed.

3)We will not be knowing the Data file  3)here we will be knowing the data file volume
  volume.                                     exactley.
4)In Customization and as well as             4)Normally in the Implementation Porjects we
 implementation projectes we will be              will be using.
  developing Interface.

Monday 29 September 2014

Manual form development in Oracle apps using form builder

1)Open the TEMPLETE.fmb in form builder
2)Delete Canvas,Window,Datablock
3)Create New Canvas,Window attach Property classes
4)Create New Datablock select Manuval Development
5)Goto Properties of Datablcok
  1)SubClass Information     = Block
  2)Query Data SourceName    = TableName
  3)Query Data SourceColumns = Select Colunmns and Datatypes
6)Goto Canvas Define the Frame attach Properties
    1)SubClass Information     = FRAME_RECT
    2)Layout Datablock         = Select the Datablock Whatever we have created
7)Define Boiler Plate Text and Texst Items
  for Text Items attach folowing Property Classes
  1)SubClass Information     = TEXT_ITEM
  2)Coluimn Name     = Database Column Name
8)Save the form
9)Change the Property called first Navigation Datablock
10)Customize Pre-Form
    WHEN-NW-FORM-INSTANCE Triggers
    APP_CUSTOM package
11)Save the .fmb AND generate the .fmx
12)Register the Form in Application Developer

Implement Check Boxes:
========================
1)Define the check Box in the Canvas
2)Attach following Property Classes
    1)SubClass Information       = CheckBox
    2)Enter Value when Checked   = whatever value we want to insert into Column
    3)Enter Value when UnChecked = whatever value we want to insert into Column
    4)Initial Value              =Default Value
    5)Label                      =Whatever the Name we would like to display
    6)Column Name                = Database Column Name
Implement Radio Buttons:
========================
1)Define the Radio Buttons
2)Under Same Group
3)Attach following Properties
    1)SubClass Information       = Radio Button
    2)Label                      =Whatever the Name we would like to display
    3)Radio Button Value         =whatever value we want to insert into Column
4)Goto Object Navigator Select Radio Group Proiperties    
5)Attach following Properties
    1)SubClass Information       = Radio Group
    2)Initial Value              = Default Value
    3)Column Name                = Database Column Name
    

Custamization oracle apps forms using Code based method(ZOOM)


1)Open CUSTOM.pll go to the function called zoom_available
 and write the following code in the palce of "Real Code Starts Here"

    form_name  varchar2(30) := name_in('system.current_form');
    block_name varchar2(30) := name_in('system.cursor_block');
  begin
    if (form_name = 'POXRQERQ' and block_name = 'PO_REQ_HDR') then
      return TRUE;
    else
      return FALSE;
    end if;
2)Goto the Event Procedure and write the follwing code in the place of "Real Code Starts here"
   
form_name      varchar2(30) := name_in('system.current_form');
    block_name     varchar2(30) := name_in('system.cursor_block');
    begin
 
     if (event_name = 'ZOOM')  then
      if (form_name = 'POXRQERQ' and block_name = 'PO_REQ_HDR') then      
        fnd_function.execute(function_name =>   'PO_POXRQVRQ',
        open_flag     =>   'Y');
      end if;
     end if;
3)Save the CUSTOM.pll and compile this Execute the CUSTOM.pll
4)Copy both .pll and .plx into the Resource folder
(close the Application before copying into the Application).

Profiles in Oracle apps

Profile :
Profile is one of the changeable option it will change the way of application execution.

When User Log in to the application and select the the resp or Appl
system will automatically captures all the profile value as per the
profile values application will run.

Ex: If client have three Organizations 1)Hyd
      2)Ban
      3)Chn
If "hyd" users connect to the Application system will retrive the
data from database which is related to the Hyderabad branch.
If user is working for 'CHN' brnach then chennai branch setups or data
will be retrieved.

For every user we will assign the Profile value

Ex: Operation

Position - Profile Name
Profile Values
--------------
Manager
Supervisior
Clerk
Operator
Trainess

When we want assign any profile value we have four levels
we have to select any one of the level.


Profile Level Profile  Profile Value
------------- -------  --------------
User - OPERATIONS -  Print  - 10(This is for for Operations)
Responsibility  - 22Responsi -  Print  -  5(This is for 22resp users)
Application     - GL Applica -  Print  -  4(This is for GL App Users)
Site - ---        -  Print  -  2(This is for ALL Users)

Site : this is lowest level to assign the Profile values site values
are applicable for all the users.when we install Application by default
site level values will be assigned.

Application: These values are applicable for the users who are having
the access for the application. If user is eligible for both
application and site level values then application level value will
override the site level value.

Responsibility:We will select the responsibility name assign the value
which is applicalbe only for the users who are having the access for
specified responsibility.

Responsibility level value will override both application and site
level values.

User: This is highest level in the profile option.
we will select the user name and assign the profile value which is
applicable only for this user.
User level value will override all other profile level values.

Diff between Application and Responsibility:
============================================
Both are Group of Forms(Menu)
         Group of ConcurrentPrograms(Request Group)
         Group of Users (Data group)
But Application as per the Business functionality requirement
Responsibility will group as per the position requirement.

Some of the Imp Profile Names:

GL:Set Of Books
MO:Operating Unit
Hr:Business Groups
MFG_ORGANIZATION_ID
USER_ID
RESP_ID
USERNAME
RESP_NAME and so on..........


note: In the Projects most of the profile values will be assigned at the Responsibility
level.


Diff Between Application and Responsibility:
    ===========     ===============

Applciation is nothing Colletion of Forms,Reports and Program which are related for
specific business functionality.

Responsibility is nothing but Colletion of Forms,Reports and Program which are related for
specific Position in the Organization.

For Ex : We have to create One Responsibility For the Clerk. Which is accesable by all
         the Clerks.
     It Contains the Forms and Reports which are required for the Clerk.

We have to Create new Responsibility for the Manager,Which is accesable by all the
Managers.
It COntains the Forms and Reports which are required for the manager.

Where as Application includes all the Forms,Reports and Programs.If we assign the
application to the user he will access all the forms and Reports.
Intead of that we will create the responsibility and we will assign to the User.        
         
Common Profiles:
================

Gl:Set of Books: Which is Financial Profile option will be uset to assin SetofBooks
HR:Business Group : Which will used to assign the Business Group
MO:Operating Unit : To assign the Operating Unit (Branch) to the users.
MFG_ORGANIZATION_ID: Will Be used to assign the Manufacturing Organization ID.

USER_ID
USERNAME
RESP_NAME   and so on.........

We can find all the Profile details in Application Developer Responsibility.
We can assign the Profile values in System Administrator Responsibility.

Application Developer=>Profile =>Press CTRL+F11 we can find all the profiles.

System administrator=>profile=>System=> Select Profilename,Level =>Find button
then assign the Profile value.

Set Of Books :SOB is nothing but collection of Currency
       Calendar
       Chart of Accounts.
We will assign the SOB as a profile value to the user as per the Profile value system
will automatically change the application running.

Base on the SOB  name we can find the change in the currency and calendar and accounts

SELECT     NAME,
  CURRENCY_CODE,
  PERIOD_SET_NAME,
  CHART_OF_ACCOUNTS_ID
FROM GL_SETS_OF_BOOKS

SELECT * FROM GLFV_CHARTS_OF_ACCOUNTS  WHERE CHART_OF_ACCOUNTS_ID = 50713

22USER   GL:Set Of Books   Vision Operations (USA)   USD
23USER   GL:Set Of Books   Vision Korea     KRW
24USER   GL:Set Of Books   Vision Italy     ITL

Create Three users
Assign Profile values from System administrator (Profile=>System)
open the GL Form and verify the curency values  (GL=>Journal=>Enter=>new Journal)

Note: Most of the profile values will be assigned  at Responsibility Level.


Retrieve the Profile Value from Backend:(SQL,PL/SQL,Forms6i,Reports6i)
======================================

Fnd_Profile.Get('ProfileName',
local Variable);

local Variable:= Fnd_Profile.Value('Profile Name');

Both API's will be used to retrieve the Profile value frombackend

Get()   is Procedure
Value() is Function

Oracle Has provided both Procedure and Function becuase in some of the areas we can not
use procedure then we can use function.

For Ex: in SELECT clause we can not use procedure we have to go for using the Function.




1)We would like to display the Set of Books name
      User name
      Respname     in the first page of the report.

22USER
23USER
24USER

Ans)

1)Define the Local Variable
2)Goto before Report Trigger write the follwoing API
 

  :P_SOBNAME:= Fnd_Profile.value('GL_SET_OF_BKS_NAME');
  :USERNAME := Fnd_Profile.value('USERNAME');
  Fnd_Profile.Get('RESP_NAME',
    :RESPNAME);
3)Goto Layout model Header section and Display the Variable Name.
4)Submit from Diff Users and test the Output we can find the Difference.



2)Develop the PL/SQL Program for vendor Name updation. Vendor name should be updated
  if "OPERATIONS" user submit the Program for other users should not get update.

Parameters are    VendorID
 VendorName  

Create Or Replace Procedure ven_update(Errbuf  OUT varchar2,
         Retcode OUT varchar2,
     v_id   IN number,
     v_name  IN varchar2)  as
l_name   varchar2(100);
begin
l_name:=Fnd_Profile.value('USERNAME');
If l_name = 'OPERATIONS' then
UPDATE PO_VENDORS
SET VENDOR_NAME = v_name
WHERE VENDOR_ID =v_id;
commit;
Fnd_File.Put_line(Fnd_File.Output,'vendorname has updated succesfully');
Else
Fnd_File.Put_line(Fnd_File.Output,'Access Denied for updateion');
End If;
End;

Note: We can pass the profile value as default value by using Profile default type.
 Select Default type = profile
        Default Value= Profile Name
When we are passing Profile value  as default we are suppose to hide the Parameter
because profile is confidential Information we are not suppose to give permission for
modifications.

Procedure registration in Oracle apps

steps for procedure registration in Oracle apps........
-------------------------------------------------------------------------------------------

1)Develop the procedure and compile  at SQL prompt
2)Connect application select system administrator Responsbility create
  Executable by selecting the Execution Method as 'PL/SQL Stored Procedure'
3)Create Concurrent Program and attach Executable to the Program and add the
  Parameters and  incompatible programs.
4)Create Request group attach concurrent Progrtam
5)Attach Request group to the reponsibility  
6)Responsiboility  will be added to the user.
 User will submit the request from SRS Window.

Syntax:
Create Or Replace Procedure <ProcedureName> (Errbuf OUT varchar2,
    Retcode OUT varchar2,
    P1    IN NUMBER,
    P2    IN VARCHAR2,
    P3    IN DATE) AS
Local variable,Cursor,Collections Declare;
Begin

If statement
For Loop
Procedure Calling
DBMS_OUTPUT.Put_Line - This will not be used instead of this Fnd_File API will be used

FND_FILE.PUT_LINE(Fnd_File.Log   ,'Message'||Variable Name);
FND_FILE.PUT_LINE(Fnd_File.Output,'Message'||Variable Name);
Exception
When Other then
-Exception Statements;
End <Procedure Name>;

PL/SQL Procedure with Parameter:
================================
If we have any user defined Parameters then we have to register these parameters at the
time of Creating the COncurrent Program by selecting the Parameter button
enter the Seqno
 Parameter Name
 Value Set
Note : Token Field will be disabled.
Here First Parameter value will be passed to the first variable
Second Parameter will be passed to the second variable and so on........

When we are registering the report as C.P then only we required TOKEN field.
Because report builder bind variables may or may not be in the sequence that's why
we have to map with Token field.

Where as in Procedure variables position is fixed then TOKEN field will be disabled.

Sunday 28 September 2014

Report registration steps in Oracle apps

Report Registration Steps:
--------------------------------
1)Develop the report (.rdf)as per client Requirement by using reports 6i Builder

2)Move the report from Local mechine into Server
  CUS_TOP\11.5.0\Reports\US\ .rdf
   PO_TOP\11.5.0\Reports\US\ .rdf

3)Select System Administrator and create EXECUTABLE
1)Executable Name
2)ApplicationName
3)Execution Method
4)Report(.rdf) file Name

4)Create Concurrent Program and attach  1)EXECUTABLE
2)PARAMETERS
3)INCOMPATIBILITIES
5)Create Request Group and attach  Concurrent Program

6)Create Responsibility    1)Request Group
  2)Data    Group
  3)Menu
7)Create user, attach Responsibility to the user.

8)User will select the Responsibility and goto SRS(Standard Request Submission) Window
  submit the Request.


----------------------------------------------------------------------------------------------------------------

EXECUTABLE Window:
=======================
Executable      : We can enter any User Defined Name in this field
ShortName       : This is Primary key we have to enter Unique value
ApplicationName : Enter The Applications Name where the  (.rdf) file is located
Description      :It is Optional we can enter any valid Information
Execution Method :we have total 11 types of Execution methods select
   "Oracle Reports" for Report Development.
Execution File Name : Enter the (.rdf) File Name without extension Name.


If we know the Application Short Name we can find the Application name
by using following Navigation

Application =>Register=>Press F11=> Enter short Name => Press CTRL+F11

Concurrent Program Window:
=============================  
Program           : We can enter any User defined  Program Name which is meaningful
Enabled Check Box : Once the Concurrent Program is created and saved We can not delete
                    Instead of delete we can disable by unchecking this check box.
ShortName         : This is Primary key we have to enter Unique value
Application Name  : We can enter Any Valid Application Name
Description       : It is Optional we can enter any valid Information
EXECUTABLE        : Enter the "Executable Short Name" whatever we have created
Method  : System will automatically retrives the Execution MEthod.

Format            : we can select whatever the format we would like to print

Ex: HTML       (.html)Internet Explorer
pdf     (.pdf) Acrobat Reader
Postscript       (.ps)  GhostView
text   (.txt) Text Pad
PCL    HP Printer Language
XML   (.xml) XML Publisher

Save check Box  : System will save the Output and Log file details in the server
COLUMNS         : No of Columns to print per page in the Output file
ROWS            : No of Rows to print per page in the Output file

SELECT LOGFILE_NAME,
       OUTFILE_NAME
FROM   FND_CONCURRENT_REQUESTS
WHERE  REQUEST_ID =1424277

Request Group :
================
Request group is nothing but collection of Concurrent Programs and Reports we can group
All concurrent Programs.
Group :Enter Any User Defined Name (This is Case sensitive we have to maintain Capital and
           Small Letters)

Application Name :Enter Any Valid Application Name

Attach Concurrent Program by select type as Program.

Responsibility Window:
======================

Responsibility is nothing but Level of Authority which Combines Forms,Report and Application
User ID's.

Reponsibility Name : we can enter any meaningful Name
ApplicatioName     :Enter any Valid Application Name
ResponsibilityKey  :This is Primary enter the Unique Value

Data Group:
===========
data Group is nothing but Collection of Oracle Application UserID's.
it will be for Security purpose.(STANDARD will be used)
Application NAme :Enter any Valid Application Name

Request Group:
===============
Requset group is nothing but colletion of Concurrent Program
add the request group whatever we have created.
it will automatically retrieves the Application NAme.

MENU:
----
Menu : Menu is nothing but collection of Forms and Sub Menus
       select any one of Existing Menu.
 
Note : Once we create the Responsibility we can not delete instead of that we can disable
  by using Efective start Date and  End date.

Request set

Request Set:
============

Colection of Concurrent Programs which will be used to submit the Cnocurrent Programs
either sequentially or Paraalley multiple programs

It is also like Request group but in Requuest group we can submit only one program at
a time from SRS Window.
where as in Request set we can submit multiple programs at a time.

1)Select the Programs which we would like to group in the set
Ex:
Active Responsibilities
Active Users
Compile Reports
2)Open the Request Set form Select the button called Request set wizard and
  enter the concurrent Program list.
Concurrent =>Set
3)Open the Request group Form attach the Request set by selecting the Type = Set
  and attach the Request set.
4)Goto the SRS Window select the Option called Request set instead of Single Request.

Incompatibility:
================
Incompatibility is nothing but not compatible with the current concurrent program
For Ex
If we have three program A B C
If A program is running  in the server system should  not run the B and C programs
that time we wii define the Incompatibility
While createion of the A Program
Select the button called Incompatibility and enter the B and C Programs.

Run Alone Check box :if we would like to make the Program is not compatible with all
 other concurrent Program then we will check this check box.

Use in SRS Window: Be default this check box will be enabled we uncheck this we can
  find the Program at SRS window we have to submit from backend by using fnd_request
  API.

Copy To button: While customizing the Concurrent Programs(Reports,Package.....)
  we are suppose to create new concurrent Program with diff name then we will
  go for using the Copy To button.

note:  By default every concurrent Program will be executed in the CBO(Cost Based
    Optimizer) if we would like to execute in the RBO(Rule Bases Optimizer)mode then
    we will use the Session control buttion we will set the Rule Option.


:$FLEX$
:$PROFILES$

These two are Oracle apps reserved words will be used in the Value set creation

:$FLEX$: This will be used to Retrieve the Previous parameter value whatever we have
   selected.

Syntax : :$FLEX$.Previous Parameter VAlue set Name.


For Ex:  We have two Parameters


      Supplier Name      :  Table Value set
      Supplier Site Code :  Table VAlue set

based on the Suplier name we are suppose to get the Site codes in the Second parameter

SELECT VENDOR_NAME FROM PO_VENDORS  - First VAlue set

SELECT VENDOR_SITE_CODE FROM PO_vendor_sites_All   -Second Value Set
where  vendor_name = Whatever user has selected in the First PArameter
    (To get this value we will use :$FLEX$.Previous Value set name).

23SUPPLIER  - First Value set Name

23SITE
WHERE VENDOR_ID  IN(SELECT VENDOR_ID
                    FROM    PO_VENDORS
                    WHERE VENDOR_NAME = :$FLEX$.23SUPPLIER)

:$PROFILES$: This will be used to Get the Profile value in the Table Value set or
    from the front end.

To get Profile values from backend we are using Fnd_Profile.Value or Fnd_Profile.get()


Syntax : :$PROFILES$.Profile Name

SELECT SEGMENT1
FROM   PO_HEADERS_ALL

22USER  : 204
23USER  : 887
24USER  : 911

SELECT SEGMENT1
FROM PO_HEADER_ALL
WHERE ORG_ID = :$PROFILES$.ORG_ID

Ex: Display the PO's which are created by the current User

If 22user ope the LOV it has to display the PO's which are created by 22 user

SELECT SEGMENT1
FROM   PO_HEADERS_ALL
WHERE  CREATED_BY = :$PROFILES$.USER_ID

SQL * Loader

 SQL * Loader :
==================
It is one of the Oracle Tool  will be used to transfer the data from Flat files into
Oracle Base tables.
When we are developing the Interfaces or Conversion program in Oracle Applications
then we will be using the SQL Loader Programs.

while working with SQL * Loader we will come across 5 Files.

1)Flat File OR data File:

Data file contains the data in the specific format which we will receive from the
client. this file will be generated by the legacy system(Other Systems) program.
It may be either .txt format
.dat
.csv(Comma Separated View) Excell sheet.
Most of the times we will receive in the (.csv) format

2)Control File :
-----------------
Is nothing but a SQL*Loader Program will be used to load the data from file into table.
we will develop the control File
        Execute the Control File.
While developing the Control file we will specify follwoing things.
1)Data File path
2)Database Table Name
3)Column Mapping.
Control file Extension is (.ctl)

3)Bad File:
-----------
when we execute the COntrol file if any records are rejected by SQL *Loader then we
will find those rejecteds record in the Bad file.
SQl loader recjects the records if there are any datatype mismatch
        Internal Errors
Data file Format problem
Bad File Extension is (.bad)

4)Discard File:
---------------
when we execute the COntrol file if any records are rejected by Control File then we
will find those rejecteds record in the Discard file.
Control file Recjects the record when the record is not satisfying the record which
are not satisfied the condition specified in the Control file.
Discard File Extension is (.dis)

5)Log File :
-------------

It contains the Log information like Program start time,End Time
No of succesfully records upload
Rejected Records into the Bad file
Rejected records into the Discard file
Any errors are there in the Control file those error message  details we will find.
Log file Extension is (.log)


Control File Syntax:
----------------------

LOAD DATA
INFILE 'Data File Path'
Insert into table <Table Name>
FIELDS TERMINATED by ',' OPTIONALLY ENCLOSED BY'"'
TRAILING NULLCOLS
(Column1    ,
 column2    ,
 column3    ,......)


Execution of Control File :
-----------------------------

Goto Command Prompt where the SQl loader is Installed.

D:Oracle\Proddb\8.1.7\bin\  SQLLDR  Username/Password@PROD
Control = Control file Path.


1)Connect to Scott schema create temp table
2)Prepare the data file having some sample records save in the local mechine.
3)Develop the control file like follows.

Example


load data
infile 'C:\22\LOAD\EMP.txt'
INSERT INTO TABLE EMP_DETAILS22
fields terminated by ','
(empno   ,
 ename   ,
 sal     ,
 job     ,
 comm    ,
 tax     ,
 deptno  ,
 jdate)

Note: Save the file extension as ".ctl".

4)Goto Command Propmt through Start Menu = Run = > CMD
5)Connect to following path and execute the control file
 D:\Oracle\Proddb\8.1.7\Bin\SQLLDR Scott/Tiger@PROD
  Control = C:\22\LOAD\emp_details.ctl

6)test the data in the Table.

select *from EMP_DETAILS22;

Value sets in Oracle apps

Value Set: Value set is nothing but list of values with validations which will be
used to to restrict the user without entering the invalid data in the Parameters

we will use value sets in two locations.
1)Concurrent Progam parameters
       2)Flexfields
NONE:
----
We are not providing any LOV, we can apply some format conditions as per that
conditions user should enter the data

Notes: 1)Once we create the Value set we can not Delete if we would like to delete
         we have to release the value set from the all the concurrent program
      parameters then only we can delete.
  2)Value set name is case sensitive
  3)Once we create Value set we can use for multiple Program parameters.

Navigation:
-----------
System administrator => Application=>Validation=>set=>
Enter value set name
   format type
   max size
Select validation type = "None" to create None type of Value sets.

Independent:
------------

When we would like to provide list of values to the user then we will go for selection
of Independent value set.where we will provide LOV.
User must select the Value from the list otherwise values are not accepted.

Open the Value set form create value set by selecting the validation type=Independnent
Goto Values screen enter the value set name , Select Find Buttion
enter the values whatever we would like to display as LOV.
attach the value set to the Parameter.

Note:1)Once we enter the values we can not delete instead of that we can disable by
      selecting the Enabled check box
or Effective Dates.
Dependent value Set:
====================
This is another LOV which will be used to displays the
list of values which are depending on the previous parameter value.

Before going to create Dependent first we have to create Independent
then we have to create Dependent

First parameter will be Independent
Second parameter will be Dependent.

Note:Without Independent we can not create Dependent Value set.

Country IND
US
UK
City   Banglore Chennai Delhi Mumbai  Pune
       Chikago  California      Anderson
       London   Hungrant

1)We have to create Independent value set and enter the values.
2)Create Dependent value set attach independent and then enter values.


Job  Manager
 Developer
 Programmer

Position   Delivery Manager   Project manager Financce manager
  Software Developer Test Developer
  Trainee  Fresher
Navigation:
==========
1)Open the Value set form create Value set by selecting the validation type =Independent
2)Open the Values screen enter the VAlues .
3)Open the value set form enter Dependent value set by select validation type=Dependent
 Select the Button called Edit Information button enter the Independent value set
4)open the values form  enter the Dependent value set=>Find
  enter the values based on the Independent values.

Table Value set :
=================

Table value set will be used to displays the list of values from the
oracle apps base tables.
we have to give the table name and column name which will automatically
displays the values.

Note: If values are not stored in the database table then we have to
      go for Independent  value set.
      If values are there in the table then we will create table value
      set.

1.Open the value set form Select  validation type as table select the
   button called Edit Information enter table name and column name
   in the value field
2.Use where/Order By clause to implement Where/Order By clause.
3.Use Additional Columns field to displays extra columns for reference
  purpose.
4.Use the ID column to pass the ineternally other columns data
  for ex displaying username to the user and pass userID internally.
5.If multiple tables are required then enter the table names in the
  table name field with alias name and enter the Join Condition in the
  Where clause field.

6.If we know the table name we can find the Table application name from
  Application Developer responsibility
Application Developer => Application => Database => table
Query the records based on the table Name.

Note: If we are displaying additional Columns we are suppose to give the Alias Name

Translated Independent and Translated Dependent:
================================================
Both  value sets will work like Independent and Dependent value sets
will be used to displays the transalation values which will be enabled
if there is multilanguage implementation.

Special and Pair:
=================
Both Value sets will be used to displays the Flexfield data as LOV to
the User.

Calling Forms

1)Develop both forms and register in application.
2)Place the Button in first from
3)Write the following code in WHEN-BUTTON-PRESSED Trigger.

Fnd_FunCtion.execute(function_name => 'Second form function Name',
            open_flag     => 'Y'    ,          
                     OTHER_PARAMS  => 'P1 = '||:PO_VENDORS.VENDOR_ID);

P1 is Second form parameter

4)Open the Second foRm and define the Parmaeter called P1

5)goto PRE-QUERY trigger and write the following code to change the query dynamically.

 :PO_VENDOR_SITES_ALL.VENDOR_ID  := :PARAMETER.P1;
 --:Blockname  .fieldname          := :PARAMETER.Parametername
 
6) Goto the WHEN-NEW-FORM-INSTANCE Trigger at form level. write the following code
    GO_BLOCK('PO_VENDOR_SITES_ALL');
EXECUTE_QUERY;



Passing Parameters at the time of creating Functions:
======================================================

1)Develop the form
2)Register the form
3)Create Two functions for the same form.
  first function without parameters
  second function is with parameter called 'QUERY_0NLY="YES" '
enter the paraneter in the field called Parameter field.


SubMenu Creations:
==================

1)Copy the Functions whatever we would like to define as submenu
  delete from the main menu.
2)Create new menu and attach the functions whatever we have copied.

3)Copy the menu whatever we have created attach to the main menu by selecting the
  field called submenu.

Hiding the forms and Menus at Responsibility level=
===================================================


1)Open the Responsibility Form attach the menu
2)By default we will get all the forms and as well we menus will be displayed.
3)Select the Tab called Menu Exclusions Tab
  Select the  type = Function  to hide the funtion.
  select the  type = Menu name to hide the menu.


Calling SRS Window from Menu:
=============================


1)Create the Function for the User form name called "Run Reports"
2)Attach the Function to the menu.
3)Attach the menu to the responsibility
  so that user can call the form from the menu.


Attach the Request group to the SRS Function:
===============================================

1)Create the Request group in System administrator by specifying the request group
  code
  Copy the Request group name
  application short name
           request group code
2)Goto the Appllication developer create the fucntion for the user form name called
  " Run Reports"

3)Pass the follwoing Parameters while creation of the function.
REQUEST_GROUP_CODE="CUSTOMERCODE1"
REQUEST_GROUP_APPL_SHORT_NAME="AR"
TITLE="23CUSTOMERS"

4)Attch the function to the Menu , Menu to Responsibility , Responsibility to user

5)when we open the form we can get the programs which are there in the request
  group.

note: We will follow this prcocedure to attach the multiple request groups to the  
      single Responsibility.


Display the Message Boxes in the Forms:
=======================================

1)Create the Message in Application Developer
2)Run the Concurrent Program called "Generate Messages"
  by passing  language code and as well as application name
3)Call the message from form triggers by using FND_MESSAGE API's.

begin
FND_MESSAGE.SET_NAME ('PO', 'NEW MESSAGE');
fnd_message.show();
end;


Libraries:
----------

APPDAYPK:  This Library will support for all the Date and Time functionality in the
           application.

FNDSQF  : This Library will support for all the flexfield,Curency,WHO Coluns,Log File
          Message functionalities.

APPCORE : It will support for all the Menu and Tool Bar functionality in the application.

CUSTOM  : Will be used to make small customizations in the standard forms without
          downloading the (.fmb)

Note: 1)We can download all these libraries from the AU_TOP\11.5.0\Resource Folder
        where we will find all the Libraries  both (.pll) and (.plx).
   .pll  = Program Link Library
   .plx  = Program link Executable

2)we are not suppose to customize any of these libraries we can utilize the existing
  API's
3)We can Customize only one Library that is CUSTOM.pll

User Creation in Oracle Apps

Creation of New User:

1)Open the internet Explorer connect to Oracle Applications
2)Enter the         User Name  :OPERATIONS
   Password   :WELCOME
3)Select the Responsibility called 'System Administrator'
4)Open the User form.
 Security => User =>Define

5)Enter User Name and Password attach the Responsibilities whatever we required
for ex System Administrator
  Application Developer

6)Exit from the Appication
 File => Exit Oracle Applications

7)Connect to Oracle apps enter new user name password system will shows the message
like  'Password Has Expired'
 
8)Enter the New Password Press Ok Button

Short Cuts:
===========

1)To Query All the Records Press CTRL+F11
2)To Query Specific Records
     i)Open the Form
    ii)Press F11    (Form will comes into Query mode)
   iii)Enter Search Criteria in any field
    iV)Press CTRL+F11
3)To Close Form = F4
5)To Save the Records CTRL+S
   

Effective Date From and To:
===========================

In most of the Oracle Application forms we will find two field like
Effective Date From
Effective Date To

In some of the forms once we create records and save. We can not delete from database
that time we can go for Disable/Enable the record by using these two fields

Finding Table NameS/Column Names:
=================================

1)Help => Record History which will shows the Table Name
2)Help Menu=>Diagnastics=>Examine=>Enter the Password(APPS)=>We can find the Column Name


WHO Columns:
=============

WHO Column Will be used to find out the History of the record
we can find from front End Also
Help=>Record History

CREATED_BY      - Which User has created the Record(Userid)
CREATION_DATE   - at what time user has created (SYSDATE)
LAST_UPATED_BY   -Which User has updated recentley(UserID)
LAST_UPDATE_DATE -at what time user has Updated (SYSDATE)


LAST_LOGON_DATE - At what time user last Login Time


Find the Login UserName:
==========================
Help Menu=>About Oracle Applications

Saturday 27 September 2014

Form Builder

Window :  1) Model      : we can not resize,minimize                  

 2) Model Less window : User Friendley we can esiley
       navigate other forms and minimize and maximize
    Default : Model less Window

If we want to make it model window Goto Window
 propeties : Model  = Yes

  canvases  : 5
    Content              (Default)
    Stacked
    Horizontal Toolbar
    Vertical Toolbar
    TAB  Pages

   Proprty  : Type  = Content

  Datablock : Databae Datablock : Select Data from table
              Control Datablock : Without table

   Database Datablock : Yes

Record Groups :
A record group is an internal Form Builder data structure
that has a column/row framework similar to a database table

    Static           : Enter the values manuvally
    Query based      : based on the select statment get the values
    Non-Query based  : Change the values dynamically.

LOV  : List of Value which will be used to provide the list of values
       in the fields user can select the value from the list.

  Without Record group we can not create LOV.

Once LOV is created it will be attached to the field by selecting
the property called 'List Of Values'


Note : CREATE_GROUP by using this procedure we can create the Record
       group dynamically.

 Property Classes                           Visuval Attributes

1)Group of Properties              1)Group of Look and Feel properties
    Font,Color,Size.....

2)We can not change dynamically    2)Visuval attributes can be changed      
                                     SET_VA_PROPERTY Procedure

3)We can define the Triggers for   3)We can not define
  Property Class

Note : If same property given in both Property Class and Visuval
       Attribute then Visuval Attribute will take the High priority.


Popup Menu : Will be created To populate group of menu options
  when we select the Right click option.
Once popup is created then it will be assigned to field or CAnvas.

Alerts : Alerts are nothing but Messages which will be used to display
         message boxes based on the user input we can change the Form
         execution.

   Triggers Levels :

   Form Level
   Data Block  Level
   Record Level
   Item Level

   Form Level : it Will be executed once for the entire Form.
   Block  Level : It Will be executed when we enter into the datablock.
   Record level : It Will be executed for every reccord.
   Item Level   : It Will be executed for the Perticular Item.


   Types Of Triggers:

    1)When Triigers
    2)Transactional Triggers
    3)VAlidation Triggers
    4)Query Time Triggers
    5)On Triggers
    6)Pre Triggers
    7)Post Triggers
    8)Navigational Triggers
    9)Master Detail Triggers
   10)Mouse Event Triggers
   11)Key Triggers.




WHEN Triggers :  WHEN-BUTTON-PRESSED
                 WHEN-WINDOW-CLOSED
                 WHEN-VALIDATE-ITEM
                 WHEN-VALIDATE-RECORD
                 WHEN-NEW-FORM-INSTANCE
                 WHEN-NEW-RECORD-INSTANCE
                 WHEN-NEW-ITEM-INSTANCE
                 WHEN-NEW-BLOCK-INSTANCE  
                 WHEN-MOUSE-CLICK
                 WHEN-MOUSE-DOUBLECLICK

WHEN-VALIDATE-RECORD  : when user change the value in the fields then
            it will be fired.
WHEN-NEW-RECORD-INSTANCE : When user create new record then it will be
           fired.


Transactional Triggers: When user make some Transaction like
(INSERT,UPDATE,DELETE,SELECT,COMMIT,ROLLBACK,QUERY,CLOSE)
That time these triggers will be fired.

PRE-INSERT    ON-INSERT    POST-INSERT
PRE-UPDATE    ON-UPDATE    POST-UPDATE
PRE-DELETE    ON-DELETE    POST-DELETE
PRE-QUERY                  POST-QUERY.............

Validation Triggers :

WHEN-VALIDATE-ITEM    - At any level
WHEN-VALIDATE-RECORD  - At Block Level

When we change the value in the item (or) record it will be
fired.

Query Time Trigers:


Pre-Query  : Trigger will be fired before query the data
             Only once

Post-Query  : Will be fired after query the data multiple times
              for every record once it will be fired.
              To Populate Non-Database Items.

Navigational Triggers :

When we navigate from one form to another form
               from one datablock to another data block
               from one record to another record these triggers
               from one field to another field then these triggers
               will be fired

  Pre-block   WHEN-NEW-BLOCK-INSTANCE   POST-BLOCK
  PRE-FORM    WHEN-NEW-FORM-INSTANCE    POST-FORM
  PRE-RECORD  WHEN-NEW-RECORD-INSTANCE  POST-RECORD
  PRE-TEXT-ITEM WHEN-NEW-ITEM-INSTANCE  POST-TEXT-ITEM

   
Master Detail Triggers:
=======================

When we define the master detail relation ship between the Datablocks then
Master - Detail triggers will be created automatically.


    Types Master Detail Relationships:

 Non-Isolated   : (Default) The master record cannot be deleted
                             if associated detail records exist
                             in the database

 Isolated        :  The master record can be deleted,
                    but the associated detail records are not deleted
                    from the database.

 Cascade        :  The master record can be deleted,
                    and any associated detail records are automatically
                    deleted from the database at commit time.


   Master - Detail Triggers :
                            ON-CHECK-DELETE-MASTER (Non-Isolated)
                            ON-CLEAR-DETAILS
                            ON-POPULATE-DETAILS
                            pre-delete        (Cascade)  

   Deptno  :10
   Dname   : Accounting

  Empno   Ename   Sal   Deptno
  4411    Scott   12500 10
  4422    Ramu    12452 10
  1545    Swetha   2365 10


  Deferred : yes : We must place the cursor in the detail block

  Automatic Query : yes : Data will be retrieved automatically in the detail
                          block.



  Key Triggers:

 Key-Fn     : A Key-Fn trigger fires when an operator presses
              the associated key

 key-Others :A Key-Others trigger is associated with all keys
             that can have key triggers associated with
             them but are not currently defined by function key triggers


  Properties :
   

  Form Properties :
   
   First Navigation datablock  : If we have multiple datablocks in the form
         which block you want to navigate first.

  Datablock Properties :
         DatabaseDatablock : If we set 'Yes' then it is a Database datablock
         If we set 'No' then it is a Control datablock.

        Maximum records displayed: we can specify how many records we can 
        display at a time in the CAnvas.
        
        Query Datasource Name : Table Name

 Trigger properties :
       execution Hierarchy : To change the Triggers sequence firing in the 
             different order.
  Item Properties :

   Enabled  : 
   Case Restriction
   Required  :
   Database item
   Insert Allowed
   Pripmery Key
   List of VAlues
   Visuval Attributes.

  To Change the Properties in the Runtime we will use 


   SET_ITEM_PROPERTY

   set_Item_Property(Field Name,
                     Property Name,
                     Value); 
  
    set_Item_Property(DNO,
                     enabled,
                     YES); 


  window Propertis:
    Model : No it means model less window  
            Yes it is Model window.

   System Variables :
   Will be used to find the form information dynamically like 
    form status,block name,item name,cursor field...........
     
    Syntax:     :SYSTEM.CURRENT_FORM

  Go_block :  To got the Perticular block.
  
  Name_in functions: 
     Returns the value of the indicated variable. 

Overview Repot Builders

1)Report Builder is one of the Oracle GUI Tool
   Graphical user Interface

2)By using this we can develop simple and Complex reports

3)There are two ways we can develop the report
         1)Wizard base
         2)Manuval



4)            1)Data Model
              2)Layout model

DataModel will be used to select the data from Database,
SELECT Statemen and Formulas,Summary functions and so on.......


Layout model will used to displays the datamodel fields in the desired
format.


Layout Model Objects:

1)Text : Will be used to display the standard text information
         like titles,prompts,headings,Address...............

2)Frame : Will be used to display the layout objects only one time
           like totals,titles,Headings and so on

3)Repeating Frame: Will be used to display the objects multiple times
           like database columns,Sub Totals,Page Totals.......

4)Field  : Will be used to display the Data base columns,variables and
           so on.

                First page :  Employee Information Report


Second Page :  Empno Ename  Sal  hiredate   Comm





Last page  : End of the report



Summary Column : If we want to apply summary functions then we will
go for summary columns like Average,count,min,max and so on.

1)Group level   : Executed for every record in the group
2)Report Level  : executed only once for entire report.


Empno  Ename   Sal    HireDate





Total    Emp:
Total    Sal:
Min Salary  :
Max Salary  :


Formula Columns : When we want implement some logic and return the
  value then we will use formula columns.

It is a PL/SQL Function. where we can write PL/SQL code

we can return only one value.

1)Group Level
2)Report Level

Empno   Ename   Sal    Grade  (If sal >5000 'A'
                              (If sal<=5000 and >3000 'B')
                              (if sal<=3000 then  'C')
Total  Emp:
Total  Salary:
Average Emp Salary : (Total salary/TotalEmp)

PlaceHolder Columns:

A datatype which stores some value and we can use this across the
report.

It will work lika Global variable in the reports.


If we want to return more than one value from the Formula Columns then
it will be used.




Empno   Ename  Sal   HireDate Comm   TotalSal(SAl+Comm) Tax



Tax : if (totalsal>5000 then 7% tax
         (Totalsal>3000 and <=5000 then 4%tax
         (Totalsal<=3000 then 2% tax)

Empno   Ename   Sal   Comm   Tax   Netsalary

Comm :=  15% sal
tax  : 7 % (sal+comm)
netsal  : sal+comm-tax


Triggers  :

Format Trigger
Validation Trigger
Action Trigger
Report Triggers

Format Trigger : To Hide or display the layout objects dynamically it will be
                 used.

layout objects means frame,repeating frame,field,............

Action Triggers: If we want to develop drill down reports then we will use
                 Action Triggers.
       Place the Button in the layout when user press the button we can
       execute some PL/SQL code.

Report Triggers:  5 Types which will fired automatically when we run the
              report

Sequence Order

1)Before Parameter Form
2)after Parameter Form
3)Before report
4)Between pages
5)After REport


Before Parameter Form : Will Execute before the parameter form is going to
                        open.

To assign any default values for the parameter.

After Parameter Form  : After the Parameters are entered in the form and
                        submit it will be executed.

    To change the Parameter values dynamically
And To populate the Lexical parameter values.

Before Report : It will be executed before report is executing and select
                data from database.

Between Pages : When cursor moves from one page to another page it will be
                executed .
                It will be executed (n-1) times.

After Report : after completion of the report. once the output is reach the
               destination (Printer,file,fax,e-mail) then it will be executed.


Parameters :

1)System Parameters
2)User Defined Parameters 1)Bind
                          2)Lexical

Bind parameters will used to pass the the value into the query in the WHERE
Clause

Lexical parameters will be used to replace the string in side of the query
in any clause.

From Deptno
                          To Deptno


Deptno   Empno   Ename   Sal   HireDate

Total Emp     :    should display if >=5
Total Salary  :    Should display if >=7000

Before Parameter form is open Deptno = 10
                              To Deptno = 20

                Sort By : Empno
                          Sal
                          Deptno

SELECT * FROM EMP
&P_ORDER_BY

After Parameter Form Trigger


From Deptno
                                  To Deptno

if user pass the deptno then select between that
otherwise select all the dept employees data


SELECT * FROM EMP
WHERE DEPTNO BETWEEN :P_FROM AND :P_TO

If P_from is entered then it should retrieve all dept from the specified dept

if p_to is entered then it whould retireve upto specified deptno.


WHERE DEPTNO>=:P_FROM

WHERE DEPTNO<=:P_TO

Bind                                    Lexical

1)To pass the Values into the WHERE     1) To Replace the string in the
  clause   query
2)We will use the symbol ":" 2)We will use the symbol "&"
3)Can be used only in the WHERE         3)In Any Clause
  clause



System Parameters :

DESFORMAT     :  Html,pdf.....
DESNAME       :  Name of the Printer,E-mail,Fax,File
DESTYPE       :  File,Screen,Print,Fax,E-mail
MODE          :  Bitmap,Character


Master Detail Reports:

Confine Mode :
Lock mode if it is on then we can not take
the child object out of the Parent Object.If it is
off then we can take out of the parent.

FlexMode:
If Flex mode is on . If we Incr/Decr the child
 object automatically parent object also incr/decr.
If it is off then Only child object will be decr/Incr.
Program Unit :
  Is a PL/SQL objects(Procedures,Functions,Packages)
which will be stored in the Report we can use only in
the Current Report.

Program units                PL/SQL Objects
1)Will be stored in the file 1)Stored in the Database.
2)Can be used only in the    2)We can use any report
  Current Report          
3)Improve the Performance    3)It takes more time

Libraries : Group of Program units and Libraries
We can attach the Attach the Library to another report
and use the Program units.

We can not attach the Program units to another reports
directley that's why we will PL/SQL Library to attach

.pll  - Source Code - Program Link Library
.plx  - Executable Code - Program Link Executable


Lexical Parameter:
    To replace the string inside of the query dynamically

   Order By Clause:
   

SELECT EMPNO ,
       ENAME,
       DEPTNO,
       SAL
FROM   EMP;
WHERE  DEPTNO BETWEEN :FROM and :TO;

   Sort By   : EMPNO
               ENAME
               SAL
               DEPTNO

   From Deptno  :
     To Deptno  :


    Bind                                  Lexical

 1) To Pass the Value                     1)To Replace the String in the query
 2)Only in WHERE Clause                   2)in any Clause
 3)Any Datatype                           3)Must be Character
 4)VAlues will be passed in the Parameter 4)Values will be assigned dynamically
   form                                     in the After Parameter Form Trigger

 5)Symbol   ':'                           5)Symbol  '&'

Sunday 21 September 2014

Query for supplier contact information display

In R12, Contact person information is stored in HZ_PARTIES table not in ap_supplier_contacts. 

SELECT asp.vendor_id ,
asp.segment1 "Supplier Num" ,
asp.vendor_name "Supplier Name" ,
ass.vendor_site_code "site name" ,
hou.name "Operating Unit Name" ,
ass.address_line1 ,
ass.city ,
ass.state ,
ass.zip ,
ass.country ,
ass.phone ,
person.person_first_name ,
person.person_last_name ,
pty_rel.primary_phone_number ,
pty_rel.email_address
FROM ap_suppliers asp ,
ap_supplier_sites_all ass ,
ap_supplier_contacts apsc ,
hz_parties person ,
hz_parties pty_rel,
hr_operating_units hou
WHERE ass.vendor_id = asp.vendor_id
AND apsc.per_party_id = person.party_id
AND apsc.rel_party_id = pty_rel.party_id
AND ass.org_id = hou.organization_id
AND apsc.org_party_site_id = ass.party_site_id
AND asp.vendor_name = 'LS Supplier';
*****************************************************
- Search Supplier Contact
SELECT DISTINCT asu.party_id, asu.segment1 Supp_Num
,asu.vendor_name
,hpc.party_name Contact_Name
,hpr.primary_phone_country_code cnt_cntry
,hpr.primary_phone_area_code cnt_area
,hpr.primary_phone_number cnt_phone
,assa.vendor_site_code
,assa.vendor_site_id
,asco.vendor_contact_id
FROM
 hz_relationships hr
,ap_suppliers asu
,ap_supplier_sites_all assa
,ap_supplier_contacts asco
,hz_org_contacts hoc
,hz_parties hpc
,hz_parties hpr
,hz_contact_points hpcp
WHERE hoc.party_relationship_id = hr.relationship_id
AND hr.subject_id = asu.party_id
AND hr.relationship_code = 'CONTACT'
AND hr.object_table_name = 'HZ_PARTIES'
AND asu.vendor_id = assa.vendor_id
AND hr.object_id = hpc.party_id
AND hr.party_id = hpr.party_id
AND asco.relationship_id  = hoc.party_relationship_id
AND assa.party_site_id = asco.org_party_site_id
AND hpr.party_type='PARTY_RELATIONSHIP'
AND hpr.party_id = hpcp.owner_table_id
AND hpcp.owner_table_name = 'HZ_PARTIES'

Table Registration in Oracle apps


Reg for Table
  1. EXEC AD_DD.REGISTER_TABLE('PO','XXX_STUDENT','T',8,10,90);
Here

PO:- application short name
XXX_STUDENT is table name
T/V  table type or view type
8- next extend value
10 - Percent free storage parameter
90-percentage used storage parameter
Note: first 3 parameters are mandatory..

Reg for column
  1.  EXEC AD_DD.REGISTER_COLUMN('PO','XXX_STUDENT_CHILD','SNO',1,'NUMBER',20,'N','Y');
  2. EXEC AD_DD.REGISTER_COLUMN('PO','XXX_STUDENT_CHILD','SNAME',2,'VARCHAR2',20,'N','Y');
Here

PO:- application short name
XXX_STUDENT is table name
SNO     - column Name
1  - serial no of columns
NUMBER or VAR or DATE   - data type of column
20 -- size of column...if date means must 11 size only
N- Not Null values
Y - it translate in multi language used

Saturday 20 September 2014

Overview on Multi Organization.

Multiorg :
=============
Use a single installation of any Oracle Applications product to
support any number of organizations, even if those organizations
use different sets of books.

BusinessGroup (HRMS=>Workstructure=>Organization=Description)
Set of Books  (GL=>Setup=>Financials=>Books=>Define)
Legal Entity
Operating Unit
Inventory Organization
Sub Inventory     (Inventory=.Setup=>organizations=>SubInventories)
Stock Locations   (Inventory=.Setup=>organizations=>Stock locatiors)
Items

Major Features
===============
1)Multiple Organizations in a Single Installation

2)Secure Access
    You can assign users to particular organizations. This ensures accurate
    transactions in the correct operating unit.

3)Multiple Organizations Reporting

You can set up your Oracle Applications implementation to allow
reporting across operating units by setting up the top reporting level.
You can run your reports at the set of books level, legal entity level, or
operating unit level

Business Group:
===============
The business group represents the highest level in the organization
structure, such as the consolidated enterprise, a major division, or an
operation company. The business group secures human resources
information. For example, when you request a list of employees, you
see all employees assigned to the business group of which your
organization is a part.

Set Of Books:
============
A financial reporting entity that uses a particular chart of accounts,
functional currency, and accounting calendar. Oracle General Ledger
secures transaction information (such as journal entries and balances)
by set of books. When you use Oracle General Ledger, you choose a
responsibility that specifies a set of books. You then see information for
that set of books only.


Legal Entity:
=============
A legal company for which you prepare fiscal or tax reports. You
assign tax identifiers and other legal entity information to this type of
organization.

Operating unit:
===============
An organization that uses Oracle Cash Management, Order
Management and Shipping Execution, Oracle Payables, Oracle
Purchasing, and Oracle Receivables. It may be a sales office, a division,
or a department. An operating unit is associated with a legal entity.
Information is secured by operating unit for these applications. Each
user sees information only for their operating unit.

Inventory Organization:
=======================
An organization for which you track inventory transactions and
balances, and/or an organization that manufactures or distributes
products. Examples include (but are not limited to) manufacturing
plants, warehouses, distribution centers, and sales offices. The
following applications secure information by inventory organization:
Oracle Inventory, Bills of Material, Engineering, Work in Process,
Master Scheduling/MRP, Capacity, and Purchasing receiving functions.

Subinventory:
=============
Which is another organization inside of the Inventory oganization will
be used to define the locations under these location items will be placed.


Multiorg Table:
===============
It is a table contains the data which is relted to multiple operating units
all the multiorg table names will be end with '_ALL'.

like  PO_HEADER_ALL
      PO_LINES_ALL
      AP_CHECKS_ALL  and so on

Note: In all these tables we will find one common column called "ORG_ID"
  This column will be populated internally by the system as per the User Operating
  Unit ID

Client_Info:
===========
It is one  the RDBMS vaiabel which contains the User Operating Unit value (ORG_ID)

Multiorg View:
=================
It is a view which is created based on the Multiorg table which contains the WHERE
clause WHERE Org_ID = :Client_Info.

Note: While development of RICE Components we are suppose to Use Multiorg Views
      not Multi Org Tables.

Because if we use Multiorg tables we will get all the operating units data
if we use multiorg view we will get the operating units data which is related for that
perticular user .


1)What is the Diff between ORG_ID and ORGANIZATION_ID?
Ans)ORG_ID              is at Operating Unit Level
    ORGANIZATION_ID     is at Inventory Organization level

2)Why the PO Receipt functionality will come at Inventory organization level?
Ans)user is creating receipt means indirectley he will be receiving the materials from
    suppliers.materials will be received at Gowdons ,Warehouses,manufcaturing plants
    all these organizations will come at Inventory Organization level.

3)how the System Will Identify user is working for so and so operating Unit?
Ans ) By using following Profile called
      MO:Operating Unit

4)What is Multiorg?
5)What is Client_info?
6)how to Implement Multiorg in Reports and at SQL prompt?
7)What is Business group, Legal Entity,Operating Unit,Inventory Organizations?
8)What are the Modules will come at operating Unit level?
9)What is the flow of Multiorg?
10)How to Identify the Multiorg Table?
11)Wat is the Diff between Multiorg Table and Multiorg View?
12)While Developing RICE Components we will use Multiorg Table or Multiorg View?
13)Why there is no _ALL for PO_VENDORS
   and there is    _ALL for PO_VENDOR_SITES_ALL?
Ans)Supplier is global
    Supplier site is Org Specific.
14)How will you findout Multiorg Succesfully Implemented?
Ans)

SELECT MULTI_ORG_FLAG ,RELEASE_NAME FROM FND_PRODUCT_GROUPS

Y - Succesfully Implemented
N - Not Implemented Succesfully.


Multiorg :
=============
Use a single installation of any Oracle Applications product to
support any number of organizations, even if those organizations
use different sets of books.

BusinessGroup (HRMS=>Workstructure=>Organization=Description)
Set of Books  (GL=>Setup=>Financials=>Books=>Define)
Legal Entity
Operating Unit
Inventory Organization
Sub Inventory     (Inventory=.Setup=>organizations=>SubInventories)
Stock Locations   (Inventory=.Setup=>organizations=>Stock locatiors)
Items

Major Features
===============
1)Multiple Organizations in a Single Installation

2)Secure Access
    You can assign users to particular organizations. This ensures accurate
    transactions in the correct operating unit.

3)Multiple Organizations Reporting

You can set up your Oracle Applications implementation to allow
reporting across operating units by setting up the top reporting level.
You can run your reports at the set of books level, legal entity level, or
operating unit level

Business Group:
===============
The business group represents the highest level in the organization
structure, such as the consolidated enterprise, a major division, or an
operation company. The business group secures human resources
information. For example, when you request a list of employees, you
see all employees assigned to the business group of which your
organization is a part.

Set Of Books:
============
A financial reporting entity that uses a particular chart of accounts,
functional currency, and accounting calendar. Oracle General Ledger
secures transaction information (such as journal entries and balances)
by set of books. When you use Oracle General Ledger, you choose a
responsibility that specifies a set of books. You then see information for
that set of books only.


Legal Entity:
=============
A legal company for which you prepare fiscal or tax reports. You
assign tax identifiers and other legal entity information to this type of
organization.

Operating unit:
===============
An organization that uses Oracle Cash Management, Order
Management and Shipping Execution, Oracle Payables, Oracle
Purchasing, and Oracle Receivables. It may be a sales office, a division,
or a department. An operating unit is associated with a legal entity.
Information is secured by operating unit for these applications. Each
user sees information only for their operating unit.

Inventory Organization:
=======================
An organization for which you track inventory transactions and
balances, and/or an organization that manufactures or distributes
products. Examples include (but are not limited to) manufacturing
plants, warehouses, distribution centers, and sales offices. The
following applications secure information by inventory organization:
Oracle Inventory, Bills of Material, Engineering, Work in Process,
Master Scheduling/MRP, Capacity, and Purchasing receiving functions.

Subinventory:
=============
Which is another organization inside of the Inventory oganization will
be used to define the locations under these location items will be placed.


Multiorg Table:
===============
It is a table contains the data which is relted to multiple operating units
all the multiorg table names will be end with '_ALL'.

like  PO_HEADER_ALL
      PO_LINES_ALL
      AP_CHECKS_ALL  and so on

Note: In all these tables we will find one common column called "ORG_ID"
  This column will be populated internally by the system as per the User Operating
  Unit ID

Client_Info:
===========
It is one  the RDBMS vaiabel which contains the User Operating Unit value (ORG_ID)

Multiorg View:
=================
It is a view which is created based on the Multiorg table which contains the WHERE
clause WHERE Org_ID = :Client_Info.

Note: While development of RICE Components we are suppose to Use Multiorg Views
      not Multi Org Tables.

Because if we use Multiorg tables we will get all the operating units data
if we use multiorg view we will get the operating units data which is related for that
perticular user .


1)What is the Diff between ORG_ID and ORGANIZATION_ID?
Ans)ORG_ID              is at Operating Unit Level
    ORGANIZATION_ID     is at Inventory Organization level

2)Why the PO Receipt functionality will come at Inventory organization level?
Ans)user is creating receipt means indirectley he will be receiving the materials from
    suppliers.materials will be received at Gowdons ,Warehouses,manufcaturing plants
    all these organizations will come at Inventory Organization level.

3)how the System Will Identify user is working for so and so operating Unit?
Ans ) By using following Profile called
      MO:Operating Unit

4)What is Multiorg?
5)What is Client_info?
6)how to Implement Multiorg in Reports and at SQL prompt?
7)What is Business group, Legal Entity,Operating Unit,Inventory Organizations?
8)What are the Modules will come at operating Unit level?
9)What is the flow of Multiorg?
10)How to Identify the Multiorg Table?
11)Wat is the Diff between Multiorg Table and Multiorg View?
12)While Developing RICE Components we will use Multiorg Table or Multiorg View?
13)Why there is no _ALL for PO_VENDORS
   and there is    _ALL for PO_VENDOR_SITES_ALL?
Ans)Supplier is global
    Supplier site is Org Specific.
14)How will you findout Multiorg Succesfully Implemented?
Ans)

SELECT MULTI_ORG_FLAG ,RELEASE_NAME FROM FND_PRODUCT_GROUPS

Y - Succesfully Implemented
N - Not Implemented Succesfully.























Form FAQ's

1. How many types of Canvas are there in a form?
2. Can you have a form without a Canvas?
3. Does a stacked canvas require a content canvas?
4. What is a property class?
5. What is a Visual attribute? How can you set the visual attribute of an item?
6. How is a property class different from a visual attribute?
7. What are form triggers?
8. What is the difference between caLl form, new form and open form?
9. If there are two text items in a block, say text1 and text2. If the focus is on text2 and user moves the cursor to text1 by doing shift tab, then which triggers will fire? In what order?
10. What are Bind variables?]
11. What is a cursor?
12. What are the attributes of a cursor?
13. Which triggers are associated with a text item?
14. What is the structure of a PL/SQL block?
15. Explain what are stored procedures and functions.
16. Explain the types of Triggers in detail.
17. What is Call by Reference and Call by Value?

Some Questions on Forms 4.5
1.What are different components in form 4.5 designer ?
2.What is canvas ?
3.Is it possible to move an object from one form to another ?
4.What is block_menu ? Describe its usage.
5.Give usage of following runform options - array = value , block_menu = value , buffer_records,debug,debug_messages,help,interactive,keyin,keyout,logon_screen,optimizeSQL,optimizetp,options_screen,pecs, query_only, quiet,session, statistics, term, window_state
6.What runform option should be used if screen input is to be suppressed and output is to be sent to a file?
7.What is the usage of following forms generate options ? - add_triggers, batch, crt_file, debug, delete, extract, generate_on_upgrate, help, insert, logon, module_access, module_type, nofail, options_screen, output_file, parse, script, statistics, upgrade, upgrade_roles, version, widen_files
8.What is the usage of following forms designer options ? -  color mode,color palette, generate before run,module access, help, module_type,run asysnchronously,print,save before generate, suppress hints,term,use system editor
9.What is user preferences file ?
10.What are various types of  an item ?
11.What functions are used to display an lov programmatically ?
12.Differentiate between content & stacked canvases.
13.What are different type of items in forms 4.5 ? List atlas 5 types. E.g. Text_item
14.List down the file extensions used in forms 4.5 ? E.g. .fmb etc
15.How do you reuse an item across different form modules ?
16.How do you define public & private variables in forms 4.5 ?
17.Can you define a master-detail relationship between two blocks without a foreign key constraint at table level ?
18.How do you define a mandatory column in forms 4.5 ?
19.How can i check for a duplicate key in a block ?
20.What is a trigger ?
21.What are the levels at which triggers can be defined ?
22.Why triggers are used ?
23.What are various trigger groups ? Describe functionality of each group.
24.How you attach a form to menu?
25.How can you give parameters?
26.Can we have formula columns without return value?
27.What are visual attributes?
28.Can you change property class and visual attribute at run time?
29.What are the system variables, which can be modified by the user?
30.What can be the value of record status?
31.What is the difference between when_new_item_instance and pre_text_item?
32.How do i populate a poplist with a record group at runtime ?
33.If the first field of a form is required, and i want to tab out without entering any value, how do i do it ?
34.How do i call a backend stored procedure from forms ?
35.How do i handle stored procedure errors from forms ?
37.What is control block
38.What is default form
39.Here the questions like 'what are when-triggers used for ? Give examples for when-triggers'  can be asked.
40.Questions depending upon functionality of triggers
41.Function
42.Purpose
43.Example
44.Block processing
45.Fires in response to record management in a block
46.When-create-record, when-clear-block
47.GUI events
48.Fires in response to event happening in form interface
49.When-button-pressed, when-timer-expired
50.Master-detail
51.Fires during master-detail processing
52.On-check-delete-master
53.Message handling
54.Fires when an error occurs or message is needed
55.On-error,  on-message
56.Navigational
57.Fires as oracle forms navigates internally through the object hierarchy
58.Fires at the end of a navigational sequence
59.Pre-block, pre-form, post-block,  post-form, when-new-block-instance
60.Query time
61.Fires just before and after an operator executes a query
62.Pre-query, post-query
63.Here questions like when 'block processing triggers' are fired or which are navigational triggers etc. Can be asked.
64.What is the difference between pre-text-item trigger and on-new-item-instance trigger
65.What are types of triggers ?
66.Which legal command can be used in user-defined triggers ?
67.What are restricted built-ins ? In which type of triggers are these disallowed ?
68.While passing parameters to user defined procedures, what is meant by positional parameter notation
69. What are the attributes which are given to a field
70.What is next_set ?
71.List down atlas 5 system variables. E.g. System.last_record etc
72.How can you assign current date, current time, current date and time to an item ?
73.What are valid values for system.mode ?
74.How can you display only most severe messages while running a form ? I.e. How message severity level can be set in a form
75.How can i suppress input of a text item ?
76.How can i add elements to a list item dynamically ?
77.How can i make the width or height of all items on a canvas uniform in forms designer
78.How can i align all items vertically on a canvas at the same time ?
79.What is locking_mode property for a block ? What are different values for it ?
80.How to attach lov to a text item programmatically ?
81.Can record group for a lov changed programmatically ?
82.What are various commit modes used in clear_block ?
83.If i am calling a report from forms & if the report query is 'select * from emp' and dynamically at runtime i want to change it to 'select * from dept' can i do it ? How ?
84.If we have same triggers at multiple levels i.e. Form, block & item then what is the default order of firing of the triggers ?
85.Which trigger gets fired first : when new form instance or when new item instance ?
86.What will cause the entire contents of a stacked canvas view to be visible ?
87.How can i change the title of my runform window ?
88.How does a display item differ from a normal text item ?
89.Why do a get a null entry in my poplists at startup ?
90.How can i dynamically prevent the user from entering a new record ?
91.How can i dynamically make an entire block query-only at runtime ?
92.How can i change the color and font of an item dynamically at runtime ?
93.How can i have an item which acts like a disabled item , but is not grayed out ?
94.What exactly does 'query hits' and 'query options' mean in  the context of a block ?
95.What is the difference between the block properties of array size and records buffered
96.What should i be using record groups for ?
97.When should i use globals vs parameters ?
98.How do i pass a record group from forms to reports or graphics ?
99.Can i access the contents of a record group within a user exit ?
100.If i want to create a procedure should i use a library, a database stored procedure or a local form procedure ?
101.How does the use of libraries affect the size of the .fmx file ?
102.How should i make a reference to a block in my library program units ?
103.How is SQL within PL/SQL dealt with by forms ?
104.How are the constants like insert_allowed and property_on dealt with by PL/SQL?
105.If a timer expires during a long running query when is it handled ?
106.If a repeat timer expires between a long query, does it repeat prior to being serviced by a when-timer-expired at the end of the query or does it wait for servicing before repeating ?
107.What is the difference between the following triggers :
108.Post-fetch vs. Post_query
109.Post-forms-commit vs. Post-database-commit
110.Pre-query vs. Pre-select
111.Is it possible to defer locking of a record until commit time ?
112.How can i get an image from a file to be stored in my database ?
113.Sometimes when i issue a call_form (.., No_hide) my first form is still hidden.  Why
114.How can i determine which user interface i am using at runtime ?
115.How are menu roles handled in forms 4.5 ?
116.How can i specify my menu items so that they assume up the appropriate position for the GUI ?
117.What is the cause of the message :
118.Frm-10249: no authorization to run application <name>
119.How do i upgrade application form which has referenced objects from library form   forma ?
120.If i have a format mask of dd/mm/yy and type in a date without the slashes, why does this no longer show the correct date ?
121.After upgrading from SQL*forms 3.0 to forms 4.5, why do some of my fields truncate data ?
122.What does the forms45_defaultfont parameter control ?
123.If i upgrade from SQL*forms 2.3 to forms 4.5, what becomes of my v2 style triggers
124.Is the host() command under forms synchronous or asynchronous on windows
125.What gets loaded into memory when you run a form under windows ?
126.Why am i having problems changing the color of a button under windows ?
127.Can forms 4.5 call dll's on ms windows ?
128.Can i improve performance with any motif settings ?
129.How can i disable the blinking cursor to reduce network traffic ?
130.How can i change the look and feel of buttons under motif ?
131.How can i change the font in the trigger text window ?
132.How can you call one form from another?
133.What is the difference between call form, open form and new form?
134.What is the usage of global variables?
135.What is the difference between key_nextitem and post_nextitem?
136.What is validate source?
137.What is populate group query? What it will return?
138.How do you call reports through form?
139.What is reference object?
140.Whether you can change the path of a library?
141.What is new_item_instance?
142.Can you use global variables in record group?
143.What is autoconfirm property of lov?
144.How the errors are shown in forms?
145.What is savepoint?
146.What are property classes?
Forms  2.3
1. What are the differences between SQL forms 2.3 , 3.0 & 4.5
2. What are the events with which triggers can be associated
3. What are user exits
4. What was the most complicated form that you worked on
5. What are the different levels in form
6. What are the triggers which are written at form level