APPS TECHNICAL
APPS TECHNICAL
ORACLE APPLICATIONS
APPLICATIONS TECHNICAL
TECHNICAL
•• Business
Business Overview
Overview
•• Computerization
Computerization of
of business
business systems
systems
•• ERP
ERP Overview
Overview
•• Overview
Overview of
of popular
popular ERP’s
ERP’s
Business Overview
• Business Process
Generally business process includes purchasing
raw material from suppliers, Manufacturing and
selling of goods to customers.
• Business Chart
• Business will be divided into departments based
on the complexity ,business process and
activities.
Suppliers
Inventory
Purchase Manufacture
Business
HR Sales
Finance
Suppliers
Business Overview
• Sales
– Getting orders from customers
– Shipping goods to customers
• Human Resources
– Recruitment of Employees
– Planning of Salaries and benefits
• Finance
– Procurement and allocation of financial
resources collection and Payment details
Computerization of business System
• Characteristics:
– Unified information architecture
– Single complete data model
– Single instance possible
– Just one customer definition
Overview of ERP
Overview of Business Processes
Service/
Service/ Customer
Customer Sales Order
Dist.
Dist.
Sales
Sales
Quality
Quality
Forecasts
Finished Orders
Product Products
Production Finance
Finance
Production Production Schedule
Capacity Planning
Costs
Cost Analysis
Purchased
items
Purchase
Purchase Material issue Engg.
Engg.
Purchase Request
Inventory Planning
Planning Bill of
Information flow Inventory Materials
Material low MRP
Business: Process Flow- Oracle Apps Integration
Oracle
Service
Service/ Customer
Customer
Service/ Sales Order
Oracle Dist.
Dist.
Quality Oracle
Order Entry
Sales
Sales
Quality
Quality Forecasts
Orders
Finished
Oracle Products
Product
WIP
Finance
Finance
Production Schedule Oracle
Production
Production Capacity Planning Financials
Oracle Costs
Cost Mngt. Purchased Cost Analysis
items
Engg.
Engg.
Purchase
Purchase Material issue
Sales
Marketing
Human Resources Service
Payroll Interaction Center Inventory
Training/Benefits E-Commerce Purchasing
Order Management
General Ledger Human CRM Configurator
Receivables Resources Advanced Planning
Payables & Scheduling
Assets Order Mgt
Cash Management Finance
Financial Analyzer
Treasury
Projects Product
Fulfillment
Information
Technology
Engineering
Projects
Project Billing Bills of Material
Projects Time & Expense Master Scheduling / MRP
Self-Service Applications
Project Connect Capacity
Business Agents (Alert)
Workflow Work in Process
EDI Gateway Cost Management
Business Intelligence Quality
Discoverer
Popular ERP’s
• Functional Consultant
– Requirement gathering
– Preparing the functional setup documents
– Preparing the functional design document
• Technical Consultant
– Preparing Technical design document
– Code development and Unit testing
– Internal review of documents and code
• DBA
– Installing the application
– Code Movement
– DB Cloning,Refresh and Patching
Project Types
• Implementation Projects
– We will be installing the applications newly to the
clients. And doing all the setups from scratch.
• Support Projects
– We are solving the issues raised by the user
• Migration/ Upgradation Project
– Here we will moving to other organization or newer
version or new modules.
Project Process
• Requirement Gathering
• Preparing the setup documents
• GAP Analysis
• Preparing Functional requirement documents
• Preparing Technical requirement documents
• Code development
• System integration Testing
• User acceptance Testing
• GO-LIVE
• Supporting
Document Types
BR 80
BR 100
MD 50 or CF 250
MD 70 or MD 200
MD 120 or TE 050
Version of Oracle Apps
10.7
11.0.3
11.5.4
11.5.8
11.5.9
11.5.10
11.5.10.2
R12
Oracle Applications Product Info
Oracle Components
The Release 11i Environment
• 160 applications • 14,608 tables
• 2,322 Developer forms (US) • 12,327 views
• 2,156 Developer reports (US) • 6,221 constraints
• 480 Pro*C binaries • 29,000 normal indexes
• 1,692 Java server pages • 21 domain indexes
• 118 Java archive files (.jar) • 3 function-based indexes
• 17,566 Java classes • 59 index organized tables
• 167 XML files • 8,598 sequences
• 19,149 HTML help files (US) • 156 database types
• 1,290 GIF help files (US) • 2 database type bodies
Technical Architecture of Oracle Apps
• SQL
• PL/SQL
• UNIX
• Forms6i
• Reports6i
• JAVA
Overview of three tier architecture
• User Tier
• Application Tier
• Database Tier
Architecture of User Tier
US US
Architecture of Application Tier
APPS SCHEMA
PO AP AR OM
Different ways to access application
• SQL PLUS
• TOAD 2.6
• SQL Loader
• Forms 6i
• Reports 6i
• Workflow Builder 2.6
• Data Loader
The release 11i Environment
• 160 applications
• 2,322 Developer forms (US)
• 2,156 Developer reports (US)
• 480 Pro*C binaries
• 1,692 Java server pages
• 118 Java archive files (.jar)
• 17,566 Java classes
• 167 XML files
• 19,149 HTML help files (US)
• 1,290 GIF help files (US)
• 14,608 tables
The release 11i Environment
• 12,327 views
• 6,221 constraints
• 29,000 normal indexes
• 21 domain indexes
• 3 function-based indexes
• 59 index organized tables
• 8,598 sequences
• 156 database types
• 2 database type bodies
Oracle Apps Concurrent Processing
• Field Description
• Program – Give user friendly name for your concurrent
program. This name will be displayed in Requests
submission screen while submitting the requests.
• Short Name – Give short name for concurrent program.
This is used within the database tables in oracle
applications. It’s a common practice to have the Short
name same for the executable and the concurrent
program.
• Application – Give the application to which the
concurrent program belongs to.
E.g you want some program to run from oracle
payables then account payables should be entered as
application name.
Concurrent Program
• Description - Give the brief description of the concurrent
program.
• Executable - Enter the short name of the executable
(Defined in Executables Screen) you want to attach to
this concurrent program.
• Method - will be defaulted once you enter executable
short name
• Options - will be defaulted once you enter executable
short name
• Normally default values are given for the other fields.
Following is the significance of these fields.
• Request Type – Concurrent program can be associated
to a predefined request type so that only few concurrent
managers can run the program.
Concurrent Program
• Incrementor – To be used by Oracle only.
• MLS Function - This feature allows the program to
be submitted once by the user but runs it in the
multiple languages.
• Use In SRS – Only when this check box is checked
the Concurrent Program would be available in
Standard Request Submission (SRS) through the
request group.
• Allow Disable Value – This will allow the disabled
values in the value sets to be used while entering
the values of the parameters in the Concurrent
Program.
Concurrent Program
• Value set – enter the name of the value set which you want
to use to validate the value enter in the parameter field.
• Description – will be defaulted from value set definition
• Default Type – choose the default type for the default value
of the parameter. Possible default types are
• Constant : The default value can be any literal value.
• Profile : The default value is the current value in the user
profile option defined in the Default Value field. Use the
profile option name, not the end–user name. You do not
need to include $PROFILE$.
• SQL Statement : The default value is determined by the SQL
statement you defined in the Default Value field.
Concurrent Program Parameters
• ID Column:
– When creating a value set if we want to display one
column value and pass internally another column
values we will use this ID columns
– We can find out the application name from the
following navigation
– Application developer
– Application
– Database
– Table
– Provide the Table name and query it.
VALUE SETS
• P_CONC_REQUEST_ID
– This P_CONC_REQUEST_ID used by the concurrent
manager to pass request id of concurrent program
through this parameter to the report builder.
– This is system parameter when we will submit the
concurrent program in the SRS window,
REQUEST_ID will be generated and that will be
passed to this variable. Based on the request id
system will find out the user name, responsibility
name and so on.
• For audit purposes Oracle has something called WHO-
columns that provide information about who did what
when. The standard five WHO-columns are
CREATION_DATE, CREATED_BY,
LAST_UPDATE_DATE, LAST_UPDATED_BY and
LAST_UPDATE_LOGIN.
• In some tables Oracle has provided some additional
enhanced WHO-columns:
PROGRAM_APPLICATION_ID, PROGRAM_ID,
PROGRAM_UPDATE_DATE and REQUEST_ID that are
used to log information about any concurrent program
that creates or updates the record.
• Strange as it may sound you can actually use an Oracle
Report to alter data. In these cases the report will need
to know the REQUEST_ID in order to provide the
correct information for the WHO-columns.
APPS Standards in Reports
• USER_EXIT(‘FND SRWINIT’):
– This user exit will be used to capture user profiles
based on the data can be restricted from the database.
• USER_EXIT(‘FND SRWEXIT’):
– This user exit will freeze the memory which is occupied
by the profile values.
UESR EXIT
• FND FORMAT_CURRENCY
• To format the currency amount dynamically depending
upon the precision of the actual currency value,
standard precision, users profile values and location
(country) of the site.
• You obtain the currency value from the database into an
Oracle Reports column. Define another Oracle Reports
column, a formula column of type CHAR, which
executes the FORMAT_CURRENCY user exit to format
the currency value. A displayed field has this formula
column as its source so that the formatted value is
automatically copied into the field for display.
UESR EXIT
• Syntax
FND FORMAT_CURRENCY
CODE=:column containing currency code
DISPLAY_WIDTH=field width for display
AMOUNT=:source column name
DISPLAY=:display column name
[MINIMUM_PRECISION=:P_MIN_PRECISION]
[PRECISION={STANDARD|EXTENDED}]
[DISPLAY_SCALING_FACTOR=:P_SCALING_FACTOR]
FND FLEXSQL
CODE="flexfield code"
APPL_SHORT_NAME="application short name"
OUTPUT=":output lexical parameter name"
MODE="{ SELECT | WHERE | HAVING | ORDER BY}"
[DISPLAY="{ALL | flexfield qualifier | segment
number}"]
[SHOWDEPSEG="{Y | N}"]
[NUM=":structure defining lexical" |
MULTINUM="{Y | N}"]
[TABLEALIAS="code combination table alias"]
[OPERATOR="{ = | < | > | <= | >= | != | "||" |
BETWEEN | QBE}"]
[OPERAND1=":input parameter or value"]
[OPERAND2=":input parameter or value"]
FND FLEXIDVAL
• FND FLEXIDVAL
CODE="flexfield code"
APPL_SHORT_NAME="application short name"
DATA=":source column name"
[NUM=":structure defining source column/lexical"]
[DISPLAY="{ALL|flexfield qualifier|segment
number}"]
[IDISPLAY="{ALL|flexfield qualifier|segment
number}"]
[SHOWDEPSEG="{Y | N}"]
[VALUE=":output column name"]
[DESCRIPTION=":output column name"]
[APROMPT=":output column name"]
[LPROMPT=":output column name"]
[PADDED_VALUE=":output column name"]
[SECURITY=":column name"]
FND FLEXIDVAL
• Backend:
– PO_VENDORS
– PO_VENDOR_SITES_ALL
– PO_VENDOR_CONTACTS
BUYER CREATION
– Requisition
– RFQ (Requisition For Quotation)
– Quotation
– PO (Purchase Order)
– Receipt
– AP Interface and INV Interface
REQUSITIONS
• Its one of the document that will be prepared by
the employees whenever they need the materials
• We will find 2 types of requisitions
– INTERNAL
– PURCHASE
• If materials are available in other organization we
will transfer/purchase the material from the
internal requisition.
• If material are not available then we will purchase
it from suppliers by using purchase requisition.
• Select the responsibility called “Purchasing Vision
Operations (USA)”.
• Requisitions Requisitions
REQUSITIONS
• PK-->REQUISITION_HEADER_ID
• AUTHORIZATION_STATUS=INCOMPLETE
– IN PROCESS
– APPROVED
• TYPE_LOOKUP_CODE=PURCHASE/INTERNAL
REQUSITIONS
• Open the Requisition form
– Enter the header level information
– Enter line level information
– Enter the item ,qty, price, need by date
• Select the distributions button
– Enter the distribution details
– Save the transaction.
• Select the approve button for approval
• Go to requisition summary form
– Enter the requisition number
– Select find button
– We can verify the Requisition Status to find
whether approved or not approved.
REQUISITIONS
• We can also cancel the requisition after approval
– Tools
– Control options
– Select the option called cancel Requisition
– Enter the reason and press OK button
– Again query the requisition we find it as
“Cancelled”.
• We can find out the action history of the
requisition by using
– Tools
– View action history
– It will show you the details like who has
submitted ,approved and cancelled.
REQUISITIONS
• ERRBUF:
– ERRBUF will be used to get the error messages
into the log file if any error occurs inside the
procedure body.
• RETCODE:
– This will give the status of the concurrent program
either 0/1/2
– 0 Normal
– 1 Warning
– 2 Error
Registration Steps
• End vendor_update;
• In the PL/SQL stored procedures we don’t use the
tokens.
SPECIAL AND PAIRED
• Special and pair value sets provide a mechanism to
allow a "flexfield-within-a-flexfield". These value sets
are primarily used for Standard Report Submission
parameters. You do not generally use these value sets
for normal flexfield segments.
• For example, you can define validation routines to
provide another flexfield as a value set for a single
segment
• To provide a range flexfield as a value set for a pair of
segments.
• Trial Balance - Summary 1
• GL_SRS_PAGEBREAK_RANGES
• Chart of Accounts - Detail Listing
• Gl_SRS_FROM_ACCOUNT
VALUE SETS
• Display
• Message Line
Overview of Basic Navigations and
Features
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
• Concurrent program
– A concurrent program is a program that does not
require continued interaction on your part to
perform a specific task
• Concurrent Request
– A concurrent request is a request that you can
submit to run a concurrent program as con
• Concurrent program
Default Types in Conc. Program
• Constant:
– It we want to pass constant no or string as the
default value then we will select default type as
constant and we will enter value.
• SQL Statement:
– If we want to pass the SQL statement result as the
default value then we will select this SQL statement
and we will write the select statement in the default
value field.
• Segment:
– By using this segment we can assign previous
parameter value to the next parameter.
Default Types in Conc. Program
• Profile:
– By using this default type we can pass user profiles
value as the default value like
– Userid,responsibility name,org id,user name
• Range:
– Range option will restrict the user without entering
the descending value in from and to parameters.
14
CONCURRENT PROGRAM
REGISTRATION
• procedure FND_PROGRAM.EXECUTABLE
(executable IN VARCHAR2,
application IN VARCHAR2,
description IN VARCHAR2 DEFAULT NULL,
execution_method IN VARCHAR2,
execution_file_name IN VARCHAR2 DEFAULT NULL,
subroutine_name IN VARCHAR2 DEFAULT NULL,
icon_name IN VARCHAR2 DEFAULT NULL,
language_code IN VARCHAR2 DEFAULT 'US');
• Procedure FND_PROGRAM.DELETE_EXECUTABLE
(executable IN varchar2,application IN varchar2);
• Arguments (input)
• executable The short name of the executable to
delete.
• application The short name of the executable's
application, for example 'FND'.
• BEGIN
FND_PROGRAM.DELETE_EXECUTABLE
('APLVENINF' ,'APL');
END;
Registering the Concurrent program
• procedure FND_PROGRAM.REGISTER
(program IN VARCHAR2,
application IN VARCHAR2,
enabled IN VARCHAR2,
short_name IN VARCHAR2,
description IN VARCHAR2 DEFAULT NULL,
executable_name IN VARCHAR2,
executable_application IN VARCHAR2,
execution_options IN VARCHAR2 DEFAULT NULL,
priority IN NUMBER DEFAULT NULL,
save_output IN VARCHAR2 DEFAULT 'Y',
print IN VARCHAR2 DEFAULT 'Y',
cols IN NUMBER DEFAULT NULL,
rows IN NUMBER DEFAULT NULL,
style IN VARCHAR2 DEFAULT NULL,
style_required IN VARCHAR2 DEFAULT 'N',
printer IN VARCHAR2 DEFAULT NULL,
request_type IN VARCHAR2 DEFAULT NULL,
request_type_application IN VARCHAR2 DEFAULT
NULL,
use_in_srs IN VARCHAR2 DEFAULT 'N',
allow_disabled_values IN VARCHAR2 DEFAULT
'N',
run_alone IN VARCHAR2 DEFAULT 'N',
output_type IN VARCHAR2 DEFAULT 'TEXT',
enable_trace IN VARCHAR2 DEFAULT 'N',
restart IN VARCHAR2 DEFAULT 'Y',
nls_compliant IN VARCHAR2 DEFAULT 'N',
icon_name IN VARCHAR2 DEFAULT NULL,
language_code IN VARCHAR2 DEFAULT 'US'
mls_function_short_name IN VARCHAR2,
mls_function_application IN VARCHAR2,
incrementor IN VARCHAR2);
• BEGIN
FND_PROGRAM.register (‘APLVENINF’ -- program
, 'APL' -- application
, 'Y' -- enabled
, 'APLVENIN' -- short_name
, ‘APL Vendor information' -- description
, 'APLVENINF' -- executable_short_name
, 'APL' -- executable_application
, '' -- execution_options
, '' -- priority
, 'Y' -- save_output
, 'Y' – print
, '' – cols
, '' -- rows
, '' -- style
, 'N' -- style_required
, '' -- printer
, '' -- request_type
, '' -- request_type_application
, 'Y' -- use_in_srs
, 'N' -- allow_disabled_values
, 'N' -- run_alone
, 'TEXT' -- output_type
, 'N' -- enable_trace
, 'Y' -- restart
, 'Y' -- nls_compliant
, '' -- icon_name
, 'US'); -- language_code
END;
• BEGIN
fnd_program.REGISTER (program => 'APL VENDOR’,
application => 'PO',
enabled => 'Y',
short_name => 'APLVENIN',
description => NULL,
executable_short_name=> 'APLVENINF',
executable_application => 'APL',
execution_options => NULL,
priority => NULL,
save_output => 'Y',
PRINT => 'Y',
cols => NULL,
ROWS => NULL,
style => 'Portrait',
style_required => 'N',
printer => NULL,
request_type =>
NULL,
request_type_application => NULL,
use_in_srs => 'Y',
allow_disabled_values => 'N',
run_alone => 'N',
output_type => 'TEXT',
enable_trace => 'N',
restart => 'Y',
nls_compliant => 'Y',
icon_name => NULL,
language_code => 'US',
mls_function_short_name => NULL,
mls_function_application => NULL,
incrementor => NULL,
refresh_portlet => NULL);
END;
Attaching the concurrent program to the request
group
• BEGIN
fnd_program.add_to_group
(program_short_name => 'APLVENIN',
program_application => 'PO',
request_group =>'APL_CWH_REPORTS',
group_application => 'APL');
END;
Submit the Concurrent Program from Backend
• Periodically:
– we can submit the concurrent program multiple
times for the specified no.of hours ,mins and so on
• On specific days:
– We can submit the concurrent program on the
specific days by selecting the days in the month
• We can save this schedule by checking the check
box called ‘save this schedule’
• Later we can apply same schedule for the other
concurrent programs by selecting the button
called ‘apply a saved schedule’.
PROFILES
• A profile is a set of changeable options that affects the
way you application run.AOL establishes a value for
each option in user's profile when the user log on or
change responsibility. user can change the value of
profile options at any time
• We have 4 levels of Profiles
– Site
– Application
– Responsibility
– User
• Site:
– Site is the lowest user profile. It will affect for all
application users. And when we install the application
profile will be set at site level automatically.
PROFILES
• Application Level:
– This option level values will affect for the particular
application who are going to select the application
– If user is having both access to site and application
level .application will overwrite site level
• Responsibility Level:
– If we set the profile value as responsiblity that will
applicable to the users who r having access to the specific
responsiblity. If user having access to site application
responsibility then responsiblity will overwrite the site
application
• User Level:
– User is top most level. If we set profile value as user. If
user having access to site,application,responsibility,user
then user will overwirte site applcation responsibility
PROFILES
• USER_ID
• RESP_ID
• For every responsibility we will assign the profile
value of MO:Operating Unit.Based on this profile
the application will findout the user operating unit
value(Branch).
• If we are not assign the profile value it will take it
from the site level.
PROFILES
• Fnd_profile.value(‘profilename’)
• Fnd_profile.get(‘profile name’,local variable);
• Fnd_profile.put(‘profile name’,profile value)
PROFILES
• A profile is a set of changeable options that affects the
way you application run.AOL establishes a value for each
option in user's profile when the user log on or change
responsibility. user can change the value of profile
options at any time.
we different types of profile levels they are
• 1) site
• 2) application
• 3) responsibility
• 4) user levels
• Here user is the highest level of the hierarchy followed by
responsibility ,application and at lowest level site. Higher
level option values override lower level option values.
PROFILES
PROFILES
• Site : if we set the profile at site level that will
applicable all the users.
• Application : If we set the profile value as
application it will applicable to the user who r
having access to that specific application. if user
is having both access to site and application level.
application will overwrite site level.
• Responsibility : If we set the profile value as
responsibility that will applicable to the users who
r having access to the specific responsibility.
if user having access to site application
responsibility. then responsibility will overwrite the
site application.
PROFILES
• User : User is top most level.
If we set profile value as user. If user having
access to site application responsibility user. then
user will overwrite site application responsibility.
• There are profile options which can turn the debugging
on, to generate debug messages. Say one of 1000 users
reports a problem, and hence you wish to enable
debugging against just that specific user. In this case you
can “Turn On” the debugging profile option "again that
specific user".
• There are profile options that control which user can give
discount to their customers at the time of data entry. You
can set profile option "Discount Allowed" to a value of
either Yes or No against each Order Entry user.
• Lets assume an Organization has department D1 and D2.
Managers of both the Departments have "HRMS
Employee View" responsibility. But you do not want
Manager of D2 to be able to see the list of Employees in
Organization D1. Hence you can set a profile option
against the username of each of these users. The value
assigned to such profile option will be "Name of the
Organization" for which they can see the employees.
NON EDITABLE PROFILE OPTIONS
NON EDITABLE PROFILE OPTIONS
NON EDITABLE PROFILE OPTIONS
PROFILE OPTIONS
PROFILE OPTIONS
PROFILE OPTIONS
14
FLEX FIELDS
PADDED_VALUE=":CP_FLEXFIELD_PAD"
DESCRIPTION=":CP_FLEXDESC"
DISPLAY="ALL“
IDISPLAY="ALL"');
RETURN(:CP_FLEXFIELD);
14
MULTI ORG
BEGIN
FND_CLIENT_INFO.SET_ORG_CONTEXT(82 );
END;
Multi Org Structure
• HelpDiagnosticsExamine
• Enter the apps password(APPS)
• Select the block as ‘$PROFILES$’
• Field as ‘org_id’
• we will get the value of the org_id in value field
• Organization is defined in HRMS
– HRMS
– Work Structures
– Organization
– description