INV Transaction Upload

Description

INV Transaction Upload creates Oracle Inventory material transactions – issues, receipts, subinventory transfers, inter-organization transfers, and account or account-alias transactions, including lot-, serial-, locator- and project-controlled transactions – from Excel. It stages the transactions and runs the standard inventory transaction processor. It creates new transactions only.

When to use it

  • Bulk-load miscellaneous issues and receipts instead of keying them one at a time.
  • Perform many subinventory or inter-organization transfers at once.
  • Load account and account-alias issues and receipts for adjustments.
  • Transact lot-, serial-, revision- or locator-controlled items in volume.
  • Record project-related inventory transactions in bulk.

Before you start

  • Blitz Report is installed and you are signed in to an Inventory responsibility with access to the organization.
  • The inventory accounting period for your transaction date is open (in both organizations for a transfer).
  • For issues and transfers where negative balances are not allowed, there is enough on-hand quantity.

Choose a template

TemplateUse it for
Default (default)General-purpose transactions.
Project related transactionsProject cost-collection transactions – adds the project, task and expenditure columns.
Serial controlled templateSerialized transfers – adds the to-organization and from/to serial number columns.

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

In Blitz Report, open INV Transaction Upload, choose your template, and set the parameters:

ParameterPurpose
Upload ModeCreate (empty template) or Create, Update (pre-fill items with their on-hand quantity). Default is Create.
Organization CodeThe inventory organization.
Item / Category filtersRestrict which items are pre-filled in Create, Update mode.

Run the upload to download and open the Excel file. Every row creates a new material transaction.

Step 2 – Enter the transactions

On each row enter the Organization, Item, Subinventory (and Locator), the Transaction Type, the Quantity and UOM, and the Transaction Date. For account transactions enter the Account Alias or Transaction Source; for transfers enter the To Org, To Subinv and To Locator; for controlled items enter the Revision, Lot Number or Serial Number.

Step 3 – Validate and Save

Click Validate and Save. This checks for missing required values and runs the upload’s validation (item, control, quantity, period, transfer and account checks), 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 stages your transactions and runs the standard inventory transaction processor. When it finishes, a result report opens showing each row as success or error.

What’s produced

  • Inventory material transactions, with on-hand updated by the transaction processor.
  • A result report listing every row with a status (success or error) and a message.

Common questions

Does it update or reverse existing transactions?
No. It only creates new material transactions. To reverse, enter an offsetting transaction.

Why does Upload Mode Create give me an empty sheet?
By design – Create always opens a blank template. Use Create, Update to pre-fill items with their on-hand quantity.

When do I use Account Alias versus Transaction Source?
For an Account issue or Account receipt use Account Alias; for an Account alias issue or Account alias receipt use Transaction Source.

My transfer row failed asking for a To-Subinventory.
Transfer transactions need a destination – To Subinv (and To Locator for locator-controlled items); inter-org transfers also need a valid To Org.

Why was my issue rejected for quantity?
The organization disallows negative balances and your quantity exceeded the on-hand for that item and subinventory.

Troubleshooting

MessageCauseWhat to do
Invalid organization / item not assigned to the organizationOrg not accessible, or item not enabled or assigned in it.Pick an org you have access to and an item enabled in it.
No open period found for the transaction dateNo open inventory period covers the date in the source (or destination) org.Use a date inside an open period, or open the period.
Transaction quantity cannot be more than on-handThe org blocks negative balances and quantity exceeds on-hand.Reduce the quantity or receive stock first.
Revision / lot / serial / locator is requiredThe item is controlled and the controlling value is missing.Supply the required control value.
To-subinventory / to-locator / transfer organization required or invalidA transfer is missing or has an invalid destination, or the item is not enabled in the destination org.Enter a valid destination and ensure the item exists there.
select 
null action_,
null status_,
null message_,
null modified_columns_,
to_number(null) source_line_id,
to_number(null) source_header_id,
ood.organization_code organization,
msiv.concatenated_segments item,
msiv.description,
moqd.revision,
moqd.subinventory_code subinventory,
moqd.locator_code locator,
moqd.on_hand_quantity onhand_quantity,
msiv.primary_uom_code uom,
sysdate transaction_date,
to_char(null) transaction_type,
to_char(null) transaction_source,
to_number(null) quantity,
to_char(null) account_alias,
to_char(null) distribution_account,
to_char(null) gl_segment1,
to_char(null) gl_segment2,
to_char(null) gl_segment3,
to_char(null) gl_segment4,
to_char(null) gl_segment5,
to_char(null) gl_segment6,
to_char(null) gl_segment7,
to_char(null) gl_segment8,
to_char(null) gl_segment9,
to_char(null) gl_segment10,
to_char(null) gl_segment11,
to_char(null) gl_segment12,
to_char(null) gl_segment13,
to_char(null) gl_segment14,
to_char(null) gl_segment15,
to_char(null) lpn,
to_char(null) from_serial_number,
to_char(null) to_serial_number, 
to_char(null) transaction_reference,
to_char(null) reason,
to_number(null) transaction_cost,
to_char(null) lot_number,
to_date(null) lot_expiration_date,
to_number(null) lot_quantity,
to_char(null) to_org,
to_char(null) to_subinv,
to_char(null) to_locator,
to_char(null) location,
to_char(null) source_project,
to_char(null) source_task,
to_char(null) expenditure_type,
to_char(null) expenditure_org,
to_char(null) attribute_category,
to_char(null) inv_trx_attribute1,
to_char(null) inv_trx_attribute2,
to_char(null) inv_trx_attribute3,
to_char(null) inv_trx_attribute4,
to_char(null) inv_trx_attribute5,
to_char(null) inv_trx_attribute6,
to_char(null) inv_trx_attribute7,
to_char(null) inv_trx_attribute8,
to_char(null) inv_trx_attribute9,
to_char(null) inv_trx_attribute10,
to_char(null) inv_trx_attribute11,
to_char(null) inv_trx_attribute12,
to_char(null) inv_trx_attribute13,
to_char(null) inv_trx_attribute14,
to_char(null) inv_trx_attribute15,
0 upload_row
from 
org_organization_definitions ood,
mtl_system_items_vl msiv,
(
select 
moqd1.organization_id,
moqd1.inventory_item_id,
moqd1.subinventory_code,
moqd1.revision,
milk.concatenated_segments locator_code,
sum(primary_transaction_quantity) on_hand_quantity
from 
mtl_onhand_quantities_detail moqd1,
mtl_item_locations_kfv milk,
wms_license_plate_numbers wlpn
where 
moqd1.locator_id=milk.inventory_location_id(+) and
moqd1.lpn_id=wlpn.lpn_id(+)
group by 
moqd1.organization_id,
moqd1.inventory_item_id,
moqd1.subinventory_code,
moqd1.revision,
milk.concatenated_segments
) moqd
where
1=1 and
msiv.organization_id=ood.organization_id and
msiv.mtl_transactions_enabled_flag = 'Y' and 
msiv.organization_id=moqd.organization_id(+) and
msiv.inventory_item_id=moqd.inventory_item_id(+)
Parameter NameSQL textValidation
Upload Mode
:p_upload_mode like '%' || xxen_upload.action_update
LOV
Organization Code
ood.organization_code=:organization_code
LOV
Category Set
(msiv.organization_id, msiv.inventory_item_id) in
(
select
mic.organization_id,
mic.inventory_item_id
from
mtl_category_sets_v mcsv,
mtl_item_categories mic
where
mcsv.category_set_name=:p_category_set_name and
mcsv.category_set_id=mic.category_set_id
)
LOV
Category
(msiv.organization_id, msiv.inventory_item_id) in
(
select
mic.organization_id,
mic.inventory_item_id
from
mtl_category_sets_v mcsv,
mtl_categories_kfv mck,
mtl_item_categories mic
where
mck.concatenated_segments=:p_category and
mcsv.category_set_name=:p_category_set_name and
mcsv.category_set_id=mic.category_set_id and
mcsv.structure_id=mck.structure_id and
mck.category_id=mic.category_id
)
LOV
Item
msiv.concatenated_segments=:item
LOV
Item Like
msiv.concatenated_segments like :item_like
Char
Item Description
upper(msiv.description) like upper(:item_descr)
LOV
Item Type
msiv.item_type=xxen_util.lookup_code(:item_type,'ITEM_TYPE',3)
LOV
Item Status
msiv.inventory_item_status_code in (select mis.inventory_item_status_code from mtl_item_status mis where mis.inventory_item_status_code_tl=:item_status)
LOV
BOM Item Type
msiv.bom_item_type=:bom_item_type
LOV Oracle
Contract Item Type
msiv.contract_item_type_code=xxen_util.lookup_code(:contract_item_type,'OKB_CONTRACT_ITEM_TYPE',0)
LOV
Make or Buy
msiv.planning_make_buy_code=xxen_util.lookup_code(:make_or_buy,'MTL_PLANNING_MAKE_BUY',700)
LOV
Buyer
msiv.buyer_id=:buyer_id
LOV
Planner
msiv.planner_code=:planner_code
LOV
Inventory Planning Method
msiv.inventory_planning_code=xxen_util.lookup_code(:inventory_planning_method,'MTL_MATERIAL_PLANNING',700)
LOV
Cross Reference Type
msiv.inventory_item_id in (
select
mcrb.inventory_item_id
from
mtl_cross_references_b mcrb
where
mcrb.cross_reference_type=:cross_reference_type and
sysdate between nvl(mcrb.start_date_active,sysdate) and nvl(mcrb.end_date_active,sysdate)
)
LOV
Cross Reference
msiv.inventory_item_id in (
select
mcrb.inventory_item_id
from
mtl_cross_references_b mcrb
where
mcrb.cross_reference=:cross_reference and
mcrb.cross_reference_type=:cross_reference_type and
sysdate between nvl(mcrb.start_date_active,sysdate) and nvl(mcrb.end_date_active,sysdate)
)
LOV
Locator Control
msiv.location_control_code=xxen_util.lookup_code(:locator_control,'MTL_LOCATION_CONTROL',700)
LOV
Serial Number Control
msiv.serial_number_control_code=xxen_util.lookup_code(:serial_number_control,'MTL_SERIAL_NUMBER',700)
LOV
Lot Control
msiv.lot_control_code=xxen_util.lookup_code(:lot_control,'MTL_LOT_CONTROL',700)
LOV
Revision Control
msiv.revision_qty_control_code=xxen_util.lookup_code(:revision_control,'MTL_ENG_QUANTITY',700)
LOV