Documente Academic
Documente Profesional
Documente Cultură
Contents:
R12 - Multi Org Setup
Sno.
1
2
3
4
5
6
7
8
9
10
Setup
Description
Menu
Creation
Create
Responsibility
Create
User
Create
Currency
Create
Calendar
Create
Accounting
Flexfield
Create
Valuesets
Key
Flexfield
Segment
Values
Profile:
HR:
HR:User
Type
Create
Workday
Calendar
11
12
Create
Locations
Create
Business
Group
13
14
Navigation
Sys
Admin
Application
Menu
SYS
ADMIN
Security
Responsibility
Define
SYS
ADMIN
Security
User
Define
GL
Setup
Currencies
Define
GL
Setup
Financials
Calendars
Types
GL
Setup
Financials
Flexfields
Key
Segments
GL
Setup
Flexfields
Validation
Sets
GL
Setup
Financials
Flexfields
Key
Values
Value:
HR
With
Payroll
User
INV
Setup
Organizations
Calendars
Build
Calendar:
Tools
Build
HRMS
Work
Structures
Location
HRMS
Work
Structures
Organization
Description
Organization
Classification:
Business
Group
o Business
Group
Info
(Grade,
People,
Job,
Position,
Cost
Allocation
&
Competence
Flexfield)
HR
Organization
Using
Responsibility
General
Ledger
o GL
Setup
Financials
Accounting
Setup
Manager
Accounting
Legal
Entity
Manager
o Legal
Entity
Manager
Legal
Entity
Configurator
Create
Accounting
Setups
Create
Legal
Entity
(Button)
Identification
Information
Legal
Address
Create
Accounting
setup:
Assign
Legal
Entity
Define
Accounting
Options:
Primary
Ledger
(Section)
Ledger
Options
(Update)
Standard
Information
(Ledger
Short
name)
Accounting
Calendar
(First
Calendar
Period
Open)
Sub
ledger
Accounting
(Assign
SLAM)
Update
Ledger:
Ledger
Options
Year
end
Processing
(Retained
Earnings
Account)
Journal
Processing
(Optional)
Update
Ledger:
Advance
Options
Journal
Reconciliation
(Optional)
Budgetary
control
(Optional)
Average
Balance
(Optional)
HRMS
Responsibility
HRMS
Work
Structures
Organization
Description
15
GL
Super
User
Responsibility
Accounting
Setup
Manager
Accounting
options
Primary
Ledger
(Section)
Operating
Units
(Update)
o Click
Add
Operating
Unit.
o Map
it
to
Business
Group
and
Legal
Entity
Context.
Complete
the
Ledger
Setup.
HRMS
Responsibility
HRMS
Security
Profile
o Name
o Business
Group
Organization
Security
Security
Type:
Secure
Organizations
by
organization
hierarchy
and/or
organization
list
Include
the
Operating
units
in
the
list.
Run
Program
Security
List
Maintenance
Parameters:
o Generate
List
for:
One
Named
Security
Profile
o Security
Profile:
<<Profile
created
above>>
Profile
Setup:
@
Responsibility
Level
o MO:
Security
Profile
<<>Sec_Profile>
o MO:
Default
Operating
Unit
<<Set
default
OU
from
Sec
Profile
defined>>
o MO:
Operating
Unit
<<>OU
from
Sec
Profile>
17
HRMS
Responsibility
HRMS
Work
Structure
Organizations
Description
1. Create
IMO
with
user
defined
name
/
Business
Std.
2. Organization
Classification:
Name:
Inventory
Organization
Save
it
and
Click
Other.
3. Additional
Information:
o Accounting
Information
o Inventory
Information
o Receiving
Information
4. Create
Child
Inventory
Organization
Repeat
steps
2
3
but
point
child
inventory
organization
to
master
organization.
Inventory
Responsibility
INV
Accounting
Close
Cycle
Inventory
Accounting
Period
o
o
o
18
19
Creating Sub-Inventory
20
Create Jobs
21
22
Create
Positions
Create
Employees
23
24
25
Select
Organization.
Click
Change
Status
button
and
open
the
period.
Repeat
this
step
for
all
child
organizations
as
well.
INV
Transactions
Miscellaneous
Transaction
INV
Setup
Organizations
Subinventories
Choose
child
organizations
and
create
the
same.
HRMS
Responsibility
HRMS
Work
Structures
Job
Description
HRMS
Work
Structures
Position
Description
HRMS
People
Enter
and
Maintain
Assign
Job
&
Position
created
in
previous
steps
based
on
business
requirement.
HRMS
Work
Structures
Position
Hierarchy
Define
all
sub-ordinates
starting
from
highest
position
to
lowest
one.
SYS
Admin
Security
User
Define
o Create
User
o Map
the
Employee
to
user
o Assign
responsibilities
to
user
Run
this
program
to
enable
the
position
hierarchy
defined
for
each
OU
separately.
Navigation
1
2
Buyer
Setup
Financial
Option
Setup
Purchasing
Options
4
5
6
Payables Setups
Supplier Creation
Inventory Setups
10
11
12
13
Financial
Options
Payables
System
Setup
Payables
Options
Aging
Periods
14
15
16
17
Terms
&
Control:
o Accounting:
Liability
Account
o Purchasing:
Ship-to
&
Bill-to
Location
o Receiving:
Enforce
Ship-to,
Receipt
Routing,
Matching
Approval
Level
o Payment:
Payment
Method
o Invoice
Management:
Invoice
Currency
Invoice
Matching
Option
o Invoice
Payment
Terms:
Payment
Currency
Terms,
Pay
Date
Basis
&
Term
Date
basis
Pay
Group
AP
Setup
Options
Financial
Options
AP
Setup
Options
Payables
System
Setup
AP
Setup
Options
Payables
Options
AP
Setup
Calendar
Aging
Period
AP
Setup
Payment
bank
and
Bank
Branches
Bank
(Hyperlink)
Create
o Bank
Information
o Bank
Address
o Bank
Contacts
Bank
Branches
(Hyperlink)
o Bank
Branch
Information
o Branch
address
o Branch
Contact
AP
Setup
Payment
Bank
Account
Create
Bank
Account
Country,
Bank
Name,
Branch
Name
Create
bank
Account:
Account
Owner
&
Use:
Bank
Account
Owner
Note** Sometimes the Owner LOV with no values displayed
to resolve the issue do the below setups
o Log
in
as
SYSADMIN
o Click
User
Management
Responsibility.
o Go
to
Roles
&
Role
Inheritance
Create
a
Role:
o Category:
Miscellaneous
o Role
Code,
Display
Name
&
Description
(user
choice)
o Application:
Payables
o Active
From:
<Date>
Run
Security
Wizard:
o Query
the
Role
Click
Update
o Click
Security
Wizard
button
o Run:
CE
UMX
Security
Wizard
o Add
the
legal
Entity
Enable
All
check
boxes
(Use,
Maintenance,
Bank
Account
Transfer)
18
19
20
21
Bank
Charges
Invoice
Validation
Payment
Document
Setup
Description
Standard
Bid
Quotation Type
PO
Type
Blanket
Purchase
Agreement
(BPA)
Blanket
Release
Blanket
Purchase
Agreement
(BPA)
Blanket
Release
Planned
PO
/
Standard
PO
Matching
Types:
Matching
Type
Requisition
PO
Receipts
Inspection
Invoice
2
Way
Yes
Yes
--
--
Yes
3
Way
Yes
Yes
Yes
--
Yes
4
Way
Yes
Yes
Yes
Yes
Yes
Payments
Yes
Yes
Yes
Calendar
Periods:
Calendar
Type
PO
INV
AP
GL
Navigation
PO
Setup
Financial
Accountings
Control
Purchasing
Periods
INV
Accounting
Close
Cycle
Inventory
Accounting
Periods
AP
Accounting
Control
Payable
Periods
GL
Setup
Open
/
Close
Invoice
Processing:
Create
Invoice
Match
Invoice
Validate
Invoice
Payment
Payment
Actions:
Create
Accounting:
Mode
Draft
Description
It
will
create
journal
entries
which
are
not
final.
They
are
not
ready
to
transfer
to
GL.
Table
Hits
XLA_AE_HEADERS
Accounting_Entry_Status_Code
=
D
XLA_EVENTS
Process_Status_Code
=
D
Event_Status_Code
=
U
Final
Final Post
XLA_AE_HEADERS
Accounting_Entry_Status_Code
=
F
XLA_EVENTS
Process_Status_Code
=
P
Event_Status_Code
=
P
XLA_AE_HEADERS
Accounting_Entry_Status_Code
=
F
Transfer_Status_Code
=
Y
XLA_EVENTS
Process_Status_Code
=
P
Event_Status_Code
=
P
GL_JE_HEADERS
Status
=
P
Accrual
Reconciliation:
Accumulation
of
expenses
that
is
recognized
before
cash
is
paid.
Setups
Expense
AP
Accrual
Navigation
PO
Setup
Organizations
Purchasing
Options
o Accrue
Expense
Items
:
Period
End
o Accrue
Inventory
Items:
At
Receipt
Table:
PO_SYSTEM_PARAMETERS_ALL
INV
Setup
Organizations
Parameters
o Other
Accounts
Tab
Receiving
Option
Inventory
AP
Accrual
Table:
MTL_PARAMETERS
PO
Accounting
Accrual
Write
Off
Select
Accrual
Accounts
Inventory AP Accrual
Miscellaneous
Accrual
Reconciliation
Report
Purchasing Accrual
Event
Table Hits
Process
Receive
Purchase
Order
Receiving Transaction
Create Accounting
Rcv_Transactions
RCV_Receiving_Sub_Ledger
Xla_Ae_Headers
Xla_Ae_Links
Xla_Distribution_links
GL_Je_Headers
Gl_Je_Lines
Gl_Import_References
Event
Table Hits
Inventory
Miscellaneous
Transactions
Consignment
Transacrtions
Cost Manager
Mtl_Transaction_accounts
Xla_Ae_Headers
Xla_Ae_Links
Xla_Distribution_links
GL_Je_Headers
Gl_Je_Lines
Gl_Import_References
Payables
Accrual
Process
Event
Create Invoice
Invoice Creation
Create Accounting
Period
End
Activity:
Suggested
order
for
closing
oracle
modules:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Order
Management
Cash
Management
Payables
Receivables
Purchasing
Inventory
Projects
Assets
General
Ledger
Procure-2-Pay
order:
1)
Payables
Table
Hits
AP_Invoice_Distributions_all
Xla_Ae_Headers
Xla_Ae_Links
Xla_Distribution_links
GL_Je_Headers
Gl_Je_Lines
Gl_Import_References
2)
3)
4)
Purchasing
Inventory
General
Ledger
Payables:
SNo.
Activity
Details
8
9
Create
Accounting
Optional
Reports
10
Purchasing:
SNo.
Activity
Details
1
2
Debit
Credit
--
--
--
--
Receiving
Inspection
A/C
Receiving
Inspection
A/C
Inventory
AP
Accrual
A/C
Expense
AP
Accrual
A/C
PO
Charge
A/C
Expense
AP
Accrual
A/C
Inventory
AP
Accrual
A/C
Expense
AP
Accrual
A/C
Receiving
Inspection
A/C
Receiving
Inspection
A/C
Expense
AP
Accrual
A/C
PO
Charge
A/C
Debit
Credit
Payables
Module:
Transaction
Create
Std.
Invoice
Inventory
Items
Expense
Items
Payment
of
Invoice
Payment
for
Std.
Invoice
Inventory
AP
Accrual
A/C
Liability
A/C
Expense
AP
Accrual
A/C
Liability
A/C
Liability
A/C
Cash
Clearing
A/C
(or)
Cash
/
Bank
A/C
Credit
/
Debit
Memo
Refund
through
Credit
Memo
Liability
A/C
AP
Accrual
A/C.
Prepayments
Create
Prepayment
Invoice
Expense
A/C
Liability
A/C
Apply
Prepayment
Liability
A/C
Prepayment
A/C
Inventory
Module:
Transaction
Debit
Credit
PO_Requisition_Lines_All
PO_Req_Distributions_All
PO_Vendor_Sites_All
RCV_Transactions
PA_Tasks
Requisition
Lines:
PO_Requisition_Lines_All
PO_Req_Distributions_All
MTL_Categories_B
PO_Vendors
RCV_Shipment_Lines
PO_Req_Distributions_All
GL_Code_Combinations
PA_Projects_All
PA_Expenditure_Types
PO_Headers_All
PO_Lines_All
PO_Releases_All
PO_Vendors
Requisition Distributions:
Purchase
Order
PO
Headers:
PO_Line_Locations_All
PO_Vendor_Sites_All
HR_Locations_All
PO_Agents
RCV_Transactions
PO_Action_History
PO_Headers_Archive_All
AP_Invoices_All
RCV_Shipment_Lines
PO_Distributions_All
PO
Lines:
PO_Lines_All
PO_Line_Locations_All
PO_Line_Types_B
MTL_Categories_B
PO_Lines_Archive_All
RCV_Transactions
PO_Distributions_All
PO_Releases_All
PO_Distributions_All
RCV_Shipment_Lines
PO
Shipments:
PO_Line_Locations_All
RCV_Routing_Headers
HR_Locations_All
PO_Line_Locations_Archive_All
RCV_Accounting_Events RCV_Transactions
AP_Holds_All
AP_Invoice_Lines_All
PO_Distributions_All
HR_Locations_All
PO_Distributions_Archive_All
PO_Req_Distributions_All
GL_Code_Combinations
PA_Projects_All
AP_Invoice_Distributions_All
Cst_Ap_Po_Reconciliation
Cst_Misc_Reconsiliation
PO Distributions:
RCV_Transactions
PA_Tasks
RCV_Shipment_Lines
RCV_Shipment_Lines
Receiving
RCV_Transactions
RCV_Shipment_Headers
RCV_Shipment_Lines
RCV_Routing_Headers
PO_Requisition_Lines_All
PO_Req_Distributions_All
PO_Lines_All
PO_Line_Locations_All
PO_Vendors
PO_Vendor_Sites_All
AP_Invoice_Distributions_All
PO_Distributions_All
Payable
Invoice
Invoice
Distribution:
AP_Invoice_Distributions_All
PO_Distributions_All
RCV_Transactions
GL_Code_Combinations
PA_Projects_All
PA_Expenditure_Types
----------------------------
AP_Invoices_All
AP_Accounting_Events_All
AP_Invoices_All
AP_Invoice_Payments_All
AP_Trial_Balance
AP_Invoices_All
PO_Headers_All
PO_Vendors
GL_Code_Combinations
PA_Projects_All
PA_Expenditure_Types
AP_Payment_Schedules_All
PA_Tasks
AP_Invoice_Lines_All
Invoice
Details:
PO_Vendor_Sites_All
PA_Tasks
AP_Invoice_Payments_All
AP_Invoice_Payments_All
AP_Bank_Accounts_All
AP_Invoice_Distributions_All
AP_Invoices_All
AP_Invoice_Payments_All
AP_Supplier_Sites_All
AP_Checks_All
AP_Accounting_Events_All
AP_Payment_Schedules_All
AP_Check_Formats
AP_Invoice_Payments_All
AP_Payment_History_All
AP_Bank_Accounts_All
PO_Vendors
AP_Accounting_Events_All
AP_Ae_Headers_All
AP_Checks_All
PO_Vendor_Sites_All
Accounting
Events:
Bank
Information:
AP_Bank_Accounts_All
GL_Code_Combinations
AP_Bank_Branches
AP_Bank_Account_Uses_All
AP_Checks_All
AP_Bank_Branches
AP_Bank_Accounts_All
AP_Bank_Charges
AP_Ae_Lines_All
AP_Bank_Transmissions
AP_Bank_Accounts_All
PO_Vendors
AP_Bank_Account_Uses_All
PO_Vendor_Sites_All
AP_SUPPLIERS:
AP_SUPPLIER_SITES_ALL:
AP_INVOICES_ALL:
AP_INVOICE_LINES_ALL:
It
contains
records
for
invoice
lines
entered
manually,
generated
automatically
or
imported
from
the
Open
Interface.
An
invoice
can
have
one
or
more
invoice
lines.
An
invoice
line
represents
goods
(direct
or
indirect
materials),
service(s),
and/or
associated
tax/freight/miscellaneous
charges
invoiced
from
a
supplier.
An
invoice
line
should
contain
all
the
attributes
that
are
present
on
the
physical
or
electronic
invoice
presented
by
the
supplier.
AP_INVOICE_DISTRIBUTIONS_ALL:
AP_INVOICE_PAYMENTS_ALL:
AP_PAYMENT_SCHEDULES_ALL:
AP_PAYMENT_HISTORY_ALL:
AP_BATCHES_ALL:
It
contains
summary
information
about
invoices
you
enter
in
batches
if
you
enable
the
Batch
Control
Payables
option.
There
is
one
row
for
each
batch
of
invoices
you
enter.
If
you
enable
Batch
Control,
each
invoice
must
correspond
to
a
record
in
this
table.
Your
Oracle
Payables
application
uses
this
information
to
group
together
invoices
that
one
person
entered
in
a
batch.
AP_CHECKS_ALL:
It
stores
information
about
payments
issued
to
suppliers
or
refunds
received
from
suppliers.
There
is
one
row
for
each
payment
you
issue
to
a
supplier
or
refund
received
from
a
supplier.
Oracle
Payables
application
uses
this
information
to
record
payments
you
make
to
suppliers
or
refunds
you
receive
from
suppliers.
Oracle
Payables
application
stores
the
supplier
name
and
bank
account
name
for
auditing
purposes,
in
case
either
one
is
changed
after
you
create
the
payment.
Oracle
Payables
application
also
stores
address
information
for
all
payments.
AP_HOLDS_ALL:
It
contains
information
about
holds
that
you
or
your
Oracle
Payables
application
place
on
an
invoice.
For
non-matching
holds,
there
is
one
row
for
each
hold
placed
on
an
invoice.
For
matching
holds,
there
is
one
row
for
each
hold
placed
on
an
invoice-shipment
match.
An
invoice
may
have
one
or
more
corresponding
rows
in
this
table.
Your
Oracle
Payables
application
does
not
pay
invoices
that
have
one
or
more
unreleased
holds
recorded
in
this
table.
AP_BANK_ACCOUNTS_ALL:
AP_BANK_ACCOUNT_USES_ALL:
It
stores
information
for
the
internal
and
external
bank
accounts
you
define
in
Oracle
Payables
and
Oracle
Receivables
applications.
AP_CARDS_ALL:
It stores information about the corporate credit cards issued to your employees by your corporate credit card providers.
AP_TRIAL_BALANCE:
It contains demoralized information about invoices and payments posted to the accrual set of books.
Subledger
Accounting:
XLA_Events
XLA_Event_Classes_B
XLA_Event_Mappings_B
XLS_Event_Sources
XLA_Event_Types_B
XLA_Ae_Headers
XLA_Ae_Lines
XLA_Trial_Balances
GL_Je_Batches
GL_Je_Headers
GL_Je_Lines
AP_Invoice_Transmissions
AP_Check_Transmissions
GL_Je_Lines
GL_Ledgers
GL_Code_Combinations
GL
Journal
Entries:
GL_Import_References
GL_Je_Headers
Inventory:
GL_Je_Lines
Table
MTL_PARAMETERS
MTL_SYSTEM_ITEMS_B
MTL_ITEM_STATUS
MTL_UNITS_OF_MEASURE_TL
MTL_ITEM_LOCATIONS
MTL_ITEM_CATEGORIES
MTL_CATEGORIES_B
MTL_CATEGORY_SETS_B
MTL_DEMAND
MTL_SECONDARY_INVENTORIES
Description
It
maintains
a
set
of
default
options
like
general
ledger
accounts;
locator,
lot,
and
serial
controls,
inter-organization
options,
costing
method,
etc.
for
each
organization
defined
in
Oracle
Inventory.
Each
organizations
item
master
organization
(MASTER_ORGANIZATION_ID)
and
costing
organization
(COST_ORGANIZATION_ID)
are
maintained
here.
This
is
the
definition
table
for
items.
This
table
holds
the
definitions
for
inventory
items,
engineering
items,
and
purchasing
items.
The
primary
key
for
an
item
is
the
INVENTORY_ITEM_ID
and
ORGANIZATION_ID.
Therefore,
the
same
item
can
be
defined
in
more
than
one
organization.
Items
now
support
multilingual
description.
MLS
is
implemented
with
a
pair
of
tables:
MTL_SYSTEM_ITEMS_B
and
MTL_SYSTEM_ITEMS_TL.
Translations
table
(MTL_SYSTEM_ITEMS_TL)
holds
item
Description
and
Long
Description
in
multiple
languages.
This
is
the
definition
table
for
material
status
codes.
Status
code
is
a
required
item
attribute.
It
indicates
the
status
of
an
item,
i.e.,
Active,
Pending,
Obsolete.
This
is
the
definition
table
for
both
the
25-character
and
the
3-character
units
of
measure.
The
base_uom_flag
indicates
if
the
unit
of
measure
is
the
primary
unit
of
measure
for
the
uom_class.
Oracle
Inventory
uses
this
table
to
keep
track
of
the
units
of
measure
used
to
transact
an
item.
This
is
the
definition
table
for
stock
locators.
The
associated
attributes
describe
which
subinventory
this
locator
belongs
to,
what
the
locator
physical
capacity
is,
etc.
This
table
stores
inventory
item
assignments
to
categories
within
a
category
set.
For
each
category
assignment,
this
table
stores
the
item,
the
category
set,
and
the
category.
Items
always
may
be
assigned
to
multiple
category
sets.
However,
depending
on
the
Multiple
Assignments
Allowed
attribute
value
in
a
given
category
set
definition,
an
item
can
be
assigned
to
either
many
or
only
one
category
in
that
category
set.
This
is
the
code
combinations
table
for
item
categories.
Items
are
grouped
into
categories
within
the
context
of
a
category
set
to
provide
flexible
grouping
schemes.
Item
categories
now
support
multilingual
category
description.
MLS
is
implemented
with
a
pair
of
tables:
MTL_CATEGORIES_B
and
MTL_CATEGORIES_TL.
MTL_CATEGORIES_TL
table
holds
translated
Description
for
Categories.
It
contains
the
entity
definition
for
category
sets.
A
category
set
is
a
categorization
scheme
for
a
group
of
items.
Items
may
be
assigned
to
different
categories
in
different
category
sets
to
represent
the
different
groupings
of
items
used
for
different
purposes.
An
item
may
be
assigned
to
only
one
category
within
a
category
set,
however.
STRUCTURE_ID
identifies
the
flexfield
structure
associated
with
the
category
set.
Category
Sets
now
support
multilingual
category
set
name
and
description.
MLS
is
implemented
with
a
pair
of
tables:
MTL_CATEGORY_SETS_B
and
MTL_CATEGORY_SETS_TL.
MTL_CATEGORY_SETS_TL
table
holds
translated
Name
and
Description
for
Category
Sets.
This
table
stores
demand
and
reservation
information
used
in
Available
To
Promise,
Planning
and
other
Manufacturing
functions.
There
are
three
major
row
types
stored
in
the
table:
Summary
Demand
rows,
Open
Demand
Rows,
and
Reservation
Rows.
This
is
the
definition
table
for
the
subinventory.
A
subinventory
is
a
section
of
inventory,
i.e.,
raw
material,
finished
goods,
etc.
Subinventories
are
assigned
to
items
(in
a
many
to
one
relationship),
indicating
a
list
of
MTL_ONHAND_QUANTITIES
MTL_TRANSACTION_TYPES
MTL_MATERIAL_TRANSACTIONS
MTL_ITEM_ATTRIBUTES
MTL_ITEM_CATALOG_GROUPS_B
MTL_ITEM_REVISIONS_B
MTL_ITEM_TEMPLATES_B
MTL_DESCRIPTIVE_ELEMENTS
MTL_DESCR_ELEMENT_VALUES
ORG_ACCT_PERIODS
MTL_CUSTOMER_ITEMS
MTL_SYSTEM_ITEMS_INTERFACE
MTL_TRANSACTIONS_INTERFACE
MTL_ITEM_REVISIONS_INTERFACE
MTL_ITEM_CATEGORIES_INTERFACE
MTL_DESC_ELEM_VAL_INTERFACE
This
table
temporarily
stores
descriptive
element
values
for
an
item
that
is
associated
with
an
item
catalog
group
before
loading
this
information
into
Oracle
Inventory.
It
is
the
interface
point
between
non-Inventory
applications
and
the
Inventory
demand
module.
Records
inserted
into
this
table
are
processed
by
the
Demand
Manager
concurrent
program.
It
stores
errors
that
occur
during
the
item
interface
process
reporting
where
the
errors
occurred
along
with
the
error
messages.
MTL_DEMAND_INTERFACE
MTL_INTERFACE_ERRORS
2.
SQL
*
Loader
Conventional
Path
Load
Direct
Path
Load
External
Tables
SQL Loader:
Source
File
Formats:
There
are
3
File
formats
available.
1.
2.
3.
Files
Generated:
Bad
File:
o
SQL
Loader
Rejected
records
and
Oracle
DB
rejected
records
will
be
stored.
o Default
file
name
will
be
same
as
source
feed
file
name.
Discard
File:
o Records
not
inserted
into
DB.
o User
needs
to
give
the
discard
file
name
else
file
will
not
be
created.
Log
File
:
o The
log
file
contains
a
detailed
summary
of
the
load,
including
a
description
of
any
errors
that
occurred
during
the
load.
Parfile:
o It
specifies
the
name
of
a
file
that
contains
commonly
used
command-line
parameters.
Control
File:
o
o
The
control
file
is
a
text
file
written
in
a
language
that
SQL*Loader
understands.
The
control
file
tells
SQL*Loader
where
to
find
the
data,
how
to
parse
and
interpret
the
data,
where
to
insert
the
data,
and
more.
Loading
Objects:
1.
Column
Objects:
o
2.
When a column of a table is of some object type, the objects in that column are referred to as column objects.
Row
Objects:
o
These
objects
are
stored
in
tables,
known
as
object
tables
that
have
columns
corresponding
to
the
attributes
of
the
object.
The
object
tables
have
an
additional
system-generated
column,
called
SYS_NC_OID$,
that
stores
system-
generated
unique
identifiers
(OIDs)
for
each
of
the
objects
in
the
table.
Nested
Table
Varray
Control
File
Insert
Modes:
Append
Insert
Replace
Truncate
The append keyword denotes that these records can be inserted even if the table has
other data.
which allows records to enter the table only if the table is empty
Delete all rows from the table before loading the new records.
Delete all rows from the table before loading the new records.
LOAD
DATA
statement
tells
SQL*Loader
that
this
is
the
beginning
of
a
new
data
load.
INFILE
clause
specifies
the
name
of
a
datafile
containing
data
that
you
want
to
load.
BADFILE
clause
specifies
the
name
of
a
file
into
which
rejected
records
are
placed.
DISCARDFILE
clause
specifies
the
name
of
a
file
into
which
discarded
records
are
placed.
APPEND
clause
is
one
of
the
options
you
can
use
when
loading
data
into
a
table
that
is
not
empty.
INTO
TABLE
clause
enables
you
to
identify
tables,
fields,
and
datatypes.
WHEN
clause
specifies
one
or
more
field
conditions.
TRAILING
NULLCOLS
clause
tells
SQL*Loader
to
treat
any
relatively
positioned
columns
that
are
not
present
in
the
record
as
null
columns.
For
example
some
of
the
last
columns
data
will
not
be
available
in
feed
file
rather
we
can
load
them
during
runtime
like
DATE
columns
which
we
can
load
automatically
by
using
keyword
SYSDATE.
Option
Clause:
BINDSIZE
=
n
COLUMNARRAYROWS
=
n
DIRECT
=
{TRUE
|
FALSE}
ERRORS
=
n
LOAD
=
n
MULTITHREADING
=
{TRUE
|
FALSE}
PARALLEL
=
{TRUE
|
FALSE}
READSIZE
=
n
RESUMABLE
=
{TRUE
|
FALSE}
RESUMABLE_NAME
=
'text
string'
RESUMABLE_TIMEOUT
=
n
ROWS
=
n
SILENT
=
{HEADER
|
FEEDBACK
|
ERRORS
|
DISCARDS
|
PARTITIONS
|
ALL}
SKIP
=
n
SKIP_INDEX_MAINTENANCE
=
{TRUE
|
FALSE}
SKIP_UNUSABLE_INDEXES
=
{TRUE
|
FALSE}
STREAMSIZE
=
n
SQLLDR Username/Password
CONTROL
LOG
BAD
DISCARD
DIRECT
= TRUE
SKIP
= 1
//if DIRECT keyword not given the default load will be conventional Path Load.
Command
Line
Parameters:
USERID
CONTROL
Control filename
LOG
Log filename
BAD
Bad filename
DATA
Datafile name
DISCARD
Discard filename
DISCARDS
SKIP
LOAD
ERRORS
ROWS
Number
of
rows
in
the
conventional
path
bind
array
or
between
direct
path
data
saves
(conventional
path:
64,
direct
path:
all)
BINDSIZE
SILENT
DIRECT
PARFILE
Parameter filename
PARALLEL
FILE
Multiple
File
Single
Table:
Load
Data
Infile
a1.txt
Infile
a2.txt
Infile
a3.txt
APPEND
Into
Table
emp
(
eid
number,
Ename
char
)
Single
File
Multiple
Table:
Load
Data
Infile
a1.txt
REPLACE
Into
Table
emp1
WHEN
edept
=
10
(
eid
int,
Ename
char,
Edept
char
)
Into
Table
emp2
WHEN
edept
=
20
(
eid
int,
Ename
char,
Edept
char
)
Into
Table
emp3
WHEN
edept
=
30
(
eid
int,
Ename
char,
Edept
char
)
SQL
Loader
Performance
Tips:
Make
logical
record
processing
efficient.
o
o
o
o
o
o
Common
Error:
When
using
SQL/Loader
to
load
input
a
data
file
it
only
loads
5000
rows,
then
generates
the
following
error
Error
ORA-01460:
unimplemented
or
unreasonable
conversion
requested.
This
is
a
bug
in
SQL*Loader
when
direct
path
with
column
transformation
(SQL
string)
is
used.
Solution:
o
o
;
Steps
to
Create
External
Tables:
1. Create
Directory
Path
2. Create
External
Table
Step
1:
Create
Directory
Path
Create
or
Replace
Directory
AS
C:\Program
Files\Feed\;
dir1
;
Load
Data
on
Condition:
Create
TABLE
employee
..
ORGANIZATIONAL
EXTERNAL
(
TYPE
Oracle_Loader
DEFAULT
DIRECTORY
dir1
ACCESS
PARAMETERS
(
Records
Delimited
by
NEWLINE
LOAD
WHEN
edept
!=
SALES
Badfile
a1.bad
Logfile
a1.log
SKIP
1
Fields
Terminated
by
|
Optionally
Enclosed
by
Missing
Fields
Values
are
NULL
)
LOCATION
(a1.csv)
)
FND Load
FNDLOAD
is
an
Oracle
utility
for
the
transfer
of
a
wide
range
of
Oracle
Foundation
(FND)
data
from
one
instance
to
another
instance.
How
it
Works:
Conversion
between
database
format
and
text
file
format
is
specified
by
a
configuration
file.
Oracle
does
provide
a
confirmation
file
and
it
is
important
to
just
pass
the
configuration
file
name
and
then
just
call
the
loader
and
leave
everything.
Configuration
Files:
Configuration
File
Object
Name
afattach.lct
Load
attachments
setup
data
afcpprog.lct
Concurrent
Program
Definitions
afcppstl.lct
Concurrent
Program
Printer
Styles
afcpreqg.lct
Concurrent
Request
Groups
afcprset.lct
Concurrent
Request
Sets
Flex
fields
(KFF,
DFF,
value
sets,
value
sets
afffload.lct
data)
aflvmlu.lct
Lookup
types
and
codes
afscprof.lct
Profiles
and
Profile
Values
afscursp.lct
Security
data
(users,
responsibilities,
etc)
afsload.lct
Menu
/
Function
Security
Data
Lookup
Types
FND_LOAD
Modes:
1. DOWNLOAD
:
Generate
&
Download
.LDT
file
2. UPLOAD
:
Upload
the
.LDT
file.
Steps:
Step
1:
Log
into
UNIX
Server
&
go
to
$FND_TOP
Select
*
from
apps.fnd_env_context
where
variable_name
like
'%FND_TOP%';
Step
2:
Generate
.LDT
file
$FNDLOAD
apps/apps
0
Y
DOWNLOAD
$FND_TOP/patch/115/import/afscursp.LCT
/home/applmgr/sysadmin_resp.LDT
FND_RESPONSIBILITY
RESP_KEY=SYSTEM_ADMINISTRATOR
Step
3:
Now
FTP/SFTP
the
file
to
Destination
Server
Instance.
Step
4:
Log
into
Destination
Server
instance
UNIX
Box.
$FNDLOAD
apps/apps
0
Y
UPLOAD_PARTIAL
$FND_TOP/patch/115/import/afscursp.LCT
/home/applmgr/sysadmin_resp.LDT
FND_RESPONSIBILITY
RESP_KEY=SYSTEM_ADMINISTRATOR
DBLink
Database
Link
(dblink)
to
execute
SQL
against
external
database
as
if
it
was
the
database
you
are
logged
in
to.
You
create
an
Oracle
dblink
with
the
following
command:
CREATE
DATABASE
LINK
<link_name>
CONNECT
TO
<user_name>
IDENTIFIED
BY
<password>
USING
'<remote_sid>';
Now
you
can
execute
SQL
statements
using
the
remote
database.
To
specify
a
table
from
the
remote
database,
you
specify
the
table
name
and
the
database
link
name:
<table_name>@<dblink_name>.
To
remove
an
existing
Oracle
database
link,
you
use
the
DROP
DATABASE
LINK
command:
DROP
DATABASE
LINK
<link_name>;
INSERT
INTO
sales
SELECT
*
FROM
emp@Server_Name
WHERE
creation_date
>=
TRUNC
(sysdate,
'DD');
COMMIT;
UNIX Commands
Commands
CUT
SED
GREP
AWK
NAWK
GAWK
MAILX
If
Statement
in
UNIX:
Primary
Options
are
available
for
file
validation.
Option
Meaning
[
-a
FILE
]
True
if
FILE
exists.
[
-c
FILE
]
True
if
FILE
exists
and
is
a
character-special
file.
[
-d
FILE
]
True
if
FILE
exists
and
is
a
directory.
[
-e
FILE
]
True
if
FILE
exists.
[
-f
FILE
]
True
if
FILE
exists
and
is
a
regular
file.
[
-r
FILE
]
True
if
FILE
exists
and
is
readable.
[
-s
FILE
]
True
if
FILE
exists
and
has
a
size
greater
than
zero.
[
-w
FILE
]
True
if
FILE
exists
and
is
writable.
[
-x
FILE
]
True
if
FILE
exists
and
is
executable.
[
-O
FILE
]
True
if
FILE
exists
and
is
owned
by
the
effective
user
ID.
[
-L
FILE
]
True
if
FILE
exists
and
is
a
symbolic
link.
#!/usr/bin/ksh
emp_id=`sqlplus
s
$USER/$PASSW@$INST
<<
EOF
set
pagesize
0
set
feedback
off
set
verify
off
set
heading
off
select
EMP_ID
from
EMPLOYEE
where
EMP_NAME='Blogger';
exit;
EOF`
echo
$emp_id
Example 2:
This
example
explains
the
same
as
above,
except
this
uses
a
variable
name
as
a
parameter.
#!/usr/bin/ksh
EMP="Blogger"
emp_id=`sqlplus
s
$USER/$PASSW@$INST
<<
EOF
set
pagesize
0
set
feedback
off
set
verify
off
set
heading
off
select
EMP_ID
from
EMPLOYEE
where
EMP_NAME='$EMP';
exit;
EOF`
echo
$emp_id
Example 3:
This
example
shows
another
way
to
connect
to
sqlplus
from
shell.
#!/usr/bin/ksh
EMP="Blogger"
emp_id=`echo
"
set
pagesize
0
set
feedback
off
set
verify
off
set
heading
off
select
EMP_ID
from
EMPLOYEE
where
EMP_NAME='$EMP';
exit;"
|
sqlplus
s
$USER/$PASSW@$INST
`
echo
$emp_id
SET
System
Variables
Summary:
Pagesize
Feedback
Verify
Heading
Autotrace
Echo
Sets
the
number
of
rows
on
each
page
of
output
in
iSQL*Plus,
and
the
number
of
lines
on
each
page
of
output
in
command-line
and
Windows
GUI.
Displays
the
number
of
records
returned
by
a
script
when
a
script
selects
at
least
n
records.
ON
or
OFF
turns
this
display
on
or
off.
Turning
feedback
ON
sets
n
to
1.
Setting
feedback
to
zero
is
equivalent
to
turning
it
OFF.
SET
FEEDBACK
OFF
also
turns
off
the
statement
confirmation
messages
such
as
'Table
created'
and
'PL/SQL
procedure
successfully
completed'
that
are
displayed
after
successful
SQL
or
PL/SQL
statements.
Controls
whether
to
list
the
text
of
a
SQL
statement
or
PL/SQL
command
before
and
after
replacing
substitution
variables
with
values.
ON
lists
the
text;
OFF
suppresses
the
listing.
Controls
printing
of
column
headings
in
reports.
ON
prints
column
headings
in
reports;
OFF
suppresses
column
headings.
The
SET
HEADING
OFF
command
does
not
affect
the
column
width
displayed,
it
only
suppresses
the
printing
of
the
column
header
itself.
Displays
a
report
on
the
execution
of
successful
SQL
DML
statements
(SELECT,
INSERT,
UPDATE
or
DELETE).
The
report
can
include
execution
statistics
and
the
query
execution
path.
OFF
does
not
display
a
trace
report.
ON
displays
a
trace
report.
TRACEONLY
displays
a
trace
report,
but
does
not
print
query
data,
if
any.
Controls
whether
or
not
to
echo
commands
in
a
script
that
is
executed
with
@,
@@
or
START.
ON
displays
the
commands
on
screen.
OFF
suppresses
the
display.
ECHO
does
not
affect
the
display
of
commands
you
enter
interactively
or
redirect
to
SQL*Plus
from
the
operating
system.
Report 6i
Different
types
of
layout
in
report?
1) Tabular
2) Group
Above
3) Group
Left
4) Matrix
5) Matrix
with
Group
6) Form
like
7) Form
Letter
8) Mailing
Label
Different
type
of
columns
in
data
model:
Summary
Column:
A
Summary
Column
is
a
field
that
sums
items
in
another
column
and
generates
a
total
(or
other
function).
Formula
Column:
A
Formula
column
performs
a
user-defined
computation
on
the
data
of
one
or
more
columns.
Placeholder
Column:
Used
to
store
runtime
values.
What
are
various
Report
triggers?
1) Before
Parameter
2) After
Parameter
3) Before
report
4) Between
pages
5) After
Report
What
are
other
triggers
available
in
Reports?
i.
Validation
Trigger:
Validation
triggers
are
PL/SQL
functions
that
are
executed
when
parameter
values
are
specified
on
the
command
line
and
when
you
accept
the
Runtime
Parameter
Form.
Validation
triggers
are
also
used
to
validate
the
Initial
Value
property
of
the
parameter.
The
function
must
return
a
boolean
value
(TRUE
or
FALSE).
ii.
Format
Trigger:
Format
triggers
are
PL/SQL
functions
executed
before
the
object
is
formatted.
The
trigger
can
be
used
to
dynamically
change
the
formatting
attributes
of
the
object.
The
function
must
return
a
Boolean
value
(TRUE
or
FALSE).
For
example,
mainly
used
for
in
case
report
uses
Multiple
Layouts.
Applies
to
Frames,
Repeating
Frames,
Fields,
Boilerplate
objects
iii.
Action
Trigger:
Action
triggers
are
PL/SQL
procedures
executed
when
a
button
is
selected
in
the
Runtime
Previewer.
The
trigger
can
be
used
to
dynamically
call
another
report
(drill
down)
or
execute
any
other
PL/SQL.
Type
Bind
Lexical
Parameter
Yes
Created
by
Default
If
it
does
not
already
No
Modes
in
Layout
Model:
Confine
Mode:
o On:
child
objects
cannot
be
moved
outside
their
enclosing
parent
objects.
o Off:
child
objects
can
be
moved
outside
their
enclosing
parent
objects.
Flex
Mode:
o On:
parent
borders
stretch
when
child
objects
are
moved
against
them.
o Off:
parent
borders
remain
fixed
when
child
objects
are
moved
against
them.
Report
Builder
PL/SQL
Packages:
This
procedure
temporarily
stops
report
execution
at
the
place
at
which
SRW.BREAK
was
SRW.BREAK
encountered,
and
displays
(read-only)
the
current
values
of
all
columns
and
parameters.
Report
execution
resumes
when
the
read-only
screen
is
accepted.
SRW.BREAK;
Restriction:
o This
procedure
is
not
meaningful
in
a
Before
Form
or
After
Form
trigger,
because
data
for
the
report
is
not
fetched
until
the
Before
Report
trigger.
SRW.CONTEXT_FAILURE
This
exception
stops
the
report
execution
and
raises
the
following
error
message:
REP-1426:
Running
<construct_name>
from
incorrect
context.
SRW.CONTEXT_FAILURE;
Usage
Note:
o Report
Builder
raises
this
exception
when
a
Report
Builder
packaged
function
or
procedure
is
called
in
the
wrong
context.
EXCEPTION
when
SRW.CONTEXT_FAILURE
then
srw.message(4000,
Contact
the
Application
Development
group
regarding
SRW.CONTEXT_FAILURE.);
raise
srw.program_abort;
DDL
(statements
that
define
data),
or
DML
(statements
that
manipulate
data).
DML
SRW.DO_SQL
statements
are
usually
faster
when
they
are
in
PL/SQL,
instead
of
in
SRW.DO_SQL.
SRW.USER_EXIT
SRW.USER_EXIT20
SRW.USER_EXIT_FAILURE
EXCEPTION
WHEN
srw.run_report_failure
then
srw.message(30,
Error
mailing
reports.);
raise
srw.program_abort;
This
procedure
calls
the
user
exit
named
in
user_exit_string.
It
is
useful
when
you
want
to
pass
control
to
a
3GL
program
during
a
reports
execution.
This
procedure
is
the
same
as
SRW.USER_EXIT,
except
that
it
calls
the
user
exit
with
five
arguments
instead
of
just
two.
This
enables
you
to
share
user
exits
with
other
Oracle
products,
such
as
Oracle
Forms,
which
pass
five
arguments
instead
of
two.
This
exception
is
raised
when
the
user
exit
you
called
has
failed.
When
called,
it
stops
the
report
execution
and
raises
the
following
error
message:
REP-1416:
User
exit
<exit_name>
failed.
EXCEPTION
when
SRW.USER_EXIT_FAILURE
then
SRW.MESSAGE(200,
PASS
user
exit
failed.
Check
its
code.);
What
are
User
Exits
in
oracle
Reports?
Its
an
API
which
provides
easy
way
to
pass
control
from
report
builder
to
3GL
program
that
performs
some
function
and
then
returns
control
back
to
report
builder.
Using
these
we
can
integrate
oracle
reports
with
oracle
apps
AOL
and
run
them
as
concurrent
programs.
Below
are
some
AOL
integrations.
FND
SRWINIT
FND_SRWEXIT
FND
FORMAT_CURRENCY
This
is
a
User
Exit
which
sets
your
profile
option
values
and
allows
Oracle
AOL
user
exits
to
detect
that
they
have
been
called
by
oracle
repots.
FND
SRWINIT
also
allows
your
report
to
use
the
correct
organization
automatically.
Can
be
used
in
BEFORE-REPORT
Trigger.
This
user
exit
ensures
that
all
the
memory
allocated
for
AOL
user
exits
has
been
freed
up
properly.
Can
be
used
in
AFTER-
REPORT
Trigger.
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.
Syntax:
FND
FORMAT_CURRENCY
CODE=:column
containing
currency
code
FND FLEXSQL
FND FLEXIDVAL
Properties
Usage:
Only
Important
properties
discussed.
Property Name
Usage
Anchor
Properties
Child
Edge
Type
Description
The
Child
Edge
Type
property
is
the
edge
of
the
child
object
on
which
the
anchor
is
located.
Values:
Top,
Bottom,
Left,
and
Right
Applies
to
anchors
Description
The
Parent
Edge
Type
property
is
the
edge
of
the
parent
object
on
which
the
anchor
is
located.
Values:
Top,
Bottom,
Left,
and
Right
Applies
to
anchors
Common
Layout
Object
Properties
Base
Printing
On
The
Base
Printing
On
property
is
the
object
on
which
to
base
the
Print
Object
On
property
of
the
current
object.
For
example,
if
you
specify
a
Print
Object
On
of
All
Pages
and
a
Base
Printing
On
of
Anchoring
Object,
the
current
object
will
be
triggered
to
print
on
every
logical
page
on
which
its
anchoring
object
(parent
object)
appears.
Minimum
window
Lines
Page
Break
After
Page Protect
Print Object On
Values:
o Anchoring
Object
Is
the
parent
object
to
which
the
current
object
is
implicitly
or
explicitly
anchored.
o Enclosing
Object
Is
the
object
that
encloses
the
current
object.
Applies
to:
layout
objects
Required/Optional:
required
Default:
Anchoring
Object
The
Keep
with
Anchoring
Object
property
indicates
whether
to
keep
an
object
and
the
object
to
which
it
is
anchored
on
the
same
logical
page.
Yes
o Means
that
if
the
object,
its
anchoring
object,
or
both
cannot
fit
on
the
logical
page,
they
will
be
moved
to
the
next
logical
page.
o For
a
repeating
frame,
it
means
the
first
instance
of
the
repeating
frame
must
be
able
to
fit
on
the
same
page
as
its
anchoring
object.
o Any
layout
object
other
than
a
repeating
frame,
it
means
the
object
must
be
able
to
format
entirely
on
the
same
page
as
its
anchoring
object.
The
Page
Break
After
property
indicates
that
you
want
all
children
of
the
object
to
be
moved
to
the
next
page.
o In
other
words,
any
object
that
is
a
child
object
of
an
anchor
(implicit
or
explicit)
to
this
object
will
be
treated
as
if
it
has
Page
Break
Before
set
to
Yes.
Note
that
this
does
not
necessarily
mean
that
all
the
objects
below
the
object
with
Page
Break
After
will
move
to
the
next
page.
Applies
to:
layout
objects
Required/Optional:
optional
Default:
No
The
Page
Break
Before
property
indicates
that
you
want
the
object
to
be
formatted
on
the
page
after
the
page
on
which
it
is
initially
triggered
to
print.
Note
that
this
does
not
necessarily
mean
that
all
the
objects
below
the
object
with
Page
Break
Before
will
move
to
the
next
page.
Applies
to:
layout
objects
Required/Optional:
optional
Default:
No
o The
Page
Protect
property
indicates
whether
to
try
to
keep
the
entire
object
and
its
contents
on
the
same
logical
page.
Setting
Page
Protect
to
Yes
means
that
if
the
contents
of
the
object
cannot
fit
on
the
current
logical
page,
the
object
and
all
of
its
contents
will
be
moved
to
the
next
logical
page.
o Note:
Using
Page
Protect
may
cause
objects
below
the
page
protected
object(s)
to
appear
above
the
page
protected
object(s).
Applies
to:
layout
objects
Required/Optional:
optional
Default:
No
The
Print
Object
On
property
is
the
frequency
with
which
you
want
the
object
to
appear
in
the
report.
The
Print
Object
On
options
indicates
the
logical
page(s)
on
which
the
object
should
be
triggered
to
print
with
regard
to
the
Base
Printing
On
object.
o
Horizontal
Elasticity
/
Vertical
Elasticity
Common
Column
Properties
Break
Order
Values:
All
Pages,
All
but
First
Page,
Default,
First
Page,
Last
Page
The
Horizontal/Vertical
Elasticity
property
is
how
the
horizontal
size
of
the
object
will
change
at
runtime
to
accommodate
the
objects
or
data
within
it.
Contract
Means
the
horizontal
size
of
the
object
decreases,
if
the
formatted
objects
or
data
within
it
are
wide
enough,
but
it
cannot
increase
to
a
width
greater
than
that
shown
in
the
Report
Editor.
Expand
Means
the
horizontal
size
of
the
object
increases,
if
the
formatted
objects
or
data
within
it
are
wide
enough,
but
it
cannot
decrease
to
a
width
less
than
that
shown
in
the
Report
Editor.
Fixed
Means
the
width
of
the
object
is
the
same
on
each
logical
page,
regardless
of
the
size
of
the
objects
or
data
within
it.
Truncation
of
data
may
occur;
look
at
the
examples.
The
width
of
the
object
is
defined
to
be
its
width
in
the
Report
Editor.
Variable
Means
the
object
may
expand
or
contract
horizontally
to
accommodate
the
objects
or
data
within
it
(with
no
extra
space),
which
means
the
width
shown
in
the
Report
Editor
has
no
effect
on
the
objects
width
at
runtime.
The
Break
Order
property
is
the
order
in
which
to
display
the
columns
values.
This
property
applies
only
to
columns
that
identify
distinct
values
of
user-created
groups
(i.e.,
break
groups).
The
order
of
column
values
in
a
default
group
is
determined
by
the
ORDER
BY
clause
of
the
query.
For
column
values
in
user-created
groups,
however,
you
must
use
Break
Order
to
specify
how
to
order
the
break
columns
values.
Values:
o Ascending
o Descending
Applies
to:
columns
Required/Optional:
Required,
if
Set
Break
Order
is
set
to
Yes.
Default:
Ascending
The
Set
Break
Order
property
is
whether
to
set
the
order
in
which
to
display
the
columns
values,
using
the
Break
Order
property.
Applies
to:
columns
Required/Optional:
optional
Default:
Yes
Form Personalization
Profile
Options:
Profile
Name
Hide
Diagnostics
Menu
Entry
Utilities:
Diagnostics
Usage
If
this
profile
is
set
to
Yes,
the
Diagnostics
menu
is
hidden
from
the
user.
It
determines
whether
a
user
can
automatically
use
the
following
Diagnostics
submenu
items:
Examine,
Trace,
Debug,
Properties,
and
Custom
Code.
How
to
disable
Form
Personalizations?
Navigation:
Help
Diagnostics
Custom
Code
OFF
Form
Personalization
Sequence:
1. Form
Personalization
2. Custom.pll
Components
involved
in
form
personalization:
Rules:
Once
Rules
are
defined,
when
the
target
function
is
run
the
rules
are
automatically
applied
as
even
occur
within
the
form.
Conditions:
It
decides
when
the
rule
should
be
executed
on
below
factors.
o Triggering
Event
(Mandatory)
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD
MENU1
to
MENU
15
SPECIAL1
to
SPECIAL45
o Trigger
Object
o Condition
o Processing
Mode
(Mandatory)
Contexts:
Personalization
can
be
applied
in
sequence
Site
Responsibility
User
Actions:
This
is
used
to
perform
below
actions.
a) Property
b) Message
c) Builtin
d) Menu
Special
Triggers:
Two
types
of
special
triggers
available,
Menu1
Menu
15
Special1
Special45
Special
Triggers
are
sub
classified
as,
1) Tool
Menu
i.
Menu1
-
Menu
15
ii.
Special1
Special
15
2) Report
Menu
i.
Special16
Special30
3) Action
Menu
i.
Special31
Special45
Action
Types:
o Show
Message
Types
o Hint
o Error
o Debug
o Warn
o Launch
SRS
Form
Builtin
Types
o Launch
a
Function
o Launch
a
URL
o DO_KEY
o Execute
a
Procedure
o GO_ITEM
o GO_BLOCK
o FORMS_DDL
o RAISE
FORM_TRIGGER_FAILURE
o EXECUTE
TRIGGER
o SYNCHRONIZE
o Call
Custom
Library
o Create
Record
Group
from
query
o Menu1
Menu15
Menu
Type
o Special1
Special45
Property
Types
All
form
object
properties.
APPCORE.pll
APPCORE2.pll
FNDSQL.pll
How
to
migrate
form
personalization
from
one
instance
to
another?
Use
FNDLOAD
(purely
a
DBA
task)
Step1:
Download
for
a
specific
form
FNDLOAD
<userid>/<password>
0
Y
DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt>
FND_FORM_CUSTOM_RULES
form_name=<form
name><
/FONT>
(or)
Step
1:
Download
all
personalization
FNDLOAD
<userid>/<password>
0
Y
DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt>
FND_FORM_CUSTOM_RULES
function_name=<function
name><
/FONT>
Step
2:
Usin
FTP/SFTP
transfer
the
downloaded
file
Step
3:
Upload
to
the
target
instance
FNDLOAD
<userid>/<password>
0
Y
UPLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt>
How
to
migrate
Oracle
Forms
and
Oracle
Report
definitions
from
version
6i
and/or
9i
to
11G?
For
Oracle
Reports
1. Open
and
then
save
all
6i
and
9i
reports
as
type
RDF.
2. These
should
run
just
fine
in
most
cases
in
11G
without
conversion
(and
you
do
not
have
to
install
the
larger
11g
Application
Server
release
with
Weblogic
Server
on
your
design
platform),
but
if
there
are
issues
running
the
older
RDFs,
then
a
conversion
using
the
rwconverter
utility
will
be
required
on
the
11g
platform
(see
the
Report
Builder
Help
for
the
topic
of
conversion
and
rwconverter).
3. Create
a
reports
directory
on
the
AS
11g
instance
so
that
you
can
utilize
the
sourceDir
option
in
the
report
server's
configuration.
This
causes
Reports
to
only
look
in
that
directory
for
its
definitions.
4. Copy
your
converted
and
migrated
Reports
10.1.2
RDF
definitions
to
your
AS
11g
deployment
box
(make
sure
not
to
corrupt
them
if
using
FTP).
Place
them
in
the
REPORTS_PATH
or
sourceDir
directory
if
used).
5. One
caveat
is
that
6i
Reports
could
use
6i
Graphics
and
there
is
no
migration
path
for
that.
Due
to
the
new
Java
implementation,
6i
Graphics
need
to
be
redesigned
with
the
new
Graphic
Wizard
integrated
into
the
new
Builder.
For
Oracle
Forms
1. Open
the
Forms
Builder
and
connect
to
the
database
used
to
design
your
application.
2. Open
your
modules
in
the
Forms
Builder.
You
should
do
this
in
the
following
order:
libraries
(pll)
then
menus
(mmb)
then
forms
(fmb)
3. From
the
Builder
menu,
select
Program
>
Compile
PL/SQL
>
Compile
All
4. Save
the
current
module
5. Repeat
the
above
for
all
libraries,
menus,
and
forms
associated
with
your
application.
a. The
above
can
also
be
accomplished
from
the
command
line
using
the
compiler
(frmcmp
from
ORACLE_HOME/bin
directory).
The
command
line
would
look
something
like
this:
Oracle
R12
Frmcmp
module=myform
userid=scott/tiger@orcl
compile_all=yes
b. Although
this
will
also
generate
the
executables,
only
the
source
files
(fmb,
mmb,
pll)
can
be
used
in
the
new
version.
Do
not
move
the
fmx,
mmx,
or
plx
files
to
the
version
11
environment.
6. Copy
the
updated
fmb,
mmb,
and
pll
files
to
the
version
11.x
installation
and
generate
the
necessary
fmx,
plx,
and
mmx
files
using
the
version
11
compiler.
Please
check
note
in
references
section.
FND APIs
Why
to
Set
Org
Context?
FND_CLIENT_INFO
Package:
FND_CLIENT_INFO.Set_Org_Context:
FND_GLOBAL
Package:
FND_GLOBAL.APPS_INITIALIZE
This
procedure
sets
up
global
variables
and
profile
values
in
a
database
session.
Call
this
procedure
to
initialize
the
global
security
context
for
a
database
session.
You
can
use
it
for
routines
such
as
PL/SQL
or
other
programs
that
are
not
integrated
with
either
the
Oracle
Applications
concurrent
processing
facility
or
Oracle
Forms
(both
of
which
already
do
a
similar
initialization
for
a
database
session).
The
typical
use
for
this
routine
would
be
as
part
of
the
logic
for
launching
a
separate
non
Forms
session
from
an
established
Oracle
Applications
form
session.
You
can
also
use
this
procedure
to
set
up
a
database
session
for
manually
testing
application
code
using
SQL*Plus.
This
routine
should
only
be
used
when
the
session
must
be
established
outside
of
a
normal
form
or
concurrent
program
connection.
FND_GLOBAL.USER_ID
FND_GLOBAL.ORG_ID
FND_GLOBAL.ORG_NAME
FND_GLOBAL.RESP_ID
FND_GLOBAL.RESP_APPLICATION_ID
FND_GLOBAL.RESP_NAME
FND_GLOBAL.SECURITY_GROUP_ID
FND_GLOBAL.USER_NAME
FND_GLOBAL.APPLICATION_NAME
FND_GLOBAL.APPLICATION_SHORT_NAME
FND_GLOBAL.CONC_LOGIN_ID
FND_GLOBAL.CONC_PROGRAM_ID
FND_GLOBAL.CONC_REQUEST_ID
FND_GLOBAL.PER_BUSINESS_GROUP_ID
FND_GLOBAL.PER_SECURITY_PROFILE_ID
FND_GLOBAL.CURRENT_LANGUAGE
FND_PROFILE
Package:
It
is
used
to
perform
various
actions
related
to
profile
values
through
PL/SQL.
Some
of
the
important
ones
are
listed
below.
FND_REQUEST
Package:
FND_REQUEST.SET_OPTIONS
Optionally
call
before
submitting
a
concurrent
request
to
set
request
options.
Returns
TRUE
on
successful
completion,
and
FALSE
otherwise.
FND_REQUEST.SET_REPEAT_OPTIONS
Optionally
call
before
submitting
a
concurrent
request
to
set
repeat
options.
Returns
TRUE
on
successful
completion,
and
FALSE
otherwise.
FND_REQUEST.SET_PRINT_OPTIONS
Some
print
options
that
are
set
at
the
program
level
(i.e.,
using
the
Concurrent
Programs
form)
cannot
be
overridden
using
this
procedure.
See
the
following
argument
descriptions
to
determine
which
print
options
can
be
overridden.
FND_REQUEST.SUBMIT_REQUEST
Submits
a
concurrent
request
for
processing
by
a
concurrent
manager.
If
the
request
completes
successfully,
this
function
returns
the
concurrent
request
ID;
otherwise,
it
returns
0.
The
FND_REQUEST.SUBMIT_REQUEST
function
returns
the
concurrent
request
ID
upon
successful
completion.
It
is
then
up
to
the
caller
to
issue
a
commit
to
complete
the
request
submission.
Your
code
should
retrieve
and
handle
the
error
message
generated
if
there
is
a
submission
problem
(the
concurrent
request
ID
returned
is
0).
Use
FND_MESSAGE.RETRIEVE
and
FND_MESSAGE.ERROR
to
retrieve
and
display
the
error
(if
the
request
is
submitted
from
the
client
side).
You
must
call
FND_REQUEST.SET_MODE
before
calling
FND_REQUEST.SUBMIT_REQUEST
from
a
database
trigger.
If
FND_REQUEST.SUBMIT_REQUEST
fails
from
anywhere
but
a
database
trigger,
database
changes
are
rolled
back
up
to
the
point
of
the
function
call.
After
a
call
to
the
FND_REQUEST.SUBMIT_REQUEST
function,
all
setup
parameters
are
reset
to
their
default
values.
Note**
FND_REQUEST
must
know
information
about
the
user
and
responsibility
from
which
the
request
is
submitted.
Therefore,
this
function
only
works
from
concurrent
programs
or
forms
within
Oracle
E-Business
Suite.
FND_REQUEST.SET_MODE
Call
this
function
before
calling
FND_REQUEST.SUBMIT_REQUEST
from
a
database
trigger.
FND_CONCURRENT
Package:
FND-CONCURRENT.GET_REQUEST_STATUS
Returns
the
status
of
a
concurrent
request.
If
the
request
has
already
completed,
also
returns
a
completion
message.
FND-CONCURRENT.GET_REQUEST_STATUS
Waits
for
request
completion,
then
returns
the
request
phase/status
and
completion
message
to
the
caller.
Goes
to
sleep
between
checks
for
request
completion.
FND-CONCURRENT.SET_COMPLETION_STATUS
Call
SET_COMPLETION_STATUS
from
a
concurrent
program
to
set
its
completion
status.
The
function
returns
TRUE
on
success,
otherwise
FALSE.
MO_GLOBAL
Package:
MO_GLOBAL.INIT
Purpose
of
mo_global.init
:-
It
will
check
if
new
Multi
Org
Security
Profile
is
set,
to
decide
if
new
Security
Profile
method
will
be
used.
If
the
new
MO
security
profile
is
set,
then
mo_global.init
inserts
one
record,
for
each
Organization
in
Org
Hierarchy,
in
table
mo_glob_org_access_tmp
When
&
from
where
is
mo_global.init
called
?
This
package
procedure
will
be
called
as
soon
as
you
login
or
as
soon
as
you
switch
responsibility.
Just
like
FND_GLOBAL.INITIALIZE
is
called.
It
is
safe
to
assume
that
Oracle
will
invoke
MO_GLOBAL.INIT
after
FND_GLOBAL.INITIALIZE.
From
SQL*Plus,
you
can
simulate
login
to
a
specific
responsibility
by
calling
a.Call
FND_GLOBAL.INITIALIZE
This
will
set
your
responsibility
id,
user_id
etc
b.
call
MO_GLOBAL.INIT
This
will
read
the
MO
profile
option
values
for
your
responsibility/user,
and
will
initialize
the
Multi
Org
Access.
MO_GLOBAL.SET_POLICY_CONTEXT
MO_GLOBAL.ORG_SECUTIRY
MOAC
for
table
access
In
11i
_ALL
Tables
where
non
Org
specific
and
Org
specific
views
were
created
on
these
tables.
But
in
R12
its
different
concept
For
the
table
AP_INVOICES_ALL
a
synonym
AP_INVOICES_ALL
is
created
in
APPS.
Also
another
synonym
AP_INVOICES
is
created
which
refers
to
AP_INOICES_ALL.
A
Row
Level
security
is
applied
to
AP_INVOICES,
using
package
function
MO_GLOBAL.ORG_SECURITY.
This
can
be
double-checked
by
running
SQL
select
*
from
all_policies
where
object_name=AP_INVOICES
The
effect
of
this
policy
is
that,whenever
you
access
AP_INVOICES,
Oracle
RLS
will
dynamically
append
WHERE
CLAUSE
similar
to
below
SELECT
*
FROM
AP_INVOICES
WHERE
EXISTS
(SELECT
1
FROM
mo_glob_org_access_tmp
oa
WHERE
oa.organization_id
=
org_id)
Some
of
the
other
Functions:
MO_GLOBAL.GET_OU_NAME:
This
function
returns
the
legal
entity
name
for
the
org_id
parameter
passed,
if
it
exists
in
the
PL/SQL
array
populated
by
set_org_access
Multi-Org
API.
FUNCTION
get_ou_name(p_org_id
NUMBER)
MO_GLOBAL.GET_LE_NAME:
This
function
returns
the
legal
entity
id
for
the
org_id
parameter
passed,if
it
exists
in
the
PL/SQL
array
populated
by
set_org_access
Multi-Org
API.
FUNCTION
get_le_name(p_org_id
NUMBER)
MO_GLOBAL.GET_LE_NAME
FUNCTION
get_le_id(p_org_id
NUMBER)
MO_GLOBAL.GET_CURRENT_ORG_ID
This
function
returns
the
access
mode
stored
in
the
application
context.
FUNCTION
get_current_org_id
RETURN
NUMBER;
MO_GLOBAL.IS_MULTI_ORG_ENABLED
Called
by
oracle
server
during
parsing
sql
statment.
Used
by
Multi-Org
synonyms.
FUNCTION
is_multi_org_enabled
RETURN
VARCHAR2;
MO_GLOBAL.IS_CLIENT_INFO_POLICY
Return
Y
if
shared
seed
data
(-3114)
exists.
Return
N
if
shared
seed
data
is
eliminated.
FUNCTION
set_client_info_policy(
obj_schema
VARCHAR2
,
obj_name
VARCHAR2
)
Notification Systems
WF Monitor
Graphical
Interface.
Used
to
Modify
&
create
business
process.
2
Windows
available
[navigator,
process
Diagram].
It
is
embedded
in
oracle
DB.
Monitors
the
WF
status
and
co-ordinates
the
routing
of
activities.
The
utility
program
that
moves
WF
definitions
b/w
DB
and
corresponding
flat
file
representation.
Its
a
standalone
server
program.
Integrated
into
WF
builder.
Automatically
Notify
users.
Send
Notification
to
individuals
or
roles.
Automatic
Notification
forwarding.
Graphically
monitors
&
administrate
workflow
transactions.
It
supports
the
below
features.
Java
Applet:
To
view
WF
Activity
diagrammatically.
View
Transaction
action
history.
Retry
/
Skip
Activity.
Resend
&
rerun
any
process.
Action
Summary
of
Key
Activities.
Workflow
Data
model:
Objects
Description
Item
Type
Classification
of
components
that
makes
Workflow
process.
An
item
type
attribute
is
a
property
associated
with
a
given
item
type.
Attribute
A
Global
variable
that
can
be
used
across
by
any
activity
inside
WF.
Process
Function
Event
An
event
activity
represents
a
business
event
from
the
Business
Event
System
within
a
workflow
process.
Notification
When
the
workflow
engine
reaches
a
notification
activity,
it
issues
a
Send
(
)
API
call
to
the
Notification
System
to
send
the
message
to
an
assigned
performer.
Message
Lookup
Types
A
lookup
type
is
a
static
list
of
values.
These
lists
can
be
referenced
by
activities
and
by
item
type,
message
or
activity
attributes.
Workflow
Tables:
Table
Name
WF_ITEM_TYPES
WF_ITEM_TYPES_TL
WF_ITEM_ATTRIBUTES
WF_ACTIVITIES
WF_ACTIVITY_ATTRIBUTES
WF_ACTIVITY_TRANSITIONS
WF_PROCESS_ACTIVITIES
WF_MESSAGES
WF_MESSAGE_ATTRIBUTES
WF_LOOKUP_TYPES
WF_LOOKUPS
WF_NOTIFICATIONS
WF_NOTIFICATION_ATTRIBUTES
WF_ITEMS
WF_ITEM_ACTIVITY_STATUSES
Description
The
details
of
internal
names
of
item
types
will
be
stored.
Translation
table
for
WF_ITEM_TYPES
The
details
of
Item
attribute.
The
details
of
activities
involved
in
business
process.
The
details
of
attributes
associated
with
activities.
The
transition
details
b/w
the
activities
of
the
process
All
details
of
process
includes
Activity,
sub-processes
etc.
The
message
definition
details.
The
details
about
Attributes
associated
with
Messages.
The
details
of
Lookup
Type
definitions.
Details
of
lookup
Codes
created
for
lookup
types.
Notification
details
defined
inside
item
type.
Details
of
attributes
associated
with
notification.
Information
of
all
the
workflow
process
&
its
history.
Activity
status
of
all
activity
for
different
item
type
instance.
WF_ITEM_ATTRIBUTE_VALUES
The
values
of
all
the
attributes
associated
with
the
item
type
at
the
particular
instance.
WF_ACTIVITY_ATTR_VALUES
The
values
of
activity
attributes
for
all
the
activities
for
different
instances
of
the
workflow
items.
WF_ROUTING_RULES
The routing rules defined by user like forward, re-assign, reject etc.
Types
of
Workflow
Process:
Synchronous
Asynchronous
A
synchronous
process
is
a
process
that
can
be
executed
without
interruption
from
start
to
finish.
The
Workflow
Engine
executes
a
process
synchronously
when
the
process
includes
activities
that
can
be
completed
immediately,
such
as
function
activities
that
are
not
deferred
to
the
background
engine.
The
Workflow
Engine
does
not
return
control
to
the
calling
application
that
initiated
the
workflow
until
it
completes
the
process.
With
a
synchronous
process,
you
can
immediately
check
for
process
results
that
were
written
to
item
attributes
or
directly
to
the
database.
However,
the
user
must
wait
for
the
process
to
complete.
An
asynchronous
process
is
a
process
that
the
Workflow
Engine
cannot
complete
immediately
because
it
contains
activities
that
interrupt
the
flow.
Examples
of
activities
that
force
an
asynchronous
process
include
deferred
activities,
notifications
with
responses,
blocking
activities,
and
wait
activities.
Rather
than
waiting
indefinitely
when
it
encounters
one
of
these
activities,
the
Workflow
Engine
sets
the
audit
tables
appropriately
and
returns
control
to
the
calling
application.
The
workflow
process
is
left
in
an
unfinished
state
until
it
is
started
again.
The
process
can
be
restarted
by
the
Notification
System,
such
as
when
a
user
responds
to
a
notification;
by
the
background
engine,
such
as
when
a
deferred
activity
is
executed;
or
by
the
Business
Event
System,
such
as
when
an
event
message
is
de-queued
from
an
inbound
queue
and
sent
to
the
workflow
process.
With
an
asynchronous
process,
the
Forced Synchronous
user
does
not
have
to
wait
for
the
process
to
complete
to
continue
using
the
application.
However,
the
results
of
the
process
are
not
available
until
the
process
is
completed
at
a
later
time.
A
forced
synchronous
process
completes
in
a
single
SQL
session
from
start
to
finish
and
never
inserts
into
or
updates
any
database
tables.
As
a
result,
the
execution
speed
of
a
forced
synchronous
process
is
significantly
faster
than
a
typical
synchronous
process.
The
process
results
are
available
immediately
upon
completion.
However,
no
audit
trail
is
recorded.
Activity
Cost:
Each
function
activity
and
event
activity
has
a
cost
associated
with
it.
The
cost
is
a
value
representing
the
number
of
seconds
it
takes
for
the
Workflow
Engine
to
execute
the
activity.
If
you
do
not
know
how
long
it
takes
for
the
Workflow
Engine
to
perform
the
activity,
you
can
enter
an
estimated
cost
and
update
it
later
as
you
accumulate
more
information
about
its
performance.
Generally,
you
should
assign
complex,
long
running
activities
a
high
cost.
The
valid
range
for
cost
is
0
to
1,000,000.
Note**
although
the
cost
is
entered
and
displayed
in
seconds
in
Oracle
Workflow
Builder,
it
is
actually
converted
and
stored
in
the
database
as
hundredths
of
a
second.
In
normal
processing,
the
Workflow
Engine
completes
the
execution
of
a
single
activity
before
continuing
to
a
subsequent
activity.
In
some
cases,
an
activity
might
take
so
long
to
process
that
background
processing
would
be
more
appropriate.
The
default
threshold
for
the
Workflow
Engine
is
50
hundredths
of
a
second.
Activities
with
a
cost
higher
than
this
are
deferred
to
background
engines.
Deferred
Processing:
The
engine
has
a
deferred
processing
feature
that
allows
long-running
tasks
to
be
handled
by
background
engines
instead
of
in
real
time.
Deferring
the
execution
of
activity
functions
to
background
engines
allows
the
Workflow
Engine
to
move
forward
to
process
other
activities
that
are
currently
active.
The
engine
can
be
set
up
to
operate
anywhere
on
a
continuum
between
processing
all
eligible
work
immediately,
to
processing
nothing
and
marking
all
transitions
as
deferred.
Each
activity
has
a
user-defined
processing
cost.
You
can
set
this
cost
to
be
small
if
the
activity
merely
sets
an
item
attribute,
or
you
may
set
it
to
be
very
high
if
the
activity
performs
a
resource-intensive
operation.
If
the
result
of
a
completed
activity
triggers
the
execution
of
a
costly
function,
you
might
want
to
defer
the
execution
of
that
costly
function
to
a
background
engine.
The
Workflow
Engine
integrates
with
Oracle
Advanced
Queues
to
carry
out
deferred
processing.
If
a
function
activity
has
a
cost
that
exceeds
the
main
threshold
cost,
the
Workflow
Engine
marks
that
activity
with
a
status
of
'DEFERRED'
in
the
workflow
status
tables
and
en-queues
the
deferred
activity
to
a
special
queue
for
deferred
activities.
A
special
queue
processor
called
the
background
engine
checks
and
processes
the
activities
in
the
'deferred'
queue.
The
order
in
which
the
deferred
activities
are
processed
are
based
on
the
first
in,
first
out
ordering
of
an
activity's
en-queue
time.
Deferred
Activity:
When
an
activity
is
deferred,
the
main
Workflow
Engine
can
then
continue
to
the
next
available
activity,
which
may
occur
on
some
other
parallel
branch
of
the
process.
If
no
other
activity
is
available
to
be
executed,
the
Workflow
Engine
returns
control
immediately
to
the
calling
application.
The
user
remains
unaware
that
processing
is
still
taking
place,
rendering
a
faster
execution
time.
To
defer
an
activity,
Activity
Cost
>
Threshold
Cost
The
threshold
cost
is
a
PL/SQL
package
variable
with
a
default
value
of
50
hundredths
of
a
second.
Set
a
cost
above
this
threshold
for
all
activities
that
you
don't
want
the
user
to
wait
for.
At
runtime,
the
Workflow
Engine
defers
any
thread
to
the
background
as
soon
as
it
encounters
an
activity
with
a
cost
higher
than
the
threshold.
Then
the
background
engine
later
identifies
the
process
as
deferred
and
continues
its
execution.
Workflow
Access
Protection:
Access
protection
is
a
feature
that
prevents
workflow
seed
data
created
by
a
'seed
data
provider'
from
being
modified
by
a
'seed
data
consumer'.
'seed
data
provider'
-->
any
organization
that
creates
'seed
data'
for
other
organizations
('seed
data
consumers')
to
use
in
defining
and
customizing
a
workflow
process.
Workflow
objects
definitions
that
can
be
customized.
Workflow
object
definitions
protected
against
customization.
Scenario:
There
are
2
teams
in
my
organization
Global
Team
&
Regional
Team.
Global
Team
does
development
across
all
regions
where
as
regional
team
does
development
within
their
own
region
and
not
shared
by
other.
Consider
my
organization
Global
team
using
oracle
std.
item
type
in
my
workflow
in
a
custom
workflow
process.
Now
my
organization
wants
to
enable
below
protections,
Identify
certain
workflow
objects
in
its
custom
workflow
definition
as
corporate
standards
that
the
regional
teams
should
adhere
to
and
not
modify.
Designate
certain
objects
in
its
deployed
process
as
customizable
for
the
regional
offices
to
alter
to
their
offices'
needs.
How
this
can
be
achieved?
By
using
Access
Protection
Feature
in
Oracle
Workflow.
Access
Protection
Features:
1. Access
Level
2. Customization
Level
3. Protection
Level
The
combination
of
protection,
customization,
and
access
levels
make
up
the
access
protection
feature
and
determines
whether
a
user
can
modify
a
given
workflow
object.
The
level,
in
all
three
cases,
is
a
numeric
value
ranging
from
0
to
1000
that
indicates
the
relationship
between
different
organizations
as
providers
and
consumers
of
seed
data.
The
following
ranges
of
levels
are
presumed
by
Oracle
Workflow:
0-9
Oracle
Workflow
10-19
Oracle
Application
Object
Library
20-99
Oracle
Applications
development
100-999
Customer
organization.
You
can
determine
how
you
want
this
range
to
be
interpreted.
For
example,
100
can
represent
headquarters,
while
101
can
represent
a
regional
office,
and
so
on.
1000
Public
Access
Level:
A
"user
of
Oracle
Workflow"
in
this
case,
represents
someone
who
is
operating
Oracle
Workflow
Builder,
or
the
Workflow
Definitions
Loader
program,
which
loads
workflow
process
definitions
from
a
file
into
a
database.
As
a
seed
data
provider,
you
should
always
operate
Oracle
Workflow
Builder
at
the
same
consistent
access
level
because
the
level
you
work
at
affects
the
protection
level
of
the
seed
data
you
create.
You
can
view
your
access
level
as
follows:
In Oracle Workflow Builder, select About Workflow from the Help menu.
If
you
are
going
to
run
the
Workflow
Definitions
Loader
program
to
download
workflow
process
definitions
from
the
database
to
a
file,
check
the
value
for
the
environment
variable
WF_ACCESS_LEVEL
on
your
workflow
server.
Protection
Level:
Whenever
you
create
a
workflow
object
in
Oracle
Workflow
Builder,
you
have
the
option
of
protecting
the
object
at
a
certain
level.
An
object's
protection
level
helps
control
whether
other
users
can
modify
the
object
based
on
their
access
levels,
by
allowing
only
users
with
an
access
level
equal
to
or
lower
than
the
object's
protection
level
to
modify
the
object.
The
protection
level
that
you
set
for
an
object
is
dependent
on
the
setting
of
the
Lock
at
this
Access
Level
check
box
and
on
your
current
access
level.
If
you
check
the
Lock
at
this
Access
Level
check
box,
the
protection
level
for
the
object
is
set
to
your
current
access
level.
Users
with
an
access
level
higher
than
your
current
access
level
will
not
be
able
to
modify
the
object.
These
users
will
see
a
small
lock
on
the
workflow
object's
icon,
indicating
that
the
object
can
be
used
but
not
modified.
For
users
with
an
access
level
equal
to
or
lower
than
your
current
access
level,
the
customization
level
for
the
object
will
determine
whether
they
can
modify
the
object.
If
you
do
not
check
the
Lock
at
this
Access
Level
check
box,
the
protection
level
for
the
object
is
set
to
1000.
In
this
case
all
users
who
are
not
restricted
by
the
customization
level
can
modify
the
object.
Customization
Level:
Every
workflow
object,
in
addition
to
having
a
protection
level,
also
records
a
customization
level
when
you
modify
the
object
and
save
it
to
a
database
or
file.
An
object's
customization
level
helps
control
whether
other
users
can
modify
the
object
based
on
their
access
levels,
by
allowing
only
users
with
an
access
level
equal
to
or
higher
than
the
object's
customization
level
to
modify
the
object.
Setting
the
customization
level
ensures
that
a
customizable
object
that
has
been
customized
never
gets
overwritten
during
a
seed
data
upgrade,
because
the
upgrade
always
occurs
with
the
Workflow
Definitions
Loader
operating
at
an
access
level
below
the
customized
object's
customization
level.
We
use
the
Workflow
Definitions
Loader
to
save
or
load
process
definitions
from
a
database
or
flat
file.
We
can
also
define
as
it
is
a
utility
that
moves
workflow
data
between
a
file
and
a
database
and
it
is
also
used
to
upgrade,
upload
and
download
the
workflow
data.
Usage:
Normally
when
we
upgrade
our
database,
we
use
the
Workflow
Definitions
Loader
to
preserve
and
back
up
our
process
definitions
to
a
flat
file.
When
the
database
upgrade
is
completed,
we
use
the
Loader
program
again
to
upload
the
definitions
back
into
your
database.
We
can
also
use
the
Loader
program
to
upgrade
our
database
with
a
newer
version
of
a
process
definition
or
to
transfer
process
definitions
to
other
databases.
Modes:
The
Workflow
Definitions
Loader
automatically
validates
the
process
definition
to
ensure
that
it
conforms
to
specific
process
design
rules.
There
are
four
modes
available
with
WFLOAD.These
are
as
follows:
1)
2)
3)
4)
WFLOAD
Username/password
<access_level>
Y
<Mode>
<File_name>.wft
<Item_Type>
For
Example,
WFLOAD
apps/apps
0
Y
DOWNLOAD
poxwfrqa.wft
POAPWF
Workflow APIs:
Below
are
some
important
APIs
frequently
used
in
workflow
development
/
customizations.
WF_ENGINE
APIs
WF_ENGINE. CreateProcess
WF_ENGINE. SetItemUserKey
WF_ENGINE. GetItemUserKey
WF_ENGINE. SetItemOwner
WF_ENGINE. StartProcess
WF_ENGINE. LaunchProcess
WF_ENGINE. SuspendProcess
WF_ENGINE. AbortProcess
WF_DIRECTORY.
IsPerformer
WF_DIRECTORY.
GetRoleName
WF_DIRECTORY.
SetAdHocUserStatus
WF_DIRECTORY.
SetAdHocRoleStatus
WF_DIRECTORY.
CreateAdHocUser
WF_DIRECTORY. CreateAdHocRole
WF_DIRECTORY.
AddUsersToAdHocRole
WF_DIRECTORY.
RemoveUsersFromAdHocRole
Advance PL/SQL
Ref Cursor:
A
ref
cursor
is
a
variable,
defined
as
a
cursor
type,
which
points
to,
or
references
a
cursor
result.
Ref
cursor
is
a
Data
type.
A
variable
created
using
this
data
type
is
usually
called
as
a
Cursor
Variable.
A
cursor
variable
can
be
associated
with
different
queries
at
run-time.
REF
Cursor
It
may
be
dynamically
opened
or
opened
based
on
logic.
It
can
be
returned
to
a
client.
A
ref
cursor
cannot.
(you
cannot
define
them
OUTSIDE
of
a
procedure
/
function)
A
ref
cursor
can
be
passed
from
subroutine
to
subroutine.
Not
as
good
as
Std.
Cursor
but
need
to
use
in
appropriate
situation.
REF
Cursor
Syntax:
Method1:
Example:
TYPE
rc1
IS
REF
CURSOR;
Obj_rc1
rc1;
Method2:
Obj_rc1
SYS_REFCURSOR;
DECLARE
TYPE
r_cursor
IS
REF
CURSOR;
c_employee
r_cursor;
er
employee%ROWTYPE;
BEGIN
OPEN
c_employee
FOR
select
*
from
employee;
LOOP
FETCH
c_employee
INTO
er;
exit
when
c_employee%NOTFOUND;
dbms_output.put_line(er.ename
||
'
-
'
||
er.position);
END
LOOP;
CLOSE
c_employee;
END;
Ref
Cursor
with
Record
Type:
DECLARE
TYPE
r_cursor
IS
REF
CURSOR;
c_employee
r_cursor;
TYPE
rec_emp
IS
RECORD
(
name
VARCHAR2(40),
position
VARCHAR2(40)
);
er
rec_emp;
BEGIN
---
---
End;
PLSQL
Collections:
A
collection
is
an
ordered
group
of
elements
of
the
same
type.
Each
element
from
the
group
can
be
accessed
using
a
unique
subscript.
The
element
types
of
a
collection
can
be
either
built-in
datatypes,
user-defined
types
or
references
(REFs)
to
object
types.
VARRAY:
Varrays
are
ordered
groups
of
items
of
type
VARRAY.
Varrays
can
be
used
to
associate
a
single
identifier
with
an
entire
collection.
The
maximum
size
of
a
varray
needs
to
be
specified
in
its
type
definition.
The
range
of
values
for
the
index
of
a
varray
is
from
1
to
the
maximum
specified
in
its
type
definition.
If
no
elements
are
in
the
array,
then
the
array
is
atomically
null.
Elements
of
a
varray
cannot
be
accessed
individually
through
SQL,
although
they
can
be
accessed
in
PL/SQL.
The
type
of
the
element
of
a
VARRAY
can
be
any
PL/SQL
type
except
the
following:
o BOOLEAN
o TABLE
o VARRAY
o object
types
with
TABLE
or
VARRAY
attributes
o REF
CURSOR
o NCHAR
o NCLOB
o NVARCHAR2
When
a
varray
is
declared,
a
constructor
with
the
same
name
as
the
varray
is
implicitly
defined.
The
constructor
creates
a
varray
from
the
elements
passed
to
it.
You
can
use
a
constructor
wherever
you
can
use
a
function
call,
including
the
SELECT,
VALUES,
and
SET
clauses.
A
varray
can
be
assigned
to
another
varray,
provided
the
datatypes
are
the
exact
same
type.
Syntax:
TYPE
<type_name>
IS
VARRAY
(10)
OF
NUMBER;
Steps
in
defining
VARRAY:
1. Declare
2. Initialize
using
constructor
3. Allocate
place
to
store
4. Assign
Value
Example:
When
VARRAY
Fails?
VARRAY
is
bounded
i.e.
when
defining
VARRAY
we
define
the
SIZE.
Consider
above
example
we
have
defined
size
as
10,
when
the
SQL
query
pulls
records
more
than
10,
VARRAY
fails.
Any
way
to
increase
size
of
array
dynamically?
Yes,
using
NESTED
TABLE.
Nested
Table
is
Unbounded.
Nested
Table:
An
ordered
group
of
items
of
type
TABLE
are
called
nested
tables.
Nested
tables
can
contain
multiple
columns
and
can
be
used
as
variables,
parameters,
results,
attributes,
and
columns.
They
can
be
thought
of
as
one
column
database
tables.
Rows
of
a
nested
table
are
not
stored
in
any
particular
order.
The
size
of
a
nested
table
can
increase
dynamically,
i.e.,
nested
tables
are
unbounded.
Elements
in
a
nested
table
initially
have
consecutive
subscripts,
but
as
elements
are
deleted,
they
can
have
non-consecutive
subscripts.
Nested
tables
can
be
fully
manipulated
using
SQL,
Pro*C,
OCI,
and
PL/SQL.
The
range
of
values
for
nested
table
subscripts
is
1..2147483647.
To
extend
a
nested
table,
the
built-in
procedure
EXTEND
must
be
used.
To
delete
elements,
the
built-in
procedure
DELETE
must
be
used.
An
uninitialized
nested
table
is
atomically
null,
so
the
IS
NULL
comparison
operator
can
be
used
to
see
if
a
nested
table
is
null.
Oracle
provides
new
operators
such
as
CAST,
THE,
and
MULTISET
for
manipulating
nested
tables.
Syntax:
TYPE
<type_name>
IS
TABLE
OF
NUMBER;
Steps
in
defining
VARRAY:
Same
as
VARRAY.
VARRAY
varrays
have
a
maximum
size
i.e.
bounded
But
not
from
a
varray.
Whereas
varrays
are
always
dense.
Varrays
are
stored
by
Oracle
in-line
(in
the
same
tablespace)
When
stored
in
the
database,
varrays
retain
their
ordering
and
subscripts.
varrays
do
not
indexes
NESTED
TABLE
Nested
tables
are
unbounded
Individual
elements
can
be
deleted
from
a
nested
table.
The
nested
tables
can
be
sparse
Nested
table
data
is
stored
out-of-line
in
a
store
table
which
is
a
system-generated
database
table
associated
with
the
nested
table.
When
stored
in
the
database,
nested
tables
do
not
retain
their
ordering
and
subscripts,
Nested
tables
support
indexes
Syntax:
TYPE
<type_name>
IS
TABLE
OF
NUMBER
INDEX
BY
PLS_INTEGER;
TYPE
<type_name>
IS
TABLE
OF
NUMBER
INDEX
BY
VARCHAR2
(20);
TYPE
<type_name>
IS
TABLE
OF
VARCHAR2
(20)
INDEX
BY
PLS_INTEGER;
Note**
The
Key
is
always
UNIQUE
&
NOT
NULL.
Manipulating
Collections:
This
is
done
by
built-in
functions
and
procedures
called
Collection
Methods.
COUNT
Counts
no.
of
elements
with
values
Example:
V2.COUNT;
LIMIT
Current
Max.
Size
of
Array
Example:
V2.LIMIT
FIRST
Return
1st
element
value.
Example:
V2.FIRST
LAST
Returns
last
element
value.
Example:
V2.LAST
PRIOR
Returns
prior
value
of
current
element
Example:
V2.PRIOR(3)
EXTEND
Extend
the
size
of
the
array.
Example:
V2.EXTEND(5)
TRIM
Decrease
the
size
of
the
array
Example:
V2.EXTEND(5)
DELETE
Deletes
the
value
of
specific
element.
Does
not
apply
to
VARRAY.
EXISTS
(n)
Checks
any
key
available,
if
YES
returns
TRUE
NO
returns
FALSE
NEXT
Returns
next
key
value
Bulk Binding:
What
is
Bulk
Binding?
The
assignment
of
values
to
PL/SQL
variables
in
SQL
statements
is
called
binding.
The
binding
of
an
entire
collection
at
once
is
referred
to
as
bulk
binding.
What
is
the
Advantage?
Bulk
binds
improve
performance
by
minimizing
the
number
of
context
switches
between
PL/SQL
and
SQL
engines
while
they
pass
an
entire
collection
of
elements
(varray,
nested
tables,
index-by
table,
or
host
array)
as
bind
variables
back
and
forth.
Prior
to
Oracle8i,
the
execution
of
every
SQL
statement
required
a
switch
between
the
PL/SQL
and
SQL
engines,
whereas
bulk
binds
use
only
one
context
switch.
How
to
Bulk
Bind?
Bulk
binding
includes
the
following:
1. Input
collections,
use
the
FORALL
statement
2. Output
collections,
use
BULK
COLLECT
clause
Input
Collections:
Input
collections
are
data
passed
from
the
PL/SQL
engine
to
the
SQL
engine
to
execute
INSERT,
UPDATE,
and
DELETE
statements.
FORALL
index
IN
lower_bound..upper_bound
sql_statement;
Note:
If
a
FORALL
statement
fails,
then
database
changes
are
rolled
back
to
an
implicit
savepoint
marked
before
each
execution
of
the
SQL
statement.
Output
Collections:
Output
collections
are
data
passed
from
the
SQL
engine
to
the
PL/SQL
engine
as
a
result
of
SELECT
or
FETCH
statements.
The
keywords
BULK
COLLECT
can
be
used
with
SELECT
INTO,
FETCH
INTO,
and
RETURNING
INTO
clauses.
The
syntax
is
as
follows:
...
BULK
COLLECT
INTO
collection_name[,
collection_name]
....
Example:
SELECT
INTO
Example:
FETCH
INTO
Restriction:
You
cannot
bulk-fetch
from
a
cursor
into
a
collection
of
records.
FAQ
-
PO
Import:
What
should
I
do
if
the
Purchase
Document
Open
Interface
(PDOI)
process
fails?
The
first
thing
is
to
check
for
the
error
message
and
examine
description
from
the
po_interface_errors
table
for
the
given
interface_header_id.
The
description
would
be
self
explanatory.
Accordingly
check
for
the
data
in
the
po_headers_interface,
po_lines_interface
tables
and
correct
them
and
run
the
PDOI
again
with
the
corrected
data.
How
do
I
to
get
the
log
file
for
the
PDOI
run?
To
get
the
log
file
for
the
PDOI
set
the
following
profile
option
to
Yes
:
PO:
Write
server
output
to
file.
How
to
view/purge
and
correct
the
errors
tables?
To
view
the
errors
run
the
following
Report:
Purchasing
interface
error
report.
To
Purge
the
error
and
interface
tables
run
the
following
Reports:
Purge
purchasing
open
interface
processed
data
report.
Purchasing
interface
error
report.
What
do
I
do
when
POs
are
not
being
picked
up
by
PDOI
and
these
records
remain
in
pending
status?
Check
if
the
client
is
a
single
org
instance.
If
you
are
using
single
org
instance
then
you
are
not
supposed
to
populate
the
org_id
in
the
interface
tables.
Org_id
should
be
null
for
a
single
org
implementation.
How
should
I
populate
the
project
and
task
information
in
PDOI?
The
point
to
be
noted
here
is
that
always
populate
project
name
and
task
name
into
the
project
and
task
column
of
po_headers_interface
table
instead
of
project
number
and
task
number.
Based
on
project
name
and
task
name
PDOI
derives
the
project_id
and
task_id
and
inserts
in
the
po_distributions
table.
What
should
I
do
if
PDOI
errors
out
with
"po_pdoi_invalid_dest_type
destination
type
(value
=
expense)
is
not
valid"
for
expense
items?
This
Error
can
arise
out
of
following
situation:
1.
Validation
of
destination
organization
id
fails.
2.
Validation
of
destination
type
code
fails.
3.
Item_id
is
NULL
and
destination_type_code
is
INVENTORY.
4.
Validation
of
destination
subinventory
fails.
5.
Destination_type_code
in
('SHOP
FLOOR','EXPENSE')
and
destination_subinventory
is
not
null.
6.
Validation
of
destination
organization
id
fails.
Can
you
update
documents
via
PDOI
which
were
created
manually?
Yes
we
can
update.
Its
important
to
note
that
it
is
necessary
to
supply
DOCUMENT_NUM
in
the
PO_HEADERS_INTERFACE
when
trying
to
update
blanket
purchase
agreements
which
has
not
been
created
through
the
PDOI.
For
documents
created
through
PDOI,
VENDOR_DOC_NUM
can
be
specified
in
the
PO_HEADERS_INTERFACE.
Why
does
PDOI
error
out
with
"ora-00001
unique
constraint
violation
in
po_headers_u2"?
Though
this
issue
may
occur
rarely
but
it
can
and
its
explained
below:
The
document
number
is
generated
at
the
end
of
the
PDOI
process
before
commit
and
updated
in
the
po_headers
table.
When
the
PDOI
process
starts,
po_headers
table
is
updated
with
poi_temp_po_b679535
value
in
segment1
and
then
later
after
headers
and
lines
are
processed
document_number
is
generated
and
the
po_headers
is
updated
with
that.
Assume
for
any
reason
on
account
of
an
incomplete
transaction
there
is
a
record
in
po_headers
table
with
poi_temp_po_b679535
value
in
segment1
then
PDOI
would
fail
with
the
above
error
message.
So
just
check
for
a
record
in
po_headers
table
with
poi_temp_po_b679535
value
of
the
segment1
for
this
error.
How
is
data
deleted
from
the
interface
tables
after
it
has
been
loaded?
After
successful
creation
of
data
through
PDOI,
the
process_code
in
the
interface
tables
will
be
set
to
'Accepted'.
If
the
Customer
wants
to
delete
this
interface
data
which
is
used
no
more
then
they
need
to
run
the
concurrent
request
'Purge
purchasing
interface
processed
data'.
I
had
loaded
all
the
data
into
the
interface
tables
and
with
process_code
as
'PENDING'.
I
run
the
PDOI
program,
but
data
is
not
getting
picked
up
by
PDOI.
The
records
remain
in
status
'PENDING'
in
the
interface
tables.
What
do
I
do?
Check
whether
client
is
single
org.
If
they
are
single
org,
then
they
should
not
populate
org_id
into
the
interface
tables.
make
the
org_id
null
in
the
interface
tables
and
re-run
PDOI.
I
want
to
update
header
of
a
document.
Is
it
possible
via
PDOI?
No.
It
is
not
possible
to
update
header
information
but
only
line
information
can
be
updated
from
PDOI.
you
can
use
'Replace'
option
to
replace
the
entire
document
in
this
case.
I
am
trying
to
update
item
description
through
PDOI.
The
program
is
updating
the
item
description
at
the
line
level
but
is
not
updating
the
same
at
item
master.
This
is
desired
functionality
of
PDOI.
PDOI
will
only
update
the
item
description
at
the
line
level
and
not
at
item
master.
The
first
thing
is
to
check
for
the
error
message
and
examine
description
from
the
po_interface_errors
table
for
the
given
interface_header_id.
The
description
would
be
self
explanatory.
Accordingly
check
for
the
data
in
the
po_headers_interface,
po_lines_interface
tables
and
correct
them
and
run
the
PDOI
again
with
the
corrected
data.
What
documents
types
are
supported
?
Currently,
the
Purchasing
Document
Open
Interface
can
import
the
following:
Blanket
Quotation
Item
Sourcing
Rules
**
Standard
Purchase
Orders
can
be
imported
through
POXPDOI
in
Release
11i
only
with
one-off
Patch
1550991.
This
one-off
patch
will
also
be
included
in
11i.PO.D.
**
Standard
Purchase
Orders
cannot
be
imported
in
release
11.0.X
**
Blanket
Releases
cannot
be
imported
in
any
release
What
Actions
are
supported?
ORIGINAL
-
create
a
new
document
ADD
-
add
new
lines
onto
an
existing
document
UPDATE
-
update
existing
line
information
for
a
document
REPLACE
-
Replace
the
existing
document
Which
interface
tables
are
involved?
PO_HEADERS_INTERFACE
PO_LINES_INTERFACE
PO_DISTRIBUTIONS_INTERFACE(Used
for
Standard
PO
only)
Which
document
types
can
be
updated
by
using
Purchasing
Document
Open
interface?
Blankets
and
quotations
created
by
Purchasing
Document
Open
Interface.
Blankets
and
quotations
created
manually
via
Oracle
Applications
standard
forms
can
not
be
updated
by
using
Purchasing
Document
Open
Interface
since
there
is
no
value
for
vendor_order_num
for
blanket
or
quote_vendor_quote_number
for
quotation.
In
release
11.5.10,
new
lines
and
associated
shipments
can
be
added
to
an
existing
standard
purchase
order
created
by
PDOI.
Existing
lines
in
the
Standard
PO
can
not
be
updated
using
this
process.
REQ
Import:
Program
Name:
Requisition
Import
Short
Name:
REQIMPORT
Application:
Purchasing
Executable:
POCIRM
Executable
Method:
Spawned
Tables:
Table
Name
Mandatory
Columns
INTERFACE_SOURCE_CODE
PO_REQUISITIONS_INTERFACE_ALL
DESTINATION_TYPE_CODE
AUTHORIZATION_STATUS
PO_REQ_DIST_INTERFACE_ALL
INTERFACE_SOURCE_CODE
INTERFACE_TYPE
PO_INTERFACE_ERRORS
INTERFACE_TRANSACTION_ID
CREATION_DATE
CREATED_BY
LAST_UPDATE_DATE
LAST_UPDATED_BY
Buyer:
Group
requisition
lines
for
each
buyer
name
on
a
separate
requisition
Category:
Group
requisition
lines
for
each
purchasing
category
on
a
separate
requisition
Item:
Group
requisition
lines
for
each
item
on
a
separate
requisition
Location:
Group
requisition
lines
for
each
location
on
a
separate
requisition
Supplier:
Group
requisition
lines
for
each
supplier
name
on
a
separate
Requisition
To
define
a
default
in
the
Purchasing
Options
form,
follow
these
steps:
1.
Using
Purchasing
responsibility,
navigate
to
Setup->
Organizations->
Purchasing
Options
2.
Enter
a
default
value
for
the
'Requisition
Import
Group-By'
field
(under
Document
Defaults)
3.
Save
changes
The
Requisition
Import
process
will
first
look
at
the
group
by
parameter
selected
when
the
process
is
submitted;
should
this
parameter
be
left
blank,
the
system
will
then
look
to
the
group
by
field
residing
in
the
Purchasing
Options
form.
How
does
Requisition
Import
determine
the
grouping
method
for
incoming
pieces
of
data?
The
process
groups
requisitions
following
this
order:
1.
Assign
values
to
REQUISITION_LINE_ID
and
REQ_DISTRIBUTION_ID
2.
Group
requisitions
based
on
the
REQ_NUMBER_SEGMENT1
column.
All
requisitions
with
the
same
NOT
NULL
REQ_NUMBER_SEGMENT1
are
assigned
the
same
REQUISITION_HEADER_ID.
3.
Group
requisitions
based
on
the
GROUP_CODE
column.
All
requisitions
with
the
same
value
in
the
GROUP_CODE
column
are
assigned
the
same
REQUISITION_HEADER_ID.
4.
Group
requisitions
based
on
the
GROUP_BY
parameter,
which
takes
on
the
value
of
DEFAULT_GROUP_BY
if
not
provided.
GROUP_BY
could
be
one
of
the
following:
BUYER,
CATEGORY,
ITEM,
VENDOR,
LOCATION
or
ALL.
How
can
automatically
approve
the
requisitions
I
am
creating?
There
are
two
ways
of
doing
this:
1. You
can
populate
records
in
the
Interface
table
with
status
as
Approved.
In
this
case
the
Approval
process
is
not
called
after
creating
the
requisition.
2. If
you
want
the
requisitions
created
to
go
through
the
approval
process
then
you
have
to
set
Requisition
Import
Parameter
'Initiate
Approval
after
Reqimport'
to
'Yes'
when
Launching
the
Requisition
Import
Concurrent
Program.
3. Yes:
The
PO
Requisition
Approval
workflow
is
launched
automatically
for
requisitions
imported
with
a
status
of
Pre-Approved
or
Incomplete.
No:
The
PO
Requisition
Approval
workflow
is
not
automatically
launched
for
Pre-Approved
or
Incomplete
requisitions.
You
can
submit
these
to
the
approval
process
later,
when
you
select
the
Approve
button
on
the
requisition.
For
the
Requisition
to
be
automatically
Approved,
the
APPROVER_ID
value
from
PO_REQUISITIONS_INTERFACE_ALL
must
have
authority
to
approve
the
requisition.
If
that
user
does
not
have
approval
authority,
then
the
requisition
will
be
in
status
=
In
Process
and
forwarded
up
that
user's
Approval
Hierarchy.
Can
requisition
import
handle
multiple
currencies?
Requisition
Import
is
capable
of
handling
multiple
currencies,
provided
that
all
rate
types
and
currency
conversions
have
been
defined.
Can
requisition
import
handle
multiple
distributions?
Item
Import
:
Import
Overview:
Use
the
item
import
process
to
import
items
from
your
legacy
system
or
PDM
system.
You
can
import
items
from
any
source
into
Oracle
Inventory
and
Oracle
Engineering.
When
you
import
items
through
the
Item
Interface,
you
create
new
items
in
your
Item
Master
organization
or
assign
existing
items
to
additional
organizations.
You
can
specify
values
for
all
the
item
attributes,
or
you
can
specify
just
a
few
attributes
and
let
the
remainder
default
or
remain
Null.
You
can
also
specify
an
item
template
for
each
item
and
inherit
attribute
values
from
the
template.
The
Item
Interface
also
lets
you
import
revision
details,
including
past
and
future
revisions
and
effective
dates.
Program
Name:
Import
Items
Short
Name:
INCOIN
Application:
Inventory
Executable:
INCOIN
Executable
Method:
Spawned
Tables:
Table
Name
Mandatory
Columns
MTL_SYSTEM_ITEM_INTERFACE
SET_PROCESS_ID
MTL_ITEM_REVISIONS_INTERFACE
SET_PROCESS_ID
MTL_ITEM_CATEGORIES_INTERFACE
SET_PROCESS_ID
LAST_UPDATE_DATE
MTL_INTERFACE_ERRORS
LAST_UPDATED_BY
CREATION_DATE
CREATED_BY
The
Item
Interface
reads
data
from
two
tables
for
importing
items
and
item
details.
You
use
the
MTL_SYSTEMS_ITEM_INTERFACE
table
for
new
item
numbers
and
all
item
attributes.
This
is
the
main
item
interface
table,
and
can
be
the
only
table
you
choose
to
use.
If
you
are
importing
revision
details
for
new
items,
you
can
use
the
MTL_ITEM_REVISIONS_INTERFACE
table.
A
third
table,
MTL_INTERFACE_ERRORS,
is
used
for
error
tracking
of
all
items
that
the
Item
Interface
fails.
You
can
import
item
categories
using
interface
table
called
as
MTL_ITEM_CATEGORIES_INTERFACE.
Before
you
use
the
Item
Interface,
you
must
write
and
run
a
custom
program
that
extracts
item
information
from
your
source
system
and
inserts
it
into
the
MTL_SYSTEM_ITEM_INTERFACE
table,
and
(if
revision
detail
is
included)
the
MTL_ITEMS_REVISIONS_INTERFACE
table.
After
you
load
the
items
into
these
interface
tables,
you
run
the
Item
Interface
to
import
the
data.
The
Item
Interface
assigns
defaults,
validates
data
you
include,
and
then
imports
the
new
items.
You
may
also
specify
an
item
template
for
each
item
being
imported.
You
must
import
items
into
the
Item
Master
organization
before
you
import
items
into
additional
organizations.
You
can
accomplish
this
by
specifying
only
your
Item
Master
organization
on
first
run
of
the
Item
Interface.
Once
this
has
completed,
you
can
run
the
Item
Interface
again,
this
time
specifying
an
additional
or
all
organizations.
You
can
also
use
the
Item
Interface
to
import
a
single
item
material
cost
and
material
overhead,
and
revision
details.
Now try importing one record and see if you are able to import it successfully.
If
you
see
ORA-1654
happens
while
inserting
records
into
mtl_pending_item_status
table
in
the
log
file
(01654,
00000,
"unable
to
extend
index
%s.%s
by
%s
in
tablespace
%s")
please
use
ALTER
TABLESPACE
ADD
DATAFILE
statement
to
add
one
or
more
files
to
the
tablespace
indicated.
After
importing
items,
they
can't
be
seen
in
the
Master
Item
form.
Querying
the
items
return
"No
Items
Found".
Do
a
SELECT
from
the
mtl_system_items
table
and
confirmed
the
items
are
loaded.
Also
verify
that
the
item
organization
id
is
the
same
as
the
Master
organization.
Check
the
value
of
the
eng_item_flag.
If
value
is
'N'
then
the
item
is
an
inventory
item.
If
the
value
is
'Y'
then
the
item
is
an
engineering
item
and
is
not
viewable
from
inventory.
While
importing
items
from
a
legacy
system
into
the
mtl_transactions_interface
table,
during
the
validation
process
an
error
occurs:
'oracle
error
1426
in
inltev'
cause:
inltev
failed
due
to
ora
-
01426
numeric
overflow.
The
sql
statement
being
executed
at
the
time
of
the
error
was
update
mtl_transaction_interface
mti
set
last_update_date=
sysdate,
l
and
was
executed...
Check
the
script
being
using
to
load
the
transactions
and
make
sure
there
is
no
item
in
the
legacy
system
that
isn't
in
oracle
mtl_system_items
table.
During
the
validation
process
the
transaction
being
loaded
for
an
item
couldn't
find
the
item
in
oracle.
The
error
occurs
because
it
was
trying
to
insert
transactions
for
a
non
existant
item
into
the
system.
-
The
way
it
works
is
that
it
flags
(errors)
that
item
with
an
invalid
item
id,
and
then
the
other
items
following
the
errored
item
(invalid
item
id)
would
have
a
numeric
overflow
error.
If
items
in
the
interface
exist
in
the
item
master
but
not
in
the
child
org
it
was
inserting
into,
this
error
could
also
occur.
When
trying
to
insert
records
in
the
MTL_SYSTEM_ITEMS_INTERFACE_TABLE,
getting
an
error:
ORA-00001:
unique
constraint
(INV.MTL_SYSTEM_ITEMS_INTERFACE_U2)
violated
INVPAGI2.
assign_item_header_recs:
ORA-00001:
unique
constraint
(INV.MTL_SYSTEM_ITEMS_INTERFACE_U2)
violated
This
is
due
to
index
MTL_SYSTEM_ITEMS_INTERFACE_U2
which
is
created
incorrectly
in
systems
setup.
Find
out
how
many
segments
are
used
in
the
System
Items
Key
Flex
Field.
Drop
the
index
MTL_SYSTEM_ITEMS_INTERFACE_U2.
Create
a
new
MTL_SYSTEM_ITEMS_INTERFACE_U2
index
on
ORGANIZATION_ID
and
all
the
enabled
segments
of
the
System
Items
Flex
Field.
Item
import
process
appears
to
have
run
successfully.
There
are
no
errors
in
the
mtl_interface_errors
table.
The
log
file
contains
no
warnings
or
error
messages.
The
System_items_interface
table
still
contains
the
items
and
the
process_flag
is
still
at
1.
It
is
as
if
the
process
has
never
been
run.
Running
the
item
import
process
normally
gives
error
messages
to
indicate
problems
with
validating
new
items.
When
no
errors
appear,
it
can
only
be
due
to
two
reasons.
First,
that
item
import
has
completed
successfully,
or
second,
that
there
is
a
machine
resource
issue/problem.
Item
Import
loads
the
records
from
the
interface
table
into
system
memory
before
it
starts
processing
them.
If
there
are
more
rows
of
data
than
available
memory,
the
item
import
process
will
fail
without
giving
any
error
messages
or
indication
of
a
problem.
Thus
before
loading
data
to
be
imported,
you
need
to
consider
the
memory
resources
available
on
your
system
and
load
the
data
accordingly.
It
is
always
recommended
that
the
user
test
with
1
item
initially,
to
verify
that
it
is
imported
successfully.
User
should
verify
that
the
loaded
data
is
valid
and
will
run
through
the
system
without
errors.
Following
this,
batches
of
100
-
1000
can
be
tested
to
determine
the
most
suitable
batch
size
for
your
system.
The
following
errors
occur
in
the
concurrent
request
log
after
an
unsuccessful
attempt
at
item
import:
INVPOPIF:ORA-6502
pl/sql
numeric
or
value
error
This
error
may
occur
more
than
once.
The
solution
to
this
issue
is
to
disable
any
custom
triggers
that
may
be
on
the
MTL-SYSTEM_ITEMS
table.
Custom
triggers
on
any
of
the
tables
involved
with
item
import
could
potentially
cause
problems.
Also,
check
MTL_ITEM_REVISIONS
(if
importing
item
revisions)
and
MTL_ITEM_CATEGORIES.
If
importing
costs
also
check
for
custom
triggers
on
the
CST_ITEM_COST_DETAILS,
and
CST_ITEM_COSTS
tables.
What
are
the
required
key
flexfields
in
Oracle
Inventory?
The
required
flexfields
for
Oracle
Inventory
and
their
corresponding
codes
appear
in
the
error
statement:
(app-xxxxx
fdfrkf:appl=401
code
=
XXXX
num
=
101):
Key
Flexfield
Code
Owner
Accounting
Flexfield
GL#
GL
System
Items
MSTK
INV
Item
Categories
MCAT
INV
Item
Catalogs
MICG
INV
Stock
Locators
MTLL
INV
Account
Aliases
MDSP
INV
Sales
Orders
MKTS
INV