INV Stock Locator Upload
INV Stock Locator Upload creates, updates and deletes Oracle Inventory stock locators – the locator combinations within a subinventory – in bulk from Excel. Download the locators in an organization (optionally filtered by subinventory, locator range, type or status), add new ones, edit attributes such as picking and dropping order, capacity, dimensions and coordinates, or flag rows for deletion, then upload.
When to use it
- Mass-create locators for a new or reorganized warehouse or subinventory layout.
- Load many bin, rack or shelf locators that would be tedious to enter in the Stock Locators form.
- Bulk-update locator attributes: picking order, dropping order, capacity (units, weight, volume), dimensions, coordinates, alias or descriptive flexfield values.
- Activate or deactivate locators by setting the inactive date.
- Set a locator’s material status across many locators at once.
- Delete obsolete locators that carry no transaction history.
Before you start
- Blitz Report is installed and you are signed in to an Inventory responsibility with access to the organizations you load.
- The organization has locator control enabled – organizations with locator control “None” have no locators and are not listed.
- The subinventory exists in the organization, and the locator’s segment combination is valid against the Stock Locators flexfield.
Choose a template
The upload offers two templates that differ in how you enter the locator code:
| Template | Use it for |
|---|---|
| Locator by concatenated segment (default) | Enter each locator as a single string – the segments joined by the flexfield delimiter. |
| Locator by individual segments | Enter each locator across separate columns, one per locator flexfield segment. |
Both create the same locators – pick whichever is easier for your data. The default is Locator by concatenated segment.
Step 1 – Choose a template and mode, set the parameters and download
In Blitz Report, open INV Stock Locator Upload, choose your template, and set the Upload Mode and download filters:
- Create – an empty template for adding new locators.
- Create, Update (default) – downloads existing locators so you can edit them, delete them, or add new rows.
| Parameter | Purpose |
|---|---|
| Upload Mode | Create (empty template) or Create, Update (existing locators downloaded for editing). Default is Create, Update. |
| Organization Code | The inventory organization (defaults to your current one; limited to locator-controlled organizations you can access). |
| Subinventory | Optionally restrict the download to one subinventory. |
| Locator / Locator From / Locator To | Download one locator, or a range (Locator To defaults to Locator From). |
| Locator Type | Optionally restrict to one locator type. |
| Status | Optionally restrict to one material status. |
Run the upload to download and open the Excel file. Each row is automatically handled as a create, update or delete, depending on whether the locator already exists and whether you flag it for deletion.
Step 2 – Identify the locator
On each row enter the Organization Code and Subinventory, and the locator itself – as the Concatenated Segments string (in the default template) or across the individual segment columns (in the segments template). The organization, subinventory and segment combination identify the locator and cannot be changed once it exists.
Step 3 – Set attributes, or delete
- Attributes – set the editable fields as needed: Description, Type, Status, Picking Order, Dropping Order, Alias, capacity (Max Units, Max Weight, Max Volume with their units of measure), dimensions, X / Y / Z coordinates, and any descriptive flexfield values.
- Inactive On – set this date to disable the locator (it must be today or later).
- Delete Locator – set this column to Yes to remove an existing locator. Oracle refuses the delete if the locator is referenced by transactions.
Step 4 – Validate and Save
Click Validate and Save. This checks for missing required values and runs any extra validation the upload defines, 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 processes each row independently. When it finishes, a result report opens showing each row as success or error.
What’s produced
- Created, updated or deleted stock locators in the chosen inventory organization.
- A result report listing every row with a status (success or error) and a message – for example “Locator created.”, “Locator updated.”, “No change.”, “Locator deleted.” or a specific validation message.
Common questions
Can I rename a locator or move it to another subinventory?
No. The locator’s organization, subinventory and segment combination are part of its identity and cannot be changed once it exists. To rename, create the new locator and delete the old one (if it has no transactions).
How do I delete a locator?
Download in Create, Update mode, set the Delete Locator column to Yes on the locator’s row, and upload. Oracle rejects the delete if the locator is referenced by transactions – disable it with an inactive date instead.
Why don’t I see all my inventory organizations?
The list shows only organizations your responsibility can access, and only those with locator control enabled. Organizations with locator control “None” never appear because they have no locators.
Which template should I use – concatenated or individual segments?
Whichever is easier for your data. Both create the same locators; they differ only in whether you type the locator as one string or across separate segment columns.
My update row says “No change.” – did anything happen?
No update was needed: none of the editable values differed from what is already stored, so the upload skipped the call. This is normal, not an error.
Troubleshooting
| Message | Cause | What to do |
|---|---|---|
| Organization Code, Subinventory or Concatenated Segments cannot be changed for an existing locator | You edited part of an existing locator’s identity, which is immutable. | Restore the original values. To move a locator, create a new one and delete the old. |
| Concatenated Segments do not match the individual segments | Both the concatenated string and the segment columns were filled with conflicting values. | Use only one representation, or make them agree. |
| Inactive On date must be today or later | The disable date entered is in the past. | Enter today or a future date. |
| Locator does not exist – nothing to delete | Delete was requested for a locator not present in the organization, or it was removed since download. | Re-download a fresh template and retry. |
| Delete rejected – locator is referenced by transactions | The locator has on-hand or transaction history. | Locators with history cannot be deleted; disable them with an inactive date instead. |
select to_char(null) action_, to_char(null) status_, to_char(null) message_, null modified_columns_, milk.inventory_location_id, mp.organization_code, milk.subinventory_code subinventory, fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'ALL','N','VALUE','ALL_ENABLED') concatenated_segments, case when 1<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'1','N','VALUE','ALL_ENABLED') end loc_segment_dsp1, case when 2<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'2','N','VALUE','ALL_ENABLED') end loc_segment_dsp2, case when 3<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'3','N','VALUE','ALL_ENABLED') end loc_segment_dsp3, case when 4<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'4','N','VALUE','ALL_ENABLED') end loc_segment_dsp4, case when 5<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'5','N','VALUE','ALL_ENABLED') end loc_segment_dsp5, case when 6<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'6','N','VALUE','ALL_ENABLED') end loc_segment_dsp6, case when 7<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'7','N','VALUE','ALL_ENABLED') end loc_segment_dsp7, case when 8<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'8','N','VALUE','ALL_ENABLED') end loc_segment_dsp8, case when 9<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'9','N','VALUE','ALL_ENABLED') end loc_segment_dsp9, case when 10<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'10','N','VALUE','ALL_ENABLED') end loc_segment_dsp10, case when 11<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'11','N','VALUE','ALL_ENABLED') end loc_segment_dsp11, case when 12<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'12','N','VALUE','ALL_ENABLED') end loc_segment_dsp12, case when 13<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'13','N','VALUE','ALL_ENABLED') end loc_segment_dsp13, case when 14<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'14','N','VALUE','ALL_ENABLED') end loc_segment_dsp14, case when 15<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'15','N','VALUE','ALL_ENABLED') end loc_segment_dsp15, case when 16<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'16','N','VALUE','ALL_ENABLED') end loc_segment_dsp16, case when 17<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'17','N','VALUE','ALL_ENABLED') end loc_segment_dsp17, case when 18<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'18','N','VALUE','ALL_ENABLED') end loc_segment_dsp18, case when 19<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'19','N','VALUE','ALL_ENABLED') end loc_segment_dsp19, case when 20<=:segment_count then fnd_flex_xml_publisher_apis.process_kff_combination_1('lov','INV','MTLL',101,milk.organization_id,milk.inventory_location_id,'20','N','VALUE','ALL_ENABLED') end loc_segment_dsp20, milk.description, xxen_util.meaning(to_char(milk.inventory_location_type),'MTL_LOCATOR_TYPES',700) type, mmsv.status_code status, milk.picking_order, milk.dropping_order, milk.alias, milk.disable_date, milk.location_maximum_units maximum_units, milk.volume_uom_code volume_uom, milk.max_cubic_area maximum_volume, milk.location_weight_uom_code weight_uom, milk.max_weight maximum_weight, milk.pick_uom_code pick_uom, milk.dimension_uom_code dimension_uom, milk.length dimension_length, milk.width dimension_width, milk.height dimension_height, milk.x_coordinate, milk.y_coordinate, milk.z_coordinate, xxen_util.display_flexfield_context(401,'MTL_ITEM_LOCATIONS',milk.attribute_category) attribute_category, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE1',milk.rowid,milk.attribute1) loc_attribute1, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE2',milk.rowid,milk.attribute2) loc_attribute2, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE3',milk.rowid,milk.attribute3) loc_attribute3, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE4',milk.rowid,milk.attribute4) loc_attribute4, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE5',milk.rowid,milk.attribute5) loc_attribute5, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE6',milk.rowid,milk.attribute6) loc_attribute6, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE7',milk.rowid,milk.attribute7) loc_attribute7, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE8',milk.rowid,milk.attribute8) loc_attribute8, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE9',milk.rowid,milk.attribute9) loc_attribute9, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE10',milk.rowid,milk.attribute10) loc_attribute10, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE11',milk.rowid,milk.attribute11) loc_attribute11, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE12',milk.rowid,milk.attribute12) loc_attribute12, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE13',milk.rowid,milk.attribute13) loc_attribute13, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE14',milk.rowid,milk.attribute14) loc_attribute14, xxen_util.display_flexfield_value(401,'MTL_ITEM_LOCATIONS',milk.attribute_category,'ATTRIBUTE15',milk.rowid,milk.attribute15) loc_attribute15, to_char(null) delete_locator, to_number(null) upload_row from mtl_item_locations_kfv milk, mtl_parameters mp, mtl_material_statuses_vl mmsv where 1=1 and mp.organization_id=milk.organization_id and mp.organization_id in (select oav.organization_id from org_access_view oav where oav.resp_application_id=fnd_global.resp_appl_id and oav.responsibility_id=fnd_global.resp_id) and mmsv.status_id(+)=milk.status_id |
| Parameter Name | SQL text | Validation | |
|---|---|---|---|
| Upload Mode |
| LOV | |
| Organization Code |
| LOV | |
| Subinventory |
| LOV | |
| Locator |
| LOV | |
| Locator From |
| LOV | |
| Locator To |
| LOV | |
| Locator Type |
| LOV | |
| Status |
| LOV |