Anda di halaman 1dari 6

Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

Worksheet - Verification Of Purchasing Supply To MRP [ID 1017409.102]


Modified: 07-May-2012 Type: TROUBLESHOOTING Status: PUBLISHED Priority: 2

Applies to:

Oracle Materials Requirement Planning - Version 11.0 to 12.1.3 [Release 11 to 12.1]


Information in this document applies to any platform.

Purpose

To troubleshoot why a requisition or purchase order (PO) and the supply is not visible to MRP.

Troubleshooting Steps

Data flow of supply from PO to MRP.

There are many reasons why your purchasing supply may not be visible to MRP. The worksheet below will help you
determine the cause of your problem. You may be able to affect the repair after you discover where the process
has
failed.

1. The first step involves the initiation of the supply. For the purpose of our discussion, a purchase order or
requisition can be entered through purchasing or released through the planner's workbench. If you are not
releasing requisitions from the planner's workbench, proceed to step three as the
PO_REQUISITIONS_INTERFACE_ALL table is not involved with processing purchasing supply that is coming directly
from the purchasing module.
If you are releasing requisitions from the planner's workbench, and the order is approved without any
compression days, a row is inserted into the table PO_REQUISITIONS_INTERFACE_ALL. This table will act as the
conduit
to MRP. Run the query below for step 1.

If your item is not in this table, proceed to step 3. Otherwise, consider the following:

a) You may need to run Requisition Import, POCIRM, from purchasing (Navigation Path: Purchasing/Reports/Run
- then select Requisition Import)
You might also run the report Requisition Import Exceptions which is accessed via the same navigation path.

b) If the rows are in PO_REQUISITIONS_INTERFACE_ALL, then you most likely have a purchasing issue as
opposed to a Core Manufacturing issue, but proceed to step 2.

c) If the source_organization_id <> org_id of a planned order, and if the item attribute, purchasing enabled, is
set to yes, then your record is a purchase requisition. Otherwise, it is a planned order.

d) Planned orders destined for purchasing will not release through the Planner's Workbench if there are
compression days for the order.

e) Proceed to step two.

1 sur 6 18/10/2012 14:36


Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

select substr(process_flag,1,10) pflag,


item_id,
creation_date cre_date,
source_organization_id source_org,
org_id,
quantity
from po_requisitions_interface_all
where item_id = (select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and organization_id = po_requisitions_interface_all.org_id)
order by 2;

2. Run the query for step 2 to determine your errors. Repair any errors and try your process again. You may need
to contact Oracle Support for assistance in solving your errors.

select distinct substr(error_message,1,80) error_msg


from po_interface_errors;

3. The table, MTL_SUPPLY, stores incoming supply information for an organization. When a purchase
requisition/purchase order with destination = 'INVENTORY' is approved, rows will be inserted into
the table MTL_SUPPLY. The query for step 3 below will help you determine if your supply record made it this
far.

MTL_SUPPLY Facts:

a) There are four different types of supply captured in this table:

1) Requisition
2) Purchase Order
3) Supplier Shipments
4) Intransit (inter-org) Shipments

Types 3 and 4 are distinguished by the presence of data in the intransit_owning_organization_id.

b) Mrp_Primary_Quantity and Mrp_Expected_Delivery_Date are initially null. You can check this by running the
query for step 3 below. If these two columns are populated, it means that the planning manager has touched
this row and passed the information on.

c) The Expected_Delivery_Date is calculated as follows:


(receipt_date + post-processing lead time). This column is included in the query for step 4 below.

2 sur 6 18/10/2012 14:36


Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

Select substr(supply_type_code,1,10) supply_type,


quantity qty,
receipt_date,
expected_delivery_date exp_deliv_dt,
to_organization_id to_org,
to_subinventory to_subinv,
mrp_primary_quantity mrp_p_qty,
substr(mrp_primary_uom,1,10) puom,
mrp_expected_delivery_date mrp_exp_del_dt,
substr(mrp_destination_type_code,1,10) mrpdest,
mrp_to_organization_id mrp_to_org,
mrp_to_subinventory mrp_to_subinv
from mtl_supply
where item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and rowid =
(select min(rowid) from mtl_system_items
where segment1 = '&youritem'));

4. If the trigger MTL_SUPPLY_T is enabled, a row is automatically inserted into the table MRP_RELIEF_INTERFACE.
This will occur for any additions,
deletions or updates to the supply, in MTL_SUPPLY, if the supply rows have a Destination_Type_Code of
inventory.

To check the status of the MTL_SUPPLY_T trigger, run the following query:

select status
from all_triggers
where trigger_name = 'MTL_SUPPLY_T';

If this trigger is enabled, run the query below. Maybe your po supply has a destination_type_code other than
INVENTORY. If this is the case, you need to stop here and repair the problem within the purchasing module.

Select destination_type_code destination


from mtl_supply
where item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and rowid =
(select min(rowid) from mtl_system_items
where segment1 = '&youritem'));

If your po has the correct destination_type_code, run the below. This will determine if your supply record has
stopped at MRP_RELIEF_INTERFACE. If the process_status = 2 (waiting to be processed),
it indicates that the planning manager has not yet processed this row. Verify that the planning manager is
running.

3 sur 6 18/10/2012 14:36


Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

select inventory_item_id,
organization_id,
process_status,
substr(error_message,1,30) error_msg
from mrp_relief_interface
where inventory_item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and organization_id = mrp_relief_interface.organization_id)
order by 2,3;

The planning manager analyzes each row that is process_status 2 and updates the Mrp_* columns in the
MTL_SUPPLY table.

5. Records are then available to the PO_PO_SUPPLY_VIEW. Run the query to verify this.

select substr(po_number,1,10) po_nbr,


substr(DESTINATION_TYPE_CODE,1,10) dtype_code,
PO_REVISION_NUM po_rev,
MRP_EXPECTED_DELIVERY_DATE mrp_exp_deliv_dt,
MRP_PRIMARY_QUANTITY mrp_p_qty,
substr(MRP_PRIMARY_UOM,1,5) mrp_uom,
substr(mrp_destination_type_code,1,10) MRP_DEST_CODE,
MRP_TO_ORGANIZATION_ID mrp_to_org,
MRP_TO_SUBINVENTORY mrp_to_subinv,
ITEM_REVISION item_rev,
EXPECTED_DELIVERY_DATE exp_deliv_dt,
TO_ORGANIZATION_ID to_org_id
from po_po_supply_view
where item_id = (select inventory_item_id
from mtl_system_items
where segment1 = '&your_item_number'
and organization_id = po_po_supply_view.organization_id);

6. The MRP_ITEM_PURCHASE_ORDERS table is based upon your MRP plan and should be regenerated with each
successful execution of the snapshot. This table stores a copy of all active purchase orders, purchase requisitions,
purchase orders in receiving, intransit shipments and intransit receipts for each organization. If your supply
order is not in this view, consider rerunning your plan. You can determine if your supply information is here
by running the query for step number 6 below.

select organization_id,
inventory_item_id,
compile_designator,
order_type,
substr(po_number,1,15) po,
line_id,
revision
from mrp_item_purchase_orders
where inventory_item_id = (select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and organization_id = mrp_item_purchase_orders.organization_id);

7. Records are then inserted into MRP_SCHEDULE_CONSUMPTIONS. This table is populated during schedule relief,
which is performed by the planning manager. The query for step 7, below, will help you determine if your
supply record has been recorded by MRP. The following code meanings will help you determine the type of
relief being performed:

disposition_type meaning:
1 = discrete job
2 = purchase order

4 sur 6 18/10/2012 14:36


Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

3 = sales order
4 = auto-reduce mps
5 = purchase requisition
6 = po in receiving
7 = intransit shipment
8 = intransit receipt
9 = flow schedule

relief_type meaning:
1 = MDS relief
2 = MPS relief

select a.schedule_designator Plan_name,


b.relief_type relief_type,
b.disposition_type Disp_type,
substr(b.line_num,1,10) lnum,
b.order_date ord_date,
b.order_quantity ord_qty,
b.relief_quantity relief_qty,
b.schedule_date sched_dt
from mrp_schedule_dates a, mrp_schedule_consumptions b
where b.disposition_id = (select po_header_id
from po_po_supply_view
where po_number = '&your_po'
and item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and organization_id = a.organization_id))
and b.disposition_type = 2
and a.mps_transaction_id = b.transaction_id

8. MRP_RELIEF_INTERFACE process_status will be 5. If insert into MRP_SCHEDULE_CONSUMPTIONS fails, the


process_status will be 4 in MRP_RELIEF_INTERFACE. Use the query for step 8 below to verify
error free processing into MRP_RELIEF_INTERFACE. If there are rows in the MRP_RELIEF_INTERFACE table with
a process_status = 4, please see Note 103037.1.

select organization_id,
process_status,
substr(error_message,1,30) error_msg
from mrp_relief_interface
where inventory_item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and organization_id = mrp_relief_interface.organization_id)
order by 1,2;

9. MTL_SUPPLY Mrp_ columns should be populated by now. Use the query for step 9 below to verify the complete
processing of your supply order.

5 sur 6 18/10/2012 14:36


Document Display https://support.oracle.com/epmos/faces/ui/km/SearchDocDisplay.jspx?...

Select mrp_primary_quantity mrp_prime_qty,


substr(mrp_primary_uom,1,10) puom,
mrp_expected_delivery_date mrp_exp_deliv_dt,
substr(mrp_destination_type_code,1,10) mrpdest,
mrp_to_organization_id mtp_to_org,
mrp_to_subinventory mrp_to_subinv
from mtl_supply
where item_id =
(select inventory_item_id
from mtl_system_items
where segment1 = '&youritem'
and rowid =
(select min(rowid) from mtl_system_items
where segment1 = '&youritem'));

10. Contact Oracle support if your statement of supply has not processed completely.

ADDITIONAL NOTES and TROUBLESHOOTING:

Requisitions from MRP, Kanban Replenishment and Reorder Point Planning come across as approved requisitions.
This is the standard functionality within the MRP Application. Requisitions from the
Inventory Process, i.e., Replenishment, can be brought across as approved or incomplete depending on the
setting of profile option: INV:RC Requisitions Approval.

If you change an item from BUY to MAKE, and the item is not subsequently planned as a MAKE item, check your
sourcing rules. Sourcing rules over-ride your item attribute. In other words, an item defined as a
MAKE item is treated as a BUY item in MRP if it has a sourcing rule.

Check if the PO Destination is INVENTORY. Then check if the PO is approved. Only on approval does the PO
show as SUPPLY.

Check if planning manager is running.

6 sur 6 18/10/2012 14:36

Anda mungkin juga menyukai