MTL_PARAMETERS:
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 organization’s item master organization (MASTER_ORGANIZATION_ID) and costing
organization (COST_ORGANIZATION_ID) are maintained here. You specify which
manufacturing calendar the organization will use (CALENDAR_CODE), as well as the set of
exceptions to this calendar (CALENDAR_EXCEPTION_SET_ID).
NEGATIVE_INV_RECEIPT_CODE indicates whether this organization will allow negative
balances in inventory. It is used in the transaction system to ensure, for example, that you do not
over–issue a particular item (if you have indicated that negative balances are not allowed). For
lot number and serial number auto–generation, you can specify whether you want the numbers
generated from defaults defined at the organization level or the item level
(LOT_NUMBER_GENERATION,
SERIAL_NUMBER_GENERATION). You can also specify uniqueness constraints for lot
numbers (LOT_NUMBER_UNIQUENESS) and serial numbers (SERIAL_NUMBER_TYPE).
Among the accounting defaults that can be defined here are valuation accounts, receiving
accounts, profit and loss accounts, and inter– organization transfer accounts.
MTL_SYSTEM_ITEMS:
This is the definition table for items. This table holds the definitions for inventory items,
engineering items, and purchasing items. You can specify item–related information in fields such
as: Bill of Material, Costing, Purchasing, Receiving, Inventory, Physical attributes, General
Planning, MPS/MRP Planning, Lead times, Work in Process, Order Management, and Invoicing.
You can set up the item with multiple segments, since it is implemented as a flex field. Use the
standard ’System Items’ flex field that is shipped with the product to configure your item flex
field. The flex field code is MSTK.
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.
Each item is initially defined in an item master organization. The user then assigns the item to
other Organizations that need to recognize this item; a row is inserted for each new organization
the item is assigned to. Many columns such as MTL_TRANSACTIONS_ENABLED_FLAG and
BOM_ENABLED_FLAG correspond to item attributes defined in then
MTL_ITEM_ATTRIBUTES table.
Two units of measure columns are stored in MTL_SYSTEM_ITEMS table.
PRIMARY_UOM_CODE is the 3–character unit that is used throughout Oracle Manufacturing.
PRIMARY_UNIT_OF_MEASURE is the 25–character unit that is used throughout Oracle
Purchasing. 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 descriptions in multiple languages. DESCRIPTION
column in the base table (MTL_SYSTEM_ITEMS_B) is for backward compatibility and is
maintained in the installation base language only.
MTL_ITEM_STATUS
MTL_ITEM_STATUS 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. The
status optionally controls several ’function controlling’ item attributes (status attributes) and can
be used to disable the item from being used by the various application products.
MTL_UNITS_OF_MEASURE_TL
MTL_UNITS_OF_MEASURE_TL 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 table is also used by Oracle Purchasing, Oracle
Order Management and Oracle Shipping Execution.
MTL_ITEM_LOCATIONS
MTL_ITEM_LOCATIONS is the definition table for stock locators. The associated
attributes describe which sub inventory this locator belongs to, what the locator physical capacity
is, etc. The locator is a key flex field. The Flex field Code is MTLL.
Entity 2
MTL_ITEM_CATEGORIES
This table stores the item assignments to categories within a category set. For each category
assignment, this table stores the item, the category set, and the category. Items may be assigned
to multiple categories and category sets but may be assigned to only one category in a given
category set. This table may be populated through the Master Items and Organization items
windows. It can also be populated by performing item assignments when a category set is
defined. It is also populated when an item is transferred from engineering to manufacturing.
MTL_CATEGORIES
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. The item category is a key
flexfield with a flex code of MCAT. Item categories now support multilingual category
description. MLS is implemented with a pair of tables: MTL_CATEGORIES_B and
MTL_CATEGORIES_TL.
MTL_CATEGORY_SETS
MTL_CATEGORY_SETS 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. Only categories with the same
flexfield structure may be grouped into a category set.
CONTROL_LEVEL defines whether the category set is controlled at the item or the
item/organization level. When an item is assigned to an item level category set within the item
master organization, the category set assignment is propagated to all other organizations to which
the item is assigned. VALIDATE_FLAG defines whether a list of valid categories is used to
validate category usage within the set. Validated category sets will not allow item assignment to
the category set in categories that are not in a predefined list of valid categories. 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.
Entity 3
MTL_DEMAND
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.
Summary Demand is direct demand for an item within an organization on a particular date that
originated from a particular source. For hard reservations there are several columns which further
define what the reservation is for, and where it is being placed. Currently, four sources of
demand are supported, Sales Order, Account, Account Alias, and User Defined transaction
sources. Five different types of demand, denoted by DEMAND_TYPE column, are used. These
five types are Model, Option Class, Option Item, Configuration Item and Derived. Derived
demand rows are inserted by BOM Demand exploder when demanded item has ATP table
components. Each Summary Demand row may be associated with one or more Reservation
rows. Reservation may be placed against a particular inventory control (that is, specific sub
inventory, locator, revision and lot) against any sources (that is, Account Number, Account
Alias, Sales Order or even User–Defined sources). Each Summary Demand row may be
associated with one or more detailed rows. The detailed rows consist of reservations and open
demand. A reservation row represents a firm promise of a supply source. Currently, two types of
reservation are supported, reservations to on–hand, and reservations to WIP jobs. Each summary
demand row may be associated with one and only one open demand row. Open Demand rows
represent the un–reserved portion of the Summary Demand.
MTL_SECONDARY_INVENTORIES
MTL_SECONDARY_INVENTORIES is the definition table for the sub inventory. A sub
inventory is a section of inventory, i.e., raw material, finished goods, etc. Sub inventories are
assigned to items (in a many to one relationship), indicating a list of valid places where this item
will physically exist in inventory. Other attributes include general ledger accounts, demand
picking order, locator type, availability type, and reservable type. You can also specify whether
this sub inventory is an expense or asset sub inventory (ASSET_INVENTORY) or whether
quantities are tracked (QUANTITY_TRACKED).
MTL_ONHAND_QUANTITIES
MTL_ONHAND_QUANTITIES stores quantity on hand information by control level and
location. MTL_ONHAND_QUANTITIES is maintained as a stack of receipt records, which are
consumed by issue transactions in FIFO order. The quantity on hand of an item at any particular
control level and location can be found by summing TRANSACTION_QUANTITY for all
records that match the criteria. Note that any transactions which are committed to the table
MTL_MATERIAL_TRANSACTIONS_TEMP are considered to be played out as far as quantity
on hand is concerned in Inventory transaction forms. All our Inquiry forms and ABC compile are
only based on MTL_ONHAND_QUANTITIES.MTL_ONHAND_QUANTITIES has two
columns, CREATE_TRANSACTION_ID and UPDATE_TRANSACTION_IDs to join to
MTL_MATERIAL_TRANSACTIONS.TRANSACTION_ID the transactions that created the
row and the transaction that last updated a row.
Entity 4
MTL_TRANSACTION_TYPES
MTL_TRANSACTION_TYPES contains seeded transaction types and the user defined ones.
USER_DEFINED_FLAG will distinguish the two. The table also stores the
TRANSACTION_ACTION_ID and TRANSACTION_SOURCE_TYPE_ID that is associated
with each transaction type.
MTL_MATERIAL_TRANSACTIONS
MTL_MATERIAL_TRANSACTIONS stores a record of every material transaction or cost
update performed in Inventory.
Records are inserted into this table either through the transaction processor or by the standard
cost update program. The columns
TRANSACTION_TYPE_ID, TRANSACTION_ACTION_ID,
TRANSACTION_SOURCE_TYPE_ID, TRANSACTION_SOURCE_ID and
TRANSACTION_SOURCE_NAME describe what the transaction is and against what entity it
was performed. All accounting journal entries for a given transaction are stored in
MTL_TRANSACTION_ACCOUNTS, joined by the column TRANSACTION_ID. If the item is
under lot control then the lot records are stored in
MTL_TRANSACTION_LOT_NUMBERS, joined by the column TRANSACTION_ID. If the
item is under serial control then the serial records are stored in MTL_UNIT_TRANSACTIONS,
joined by the column TRANSACTION_ID. The Item revision and locator control are stored in
the columns REVISION and LOCATOR_ID respectively. Transfer transactions are represented
as two single records in the table. They are related through the column
TRANSFER_TRANSACTION_ID, which contains the TRANSACTION_ID of the other
transaction in the transfer. The index MTL_MATERIAL_TRANSACTIONS_UPGD is used
only during install and upgrade, and will be dropped during the course thereof, but is included
here for completeness.
Posted by Apps Adda at 24.1.08 0 comments
Tuesday, January 22, 2008
Order Management Flow
<!--[if !vml]-->
Order management flow as per Oracle Apps 11.5.10.2 Version....
1. Order Entry
This is first stage when Order in enter in system. When the order is entered it basically
creates a record in order headers and Order Lines table.
oe_order_headers_all (Here the flow_status_code as entered)
oe_order_lines_all (flow_status_code as entered) ( order number is generated)
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
2. Order Booking
This is next stage, when Order which is entered in step 1 is booked and Flow status changed
from Entered to Booked. At this stage, this table gets affected.
oe_order_headers_all (flow_status_code as booked ,booked_flag updated)
oe_order_lines_all (flow_status_code as awaiting shipping, booked_flag updated)
wsh_delivery_details (released_status ‘R’ ready to release,
oe_interfaced_flag=’N’-Not interfaced to OM,
inv_interfaced_flag=’N’ Not interfaced to INV)
Records get inserted into wsh_delivery_assignments but with delivery_id are null.
wsh_new_deliveries (status_code OP open)
Same time, Demand interface program runs in background And insert into inventory tables
mtl_demand
3. Reservation
This step is required for doing reservations SCHEDULE ORDER PROGRAM runs in the
background and quantities are reserved. Once this program get successfully get completed,
the mtl_reservations table get updated.
4. Pick Release
Ideally pick release is the process which is defined in which the items on the sales order are
taken out from inventory.
Normally pick release SRS program runs in background. Once the program gets completed
these are the table gets affected:
oe_order_lines_all (flow_status_code ‘PICKED’ )
wsh_delivery_details (released_status ‘S’ ‘submitted for release’ )
mtl_txn_request_headers
mtl_txn_request_lines
(move order tables. Here request is generated to move item from saleable to staging
sub inventory)
Mtl_material_transactions_temp (link to above tables through
move_order_header_id/line_id
5. Pick Confirm
Items are transferred from saleable to staging Sub inventory.
mtl_material_transactions
mtl_transaction_accounts
wsh_delivery_details (released_status ‘Y’‘Released’ )
wsh_delivery_assignments
6. Ship Confirm
Here ship confirms interface program runs in background. Data removed from
wsh_new_deliveries
oe_order_lines_all (flow_status_code ‘shipped’)
wsh_delivery_details (released_status ‘C’ ‘Shipped’)
mtl_transaction_interface
mtl_material_transactions(linked through Transaction source header id)
mtl_transaction_accounts
Data deleted from mtl_demand,mtl_reservations
Item deducted from mtl_onhand_quantities
7. Enter Invoice
This is also called Receivables interface that mean information moved to accounting area for
invoicing details.
Invoicing workflow activity transfers shipped item information to Oracle Receivables.
ra_interface_lines_all (interface table into which the data is transferred from order
management)T
Then Auto invoice program imports data from this
Table which get affected into this stage are receivables base table.
o ra_customer_trx_all (cust_trx_id is primary key to link it to trx_lines table and
trx_number is the invoice number)
o ra_customer_trx_lines_all (line_attribute_1 and line_attribute_6 are linked to
header_id (or order number) and line_id of the orders)
8. Complete Line
In this stage order line leval table get updated with Flow status and open flag.
oe_order_lines_all (flow_status_code ‘shipped’, open_flag “N”)
9. Close Order
This is last step of Order Processing. In this stage only oe_order_lines_all table get updated.
These are the table get affected in this step.
oe_order_lines_all (flow_status_code ‘closed’,open_flag “N”)
These are the typically data flow of a order to cash model for a standard order.
Posted by Apps Adda at 22.1.08 0 comments
Monday, January 21, 2008
ORACLE PURCHASING TABLES
PO_REQUISITION_HEADERS_ALL REQUISITION_HEADER_ID,
PREPARER_ID,
SEGMENT1,
SUMMARY_FLAG,
ENABLED_FLAG
Stores information about requisition headers. You need one row for each requisition header you
create. Each row contains the requisition number, preparer, status, and description.SEGMENT1
is the number you use to identify the requisition in forms and reports (unique).
PO_REQUISITION_LINES_ALL
REQUISITION_LINE_ID,
REQUISITION_HEADER_ID,
LINE_NUM,
LINE_TYPE_ID,
CATEGORY_ID,
ITEM_DESCRIPTION,
UNIT_MEAS_LOOKUP_CODE,
UNIT_PRICE,
QUANTITY,
DELIVER_TO_LOCATION_ID,
TO_PERSON_ID,
SOURCE_TYPE_CODE
Stores information about requisition lines, Line number, item number, item category, item
description, need–by date, deliver–to location, item quantities, units, prices, requestor, notes, and
suggested supplier information for the requisition line.
LINE_LOCATION_ID - purchase order shipment line on which you placed the requisition. it is
null if you have not placed the requisition line on a purchase order.
BLANKET_PO_HEADER_ID and BLANKET_PO_LINE_NUM store the suggested blanket
purchase agreement or catalog quotation line information for the requisition line.
PARENT_REQ_LINE_ID contains the REQUISITION_LINE_ID from the original requisition
line if you exploded or multistoried this requisition line.
PO_HEADERS_ALL PO_HEADER_ID,
AGENT_ID,
TYPE_LOOKUP_CODE,
SEGMENT1,
SUMMARY_FLAG,
ENABLED_FLAG
Information for your purchasing documents.There is six types of documents that use
PO_HEADERS_ALL
RFQs,
Quotations,
Standard purchase orders,
planned purchase orders,
Blanket purchase orders,
Contracts, can uniquely identify a row in PO_HEADERS_ALL using SEGMENT1 and
TYPE_LOOKUP_CODE or using PO_HEADER_ID.BLANKET_TOTAL_AMOUNT for
blanket purchase orders or contract purchase orders.
If we use copy document Oracle Purchasing stores the foreign key to your original RFQ in
FROM_HEADER_ID.
PO_LINES_ALL PO_LINE_ID,
PO_HEADER_ID,
LINE_TYPE_ID,
LINE_NUM
Stores current information about each purchase order line. CONTRACT_NUM reference a
contract purchase order from a standard purchase order line.
PO_VENDORS VENDOR_ID,
VENDOR_NAME,
SEGMENT1,
SUMMARY_FLAG,
ENABLED_FLAG
Information about your suppliers. Purchasing, receiving, payment, accounting, tax, classification,
and general information.
PO_VENDOR_SITES_ALL VENDOR_SITE_ID,
VENDOR_ID,
VENDOR_SITE_CODE
Information about your supplier sites. a row for each supplier site you define. Each row includes
the site address, supplier reference, purchasing, payment, bank, and general information. Oracle
Purchasing uses this information to store supplier address information.
PO_DISTRIBUTIONS_ALL PO_DISTRIBUTION_ID,
PO_HEADER_ID,
PO_LINE_ID,
LINE_LOCATION_ID,
SET_OF_BOOKS_ID,
CODE_COMBINATION_ID,
QUANTITY_ORDERED,
DISTRIBUTION_NUM
Contains accounting distribution information for purchase order shipment line. You need one
row for each distribution line you attach to a purchase order shipment.
There are four types of documents using distributions in Oracle Purchasing:
Standard Purchase Orders,
Planned Purchase Orders,
Planned Purchase Order Releases,
Blanket Purchase Order Releases
Includes the destination type, requestor ID, quantity ordered and deliver–to location for the
distribution.
PO_RELEASES_ALL PO_RELEASE_ID,
PO_HEADER_ID,
RELEASE_NUM,
AGENT_ID,
RELEASE_DATE
Contains information about blanket and planned purchase order releases. You need one row
for each release you issue for a blanket or planned purchase order. Each row includes the buyer,
date, release status, and release number. Each release must have at least one purchase order
shipment
PO_VENDOR_CONTACTS VENDOR_CONTACT_ID,
VENDOR_SITE_ID
Stores information about contacts for a supplier site. You need one row for each supplier
contact you define. Each row includes the contact name and site.
PO_ACTION_HISTORY OBJECT_ID,
OBJECT_TYPE_CODE,
OBJECT_SUB_TYPE_CODE,
SEQUENCE_NUM
Information about the approval and control history of your purchasing documents. There is one
record in this table for each approval or control action an employee takes on a purchase order,
purchase agreement, release, or requisition.
Stores object_id -- Document header identifier,
OBJECT_TYPE_CODE --- Document type,
OBJECT_SUB_TYPE_CODE --Document subtype
SEQUENCE_NUM --Sequence of the approval or control action for a document
PO_REQ_DISTRIBUTIONS_ALL DISTRIBUTION_ID,
REQUISITION_LINE_ID,
SET_OF_BOOKS_ID,
CODE_COMBINATION_ID,
REQ_LINE_QUANTITY,
DISTRIBUTION_NUM
Stores information about the accounting distributions associated with each requisition line.
PO_LINE_LOCATIONS_ALL LINE_LOCATION_ID,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
PO_HEADER_ID,
PO_LINE_ID,
SHIPMENT_TYPE
Contains information about purchase order shipment schedules and blanket agreement price
breaks. You need one row for each schedule or price break you attach to a document line. There
are seven types of documents that use shipment schedules:
RFQs, Quotations, Standard purchase orders, planned purchase orders, planned purchase order
releases, Blanket purchase orders, Blanket purchase order releases each row includes the
location, quantity, and dates for each shipment schedule. Oracle Purchasing uses this information
to record delivery schedule information for purchase orders, and price break information for
blanket purchase orders, quotations and RFQs.
Posted by Apps Adda at 21.1.08 1 comments
Sunday, January 20, 2008
Forms Perspnalization...
In this article, I would like to explain different possibilities of Forms Personalizations. Surely before explaining what can be done, first we will touch base upon what exactly it is.
Why was forms personalization introduced by Oracle in 11.5.10?1. CUSTOM.pll is a programmatic methodology for extending Oracle Forms, even for trivial
tasks.2. Multiple developers working on same CUSTOM.pll could cause version related headaches
Does Forms Personalization replace CUSTOM.pll?Not really, however it does provide an alternative to most common activities for which earlier
one would use CUSTOM.pllForms personalization is driven by the same set of events as that for CUSTOM.pll.
Keep in mind that Oracle Forms Libraries first invoke the Forms Personalization, and then the CUSTOM.pll too for the same set of events.
How do I enable Forms Personalizations?Enable the personalizations using the Help/Diagnostics menu.
<!--[if !vml]--><!--[endif]-->
What are the various components of Forms Personalizations?Different components of Oracle Forms Personalizations are listed below. You begin with recognizing which Triggers/Events that you wish to trap and under what conditions. The
condition can be entered using the syntax as defined in the picture below.<!--[if !vml]--><!--[endif]-->
What does the Action Tab do?Here you will either change form property, or display messages or enable menu etc.
<!--[if !vml]--><!--[endif]-->
Can I modify SQL Query behind the LOV using Forms Personalizations?Of course you can. In the below example I am restricting the LOV to less than 3records by
introducing where rownum <3> <![endif]--><!--[if !vml]--><!--[endif]-->
Can I call a PL/SQL Stored procedure passing it form field variables?Yes, using the syntax below.
Note: You can also invoke FORMS_DDL built-in to perform DDL.<!--[if !vml]--><!--[endif]-->
Can I call BuiltIn's? Indeed, as shown below, you can pick from all the form built-in's as below.
<!--[if !vml]--><!--[endif]-->
You can also call a form function and pass it parameters using Forms Personalizations<!--[if !vml]--><!--[endif]-->
Processing can be aborted if validation were to fail<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
You can invoke equivalent to app_item_property.set_property.I am displaying the Required property below, however you can use this option for all supportable
properties of app_item_property<!--[if !vml]--><!--[endif]-->
You can initialize a global variable. Initialization code is executed if and only if the global variable does not already exist.
Use global variables for passing variables back and forth between two forms.Please do not use Global Variables if your logic is restricted to a Single form itself.
<!--[if !vml]--><!--[endif]-->
You can assign values to form fields using global variable.<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
Using forms personalizations, you can set the Default where clause of the BLOCK too.Note: Don't forget to reset this clause after your desired operation has been finished. This will
facilitate the form to run in standalone mode too.<!--[if !vml]--><!--[endif]-->
Ditto for Order by Clause on block.<!--[if !vml]--><!--[endif]-->
For displaying messages, you can either enter a plain text, or your message can be displayed from the result of a SQL Statement.<!--[if !vml]--><!--[endif]-->
Local variables can be defined and they will be active for throughout the session of the current form.
Use global variables if you wish to share the variable between multiple forms.Below, just for demo, I am setting the local variable to 0.
<!--[if !vml]--><!--[endif]-->
In the below picture, I am checking if local variable is 0 then display a message.<!--[if !vml]--><!--[endif]-->
You can enable SPECIAL1-15 or MENU1-15, to create new menu entries under the Tool menu.<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
As seen below, the above two setups have instantiated the new Menu Items<!--[if !vml]--><!--[endif]-->
SPECIAL16-30 will create entries under Reports menuSPECIAL31-45 will create entries under Actions menu
You can capture the click on those newly created menu items by trapping event MENU1 or SPECIAL1 [or whatever you defined]
<!--[if !vml]--><!--[endif]-->
Posted by Apps Adda at 20.1.08 0 comments
OCA Q'S
QUESTION NO: 1
Examine the data in the EMPLOYEES and DEPARTMENTS tables.
EMPLOYEES
LAST_NAME DEPARTMENT_ID SALARY
Getz 10 3000
Davis 20 1500
King 20 2200
Davis 30 5000
Kochhar 5000
DEPARTMENTS
DEPARTMENT_ID DEPARTMENT_NAME
10 Sales
20 Marketing
30 Accounts
40 Administration
You want to retrieve all employees, whether or not they have matching departments in
the departments table. Which query would you use?
A. SELECT last_name, department_name
FROM employees , departments(+);
B. SELECT last_name, department_name
FROM employees JOIN departments (+);
C. SELECT last_name, department_name
FROM employees(+) e JOIN departments d
ON (e.department_id = d.department_id);
D. SELECT last_name, department_name
FROM employees e
RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id);
E. SELECT last_name, department_name
FROM employees(+) , departments
ON (e.department_id = d.department_id);
F. SELECT last_name, department_name
FROM employees e LEFT OUTER
JOIN departments d ON (e.department_id = d.department_id);
QUESTION NO: 2
Examine the structure of the EMPLOYEES table:
EMPLOYEE_ID NUMBER Primary Key
FIRST_NAME VARCHAR2(25)
LAST_NAME VARCHAR2(25)
Which three statements inserts a row into the table? (Choose three)
A. INSERT INTO employees
VALUES ( NULL, ‘John’,‘Smith’);
B. INSERT INTO employees( first_name, last_name)
VALUES(‘John’,‘Smith’);
C. INSERT INTO employees
VALUES (‘1000’,‘John’,NULL);
D. INSERT INTO employees(first_name,last_name, employee_id)
VALUES ( 1000, ‘John’,‘Smith’);
E. INSERT INTO employees (employee_id)
VALUES (1000);
F. INSERT INTO employees (employee_id, first_name, last_name)
VALUES ( 1000, ‘John’,‘’);
QUESTION NO: 3
You need to give the MANAGER role the ability to select from, insert into, and modify
existing rows in the STUDENT_GRADES table. Anyone given this MANAGER role
should be able to pass those privileges on to others.
Which statement accomplishes this?
A. GRANT select, insert, update
ON student_grades
TO manager;
B. GRANT select, insert, update
ON student_grades
TO ROLE manager;
C. GRANT select, insert, modify
ON student_grades
TO manager
WITH GRANT OPTION;
D. GRANT select, insert, update
ON student_grades
TO manager
WITH GRANT OPTION;
E. GRANT select, insert, update
ON student_grades
TO ROLE manager
WITH GRANT OPTION;
F. F.GRANT select, insert, modify
ON student_grades
TO ROLE manager
WITH GRANT OPTION;
QUESTION NO: 4
Examine the data in the EMPLOYEES table:
LAST_NAME DEPARTMENT_ID SALARY
Getz 10 3000
Davis 20 1500
King 20 2200
Davis 30 5000
…
Which three subqueries work? (Choose three)
A. SELECT *
FROM employees
where salary > (SELECT MIN(salary)
FROM employees
GROUP BY department.id);
B. SELECT *
FROM employees
WHERE salary = (SELECT AVG(salary)
FROM employees
GROUP BY department_id);
C. SELECT distinct department_id
FROM employees
Where salary > ANY (SELECT AVG(salary)
FROM employees
GROUP BY department_id);
D. SELECT department_id
FROM employees
WHERE SALARY > ALL (SELECT AVG(salary)
FROM employees
GROUP BY department_id);
E. SELECT last_name
FROM employees
Where salary > ANY (SELECT MAX(salary)
FROM employees
GROUP BY department_id);
F. SELECT department_id
FROM employees
WHERE salary > ALL (SELECT AVG(salary)
- 7 -
FROM employees
GROUP BY AVG(SALARY));
QUESTION NO: 5
The database administrator of your company created a public synonym called HR for
the HUMAN_RESOURCES table of the GENERAL schema, because many users
frequently use this table.
As a user of the database, you created a table called HR in your schema. What happens
when you execute this query?
SELECT *
FROM HR;
A. You obtain the results retrieved from the public synonym HR created by the database
administrator.
B. You obtain the results retrieved from the HR table that belongs to your schema.
C. You get an error message because you cannot retrieve from a table that has the same
name as a public synonym.
D. You obtain the results retrieved from both the public synonym HR and the HR table
that belongs to your schema, as a Cartesian product.
E. You obtain the results retrieved from both the public synonym HR and the HR table
that belongs to your schema, as a FULL JOIN.
QUESTION NO: 6
Which two statements about views are true? (Choose two.)
A. A view can be created as read only.
B. A view can be created as a join on two or more tables.
C. A view cannot have an ORDER BY clause in the SELECT statement.
D. A view cannot be created with a GROUP BY clause in the SELECT statement.
E. A view must have aliases defined for the column names in the SELECT statement.
QUESTION NO: 7
Examine the description of the EMPLOYEES table:
EMP_ID NUMBER(4) NOT NULL
LAST_NAME VARCHAR2(30) NOT NULL
FIRST_NAME VARCHAR2(30)
DEPT_ID NUMBER(2)
- 9 -
JOB_CAT VARCHARD2(30)
SALARY NUMBER(8,2)
Which statement shows the maximum salary paid in each job category of each
department?
A. SELECT dept_id, job_cat, MAX(salary)
FROM employees
WHERE salary > MAX(salary);
B. SELECT dept_id, job_cat, MAX(salary)
FROM employees
GROUP BY dept_id, job_cat;
C. SELECT dept_id, job_cat, MAX(salary)
FROM employees;
D. SELECT dept_id, job_cat, MAX(salary)
FROM employees
GROUP BY dept_id;
E. SELECT dept_id, job_cat, MAX(salary)
FROM employees
GROUP BY dept_id, job_cat, salary;
QUESTION NO: 8
Management has asked you to calculate the value 12*salary* commission_pct for all the
employees in the EMP table. The EMP table contains these columns:
LAST NAME VARCNAR2(35) NOT NULL
SALARY NUMBER(9,2) NOT NULL
COMMISION_PCT NUMBER(4,2)
- 10 -
Which statement ensures that a value is displayed in the calculated columns for all
employees?
A. SELECT last_name, 12*salary* commission_pct
FROM emp;
B. SELECT last_name, 12*salary* (commission_pct,0)
FROM emp;
C. SELECT last_name, 12*salary*(nvl(commission_pct,0))
FROM emp;
D. SELECT last_name, 12*salary*(decode(commission_pct,0))
FROM emp;
QUESTION NO: 9
Which syntax turns an existing constraint on?
A. ALTER TABLE table_name
ENABLE constraint_name;
B. ALTER TABLE table_name
STATUS = ENABLE CONSTRAINT constraint_name;
C. ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;
D. ALTER TABLE table_name
STATUS ENABLE CONSTRAINT constraint_name;
E. ALTER TABLE table_name
TURN ON CONSTRAINT constraint_name;
- 11 -
F. ALTER TABLE table_name
TURN ON CONSTRAINT constraint_name;
QUESTION NO: 10
Examine the description of the STUDENTS table:
STD_ID NUMBER(4)
COURSE_ID VARCHARD2(10)
START_DATE DATE
END_DATE DATE
Which two aggregate functions are valid on the START_DATE column? (Choose two)
A. SUM(start_date)
B. AVG(start_date)
C. COUNT(start_date)
D. AVG(start_date, end_date)
E. MIN(start_date)
F. MAXIMUM(start_date)
If u want Answers with Explanations give me a
commnets............................
Posted by Apps Adda at 20.1.08 0 comments
Saturday, January 19, 2008
Oracle Apps Interview Question and Answers
Oracle Apps Interview Question and Answers
Hi Folks this is mostly asked interview questions in all MNC’s
<!--[if !supportLists]-->1. <!--[endif]-->How to attach reports in Oracle
Applications ?
Ans: The steps are as follows :
<!--[if !supportLists]--> <!--[endif]-->Design your report.
<!--[if !supportLists]--> <!--[endif]-->Generate the executable file of the report.
<!--[if !supportLists]--> <!--[endif]-->Move the executable as well as source file to the
appropriate product’s folder.
<!--[if !supportLists]--> <!--[endif]-->Register the report as concurrent executable.
<!--[if !supportLists]--> <!--[endif]-->Define the concurrent program for the executable
registered.
<!--[if !supportLists]--> <!--[endif]-->Add the concurrent program to the request group
of the responsibility.
<!--[if !supportLists]-->2. <!--[endif]-->What are different report triggers and what
is their firing sequence?
Ans. : There are five report trigger :
<!--[if !supportLists]--> <!--[endif]-->Before Report
<!--[if !supportLists]--> <!--[endif]-->After Report
<!--[if !supportLists]--> <!--[endif]-->Before Parameter Form
<!--[if !supportLists]--> <!--[endif]-->After Parameter Form
<!--[if !supportLists]--> <!--[endif]-->Between Pages
The Firing sequence for report triggers is
Before Parameter Form – After Parameter Form – Before Report – Between Pages
– After Report.
<!--[if !supportLists]-->3. <!--[endif]-->What is the use of cursors in PL/SQL ? What
is REF Cursor ?
Ans. : The cursor are used to handle multiple row query in PL/SQL. Oracle uses
implicit cursors to handle all it’s queries. Oracle uses unnamed memory spaces to
store data used in implicit cursors, with REF cursors you can define a cursor variable
which will point to that memory space and can be used like pointers in our 3GLs.
<!--[if !supportLists]-->4. <!--[endif]-->What is record group ?
Ans: Record group are used with LOVs to hold sql query for your list of values. The
record group can contain static data as well it can access data from database tables
thru sql queries.
<!--[if !supportLists]-->5. <!--[endif]-->What is a FlexField ? What are Descriptive
and Key Flexfields ?
Ans: An Oracle Applications field made up of segments. Each segment has an
assigned name and a set of valid values. Oracle Applications uses flexfields to
capture information about your organization.
<!--[if !supportLists]-->6. <!--[endif]-->What are Autonomous transactions ? Give a
scenario where you have used Autonomous transaction in your
reports ?
Ans: An autonomous transaction is an independent transaction started by another
transaction, the main transaction. Autonomous transactions let you suspend the
main transaction, do SQL operations, commit or roll back those operations, then
resume the main transaction.
Once started, an autonomous transaction is fully independent. It shares no locks,
resources, or commit-dependencies with the main transaction. So, you can log
events, increment retry counters, and so on, even if the main transaction rolls back.
More important, autonomous transactions help you build modular, reusable
software components. For example, stored procedures can start and finish
autonomous transactions on their own. A calling application need not know about a
procedure's autonomous operations, and the procedure need not know about the
application's transaction context. That makes autonomous transactions less error-
prone than regular transactions and easier to use.
Furthermore, autonomous transactions have all the functionality of regular
transactions. They allow parallel queries, distributed processing, and all the
transaction control statements including SET TRANSACTION.
Scenario : You can use autonomous transaction in your report for writing error
messages in your database tables.
What is the use of triggers in Forms ?
Ans : Triggers are used in forms for event handling. You can write PL/SQL code in
triggers to respond to a particular event occurred in your forms like when user
presses a button or when he commits the form.
The different type of triggers available in forms are :
<!--[if !supportLists]--> <!--[endif]-->Key-triggers
<!--[if !supportLists]--> <!--[endif]-->Navigational-triggers
<!--[if !supportLists]--> <!--[endif]-->Transaction-triggers
<!--[if !supportLists]--> <!--[endif]-->Message-triggers
<!--[if !supportLists]--> <!--[endif]-->Error-triggers
<!--[if !supportLists]--> <!--[endif]-->Query based-triggers
<!--[if !supportLists]-->7. <!--[endif]-->What is the use of Temp tables in Interface
programs ?
Ans : Temporary tables are used in Interface programs to hold the intermediate
data. The data is loaded into temporary tables first and then, after validating
through the PL/SQL programs, the data is loaded into the interface tables.
<!--[if !supportLists]-->8. <!--[endif]-->What are the steps to register concurrent
programs in Apps ?
Ans : The steps to register concurrent programs in apps are as follows :
<!--[if !supportLists]--> <!--[endif]-->Register the program as concurrent executable.
<!--[if !supportLists]--> <!--[endif]-->Define the concurrent program for the executable
registered.
<!--[if !supportLists]--> <!--[endif]-->Add the concurrent program to the request group
of the responsibility
<!--[if !supportLists]-->9. <!--[endif]-->How to pass parameters to a report ? do
you have to register them with AOL ?
Ans: You can define parameters in the define concurrent program form. There is no
need to register the parameters with AOL. But you may have to register the value
sets for those parameters.
<!--[if !supportLists]-->10. <!--[endif]-->Do you have to register feeder programs
of interface to AOL ?
Ans : Yes ! you have to register the feeder programs as concurrent programs to
Apps.
<!--[if !supportLists]-->11. <!--[endif]-->What are forms customization steps ?
Ans: The steps are as follows :
<!--[if !supportLists]--> <!--[endif]-->Copy the template.fmb and Appstand.fmb from
AU_TOP/forms/us. Put it in custom directory. The libraries (FNDSQF, APPCORE,
APPDAYPK, GLOBE, CUSTOM, JE, JA, JL, and VERT) are automatically attached.
<!--[if !supportLists]--> <!--[endif]-->Create or open new Forms. Then customize.
<!--[if !supportLists]--> <!--[endif]-->Save this Form in Corresponding Modules.
<!--[if !supportLists]-->12. <!--[endif]-->How to use Flexfields in reports ?
Ans : There are two ways to use Flexfields in report. One way is to use the views
(table name + ‘_KFV’ or ’_DFV’) created by apps, and use the
concatenated_segments column which holds the concatenated segments of the key
or descriptive flexfields.
Or the other way is to use the FND user exits provided by oracle applications.
Posted by Apps Adda at 19.1.08 0 comments
Labels: Oracle Apps
Oracle Cursor Variables
Cursor variables are like C or Pascal pointers, which hold the memory location (address) of
some item instead of the item itself. So, declaring a cursor variable creates a pointer, not an
item. In PL/SQL, a pointer has datatype REF X, where REF is short for REFERENCE and X
stands for a class of objects. Therefore, a cursor variable has datatype REF CURSOR. To
execute a multi-row query, Oracle opens an unnamed work area that stores processing
information. To access the information, you can use an explicit cursor, which names the
work area. Or, you can use a cursor variable, which points to the work area. Whereas a
cursor always refers to the same query work area, a cursor variable can refer to different
work areas. So, cursors and cursor variables are not interoperable; that is, you cannot use
one where the other is expected