|
|
转到底部
|
|
In this Document
|
|
Goal |
|
|
Solution |
Applies to:
Oracle Purchasing - Version 12.1.3 and laterOracle Inventory Management - Version 12.1.3 and later
Information in this document applies to any platform.
POXPODIS.pld
POXCOI2B.pls
Goal
To provide an explanation as to how the Destination (Inventory, Expense and Shop Floor) are determined on the PO Distribution Line.
Solution
There are three types of items that can be registered with Inventory:
1 - Expense Items
2 - Inventory Expense Items
3 - Inventory Asset Items
1 - Expense Items have the following attributes checked:
a - Purchasable
b - Purchased
2 - Inventory Expense Items have the following attributes checked:
a - Inventory Item = YES
b - Stockable
c - Transactable
d - Inventory Asset Value = NO
e - Costing Enabled = NO
3 - Inventory Asset Items have the following attributes checked:
a - Inventory item = YES
b - Stockable.
c - Transactable
d - Inventory Asset Value = YES
e - Costing Enabled = YES
The PO Form Library POXPODIS.pld includes code that determines the Destination on the distribution line and three conditions are tested:
- Item Status
- Accrue On Receipt
- Consigned
The Item Status is returned by the procedure get_item_status with is in the package po_items_sv2 contained in the file POXCOI2B.pls
FROM mtl_system_items msi
WHERE msi.organization_id = X_ship_org_id
AND msi.inventory_item_id = X_item_id;
Where:
'O' --> Outside processing item
'E' --> Item stockable in org
'D' --> Item defined but not stockable in org
NULL --> Item not defined in org
The function validate contained in the procedure PO_DISTRIBUTIONS_C1 (POXPODIS.pld) then uses the returned Item Status along with Accrue On Receipt and Consigned flags to determine the Destination:
** If the user DID NOT enter a DESTINATION , or entered DESTINATION = 'INVENTORY':
** - If item is stock enabled and accrue_on_receipt is 'Y', then set the
** DESTINATION TYPE = 'INVENTORY'.
** - Otherwise, the DESTINATION TYPE = 'EXPENSE';
*/
IF (x_destination_type_code IS NULL) OR (x_destination_type_code = 'INVENTORY') THEN
IF (
((x_item_status = 'E') AND (x_accrue_on_receipt_flag = 'Y'))
/* CONSIGNED FPI START */
OR x_consigned_flag = 'Y'
)
/* CONSIGNED FPI END */
THEN
x_destination_type_code := 'INVENTORY';
ELSE
x_destination_type_code := 'EXPENSE';
/*
** if the destination_type_code is reset to EXPENSE, then set the
** subinventory to NULL.
*/
x_destination_subinventory := NULL;
END IF;
If the returned Item Status is 'O' then the Destination will be 'SHOP FLOOR'.
In Summary:
- If the Item is Stockable in the receiving Inventory Org and Accrue On Receipt is set to Yes, then the Destination will be INVENTORY
- If the item is registered in Inventory, but not Stockable in the receiving Inventory Org and is not an Outside Processed item, the Destination can be either INVENTORY or EXPENSE.
