MRP Item Forecast Upload

Description

MRP Item Forecast Upload creates, updates and deletes individual time-phased item forecast entries inside an existing Oracle MRP/ASCP forecast (forecast designator), from Excel, loaded through Oracle’s standard MRP forecast interface.

When to use it

  • Mass-load a new item forecast into an existing forecast from a spreadsheet.
  • Bulk-update quantities, dates, bucket types or comments on existing forecast entries.
  • Delete specific forecast entries (set the quantity to 0) without opening the forecast form per line.
  • Completely replace a forecast’s contents in one pass.
  • Copy entries from one forecast to another.
  • Maintain project/task- or production-line-specific forecast demand in bulk.

Before you start

  • Blitz Report is installed and you are signed in to a responsibility with inventory-organization access.
  • The target forecast (forecast designator) already exists – item forecasts load to a forecast, never directly to a forecast set.
  • Items exist in the organization and are forecastable.

Choose a template

TemplateUse it for
Default (default)The standard template showing all columns, including the read-only Original Quantity.
CreateAn empty sheet to enter brand-new entries (pre-sets Upload Mode to Create).
Create and UpdateDownload existing entries and/or add new ones (pre-sets Upload Mode to Create, Update).
UpdateDownload existing entries and add/update/delete them within the downloaded forecasts (pre-sets Upload Mode to Update).

Step 1 – Choose a template, set the parameters and download

In Blitz Report, open MRP Item Forecast Upload, choose your template, and set the parameters:

ParameterPurpose
Upload ModeCreate, Update, or Create, Update. Default is Create.
Delete Existing ForecastIn Create mode, choose to DELETE all existing entries and replace, or KEEP and update.
Default Bucket Type / Default Workday ControlDefaults for entries that don’t specify their own; overridable per row.
Organization Code / Forecast Set / Forecast Name / Planner / Item / Project / Forecast Date From / ToRestrict which existing entries are downloaded.

Run the upload to download and open the Excel file. Each entry is automatically handled as a create or an update; a quantity of 0 deletes the entry.

Step 2 – Enter the forecast entries

On each row enter the Organization Code, Forecast, Item, Forecast Date and Quantity. Optionally set the Forecast End Date, Bucket Type, Workday Control, Comments, Project/Task and WIP Line Code.

Step 3 – Delete entries (optional)

To remove a forecast entry, set its Quantity to 0. The result report shows “Forecast Entry Deleted” for those rows. To wipe and reload a whole forecast, use Create mode with Delete Existing Forecast set to “DELETE all existing forecast entries and replace”.

Step 4 – Validate and Save

Click Validate and Save. This checks for missing required values and runs the upload’s validation, then saves the file. Correct anything it flags before continuing.

Step 5 – Upload and view the result

Back in Blitz Report, click Upload and select your saved file. This submits the Blitz Upload request, which loads the entries through the MRP forecast interface. When it finishes, a result report opens showing each row as success or error.

What’s produced

  • Created, updated or deleted forecast entries inside the chosen forecast.
  • A result report listing every row with a status (success or error) and a message.

Common questions

How do I delete a forecast entry?
Set its Quantity to 0 and upload; the result shows “Forecast Entry Deleted”.

Can I wipe a whole forecast and reload it?
Yes – run in Create mode with Delete Existing Forecast set to “DELETE all existing forecast entries and replace”. This option is only available in Create mode.

Can I create a forecast (designator) with this upload?
No – the forecast must already exist; this upload only manages the entries within it. Item forecasts also cannot go to a forecast set.

What does Bucket Type default to?
From the selected forecast, else the forecast set, else Days; you can override it per row.

What if my date falls on a non-workday?
The Workday Control value (reject, shift backward, or shift forward) decides; set a default and override per row.

Why can’t I add entries to a forecast I didn’t download?
That’s Update mode (downloaded forecasts only). Use Create or Create, Update to add entries to any accessible forecast.

Troubleshooting

MessageCauseWhat to do
Invalid Forecast NameThe forecast designator doesn’t exist in that organization.Use an existing forecast for the chosen organization.
Invalid ItemThe item is not in the organization, or not forecastable.Pick an item from the dropdown for that organization.
Invalid Bucket Type / Invalid Workday ControlThe value is not a valid choice.Use the dropdown values, or clear the cell to take the run-time default.
A Forecast Set and/or Forecast Name must be entered in Update ModeUpdate mode was run without naming a forecast or set.Enter a Forecast Set and/or Forecast Name and re-run.
Row errors after processingThe MRP forecast interface rejected the entry.Read the message in the result and correct the field, then re-upload.
select
 null action_,
 null status_,
 null message_,
 null request_id_,
 null modified_columns_,
 to_char(null) row_id,
 to_char(null) request_id,
 :p_upload_mode upload_mode,
 to_char(null) source_code,
 :p_replace_forecast replace_forecast,
 --
 mp.organization_code,
 mfds.forecast_set,
 mfds.forecast_designator forecast,
 mfds.description forecast_description,
 msiv.concatenated_segments item,
 msiv.description item_description,
 msiv.primary_uom_code uom,
 msiv.planner_code planner,
 mfd.forecast_date forecast_date,
 mfd.rate_end_date forecast_end_date,
 mfd.original_forecast_quantity original_quantity,
 mfd.current_forecast_quantity quantity,
 mfd.comments,
 xxen_util.meaning(mfd.bucket_type,'MRP_BUCKET_TYPE',700) bucket_type,
 to_char(null) workday_control,
 mfd.confidence_percentage,
 nvl(
  (select ppa.segment1 project_number from pa_projects_all ppa where ppa.project_id = mfd.project_id),
  (select psm.project_number from pjm_seiban_numbers psm where psm.project_id = mfd.project_id)
 ) project,
 (select pt.task_number from pa_tasks pt where pt.task_id = mfd.task_id) task,
 (select wl.line_code from wip_lines wl where wl.line_id = mfd.line_id and wl.organization_id = mfd.organization_id)  wip_line_code,
 mfd.attribute_category,
 mfd.attribute1,
 mfd.attribute2,
 mfd.attribute3,
 mfd.attribute4,
 mfd.attribute5,
 mfd.attribute6,
 mfd.attribute7,
 mfd.attribute8,
 mfd.attribute9,
 mfd.attribute10,
 mfd.attribute11,
 mfd.attribute12,
 mfd.attribute13,
 mfd.attribute14,
 mfd.attribute15,
 mfd.transaction_id
from
 mtl_parameters mp,
 mrp_forecast_designators mfds,
 mrp_forecast_items_v mfiv,
 mrp_forecast_dates mfd,
 mtl_system_items_vl msiv
where
 1=1 and
 mfds.forecast_set        = nvl(:p_forecast_set,mfds.forecast_set) and 
 mfds.organization_id     = mp.organization_id and
 mfds.organization_id     = mfiv.organization_id and
 mfds.forecast_designator = mfiv.forecast_designator and
 mfiv.organization_id     = mfd.organization_id and
 mfiv.forecast_designator = mfd.forecast_designator and
 mfiv.inventory_item_id   = mfd.inventory_item_id and
 mfiv.organization_id     = msiv.organization_id and
 mfiv.inventory_item_id   = msiv.inventory_item_id
Parameter NameSQL textValidation
Upload Mode
:p_upload_mode like '%' || xxen_upload.action_update
LOV
Delete Existing Forecast
 
LOV
Default Bucket Type
:p_bucket_type=:p_bucket_type
LOV
Default Workday Control
:p_workday_control=:p_workday_control
LOV
Organization Code
mp.organization_code=:p_organization_code
LOV
Forecast Set
 
LOV
Forecast Name
mfds.forecast_designator=:p_forecast_designator
LOV
Planner
msiv.planner_code=:p_planner_code
LOV
Item
msiv.concatenated_segments=:p_item
LOV
Project
mfd.project_id in
(
select
ppa.project_id
from
(
select ppa.segment1 project, ppa.project_id, ppa.org_id from pa_projects_all ppa 
union all
select psm.project_number project, psm.project_id, psm.operating_unit org_id from pjm_seiban_numbers psm
) ppa
where
ppa.project = :p_project
)
LOV
Forecast Date From
mfd.forecast_date>=:forecast_date_from
Date
Forecast Date To
mfd.forecast_date<:p_forecast_date_to+1
Date