INV Unit Of Measure Upload

Description

INV Unit Of Measure Upload creates and updates Oracle Inventory unit-of-measure classes and their member units of measure, including their descriptive flexfield attributes, from Excel. It is available on Oracle EBS R12.2 and later.

When to use it

  • Mass-create new unit-of-measure classes and their units during implementation or a new-organization rollout.
  • Add additional units of measure to existing classes.
  • Update descriptions or descriptive flexfield attributes on many classes or units at once.
  • Set inactive dates to retire units or classes in bulk.

Before you start

  • Blitz Report is installed and you are signed in to a responsibility that can maintain units of measure.
  • You are on Oracle EBS R12.2 or later.
  • When creating a new class, its first row is the base unit, with the Base UOM Flag set to Yes.

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

In Blitz Report, open INV Unit Of Measure Upload, choose an Upload Mode (Create for an empty template, or Create, Update to download existing data), and optionally restrict to one Unit of Measure Class. Run the upload to download and open the Excel file. Each class and unit is automatically handled as a create or an update depending on whether it already exists.

Step 2 – Enter the classes and units

For a new class, the first row carries the Unit of Measure Class, its Class Description, and the base unit (Unit of Measure and UOM Code) with the Base UOM Flag set to Yes. Add a row per additional unit in the class. Use the Class Inactive Date or UOM Inactive Date to retire a class or unit, and the attribute columns for descriptive flexfield values.

Step 3 – Validate and Save

Click Validate and Save. This checks for missing required values and runs the upload’s validation (for example, that a new class begins with its base unit), then saves the file. Correct anything it flags before continuing.

Step 4 – Upload and view the result

Back in Blitz Report, click Upload and select your saved file. This submits the Blitz Upload request, which creates or updates each class and unit. When it finishes, a result report opens showing each row as success or error.

What’s produced

  • Created and updated unit-of-measure classes and units.
  • A result report listing every row with a status (success or error) and a message.

Common questions

Can I delete a unit or class?
No. There is no delete – set an inactive date to retire it instead.

Why won’t a new class create?
Either you are in Create mode and missing the base-unit first row (Base UOM Flag = Yes), or you are running in Update mode, which cannot create new classes or units.

Can I change the base unit of a class?
No. The base unit of a class cannot be changed once set.

Does this work on R12.1 or 11i?
No. It requires the Oracle R12.2 API; on earlier releases it stops with a not-supported message.

How does it know whether to insert or update?
Automatically – it looks up the class by its code and the unit by its code. No need to set an action.

Troubleshooting

MessageCauseWhat to do
This upload is not supported in releases prior to R12.2The instance is below R12.2 (the Oracle API is not present).Run on an R12.2 or later instance.
The first row for a new class must contain the base unit with Base UOM Flag set to YesA new class is being created but its first row is not the base unit.Make the first row for the class its base unit and set Base UOM Flag to Yes.
New classes or units cannot be created in Update modeWrong Upload Mode for the action.Use Create for new rows, or Create, Update to also update existing rows.
The base UOM for a class cannot be changedAn attempt to change which unit is the base.Leave the base unit as originally defined.
A value exceeds the maximum lengthA value is too long (class, code, unit name or description).Shorten the value to within its limit.
select /*+ push_pred(uom) */
null action_,
null status_,
null message_,
null request_id_,
null modified_columns_,
to_date(null) timestamp_,
:p_upload_mode upload_mode_,
--
mucv.uom_class,
mucv.description class_description,
mucv.disable_date class_inactive_date,
--uom.base_uom_code,
--
decode(muomv.base_uom_flag,'Y','Y',null) base_uom_flag,
muomv.unit_of_measure_tl unit_of_measure,
muomv.uom_code,
muomv.description uom_description,
muomv.disable_date uom_inactive_date,
--
mucv.attribute_category class_attrib_category,
mucv.attribute1 class_attribute1,
mucv.attribute2 class_attribute2,
mucv.attribute3 class_attribute3,
mucv.attribute4 class_attribute4,
mucv.attribute5 class_attribute5,
mucv.attribute6 class_attribute6,
mucv.attribute7 class_attribute7,
mucv.attribute8 class_attribute8,
mucv.attribute9 class_attribute9,
mucv.attribute10 class_attribute10,
mucv.attribute11 class_attribute11,
mucv.attribute12 class_attribute12,
mucv.attribute13 class_attribute13,
mucv.attribute14 class_attribute14,
mucv.attribute15 class_attribute15,
--
muomv.attribute_category uom_attrib_category,
muomv.attribute1 uom_attribute1,
muomv.attribute2 uom_attribute2,
muomv.attribute3 uom_attribute3,
muomv.attribute4 uom_attribute4,
muomv.attribute5 uom_attribute5,
muomv.attribute6 uom_attribute6,
muomv.attribute7 uom_attribute7,
muomv.attribute8 uom_attribute8,
muomv.attribute9 uom_attribute9,
muomv.attribute10 uom_attribute10,
muomv.attribute11 uom_attribute11,
muomv.attribute12 uom_attribute12,
muomv.attribute13 uom_attribute13,
muomv.attribute14 uom_attribute14,
muomv.attribute15 uom_attribute15,
--
mucv.last_update_date class_lud,
mucv.last_updated_by class_luby,
muomv.last_update_date uom_lud,
muomv.last_updated_by uom_luby,
to_number(null) upload_row
from
mtl_uom_classes_vl mucv,
mtl_units_of_measure_vl muomv
where
muomv.uom_class=mucv.uom_class and
1=1
Parameter NameSQL textValidation
Upload Mode
:p_upload_mode like '%' || xxen_upload.action_update
LOV
Unit of Measure Class
uom.uom_class = :p_uom_class
LOV