Marc Slone
Oracle Corporation
There are several ways to find out information A shorter processing interval obviously lessens
about the current status of the Planning this time but requires greater system resources.
Manager. Here are a few suggestions:
How can I change the processing interval?
1. The Messages zone of the Start Planning
Manager form shows the last time that the You cannot change the processing interval for
planning manager started. See figures 1 the Planning Manager while it is running or
and 2 to see an example of this message in pending. Therefore, if you wish to change this
the Messages zone. interval, you should wait for the Planning
Manager to get to a status of Pending, then
2. At the operating system level, check for cancel that pending request.
processes associated with the MRCLIB
executable. At this point you can restart the Planning
Manager with the desired processing interval.
For example, from UNIX, issue the following
command to check for a running MRCLIB Planning Manager Tasks
process:
The Planning Manager performs several tasks
$ ps -ef | grep MRCLIB
critical to the operation of Oracle Master
Scheduling/MRP:
If this does not show any MRCLIB
processes, then the MRP concurrent
• Miscellaneous Cleanup Tasks
manager is not running and hence the
Planning Manager cannot be running. • MDS Relief
• MPS Relief
If you see an MRCLIB process, that does not • Forecast Consumption
necessarily mean that the Planning Manager • Forecast Open Interface
is running, only that the MRP Manager is • Master Schedule Open Interface
running. You will need to perform steps 1, 3
or 4. We will now address the technical aspects of
each of these tasks in detail.
3. Using the System Administrator
responsibility, on the View Concurrent Planning Manager Worker (once-a-day tasks)
Requests screen, query on the program (MRCSCW1)
name Planning Manager. If you have a
request either Running or Pending, then the
The once-a-day-tasks worker is launched
Planning Manager is active.
automatically by the Planning Manager when
each Planning Manager request is first launched.
4. Attempt to start the planning manager using
Therefore, when you start the Planning Manager,
the procedure described in the above
a once-a-day-tasks-worker will be spawned.
section. The form will alert you that the
Then, each day when a new Planning Manager
Planning Manager is already active if that is
request id is generated, an additional once-a-
the case.
day-tasks-worker is spawned.
How do I choose a processing interval?
The Planning Manager Worker (once-a-day-
tasks) is a concurrent program with short name
A longer processing interval simply means that MRCSCW1. The executable associated with
users may have to wait longer to see forecast this concurrent program is MRCSCW.
consumption, master schedule relief, etc.
You can find the request id of the spawned
For example, if the processing interval is set to once-a-day-tasks worker by looking in the
10 minutes, then users may have to wait as long Planning Manager log file:
as 10 minutes to insure that they are seeing an
===================================== For example, if you delete a certain item off of
CONCURRENT MRP MRCSCW1 "OPERATION=7" master schedules so that it has no entry on any
Launched concurrent request 6824 for Daily cleanup master schedule (these entries are stored in the
worker MRP_SCHEDULE_DATES table), then the
===================================== once-a-day-tasks worker removes that item from
Figure 3. Planning Manager spawns once-a-day-tasks
the list of items on a master schedule (this is the
worker
MRP_SCHEDULE_ITEMS table).
Purges MRP Interface Tables
In addition, the once-a-day-tasks worker
performs automatic MPS relief based on the
The following are seven of the tables which are
setting of the item attribute Reduce MPS. This
purged daily by the once-a-day-tasks worker:
feature is used primarily if you do not have
Oracle Work In Process and Oracle Purchasing
• MRP_FORECAST_INTERFACE installed.
• MRP_SCHEDULE_INTERFACE
• MRP_RELIEF_INTERFACE Dividing Up The Work
• MRP_FORM_QUERY
• MRP_WORKBENCH_CRITERIA For each task except the once-a-day-tasks
• MRP_WORKBENCH_QUERY worker, Oracle Master Scheduling/MRP provides
• MRP_LOAD_PARAMETERS two profile options which govern how the
Planning Manager will divide up the rows in need
These tables are purged based on the setting of of processing during any given cycle.
the profile option MRP:Interface Table History
Days. The once-a-day-tasks worker deletes all When performing a particular task, such as
rows from these tables which have a forecast consumption, the Planning Manager
PROCESS_STATUS = 5 (processed first calculates how many rows in the database
successfully) and are older than the number of require processing. Then, the rows are assigned
days specified by this profile option. to individual workers according to the values of
the profile options MRP:Planning Manager
The once-a-day-tasks worker also deletes Batch Size and MRP:Planning Manager Max
records from MRP_MESSAGES_TMP, Workers.
MRP_FORM_QUERY, and (if CRP is installed)
CRP_FORM_QUERY which have been in the The batch size option indicates the number of
table for more than two days. rows per worker to process. A larger value here
means Planning Manager will be more efficient
In addition to the above tables, the once-a-day- since fewer workers will be spawned and
tasks worker purges records from the following therefore you will have fewer processes hitting
tables where there are no records in the the database. A smaller value indicates that any
appropriate foreign key table (shown in particular worker will have more rows to process,
parenthesis): and will take longer to complete.
• For Forecast Consumption, the Planning When an order in Order Entry is demanded,
Manager will spawn Sales Order records are inserted into MTL_DEMAND to
Consumption Workers, short name express demand for that sales order. After a
MRCSOW. shipment is made, the Order Entry concurrent
• For the Forecast Open Interface, the program Inventory Interface inserts records into
Planning Manager will spawn Forecast Load MTL_TRANSACTIONS_INTERFACE for those
Workers, short name MRCFLW. shipments.
• For the Master Schedule Open Interface, the
Planning Manager will spawn Schedule Load In Oracle Inventory, the Transaction Interface
Workers, short name MRCSLW. Manager processes those records out of
• For MDS relief, the Planning Manager will MTL_TRANSACTIONS_INTERFACE, and after
spawn MDS Relief Workers, short name validation inserts material transactions into
MRCMDW. MTL_MATERIAL_TRANSACTIONS. At the
• For MPS relief, the Planning Manager will same time it relieves the demand made by Order
spawn MPS Relief Workers, short name Entry in MTL_DEMAND. At this point, when the
MRCMPW. Transaction Manager recognizes a particular
transaction as a sales order shipment, it invokes
MRP routines to insert rows into the table
The executable associated with every one of
MRP_RELIEF_INTERFACE with a
these workers is MRCSCW. This executable
RELIEF_TYPE = 1 (MDS relief) and a
contains the code to perform any of these
PROCESS_STATUS = 2 (to be processed).
operations.
For MDS relief records in the table
Master Schedule Relief MRP_RELIEF_INTERFACE, the column
DISPOSITION_ID will be the DEMAND_ID for
The Planning Manager is responsible for the the corresponding demand record in
function of master schedule relief. This includes MTL_DEMAND.
shipment relief of master demand schedules
(MDS) and production relief of master production When the Planning Manager next runs, during
schedules (MPS). the MDS Relief phase of the cycle, it will poll the
MRP_RELIEF_INTERFACE table for records in
One of the most common support issues for the above status (RELIEF_TYPE = 1,
Oracle Master Scheduling/MRP involves PROCESS_STATUS = 2) and will perform MDS
purchase requisitions, purchase orders, and Relief for those records.
work in process (WIP) jobs failing to relieve the
appropriate master schedule. The following See the Oracle Master Scheduling/MRP
sections describe the processes by which this Reference Manual for a functional description of
relief works. the MDS Relief process.
MPS Relief
NULL. As a result, the associated sources of
If you define your MPS with Relieve = Yes, and supply would not show up in MRP.
the site-level profile option MRP:Consume MPS
is set to Yes, then purchase requisitions, Remember that you can query for the existence
purchase orders, interorg shipments, and work and status of this trigger using the following SQL
in process jobs will relieve the MPS. statement (connect as MRP):
Once the appropriate MPS entries have been For MPS relief records inserted by one of these
relieved, the Planning Manager will invoke the three WIP triggers into the table
stored procedure MRP_UPDATE_MRP_COLS. MRP_RELIEF_INTERFACE, the column
This will populate the MTL_SUPPLY columns DISPOSITION_ID will contain the
MRP_EXPECTED_DELIVERY_DATE, WIP_ENTITY_ID for the appropriate WIP job.
MRP_PRIMARY_QUANTITY,
MRP_TO_ORGANIZATION_ID, and When the Planning Manager next runs, during
MRP_DESTINATION_TYPE_CODE. the MPS Relief phase of the cycle, it will poll the
MRP_RELIEF_INTERFACE table for records in
If the profile option MRP:Consume MPS is set the above status (RELIEF_TYPE = 2,
to Yes, it is these columns that drive future PROCESS_STATUS = 2) and will perform MPS
operations in Oracle Master Scheduling/MRP. Relief for those records.
Commonly Encountered Problem
However, if the MTL_SUPPLY_T trigger was
missing or disabled, or due to some other error Once the appropriate MPS entries have been
the row in MRP_RELIEF_INTERFACE did not relieved, the Planning Manager will invoke the
get created, the relief process would not have stored procedure MRP_UPDATE_MRP_COLS.
taken place, and these columns would remain This populates the WIP_DISCRETE_JOBS
columns MPS_NET_QUANTITY and First, records for which any of
MPS_SCHEDULED_COMPLETION_DATE. SHIP_TO_SITE_USE_ID,
BILL_TO_SITE_USE_ID, or CUSTOMER_ID is
If the profile option MRP:Consume MPS is set NULL are updated with UPDATED_FLAG = 2
to Yes, it is these columns that drive future (No). These records do not require processing
operations in Oracle Master Scheduling/MRP. in the forecast consumption process because in
Oracle Master Scheduling/MRP, in order to see
However, if the WIP triggers were missing or forecast consumption, on your order and order
disabled, or due to some other error the row in line you must specify a customer as well as a
MRP_RELIEF_INTERFACE did not get created, bill-to and ship-to site.
the relief process would not have taken place,
and these columns would remain NULL. As a Next, the records in the set for which the
result, the associated discrete jobs would not attributes that affect forecast consumption have
show up in MRP. not changed are also updated with
UPDATED_FLAG = 2 (No). These attributes are
Remember that you can query for the existence the REQUIREMENT_DATE,
and status of these triggers using the following PRIMARY_UOM_QUANTITY, CUSTOMER_ID,
SQL statement (connect as MRP): SHIP_TO_SITE_USE_ID,
BILL_TO_SITE_USE_ID,
SELECT trigger_name, status AVAILABLE_TO_MRP, and DEMAND_CLASS.
FROM all_triggers If these attributes have not changed, they do not
WHERE trigger_name require further processing by the Planning
LIKE ‘WIP_DISCRETE_JOBS%’; Manager.
You should get these results: For those records that are left, a row is either
INSERTED or UPDATED in
TRIGGER_NAME STATUS MRP_SALES_ORDER_UPDATES (MSOU) for
---------------------------------------------------------------- this demand row. If, for this sales order line, a
WIP_DISCRETE_JOBS_BRD ENABLED record has already been inserted into MSOU,
WIP_DISCRETE_JOBS_BRI ENABLED then that record is updated with the information
WIP_DISCRETE_JOBS_BRU ENABLED from the MTL_DEMAND record. If a record has
not already been inserted into MSOU, then the
Forecast Consumption record is inserted at this point. The procedure
then marks each of these records in
MTL_DEMAND with UPDATED_FLAG = 2 (No).
If you define your forecast with Consume = Yes,
and the profile option MRP:Consume Forecast Finally, any records in MSOU with a
is set to Yes, then demanded sales orders will SCHEDULE_DATE which is outside the
consume your forecast entries. boundaries of the workday calendar are updated
so that the SCHEDULE_DATE is set to the last
When demand for a sales order is placed, valid workday of the calendar.
records are inserted into MTL_DEMAND for
each sales order line. When originally inserted, At this point the records in MTL_DEMAND have
these records have UPDATED_FLAG = 1 (Yes). been processed, in that you will see
An UPDATED_FLAG of 1 indicates that the row UPDATED_FLAG = 2 (No). Any necessary
requires processing by MRP. After the Planning records have been inserted into MSOU. Now
Manager completes processing this row, the process of forecast consumption takes
UPDATED_FLAG is set to 2 (No). place.
Once the proper forecast entries have been
When the Planning Manager runs, the stored consumed, the procedure
procedure UPDATE_SALES_ORDERS in the
COMPUTE_SALES_ORDER_CHANGES in the MRP_MANAGER_PK package is invoked. This
package MRP_MANAGER_PK is invoked. This procedure will update the MRP_DATE and
procedure operates on the set of records in MRP_QUANTITY columns in MTL_DEMAND for
MTL_DEMAND which have the column the sales orders just processed.
UPDATED_FLAG = 1.
If the profile option MRP:Consume Forecast is WHERE process_status = 3;
set to Yes, then these columns (MRP_DATE and
MRP_QUANTITY) drive future operations done This should only return request id’s of concurrent
by Oracle Master Scheduling/MRP. If the profile requests that are pending or running. If a
is set to No, then the columns request id returned by this query is completed or
REQUIREMENT_DATE and terminated, examine the log file of that
PRIMARY_UOM_QUANTITY are used in MRP. concurrent request to see the manner in which it
ended. Most likely you will find that the request
MRP Open Interfaces was aborted due to a database or system crash.
Oracle Master Scheduling has two open If that is the case, then it is safe to issue the
interfaces: the forecast open interface and the following update statement in SQL*Plus:
master schedule open interface. From a
technical perspective, these open interfaces UPDATE mrp_forecast_interface
operate in the same manner. SET process_status = 2,
request_id = NULL,
In the open interface tables, the column error_message = NULL
PROCESS_STATUS is used to indicate the WHERE process_status = 3
status of each record. The relevant values are AND request_id = <request id from previous
as follows: query>;