MTL Tables

34
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

Transcript of MTL Tables

Page 1: MTL Tables

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.

Page 2: MTL Tables

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.

Page 3: MTL Tables

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

Page 4: MTL Tables

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

Page 5: MTL Tables

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

Page 6: MTL Tables

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.

Page 7: MTL Tables

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.

Page 8: MTL Tables

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.

Page 9: MTL Tables

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,

Page 10: MTL Tables

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,

Page 11: MTL Tables

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,

Page 12: MTL Tables

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:

Page 13: MTL Tables

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,

Page 14: MTL Tables

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,

Page 15: MTL Tables

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

Page 16: MTL Tables

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.

Page 17: MTL Tables

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]-->

Page 18: MTL Tables

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

Page 19: MTL Tables

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

Page 20: MTL Tables

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

Page 21: MTL Tables

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

Page 22: MTL Tables

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

Page 23: MTL Tables

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;

Page 24: MTL Tables

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)

Page 25: MTL Tables

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.

Page 26: MTL Tables

<!--[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.

Page 27: MTL Tables

<!--[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 ?

Page 28: MTL Tables

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

Page 29: MTL Tables

<!--[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

Page 30: MTL Tables

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