Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CLASS - 4
Oracle 9i
Reports 6i
Variables – like Bind, Lexical
Columns - like Summery, Placeholder, Formula
Report Triggers – 6 types and sequence
Format Triggers and Validate triggers
Layout objects
o Frame
o Repeat frame
o Anchor
o Boilerplate
Oracle Applications 11i – Introduction
ERPs available in market
SAP
Oracle Applications
o People soft
o Siebel
o JD Edwards
Oracle Applications are used to capture Business functionality information of the
organization.
Instances
o Development - Development
Development stage 1
Development stage 2
o Testing - Testing
o Production – Client testing
After o development / customization the objects to be registered with this. This has got
the two responsibilities.
1) System Administrator: Which has got the functions like 1) users, 2)
Responsibilities 3) Reports development / customization 4) Procedure 5) Printer
Installation 6) Admin activities - Server Monitoring, Request submission
2) Application Developer: Which has got the functions like 1) Forms 2) Menus 3)
Messages 4) Flexi fields 5) Profiles
Note: We can find the table names from front end by using help menu
Yellow Color – Mandatory Fields, White Color – Optional Fields, Gray Color – Read Only
Some of the records we can’t delete in Oracle applications instead of the we will
effective dates From and To to enable or disable the record.
When we go to Record History option we can find all the who columns
CLASS - 5
Executables
.rdf Reports
.sh Unix Shell Script
.sql SQL
.proc, .fun, .pck PL/SQL
.C C Programe
.proC ProC
.ctl Sql * loader
.prl Perl
Concurrent Programe
Is nothing but instances of execution file along with parameter and incompatible
programs
We can register 11 types of executable as Concurrent Programe
Advantages
o We can execute multi language programmes as Concurrent Programe
o When we run Concurrent Programe we can utilize 100% local machine
hardware capacity
o We can change the Concurrent Programe output based on employee
profile
o We can submit only Request
o We can schedule the Concurrent Programe as per client requirement.
Report Registration
1) Develop the report (.rdf) as per client requirement by using Reports 6i Builder
2) Move the report from the local machine in to the server
a. CUS_TOP\11.5.0\reports\US .rdf (or)
b. PO_TOP\11.5.0\reports\US .rdf
3) Select System Administrator
a. Create Executable
b. Executable name
c. Application Name
d. Execution Method
e. Report (.rdf) file name
4) Create Concurrent Programe and attach
a. Executable
b. Parameters
c. Incompatibilities
5) Create Request group and attach Concurrent Programe
6) Create Responsibility
a. Request Group – Concurrent Programe
b. Data Group – Collection of User IDs
c. Menu – Collection of forms
7) Create user attach Responsibility to the user
8) User will select the responsibility and go to SRS (Standard Request Submission)
window submit the request
Executable => Concurrent Programme => Request Group => User=> SRS
Note: For Single Executable we can have different concurrent programs with different
parameters
Executable:
After moving .rdf in to the server, we will crate executable by specifying execution
name execution method and application name.
Concurrent Programe:
After creation of executable we will create concurrent Programe by attaching
executable, if parameters are there we will attach parameter if incompatibility
programs are there we will add those programs , for single executable we create
multiple concurrent programs with different parameters.
Request Group:
After creation of concurrent program we must add the programme to the request
group. Request Group is nothing but collection of Concurrent Programs and
Reports.
Responsibility:
It is level of authority where we will combine Data Group, Request Group and
Menu. Request Group is optional menu and data group is mandatory.
Data Group:
Data Group is nothing but collection of applications names and Oracle User
Names based on this Username data will be retrieved from database.
Menu:
Menu is nothing but collection of functions(forms) and submenus.
Navigation
To find out output file path and log file path we will write the below select
statement
Select logfile_name, outfile_name from fnd_concurrent_requests
Where Request_ID = ‘ ‘;
CLASS - 7
Data Model
Select * from FND_USER
Parameters
From USER_ID, To USER_ID
Layout Model
Designing of layout
User Parameters
P_From
P_To
P_Title
Value Set: values set is nothing but list values. It will be used to validate values
while entering the parameters.
Token: Token is one the filed wile be used to map concurrent Programe
parameters with report builder find variable. We will enter the find variable name
in the toke field so that parameters will be passed to the find variable.
Required check box: By using this check box we can’t make the parameters
mandatory or optional
Enabled Check Box: By using this we can enable or disable the parameter.
Display Check Box: By using this we can hide or display the parameters in SRS
window.
Range Option: While defining the from and to parameters if we wanted to accept
values in accession order menus from values is low and to value is high we will
select the options called low and high.
Default Types: If we are hiding the parameters user can’t enter the values that
time we can pass default values by using default type and default value filed.
SRS Window – Copy Button: This will be used to find out recent Concurrent
Programe list with parameters in SRS Window.
CLASS - 8
Default Types
When we are hiding the parameter in SRS windows user can’t enter the values that time
we can pass values internally by using defaults types.
Report Builders
Data Model
Layout Model
Object Navigator
User Parameters
1) P_From_Date - Date - Input Mask
2) P_To_Date – Date –Input Mask
3) P_Title – Character – 100
Data Model
Count of UserIDs
Oracle Applications
Default Values.
To hide parameter – To Uncheck the Display Check box in bottom of the form
Segment
Default Type as – Segment Option
Default Values – Specify the previous parameter
Value set is nothing but list of values with validation. It will restrict the user to enter valid
values. These are 8 types.
1) NONE : When we write maintain some format conditioning NO – LOV
Emp NO: => Only nos. 0 – 9
=> 35 to 7856
=> 45 to 0045
2) INDEPENDENT: Yes – LOV – user must select values from the list
3) DEPENDENT: Yes – LOV – The value which will depend upon the previous
parameter
CLASS - 9
1) NONE -
a. When we want to restrict the user to enter the values based on some
conditions then we will use NONE type. Here no list of values user
manually will enter the value based on the conditions values will be
accepted.
b. Enter the values set name select format type enter the minimum size
select validation type as NONE.
c. Once the value set is created we can use it for any concurrent program
either single time or multiple times.
d. Once the value set is created we can’t delete if value if value set is being
used by concurrent program if we want to delete release from the
concurrent program then we can delete by using delete option.
2) INDEPENDENT –
a. Provide the values to the user either number or character creates the
independent value set to enter the values for the value set Application-
Validation-Values
b. If we want to provide list values to the user we will go for selecting
independent values set type user must select the values from the list.
c. Open the value set for an enter value set name select format type and
select validation type as Independent.
d. Copy the value set name go to values screen enter the values set name
and click Find enter the values in the values field save the transactions
attach value set to concurrent program.
e. Once the values are inserted in to the list we can’t delete instead of
deletion we can disable by using enable check box or effective date from
and to.
3) DEPENDENT
a. Dependent value set is nothing but another LOV but values will be
changing based on the previous Independent value set.
b. When we are creating dependent we must have 2 parameters
1)Independent 2) Dependent
c. Open the value set form create Independent value set go to values from
enter the values.
d. Open the values set form create dependent value set by selecting
validation type as dependent.
e. Select edit information button attach Independent value set what ever we
have created.
f. Copy the value set name go to values screen click on find button enter
the values based on the Independent value.
India Hyderabad
Mumbai
Chennai
Bangalore
US Newyork
Newjersy
California
UK London
Paris
CLASS - 10
4) TABLE –
Select user_name, user_id, creation_date
From FND-USER
Where row num < 20
Order by User_name desc
a. If values are available in database table then we will go for using table
value set, we will give the table name and column name system will
retrieve the values from the database table.
b. Open the value set form and give the value set name select validation
type is table click edit information button.
c. Enter the table name, column name in the value field.
d. Enter the where clause order by clause in the text item called where order
by.
e. Use the additional column field to display extra columns data in LOV, we
have to use alias name while specifying additional columns.
f. Table Application : It is a optional field based on the table name we can
find out table application name.
g. Go to Application Developer Responsibility –
Application=>Database=>Table query the records based on table name.
h. Select User_ID, USER_name from FND_USER – From front end user
name should be available and internally user_id to be passed.
i. Id Column in Value set form – If we want to display one column to the
user in the front end and pass another column value internally we will use
ID column.
j. Meaning Column – This will be used to display the extra columns like
additional columns it will work like a additional columns
k. Display the values from multiple tables –
i. At the time of giving the table name enter table names with alias
name by specifying. ( , )
ii. AT the time of selecting give the column name by giving the alias
name, column name.
iii. Join condition is mandatory in where / orderby clause
iv. PO_VENDORS, PO_VENDORS_SITE_ALL.
CLASS - 11
When the width of the report is more we have chose the style of the output in
Concurrent program window BACS instead of A4.
Query
Select fcp.user_concurrent_program_name,
Trunc(fcp.creation_date) CDate,
fav.application_name,
fev.executable_name,
fl.meaning
from fnd_concurrent_programs_vl fcp,
fnd_application_vl fav,
fnd_executables_form_v fev,
fnd_lookups fl
where fcp.application_id = fav.application_id
and fcp.EXECUTABLE_ID = fev.EXECUTABLE_ID
and fl.lookup_type ='CP_EXECUTION_METHOD_CODE'
and fcp.execution_method_code = fl.lookup_code&p_lexical
Parameters:
Lexical parameter to change the query dynamically.
Bind parameter to be register before Oracle applications.
If title parameter is null i.e. if user doesn’t pass the value to the title parameter
Format trigger.
Begin
If :P_Title is NULL then
Return (True)
Else
Return (False)
End if
End
If parameters were not passed to the :P_From_Date and :P_To_Date report should
display all the records.
================
Exercise
CLASS - 12
SELECT USER_ID,
USER_NAME,
TRUNC(CREATION_DATE) CDATE
FROM FND_USER
WHERE USER_ID BETWEEN :P_FROM_ID AND :P_TO_DATE
Detail Level
SELECT FU.USER_ID,
FRV.RESPONSIBILITY_NAME,
FAV.APPLICATION_NAME,
FSG.SECURITY_GROUP_KEY,
TRUNC(FRG.START_DATE) FROMDATE,
TRUNC(FRG.END_DATE) TODATE
FROM FND_USER FU,
FND_USER_RESP_GROUPS FRG,
FND_RESPONSIBILITY_VL FRV,
FND_APPLICATION_VL FAV,
FND_SECURITY_GROUPS_VL FSG
WHERE FU.USER_ID = FRG.USER_ID
AND FRG.RESPONSIBILITY_ID = FRV.RESPONSIBILITY_ID
AND FRV.APPLICATION_ID = FAV.APPLICATION_ID
AND FRG.SECURITY_GROUP_ID = FSG.SECURITY_GROUP_ID
USER EXIT
Start End
Start End
3GL
User Exit
It is one of the predefined program in Reports 6i will be used for stop the report
execution process for sometime and transfer the control to the 3 rd Generation Language
get the data and completes the remain execution process.
We have 5 types of User Exits available in Oracle Applications.
1) FND SRWINIT: We will use this user exit in the before report trigger. It will
initialize user profile values according to that profile values data will be retrieved
from database.
SRW.USEREXIT(FND SRWINIT)
2) FND SRWEXIT: We will call this user exit from ater report rigger to freeze the
memory which is occupied by user profile values.
SRW.USEREXIT (FND SRWEXIT)
CLASS - 13
Requisition
Purchase Quotation
Documents
Purchase Order
Receipts
1) Item Creation
a. Open the user from in System Administrator Responsibility attach the
responsibility called Inventory, Vision Operations(USA)
b. Open the Items from - Items – Master Item – enter, system will show
the organization list, select the organization vision operations, enter the
item name and description.
c. Go to Inventory tab check the check box called Inventory Item.
d. Go to purchasing tab check the check box called purchased and save the
transactions.
e. We can assign the item to the multiple organization by selecting tool
menu – Organization assignment option check the check box called
assigned.
2) Supplier Creation
a. Select the responsibility called Purchasing, Vision Operations(USA)
b. Open the suppliers form - Supply Base – Suppliers press enter
c. Enter the suppliers name and save the transaction and we will get
supplier number select status button enter site address select contact tab
– enter contact details and save
3) Buyer Creation:
a. Attach the Responsibility called HRMS Management; Open the Employee
form (N) HRMS Manager – People – Enter and Maintain.
b. Select new button enter employee name and Date of Birth, select action
as creation employment chose the option called buyer and save the
transaction.
PO PROCESS
j. We can find out requisition history by using tools menu option called view
action history.
Select * from PO-ACTION_HISTORY
Where OBJECT_ID = REQUISITION_HEADER_ID
Select PAH.ACTION_CODE
PDF.FULL_NAME
From PO_ACTION_HISTORY PAH
PER_ALL_PEOPLE_F PPF
Where OBJECT_ID = 11459
And PAH.EMPLOYEE_ID = PPF.PERSON_ID
CLASS - 15
a. Standard
b. Planned
c. Blanket
d. Contract
When we require the materials from suppliers we will cerate standard PO by specifying
terms and conditions price, quantity and so on.
Select * from PO_HEADERS_ALL
where segment1=’3445’ and type_lookup_id = ‘STANDARD’
(N) – Open the purchase order form – Purchase Orders-Purchase Orders and
enter select PO type and suppliers information enter the line level details like
Items quantity price and so on.
Select shipments button enter shipping location details quantity promice date,
need by date and so on select distribution button enter distribution details and
save the transactions.
Select approve button system will submit the document for approvals.
Copy the PO number and go to purchase or summary form enter PO number
select find button.
To cancel the purchase order go the tools menu – control option.
Tools menu copy document to create the same document.
Auto Create
o By using Auto Create option we can create purchase orders automatically
from approved requisition by selecting document type as Purchase order.
CLASS - 16
When ever company would like to have the agreement with supplier that time first
we will create Blanket Agreement, when ever we require materials we will go for
releasing the purchase orders.
Open the purchase order form select Blanket Purchase agreement and enter the
details and approve the purchase order.
Select releases form either blanket PO Number and Item quantity details select
distributions button enter distribution details, select approve button for approvals.
Match Approval
At the time of creation Purchase Order in the shipments, release we will specify
the Match approval option.
Two way matching is nothing but company purchase order quantity, price with
Invoice price.
Three way matching is nothing but comparing 3 documents Purchase Order,
Receipt and Invoice.
Four ways Matching is nothing but company PO receipt inspection and Invoice
documents.
Receipt Documents
1. Standard - 3 Way
2. Direct Delivery- 2 way
3. Inspection Required - 4 way
It is one of the purchasing document will be created while receiving the materials
form the suppliers we have 3 types of receipt.
Navigation – Receiving – Receipts and enter.
Create the purchase order and approve it open the receipts from enter PO
Number, select find button, system will show the PO Line details, check the
check box save to transactions, system write automatically generate Receipt
number
Select Receipt_Num
From RCV_shippment_headers
Where shipment_header_id IN (Select shipment_header_id
From rcv_shpment_lines
Where PO_header_id IN( Select Po_Header_ID
From PO_heaer_all
Where segment1=’3452’))
CLASS - 17
Query
MASTER QUERY
SELECT PHA.PO_HEADER_ID,
PHA.SEGMENT1 QUOTENO,
PHA.QUOTE_TYPE_LOOKUP_CODE,
TRUNC(PHA.CREATION_DATE) CDATE,
PPF.FULL_NAME BUYER,
H1.LOCATION_CODE SHIPTO,
PHA.QUOTE_VENDOR_QUOTE_NUMBER QUOTEAMT ,
H2.LOCATION_CODE BILLTO ,
PHA.CURRENCY_CODE CURR,
PV.VENDOR_NAME,
PVS.ADDRESS_LINE1,
PVS.CITY,
PVS.ZIP
FROM PO_HEADERS_ALL PHA ,
PER_ALL_PEOPLE_F PPF ,
HR_LOCATIONS H1 ,
HR_LOCATIONS H2,
PO_VENDOR_SITES_ALL PVS,
PO_VENDORS PV
WHERE TYPE_LOOKUP_CODE = 'QUOTATION'
AND PHA.VENDOR_ID = :P_VENDOR_ID
AND PHA.AGENT_ID = PPF.PERSON_ID
AND PHA.SHIP_TO_LOCATION_ID = H1.LOCATION_ID
AND PHA.BILL_TO_LOCATION_ID = H2.LOCATION_ID
AND PHA.VENDOR_SITE_ID = PVS.VENDOR_SITE_ID
AND PHA.VENDOR_ID = PV.VENDOR_ID
LINE – QUERY
SELECT PLA.PO_HEADER_ID,
MSI.SEGMENT1 ITEM,
MSI.DESCRIPTION ITEMDESC,
MC.SEGMENT1||','||MC.SEGMENT2 CATEGORY,
PLA.UNIT_PRICE PRICE
FROM PO_LINES_ALL PLA,
MTL_SYSTEM_ITEMS_B MSI,
MTL_CATEGORIES MC
WHERE PLA.ITEM_ID = MSI.INVENTORY_ITEM_ID
AND PLA.ORG_ID = MSI.ORGANIZATION_ID
AND PLA.CATEGORY_ID = MC.CATEGORY_ID
CLASS - 18
Begin
Space for Control Statements like IF
LOOP s
Procedure, Function and Package Calling
Exception
When Others then
FND_FILE.PUT_LINE(FND_FILE.LOG, ‘Write message’ || Variable name)
Develop the procedure and compile, specification of the procedure will be stored
in the Database.
Select System Administrator Responsibility - Crate executable with execution
method as ‘PL/SQL Stored Procedure”
Create concurrent Programe and attach – Executable, Parameters, and
Incompatibilities.
Create the Request Group and the Concurrent Programe
Attach the Request Group to the Responsibility
Attach Responsibility to the User
User submit Request from SRS window
Simple Example
Exception
When Other then
FND_FILE.PUT_LINE(FND_FILE.LOG, ‘Error has occurred during the execution’)
End EX20
Begin
Select Vendor_name INTO L_name from PO_vendors where vendor_ID=V_ID;
Exception
When NO_DATA_FOUND then
FND_FILE.PUT_LINE(FND_FILE.LOG, ‘There no records in the Table’)
L_Flag:=’E’;
Exception
WHEN OTHERS then
FND_FILE.PUT_LINE(FND_FILE.LOG, ‘Error occurred while updating’)
End VEN_UPDATE20;
Exercise
Program will accept one parameter supplier name LOV Vendor Name Internally
Vendor_ID should pass
Based on the Vendor_id find the Quotation Details and load in the temp tables;
NOTE:
1. Crate Two table
2. Define the cursor based on Vendor_ID
3. Transfer the data in to quotation temp and quotation details
4. Define local variable to count to calculation and transfer to quotation_temp
CLASS - 19
It is one of the Oracles tool will be used to upload the data from flat files in to oracle
database tables.
1. Flat file or Data file: It contains the data in specific format it will be either text file
(.txt) or excel sheet. (.txt, .dat, .csv – Comma Separated Value)
2. Control File: It contains SQL * Loader program contains data file path,
database table name and column mapping and soon, once we develop the
control file we will execute this, that time data will be transfer from file to Oracle
Database Table, during this data transfer, the following files will be created. The
extension of the control files is .ctl.
4. Discard file: It contains the rejected records which are rejected by control file if
we have specified any condition in the control file if record is not satisfying the
condition the complete record will be inserted in the discard file. The extension
of file is .dis.
5. Log file: It contains information about control file execution like, execution start
time and end time, successful records count, bad records count, if there are any
errors in the control file, those error messages will be available in segments, the
extension of file .log.
Load Data
Infile ‘Data file Path’
Insert into table <Oracle Database Table Name>
Fields terminated by ‘,’ or ’$’
( Column1,
Column2,
Column3, , , , , ,, );
SQLLDER username/password@hoststring
Control = <Control file Patch>
Class Exercise
Develop the control file like as follows and save it with extension .ctl
Load Data
Infile ‘C:\20\load\emp.txt’
Insert into table emp_details
Fields terminated by ‘,’
( Empno,
Ename,
JDate,
Deptno,
Sale,
Comm,
Tax );
Go to Command Prompt select following path
o D:\Oracle\proddb\8.1.7\bin>
SQLLDER SCOTT/TIGER@PROD
Control = C:\20\LOAD\EMP.CTL
To find path to execute the SQLLDR command is HOST Command from SQL
prompt which will shows the path where we can execute control file
o Select * from v$parameter.
CLASS - 20
Control File
INSERT - Table should be empty – New records will be inserted.
APPEND – New records will be add for existing records
TRUNCATE – It will delete existing records and inserts new records from the file.
.csv file (Comma Separated Valu)
If any string contains commas we will enclosed this will in double quotation in the control
file we will specify the following statement syntax
If one of the field is missing for the database column we can generate sequences and
also we can use the some functions like to_char, NVL, Decode, Instr, Rtrim, Trim and so
on
Training Nullcols – Inserts NULL columns if no data is there, we can not use any DDL,
DML or TCL command in control file.
LOAD DATA
Infile ‘C:\20\load\emp.txt.’
Truncate into Table emp_details
Fields Terminated by ‘ , ‘ optionally enclosed ‘ “ ‘
Trailing Nullcols
( Empno ‘emp_seq.nextval’,
Ename ‘upper(:ename)’,
Jdate Sysdate,
Deptno,
Sal,
Commn,
Tax )
Fixed format control file exampled
If data is in the fixed format the control file will be developed in different format
LOAD DATA
Infile ‘C:\20\LOAD\FIXED.TXT
Truncate Into table emp_details
( Empno position(1:5),
Ename position(6:15),
Jdate position(16:26),
Deptno position(27:28),
Sal position(29:33),
Commn position(34:36),
Tax position(37:39))
In control file itself we can specify the data and at the time of insertion we specify the
specify the condition and we can also specify the discard file pat in control file it self - for
example
LOAD DATA
Infile *
Discardfile ‘C:\emp_rejected.dis’
Truncate Into table emp_details
When deptno=’20’
( Empno position(1:5),
Ename position(6:15),
Jdate position(16:26),
Deptno position(27:28),
Sal position(29:33),
Commn position(34:36),
Tax position(37:39))
Begin Data
Fsfsd fgdfdsf
Fsfsfsf fdfdsfsd gsfsdfg gdgd
Along with the SQLLDR command we can also use the few commands like as bellow
ROWS – It will be used to issue the commit after insert ’N’records for every 10 records
internally auto commit will happen
SQLLDER username/password@Hoststring rows=10
INIT.ORA file contains the default values for the commit point
CLASS - 21
DECODE Statement to be used to Code the ‘A” for Analyst ‘M’ for Manager and Multiple
data files can also be called in single control file
Example control file
Load data
Infile ‘C:\20load\multiple.txt
Truncate Into table emp1
(Empno Position(1:5),
Ename Position(6:15),
Job Position(16:16) “Decode (:Job ,‘A’, ‘Analyst’,’M’,”Manager’)”)
Insert Into table dept1
When deptno:=’ ‘
( Deptno Position(17:18),
DnamePosition(19:25))
1. Develop the control file and move the both data file and control file in the server
2. CUS_TOP\11.5.0\BIN\ .CTL
3. Create executable by seleting the execution method as SQL*Loader
4. create concurrent Program attach executable, Parameters
5. Attach the concurrent program to the Request Group
6. Attach the Request group to the Responsibility
7. Attach Responsibility to the user will submit the request form SRS window.
Example
Basic Cost to the calculated field in the Control file i.e. ItemCost – ItemTax
Load Data
Infile *
Insert into Table MTL_ITEMS
Fields Terminated by ‘,’ Optionally Enclosed by ‘ “ ‘
Trailing NULLcols
( Item,
Item Desc,
ItemCost,
ItemTax,
BasicCost “(:Itemcost - :Itemtax)”)
Begin Data
Fdfdsf sgdfg fgdgdgds dgdgdgd gfgdgd hgdghdg
Fdfdsf sgdfg fgdgdgds dgdgdgd gfgdgd hgdghdg
Move the .ctl file in the Inventory top i.e. BIN Directory
And register the control file with applications.
Go to System Administrator and register with the applications and concurrent
program and method should be SQL * Loader
Data file pat can changed dynamically
o Infile ‘&1’
o We muse use the ‘1` degit
o We are allowed to submit only one parameter that should be data file path
At the time of defining concurrent programe select parameter butiton define the
parameter specify the ‘&1’ in the control file so that what ever the values we have
passed that will be replaced in the control file.
Interview Questions
6. What are the SQL functions we can use in the control file
a. TO_CAHR, TO_DATE, INSTER, SUBSTER, RTRIM, LTRIM, DECODE, NVL
and so on.
8. If control file rejected more than 10 records error the I would like to stop the process
how to do it
a. We have a file called INIT.ORA file where we will set parent called maximum
errors allowed and max auto commit other parameter also.
For example
( Empno,
Ename ,
JDate FILLER,
Deptno);
CLASS - 22
SQL * Plus
Save as the file .sql and create the parameters in Oracle apps systems administrator
and column can be added dynamically
NOTE
We can define Maximum 100 parameter
We are suppose to use &1, &2, &3 ……………
We are not suppose to skip the sequence
WE can use same parameter values in multiple places in the script
SQL * PLUS concurrent program to execute DDL and Connect to remote
database and executes the scripts and so on.
Executable
Concurrent Program
Request Group
SRS
We need to use the Application Programe Interface details in 115devg.pdf 21 chapter
FND_PROGRAM.EXECUTABLE - Executable
FND_PROGRAM.REQUEST - Concurrent Program
FND_PROGRAM.PARAMETER - Attach Parameter
FND_PROGRAM.REQUEST_GROUP - Create Request Group
FND_PROGRAM.ADD_TO_GROUP- Add Concurrent Program R.G
SQL
PL/SQL
Report – Report Triggers
Forms – Form Trigger
Sample Program
Declare
l_request_id number(10);
Begin
Fnd_global.apps_initialize ( user_id,
Resp_id
Resp_appl_id);
Fnd_user
Fnd_responsibility_vl - responsibility_key
Fnd_application_vl - application_name
We can submit the Concurrent program future date or date by using the schedule button
in SRS window
2. Once: It will submit the rest only once for future date.
5. Save this Schedule: This check box will be used to save the schedule and
apply same schedule to other concurrent programs by selecting the button called
‘Apply save schedule’
NOTE: After schedule the Concurrent program we can also cancel by selecting the
cancel button.
CLASS - 23
PROFILES
Profile is one the changeable option it will change the way of application execution,
when we crate user in oracle applications we will design the profile values for ever user
by selecting any of this level.
Profile levels
1. Site Level: Site is the lowest profile level when we install Oracle Applications by
default values will be assigned at this level, site level values will be applicable for
all the users.
2. Application Level: If we want to assign profile value to the specific application
users then we will select this level specify the application name and assign the
value, application level profile value will over write site level values.
3. Responsibility Level: We will select the responsibility name assign the profile
value, this is applicable only for the users, who are having access to the specified
responsibility. Responsibility will overwrite the both application and site level
values. Most of the profile will setup at responsibility level because it will be
creating responsibility for ever position in the organization we will also assign the
profile values based on position.
4. User Level: We will select the user name and assign the profit value this is only
for specific user which we have specified at will over write responsibility,
application and site level values.
Definition
Application: It is collection of forms, reports and programs which are related for specific
business functionality
Responsibility: It is also collection of forms, reports and programs which are related for
specific position in the organization.
Navigation
We will find profile name and validation access levels, weather we can visible the
values or we can update the values.
Based on the access level we will go to system administrator open the profile
form assign the profile values.
Navigation
Select profile name and profile level by default site select find button, it will shows
profile values at 4 levels
Important Profiles:
2. MO: Operating Unit: This will be used to setup user operating unit name which
operating unit user is working, when ever user login to the system by using this
profile. System will understand the user operating unit (Branch Name)
3. HR: Business Group: This profile will give the user business group which group
user is working.
4. HR: User_Type: This profile will give the user employment type which user is
Permanent, Contract or consultant will be identified.
USER_ID
USER_NAME
RESP_NAME
RESP_ID
RESP_APPL_ID
All these are user personal profile values for user will be there whenever we create it
contains the values. We cannot change the values.
CLASS - 24
GL: St of Books
Currency
Calendar
Chart of Account
Go to Systems Administrator and open the profile form and select the profile name and
assign the values.
When we assign set of books to the user based on the that set of book name
currency, calendar and accounts structure will be changed
Create there different users go to systems administrator assign the profile values,
select user level enter user name and profile name select find futon and assign
the user level values.
Login with the user name select GL responsibility open the Journals form,
Journals – Entry and press enter we will find the different currencies in currucy
filed
Get - Procedure
Value – Function
2 APIs to be used
APIs will be used to retrieve the profile values form Backend like SQL, PL/SQL, Forms,
and Reports.
NOTE: Here get() is a procedure and Values() is a function both will be used to get a
profile value from the backend
Example: In Select clause we can’t use procedure that time we can use function.
Simple PO Report
User Name :
Responsibility Name :
Set Of Books Name :
Supplier Name
Supplier ID
PO Type Date Currency
Query
Select PHA.SEGMENT1 PONUMBER,
PHA.TYPE_LOOKUP_CODE TYPE,
TRUNC(PHA.CREATION_DATE) CDATE,
PHA.CURRENCY_CODE CURRENCY
From PO_HEADERS_ALL PHA
Where VUNDER_ID=&PO_VENDOR_ID
Lexical Parameters
P_CONC_REQUEST_ID
P_USER_ID
P_RESP_ID
P_SOB_NAME
FND_PROFILE.GET(‘USER_NAME’, :P_USER_ID)
FND_PROFILE.GET(‘RESP_NAME’, :P_RESP_ID)
:P_SOBNAME := FND_PROFILE.VALUE(‘GL:SET_OF_BOOKS_NAME’)
Develop the procedure and register as Concurrent program and user submit the request
form SRW window system should capture the dynamically and inserts in to the temp
table
:X:= FND_PROFILE.VALUE(‘ORG_ID’)
FAQs
1. What is profile
2. What are the profiles you have come across in your experience
3. Profile levels in sequential order
4. How to get profile value from Backend
5. How to pass profile values as default in parameter
Default Types
Constant
Segment
SQL
Profile
- Concurrent Programe window Parameter
At the time of defining parameter select default type as profile and give
the profile name in the default values field.
CLASS - 25
Multi Org
Multi Org is nothing but implementing multiple organization under single oracle APPS
implementation. We will define the multi org levels like follows:
Operating Unit - Where Company will procure, sell, pay, receive, stock
Sub inventories
Stock Locations
- Under the Inventory it will come
Items
Business Group: It represents the highest level in the organization structure, it can be
a major division or operating company or consolidated enterprises, Business Group
secure human recourses information. Example: When we request list of employees
assigned to the business group where organization is a part
Set Of Books: It is a financial reporting entity it uses particular functional currency, chart
of accounts and accounting calendar, Oracle General Ledger application secures this
transaction information like, journal entries, balances, we will use the Set of Books to
capture these financial information.
Legal Entity: it is a legal company for which we prepare physical or tax reports and we
will submit company flanking sheet to Government.
We can sell the products from one legal entity and ship the products from
another level entity – that time we can easily create financial transactions.
We can receive the good from the suppliers in any Inventory organization.
Example: A branch employee will create the PO then we can rece4ive the
material in B branch Inventory organization but these two organization
should be defined under same set of books.
Create 3 users, assign to them different branches by using MO:Operating Unit profile
and develop the report, use the multi org tables and register it as concurrent program
and submit from SRS window form 3 users we will get all the operating units data in the
output instead of multi table, use multi org view. Submit request from SRS. It will
display the output which is related for user organization. If we are not using the user exit
(FND SRWINIT) system will not initialize user profile values including MO operating Unit
profile that time, client_info variable values is null.
SQL> select count(*) from PO_HEADERS – output ‘0’ becoz system doesnot know the
branch working for which branch
SQL> Begin
FND_CLIENT_INFO.SET_ORG_CONTEXT(204)
END;
SQL> select count(*) from PO_HEADERS - Now it is showing the 1645 Pos fro branch
204
Begin
FND_CLIENT_INFO.SET_ORG_CONTEXT(FND_PROFILE.VALUE(‘ORG_ID’)
END
Inventory ORG_ORGANIZATION_
Organization DEFINITIONS MFG_ORGANIZATION_ID ORGANIZATION_ID
MTL_SECONDARY_
SubInventory INVENTORIES
Stock Locations MTL_ITEM_LOCATIONSQ
Items MTL_SYSTEM_ITEMS
Requstions
RFQ
Quotations
PO
PO Receipts
CLASS – 27
Multi_org_flag Releasename
Y 11.5.7
Y – Implemeted successfully (Business Group, I.E., Set of Books, operating Unit,
Inventory organziaiton)
BUSINESS_GROUP_ID: This at Business group level we can find them
common column in all the table, which are in HRMS tables like
o PER_ALL_PEOPLE_F
o PER_JOBS
o PER_GRADES
o PER_POSITIONS
ORG_ID: It is at operating unit level it we will find this common column in all the
table at operating unit level like
o PO_REQUESITION_HEADERS_ALL
o PO_HEADERS_ALL
o PO_DISTRIBUTION_ALL
NOTE: But PO receipts functionality will come at Inventory organization level.
Because we are crating receipt means we are receiving the goods from supplier.
We will be receiving the material at Inventories (stories, gowdans ) only.
Example: RCV_SHIPMENT_HEADERS table is not having the _ALL it is not
having ORG_ID column
ORGANIZATION_ID: It is at Inventory Organization level we will find all the
manufacturing tables column this ORGANIZATION_ID column including PO
Receipts Tables
o MTL_SYSTEM_ITESM_B
o WIP_ENTITITES
o BOM_RESOURCES
o BOM_DEPARTMENT
FAQs
1. What is application hierarchy or Multi org flow?
2. What is Business Group?
3. What is legal entity and operating unit
4. What is meant by multi org table
5. What are module will come at operating unit level
6. Will PO Receipt will come tat Operating Unit level or Inventory Organization
level?
7. What is difference between OR_ID and ORGANIZATION_ID?
8. Why there is no _ALL for PO_VENDORS table?
9. How to implement multi org in reports?
10. How to populate ORG_ID from SQL prompt?
11. What is meant by Client_info?
12. When user login in to the system how the system will identify user operating unit?
CLASS – 28
Flex Fields
Flex Field is nothing but a normal field but it is a ore flexible in the application either to
extend the form functionality or to capture the key information
1. Descriptive Flex Fields: DFF will be used to capture extra information from the
end user without changing form code and without altering database table
a. We will use the attribute column while working with DFF
b. We will find all the DFF in Application Developer Responsibility
i. N – Flex Filed – Descriptive – Register
c. To find DFF in form – PO Requisition Form
d. Customization of DFF
i. Open the form in application (PO, AP…) we will find the fields
which are enclosed with [ ] it is nothing but a DFF we can enable
this DFF by using Application Developer Responsibility
ii. Find the DFF title from following navigation
1. Help Menu – Diagnostics – Examine and enter password
as apps and Block name $Descriptive Flex field$ we will
find the list of DFFs in the fields select Field:
PO_REQ_HDR_DESCRIPTIVE_F4 we will find the DFF in
the value fields Value: Requisition Header (Oracle
Purchasing)
iii. Copy the value go to Application Developer
1. N – Flex field – Descriptive – Segments and enter and
press F11 enter the title Ctrl + F11
iv. Un check the checkbox called Freeze Flex field definition select
segments button enter the column names select attribute column
and value set and save the transactions.
v. Check the check box called Freeze Flex Field Definition click on
compile button internally system will submit concurrent program
(Flex field view Generation) to compile flex field it will generate
one flex field view to capture the data.
vi. The view name will be database table name _DFV
vii. Go to the form where DFF is attached, place the cursor, it will
open DFF form enter the data save it go to backend query the
records.
Select Attribute3 Buyertype,
Attribute9 Buyerlocaton,
Attribute13 Last Date
From PO_REQUISITION_HEADER_ALL
Where segment1=’15467’
viii. Create the value set in system administrator; attach the value set
at the time of creating DFF column name in the value set field.
ix. We can make the DFF column is optional or mandatory by
selecting required check box in the segments form.
CLASS – 29
Sub Inventory
Item Location
Stock Location
Available Qty
Purchasable Item
Item Attributes
Inventory Item
Customer Item
Production Item
xi. Global Data Elements: While defining the context field we will
enter the context field values based on the value we can change
the DFF structure if we want to define any field globally we will
select option called Global Data elements, select se4gments enter
the details.
1. Once we use the attribute column in Global Data elements
it will not be available for the context field values.
2. Key Flex Field : These will be used capture key information which is in the code
language for every code there will be a specific meaning in the application we will
find all the KFF s in the Application Developer Responsibility. Navigation – Flex
field – Key – Register and enter we can find the structure in the segments form
Navigation Flex Field – Key – Segments and press enter when we enter the data
in KFF it will be stored in segments columns we will find segments column
around 30 based on the requirement.
System
Last Query
Value - Quary will get
CLASS – 30
Structure Column
While defining the KFF we will find structure column field if it is null value then
KFF has got only one structure, if there is a structure column that will find
multiple structure, open the segments form query the records based on KFF title,
we will find structure details
For Accounting KFF structure column is CHART_OF_ACCOUNTS_ID
And we will get all the structure details from this table –
GL_CHARTS_OF_ACCOUNTS.
All the accounting KFF transaction will be stored in the data based table called
GL_CODE_COMBINATIONS
3) P_STRUCT_NUM segment1||'\n'||segment2||'\n'||segment3||'\n'||.......||'\n'||segment30
4) Call another User exit from before report trigger
6) Define Formula Column and CALL another User Exit from formula column
SRW.USER_EXIT ('FND FLEXIDVAL
CODE = "GL#"
NUM = ":P_STRUCT_NUM"
APPL_SHORT_NAME = "SQLGL"
DATA = "Column Name where the data is available"
VALUE = "to get KFF Values we will give formula column Name"
MODE = "SELECT"
DISPLAY = "ALL");
CLASS – 31
P_STRUCT_NUM: This is a bind variable will be used to capture KFF structure number
FND FLEX SQL: It is one of the User Exit we will define in the before report trigger to
retrieve KFF segments data
FND FLEXIDVAL: This is another user exit will called from formula column to display
the KFF data in the output
6) Take the Formula column and place it in query and edit the PL/SQL editor
7) Go to layout model design the report and register with Oracle Applications and
submit from the user SRS form
SRW.REFERENCE( ) : It we are using bind variable in source column the user exit we
will refer to get the latest values for variable and source column
Select Chart_of_account_id
INTO :P-STRUCT_NUM
From GL_SET_OF_BOOKS
Where name=L_name;
CLASS – 32
Develop the report on PO Module and display the charge account in PO Distributions
Form
Line Level Dist Level
ReqNO Type Cdate Lineno Item ItemDesc DistNo ChargeA/C
CLASS – 33
Form Executable
Function Concurrent
Programe
Data Group
Menu Request Group
Responsibility
User
Note:We will change the Property called First Navigaction Data Block as Datablock
Name in the Module Properties.
First Form
User ID
User Name
Creation Date
Second Form
Supplier ID
Supplier Name
Supplier Creation Date
Form Registration:
After moving the .fmb and .fmx in to the server we will take the .fmx name select
application developer responsibility register the form Navigation Application
Developer Application – Form and enter
Enter the .fmx name and application name where the .fmx is located enter user
form name
Copy the user form name attach to the function.
Function:
It is nothing but instance of form along with parameter navigation Applicatoin –
Function and enter
Enter the function name and user function name go to properties tab select type
as form, go to form tab attach user form name what ever we have created
Copy the user function name attach to menu
Menu:
Group of submenus and functions, enter menu name sequence no, prompt,
attach user function name in the function field, copy the user menu name, go to
responsibility form in system administrator attach in the menu field
Select the responsibility we will find the form in object navigator window.
Form Setup
First step
AU/11.5.0/FORM/US
Copy the files in to resource folder like Templete.fmb and appstand.fmb
Second Step
Forms60 _path
- - - - - - - - - - -- - - -- - - ; give the template.fmd file path
CLASS – 34
Table registration
3) conn apps/apps@prod
4) create public synonym custom_vendors for po.custom_vendors;
5) exec ad_dd.register_table ('po','custom_vendors','t', 8, 10, 90);
Exec Ad_dd.register_table(
p_appl_short_name ,
p_tab_name ,
p_tab_type ,
p_next_extent ,
p_pct_free ,
p_pct_used )
6) exec ad_dd.register_column ('po','custom_vendors','vendor_id', 1,'number', 10,'n','y');
Exec ad_dd.register_column (
p_appl_short_name ,
p_tab_name ,
p_col_name ,
p_col_seq ,
p_col_type ,
p_col_width ,
p_nullable ,
p_translate ,
p_precision default null,
p_scale default null)
7)commit;
Value sets
Who columns
Flexfield (dff,kff)
Note :
If we are registering table by using AD_DD package we can utilize following functions
1) Who columns
2) Flex fields
3) Multi org
4) Profile, Table Value set creation and so on.
Conn APPS/APPS@PROD;
EXEC AD_DD.REGISTER_COLUMN
(‘WIP’,’WIP_ITEM_DETAILS’, ‘ITEM’,1,’VARCHAR2’,50,’N’,’Y’);
Navigation
Application - > Database - > Table and press enter
CLASS – 35
Master Form
PO-VENDORS
Vendor_ID, Vendor_name, Creation_Date
Detail Form
PO_VENDOR_SITES_ALL
Vendor_ID, Vendor_site_code, Site_Creation_Date,
Address1, Address2, City.
Develop the form with master table by using template.fmb (Primary Key must be
selected)
Crate detailed data block after selecting the column click next futon, can check
the check box called Auto join data blocks, select the button called create
relationship, select radio button called based on join condition.
Select Primary Key from Master Item, reference key from detail Item, system will
automatically create join condition and select finish button.
At the time of selection layout style select tabular format and select number of
records to be displayed in the layout.
Attach property classes and save the .Ffmb generate .FMX move in to the
custom top.
Practice development
PO_HEADERS_ALL
PO_header_id, PO_NO, type, Cration_Date
POLINE_ALL
Po_heder_id, item_desc, quantity, Unit_price,
Line_total(quantity*unitprice)
CLASS – 36
FND_DESCR_FLEX.DEFINE(
BLOCK => 'WIP_ITEMS10',
FIELD => 'DFF_TEXT',
APPL_SHORT_NAME => 'WIP',
DESC_FLEX_NAME => 'WIPDFF' );
END IF;
END DFF_PROC;
END;
Call this Package from WHEN-NEW-FORM-INSTANCE Trigger
o Packagename.Procedure name('WHEN-NEW-FORM-INSTANCE');
o DFF_PKG.DFF_PROC('WHEN-NEW-FORM-INSTANCE');
Call another API from WHEN-NEW-ITEM-ISNATCE Trigger
o fnd_flex.event('WHEN-NEW-ITEM-INSTANCE');
o It will Populate the DFF in the Form.
Note:
FNDSQF library will support for all the flex field APIS like
FND_DESC_FLEX.DEFINE
FND_FLEX.EVENT
FND_KEY_FLEX
Function Security:
For single form creation of multiple functions at the time of creation function
passing the parameter which will change the form functionality.
Attach the functions to menu and menu to responsibility and responsibility to the
user.
NOTE: At the time of crating function select form tab pass the parameter in the
field called parameter
APPS - FND_FUNCTION.EXECUTE( )
OPEN_FORM built-in
Opens the indicated form. Use OPEN_FORM to create multiple-form
applications, that is, applications that open more than one form at the same time.
NEW_FORM built-in
Exits the current form and enters the indicated form. The calling form is
terminated as the parent form. If the calling form had been called by a higher
form, Form Builder keeps the higher call active and treats it as a call to the new
form. Form Builder releases memory (such as database cursors) that the
terminated form was using.
Form Builder runs the new form with the same Runform options as the parent
form. If the parent form was a called form, Form Builder runs the new form with
the same options as the parent form.
CALL_FORM built-in
Runs an indicated form while keeping the parent form active. Form Builder runs
the called form with the same Runform preferences as the parent form. When
the called form is exited Form Builder processing resumes in the calling form at
the point from which you initiated the call to CALL_FORM.
CLASS – 37
Fnd_FunCtion.execute (
function_name => 'Second from function Name',
open_flag => 'Y' ,
OTHER_PARAMS => 'P1 = '||:PO_VENDORS.VENDOR_ID);
5) Go to 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 from level. write the following code:
GO_BLOCK('PO_VENDOR_SITES_ALL');
EXECUTE_QUERY;
Sub Menus
Sub menu is nothing but is collection of function and menus we will create the
submenus just like menus, then we will attach to main menu by using the field
called submenu.
At the time of creating responsibility we will attach menu by default all the
submenus and functions will be available if we want to hid we will go to Menu
Exclusion tab in Responsibility form select type as function or menu and give the
function name or menu name in the name field.
CLASS – 38
Forms Customization
Two Ways
If we want to customize standard oracle forms will going to use custom.pll by using this
we can customize few events in the form. This custom.pll is available in the au_top –
resource folder
Data capture
Form Name : Help About Oracle Applications
Block Name : Help Diagnostics – examine
Minimum : Amount
Hide the filed
When form is opened (When-new-form-instance)
3) Write the Following Code in the place of 'Real Code Starts Here'
APP_ITEM_PROPERTY2.SET_PROPERTY(
'PO_HEADERS.SEGMENT1',
PROMPT_TEXT,
'PO Number');
APP_ITEM_PROPERTY2.SET_PROPERTY(
'REGIONS.REGION_LONG_NAME',
CASE_RESTRICTION,
UPPERCASE);
end if;
end if; (attach the Library called APPCORE2.pll)
5) Transfer both .pll and .plx files into the Resource folder in the AU top.
(Note: before going to copy into the server close the complete Application)
CLASS – 39
Zoom Trigger
Zoom event will be used to call the another forms from Oracle standard forms, by default
zoom will be disabled for the form, first we have to enable, the \we will go for execution.
Open the Custom.pll got the function call zoom available and creat the following
code in the place of “Real Code Starts here”
Go to the event procedure and write the following 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;
Ave the custom.pll and compile this execute the custom.pll
Copy both .pll and .plx in to the resource folder (Close the applications before
copying in to the respective top)
FAQs:
1) What are the steps we will follow for the form development
2) What are the libraries are available in TEMPLETE.FMB?
3) How to register table and primary key?
4) Why do we need to register the table
5) How t o implement who columns?
6) How to attach a calendar?
7) How to call another form from the standard forms?
8) How to implement DFF in the forms?
9) What are the events we can use in custom.pll?
10) What is meant by zoom?
11) We can’t copy the CUSTOM.PLL in to the server when applications is opened?
a. In oracle applications all the forms are developed by TEMPLETE.FMB
including Navigator. So that, that time CUSTOM.PLL IS being used by the
application we can not update the library.
12) When we are working in the project we are not able to close all the users
application that time how to copy in to server.
a. We will be having the link file (crated by DBA), we will copy in to that path
only we have to logout and login then we can find the customization
effects.
13) How to generate .fmx and .plx in LINIX operating system
a. In windows we will use CTRL + T
b. In linix we will use F60GEN command
CLASS – 40
INTERFACES
Interface is nothing but a program will be used to transfer the data from flat files to
database table or from database table to flat files with validations. WE have two types of
Interfaces like Inbound Interface Outbound Interface.
Inbound Interface
It will be used to upload the data from legacy system into Oracle Applications base table
Note: Legacy system is nothing but other applications which is used by client like SAP,
JAVA, Mainframe so on.
Example: In implementation project we can implement forms and report so that users
can enter the data after implementation but the previous data will be available in the
legacy system we need to bring that data in to Oracle Applicatoins with validations.
Outbound Interface
It will be used to extract the data from Oracle Applications base tables in to flat files
Example: Client is using to applications one is for financial and another one is for
manufacturing, we have to transfer manufacture data in to financial applications, so that
we can generate the Invoices in financial applications.
Usage: UTL_FILE_PACKAGE
UTL_FILE.FOPEN() - Crate / Open file
UTL_FILE.PUT_LINE() - Transfer the data in to file
UTL_FILE.FCLOSE() - Close file
We can generate flat file only in specified directory - to find directory list
Process Steps
1) Develop a procedure or package and register it as Concurrent Program
2) Writ the cursor to retrieve the data from database
3) Define the file by using UTL_FILE.FOPEN()
4) Open the cursor for loop and transfer the data in to file by using
UTL_FILE.PUT_LINE()
5) Close the cursor and close the file by using UTL_FILE.FCLOSE()
l-id UTL_FILE.FILE_TYPE
Begin
l_id := UTL_FILE.FOPEN(‘d:\........................’, ‘PO_ORDERS.TXT’, ‘W’)
For c2 in c1 loop
Utl_file.Put_line (l_id, c2, PoNum ||’$’||
C2.POType ||’$’||
C2. CDate ||’$’||
C2.Buyer);
End loop;
UTL_FILE.FCLOSE(L_ID);
End PO_Informaton;
Inbound Interface
Flat File
Base Tables
Process Steps:
1) Stage Table Cration
2) Control file development
3) PL/SQL Program
4) Submit Standard Program
Inbound interface will be used to upload the data from legacy system in to
Oracle applications base tables.
We will receive the flat file from the client then we will create staging table
upload the data from flat file in to stage table.
Develop the PL/SQL program to validate the data weather it is valid or not, if
it is valid we will insert in to interface table, if it is not valid we will insert in to
error table.
Once the data is available in interface table submit the standard program
from SRS window, and we will transfer the data from interface table to base
tables.
Note
o Staging table is required because the flat file structure may or may not
be compatibles with base table structure.
o Interface table is required to make the pre validation and populate
dynamic records.
GL PO AP AR OM
GL Interface
GL_Interface
GL Execution Journal Import
Report
GL_JE_HEADERS, GL_JE_LINES,
GL_JE_BATCHES
CLASS – 42
GL_INTERFACE_TABLE
STATUS: This column will accept any string but we will always insert standards string
called new it indicates that we are brining new data in to General Ledge Applications.
ACCOUNTING_DATE and CREATION_DATE: Both columns will accept valid date but
that date should be less than or equal to System date.
CREATED_BY: WE have to enter valid user_id from FND_USER table we can identify
weather it is valid user_id or not.
PERIOD_NAME: We have to enter valid period name and period should be in the open
status from GL_PERIODS table we can find out weather it is valid period or not, from
GL_PERIOD_STATUS table we can find out period is in the open status or not.
ENTERED_DR and ENTERED_CR: Both columns will accept positive number Debit
and credit amount, both debit and credit should be equal otherwise account will be
imported as suspense account.
GROUP_ID: WE will enter unique group number while importing from interface table to
base table it will be used as parameter.
CTUAL_FLAG: This column will accept single character either ‘A’ or ‘B’ or ‘E’ a- Actual
amounts, B- Budget Amounts, E- Encumbrance Amounts
AP
AR
GL_JE_HEADERS INV
GL_JE_LINES
GL_INTERFACE
GL_JE_BATCHES FA
CM
F FIELS
Process Steps:
1) We have received flat file from client
2) We have created Staging table as per flat file structure
3) Developed Control file and uploaded data
4) Developed PL/SQL Program to upload the data from stage into interface
table
i. declare Cursor
ii. open cursor
iii. Validate each record
iv. If no invalid record then insert into interface table.
5) Run the journal import from GL => Journal => Import => Run
i. Give the two parameters 1)Source 2)Group ID
6) Open the Output if status is 'SUCEESS' then take Request ID.
7) open Journal Enter screen Query the records based on the %requestid%
As batch Name - Select Review journal button we can see the journal
detailed transaction
8) If we want correct the journals we can correct from
Journal=>Import=>Correct
9) If we want delete the journals we can delete from
Journal=>Import=>Delete
Control File Creation – To transfer the data from flat file to staging table.
LOAD DATA
INFILE *
INSERT INTO TABLE GL_INT_TEMP
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(STATUS,
SET_OF_BOOKS_ID,
ACCOUNTING_DATE,
CURRENCY,
DATE_CREATED,
CREATED_BY,
ACTUAL_FLAG,
CATEGORY,
SOURCE,
CURR_CONVERSION,
SEGMENT1,
SEGMENT2,
SEGMENT3,
SEGMENT4,
SEGMENT5,
ENTERED_DR,
ENTERED_CR,
ACCOUNTED_DR,
ACCOUNTED_CR,
GROUP_ID)
BEGINDATA
"NEW",1,"11-AUG-2002","USD","11-AUG-
2002",1318,"A","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",555,555,555,555,
66
"NEW",1,"11-AUG-2002","USD","11-AUG-
2002",1318,"A","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",554,554,554,554,
66
"NEW",1,"11-AUG-2002","USD","11-AUG-
2002",1318,"A","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",321,321,321,321,
66
"NEW",1,"11-AUG-2002","USD","11-AUG-
2002",1318,"A","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",431,431,431,431,
66
"NEW",1,"11-AUG-2002","SGD","11-AUG-
2002",1318,"K","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",1500,1500,1500,
1500,66
"NEW",1,"11-AUG-2002","EUR","11-AUG-
2002",1318,"A","Inventory","JETFORMS","Corporate","01","000","1410","0000","000",1600,1600,1600,
1600,66
Creation of PL/SQL procedure – to transfer the data from staging table to interface table after
validation.
CREATE OR REPLACE PROCEDURE GL_IN_PRO( Errbuf OUT VARCHAR2,
Retcode OUT VARCHAR2)
IS
-- cursor declaration
CURSOR gl_cur IS
SELECT
status ,
set_of_books_id ,
accounting_date ,
currency ,
date_created ,
created_by ,
actual_flag ,
category ,
source ,
curr_conversion ,
segment1 ,
segment2 ,
segment3 ,
segment4 ,
segment5 ,
entered_dr ,
entered_cr ,
accounted_dr ,
accounted_cr ,
group_id
FROM GL_INT_TEMP;
l_currencycode VARCHAR2(25);
l_set_of_books_id NUMBER(3);
l_flag VARCHAR2(2);
l_error_msg VARCHAR2(100);
l_err_flag VARCHAR2(10);
l_category VARCHAR2(100);
L_USERID NUMBER(10);
BEGIN
DELETE FROM gl_interface;
COMMIT;
FOR rec_cur IN gl_cur LOOP
l_flag:='A';
l_err_flag:='A';
--This PL/SQL Block will do the currency validation
--end of the currency validation
--Category Column Validation
BEGIN
SELECT USER_JE_CATEGORY_NAME
INTO l_CATEGORY
FROM GL_JE_CATEGORIES
WHERE USER_JE_CATEGORY_NAME = REC_CUR.Category;
EXCEPTION
WHEN OTHERS THEN
l_category:=NULL;
l_flag:='E';
l_error_msg:='Category does not exist ';
END;
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE'||L_FLAG);
--End Category Column Validation
--User ID column validation
BEGIN
SELECT USER_ID
INTO L_USERID
FROM FND_USER
WHERE USER_ID = REC_CUR.created_by;
EXCEPTION
WHEN OTHERS THEN
L_userid:=NULL;
l_flag:='E';
l_error_msg:='User ID does not exist ';
END;
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE'||L_FLAG);
--End of Created_by OR UserID column Validation
--Set of books Validation
BEGIN
SELECT set_of_books_id
INTO l_set_of_books_id
FROM GL_SETS_OF_BOOKS
WHERE set_of_books_id=rec_cur.set_of_books_id;
EXCEPTION
WHEN OTHERS THEN
l_set_of_books_id:=NULL;
l_flag:='E';
l_error_msg:='set of Books ID does not exist ';
END;
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE'||L_FLAG);
-- End Set of books Validation
--Status Column validation
/* BEGIN
IF rec_cur.status = 'NEW' THEN
l_flag:= 'A';
ELSE
l_flag:= 'E';
Fnd_File.put_line (Fnd_File.LOG,'Status column has got invalid data');
END IF;
END;*/
BEGIN
SELECT currency_code
INTO l_currencycode
FROM fnd_currencies
WHERE currency_code=rec_cur.currency
AND currency_code='USD';
EXCEPTION
WHEN OTHERS THEN
l_currencycode:=NULL;
l_flag:='E';
l_error_msg:='currency code does not exists';
END;
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE'||L_FLAG);
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE'||L_FLAG);
--End of Actual Flag Column validation
IF l_flag!='E' THEN
Fnd_File.put_line (Fnd_File.LOG,'Inserting data into the Interface TABLE');
INSERT INTO gl_interface(status,
set_of_books_id,
accounting_date,
currency_code,
date_created,
created_by,
actual_flag,
user_je_category_name,
user_je_source_name,
user_currency_conversion_type,
segment1,
segment2,
segment3,
segment4,
segment5,
entered_dr,
entered_cr,
accounted_dr,
accounted_cr,
group_id)
VALUES
(rec_cur.status ,
rec_cur.set_of_books_id ,
rec_cur.accounting_date ,
rec_cur.currency ,
rec_cur.date_created ,
rec_cur.created_by ,
rec_cur.actual_flag ,
rec_cur.category ,
rec_cur.source ,
rec_cur.curr_conversion ,
rec_cur.segment1 ,
rec_cur.segment2 ,
rec_cur.segment3 ,
rec_cur.segment4 ,
rec_cur.segment5 ,
rec_cur.entered_dr ,
rec_cur.entered_cr ,
rec_cur.accounted_dr ,
rec_cur.accounted_cr ,
rec_cur.group_id);
END IF;
l_flag:=NULL;
l_error_msg:=NULL;
END LOOP;
COMMIT;
END GL_IN_PRO;
CLASS – 43
PO Flat File
PO_HEADERS_INTERFACE
PO_LINES_INTERFACE
PO_INTERFACE Standard Program
_ERROR
PO_HEADERS_ALL
PO_LINES_ALL
PO_LINE_LOCATIONS_ALL
PO_DISTRIBUTIONS
CLASS – 44
PO_HEADERS_INTEFACE
Pre Requisites
Process Steps
load data
infile *
TRUNCATE into table XX_HEADERS
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
( INTERFACE_HEADER_ID
,BATCH_ID
,ACTION
,ORG_ID
,DOCUMENT_TYPE_CODE
,CURRENCY_CODE
,AGENT_NAME
,VENDOR_NAME
,VENDOR_SITE_CODE
,SHIP_TO_LOCATION
,BILL_TO_LOCATION
,APPROVAL_STATUS
,FREIGHT_CARRIER
,FOB
,FREIGHT_TERMS
)
BEGINDATA
1,13,"ORIGINAL",204,"STANDARD","USD","Stock, Ms. Pat","IBM","IBM-BAN","H1- Detroit","V1- New York
City","APPROVED","UPS","Origin","Due"
load data
infile *
insert into table XX_LINES
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
( interface_header_id
,interface_line_id
,LINE_NUM
,SHIPMENT_NUM
,LINE_TYPE
,ITEM
,ITEM_DESCRIPTION
,item_id
,UOM_CODE
,QUANTITY
,UNIT_PRICE
,SHIP_TO_ORGANIZATION_CODE
,SHIP_TO_LOCATION
,list_price_per_unit)
BEGINDATA
1,1,2,2,"Goods","AS54999","Sentinel Standard Desktop -
Rugged",2155,"Ea",10,120,"M1","Adelaide",45
1,2,3,3,"Goods","75100005","Colour Cartidge",6076,"Ea",11,111,"M1","Adelaide",55
1,3,4,4,"Goods","AS54999","Sentinel Standard Desktop -
Rugged",2155,"Ea",1,1400,"M1","Adelaide",65
Procedure for Insertions of data from Interface tables to Base tables after
validating.
CLASS – 45
Conversion
Conversion is one of the program which will be used to upload the data from legacy
system in to oracle applications, base tables, one time data transfer like
Customer Conversion
Supplier Conversion
Employee Conversion
Items Conversion and so on
Request Set
It is nothing but collection of concurrent programs and report, which will be used
to submit more than one program at a time from SRS windows
Executable
Concurrent
Programe
Request Set
Request Group
Responsibility
User
SRS
Navigation – Concurrent – Set and enter - Select Request Set Wizard button,
select sequentially or parallel option, enter request set name and enter
concurrent programs select finish button.
Accounts Payables
GL AP PO
Requisition
Invoices
RFQ
Payments
Quotation
PO
Transfer to GL
Receipts
Types of Invoices
AP_INVOICES_ALL
AP_INVOICES-DISTRIBUTIONS_ALL
Creating accounting transactions these data will be stored in the following tables.
AP_AE_HEADERS
AP_AE_LINES
NOTE: WE can give same number to other invoice number for other suppliers.
Distribution Set:
(N) Setup – Invoices – Distribution Set and press enter – It will be used to
generate the invoice distributed automatically. AT the time of creating invoices
we will attach distribution set which will distribute the amounts
Tables
o AP_DISTRIBUTION_SETS_ALL
o AP_DISTRIBUTION_SETS_LINES_ALL
After creation of invoice we have to submit the transfer program called – Paybles
transfer to General Ledger.
o Copy the Invoice data, go to SRS window select the following program
Payables Transfer to General Ledger
From Date
To Date
o After completion of this program system will automatically submits the
‘Journal Import’ program to transfer in the GL Base Tables.
o Copy the Request ID of ‘Journal Import’ program go to GL application
o Open the journal enter screen and enter %Request Id% in the batch filed
which will shows the Invoice date
o Select the Review Journal button which will displays the invoices detailed
transactions.
Process Steps
1) AP Table –
a. AP_INVOICES_ALL
b. AP_INVOICES_DISTRIBUTIONS_ALL
5) Positing Journals
a. Select * form GL_BALANCES.
CLASS – 47
Payment in Payables
Crate the Invoice validate approve it and crate accounting transactions, select
payments from (N) Payments – Entry – Payments and enter select Payment
type, Bank Account Name, Document as check system will automatically
generate check number enter supplier details, select the button called enter
invoices select invoice number save the transactions.
Select actions button, check the check box called crate accounting to create
accounting transactions, select tools menu, view accounting option, it will
displays accounting debit, and credit transactions, select the button called
payment overview it will give complete payment details.
Payment Holds – Invoice needs re-approval then we can check hold buttoned and see
AP_HOLD_ALL
AP_HOLD_RELEASE_NAME_V
Payment Terms
AP_TERMS
AP_TERM_LINES
Expense Report
AP_EXPENSE_REPORTS_HEADERS_ALL
AP_EXPENSE_REPORTS_LINES_ALL
Recurring Invoices
AP_RECURRING_PAYMENTS_ALL
ORACLE INVENTORY
ORG-ORGANIZATIONS_DEFNINITIONS
MTL_SYSTEM_ITEMS_B
Do PO Cycle -
CLASS – 48
Order Management
Drop Shipping : Sales and Purchase the materials without having the Inventory
Client
Supplier Customer
(N) Orders & Returns – Sales Orders and data 2 levels headers and lines header
level customer Information customer ship to bill to and sales person other tax
details, select line items tab enter the Item, quantity, price and other details
select the button called book order to book the sale orders select availability
button it will gives the Item available on hand reserved quantity details select
ATP details button it will give the available to promise date details.
Select actions button to cancel the sales order to calculate the tax and to keep
the sales orders on hold and release the hold and so on.
o OE_ORDER_HEADERS_ALL
o OE_ORDERS_LINES_ALL
(N) Shipping – Release Sales Orders – Release shipments and enter the, and
the enter sales order number select the button called concurrent, it will submit the
concurrent program to release the sales order it picks Items from Inventory tables
and user in to deliver tables.
Once the Items are released, we will confirm the materials packing, then we will
give the shipping date (N) shipping – Transaction and enter
o RA_CUSTOMER_TRS_ALL
o RA_CUSTOMER_TRS_LINES_ALL
o WSH_DELIVER_DETAILS
o OE_ORDER_LINES_ALL
o OE_ORDER_HEADER_ALL
o WSH_NEW_DELIVERS.
OTHERs
We want to pass KFF data as a parameter to the executable then we will use
validation type as paid select edit information button. Pass the parameters like
applications short name KFF CODE, Structure number and so on
o Example: GL_SRS_LEDGER_FLEXFIELD
$FLEX$
It will be used to retrieve the previous parameter value in to the next parameter
values set
o : $FLEX$.Previous Value set name
$PROFILE$
To Get the front end the table value set where clause from backend we will
o Fnd_profile.value
o Fnd_profile.get
o Select segment1, org_id from PO_HEADERS_ALL
WHERE ORG_ID=$PROFILE$.ORG_ID
26 March 2007 – Monday - Class
27th March, 2007 – Tuesday
29th March, 2007 Thursday
30th March 2007 Friday
31st March 2007 – Saturday
1st April, 2007 – Sunday
2nd April 2007 – Monday
05th April, 2007 - Thursday
07th April, 2006 Saturday
08th April, 2006 Sunday
09th April, 2006 Monday
11th April, 2006 Wednesday
12th April, 2006 Thursday
13th April, 2006 Friday
14th April, 2006 Saturday
15th April, 2006 Sunday
16th April, 2006 Monday
17th April, 2006 Tuesday
18th April, 2006 Wednesday
22nd April, 2006 Sunday
23rd April, 2006 Monday
24th April, 2006 Tuesday
25th April, 2006 Wednesday
26th April, 2007 Thursday
27th April, 2007 Friday
28th April, 2007 Saturday
30th April, 2007 Monday
1st May, 2007 Tuesday
2nd May, 2007 Wednesday
6th May, 2007 Sunday
7th May, 2007 Monday
8th May, 2007 Tuesday
9th May, 2007 Wednesday
10th May, 2007 Thursday - Holiday
11th May, 2007 Friday
12th May, 2007 Saturday
14th May, 2007 Monday
15th May, 2007 Tuesday
17th May, 2007 Thursday
18th May, 2007 Friday
19th May, 2007 Saturday
20th May, 2007 Sunday
21st May, 2007 Monday
22nd May, 2007 Tuesday
23rd May, 2007 Wednesday
24th May, 2007 Thursday
28th May, 2007 Monday
29th May 2007 Tuesday
30th May 2007 Wednesday
31st May 2007 Thursday