Examples To howto Insert into Transaction Open Interface

本文提供了Oracle EBS中交易接口的多种场景示例,包括无批次/序列号的收发货、批次控制的子库存转移等,并介绍了License Plate Numbers (LPN) 的使用方法及常见问题解答。
最近在写工单发料的接口,在metalink上找到一篇交易接口的sample,Copy下来,便于查询。

Sample WMS Open Interface Insert Scripts / Examples To howto

Insert into Transaction Open Interface [ID 357535.1]

In this Document
  Goal
  Solution
     Scenario: 1: Account Alias Receipt (NO Lot/Serial)
     Scenario: 2: Account Alias (No Lot/Serial)
     Scenario: 3: Account Alias Receipt (Lot Controled)
     Scenario: 4: Account Alias Receipt (Serial Controlled)
     Scenario: 5: Subinventory Transfer
     Scenario: 6:  Misc. Receipt (with LPN and serial)
     Scenario: 7: Misc. Issue (with LPN and serial)
     Scenario: 8: Container Pack (No Lot/Serial)
     Scenario: 9: Container Unpack from LPN
     Scenario: 10: Direct Org Transfer (No Lot/Serial)
     Scenario: 11: Intransit Org Transfer (No Lot/Serial)
     Scenario: 12: Sales Order Issue (No Lot/Serial)
     Scenario: 13: Account Issue (No Lot/Serial)
     Scenario: 14: Account Receipt (No Lot/Serial)
     Scenario: 15: WIP Assembly Return (No Lot/Serial)
     Scenario: 16: WIP Component Return (No Lot/Serial)
     Scenario: 17: WIP Assembly Completion (No Lot/Serial)
     Scenario: 18: WIP Component Issue
       
     Frequently Asked Questions (FAQ):
     a. How do I know what error has occurred?
     b. What things should I check if I am getting errors?
     c. How do I resubmit the errored transactions?
     d. How to dig into errors more (Debug)?
  References

Applies to:

Oracle Warehouse Management - Version: 11.5.8 to 11.5.10.2 - Release: 11.5 to 11.5.10
Oracle Inventory Management - Version: 11.5.10.0 and later    [Release: 11.5.10 and later]
Information in this document applies to any platform.
This document includes all versions of Oracle EBS 11i and R12
MTL_TRANSACTIONS_INTERFACE - Transaction open interface
MTL_TRANSACTIONS_LOTS_INTERFACE - Lot transaction open interface
MTL_SERIAL_NUMBERS_INTERFACE - Serial number interface

Goal

The purpose of this note is to provide common transaction open interface examples showing how to correctly submit different transactions through the transaction open interface. Some debugging tips are also provided. The following scenarios are addressed:
How can the transaction open interface be used in the following scenarios?

Scenario: 1 Account alias receipt for an item that is neither Lot or Serial control.
Scenario: 2 Account alias issue for an item that is neither Lot or Serial control.
Scenario: 3 Account alias receipt for an item that is Lot controlled.
Scenario: 4 Account alias receipt for an item that is Serial controlled
Scenario: 5 Subinventory transfer for a lot controlled item.
Scenario: 6 Miscellaneous receipt using LPN for an item under serial control
Scenario: 7 Miscellaneous issue using LPN for an item under serial control
Scenario: 8 Container pack item that is not Lot/Serial Control Into LPN
Scenario: 9 Container Un pack from LPN
Scenario: 10: Direct Org Transfer
Scenario: 11: Intransit Org Transfer
Scenario: 12: Sales Order Issue
Scenario: 13: Account Issue
Scenario 14: Account Receipt
Scenario: 15: WIP Assembly Return
Scenario: 16: WIP Component Return
Scenario: 17: WIP Assembly Completion
Scenario: 18: WIP Component Issue

Solution

The transaction open interface process can be used to interface different transactions to do onhand conversions from legacy systems,and other transactions like subinventory transfer , account alias issue / receipts etc.. The transactions could involve Lot and /or serial controlled items and LPN related transactions if the items are packed in LPN’s (ie. if the customer is using Warehouse Management System [WMS]).

In this note we will give examples of some basic transactions that can be performed through the transaction open interface. The 3 main tables that we will concentrate on are:

MTL_TRANSACTIONS_INTERFACE, MTL_TRANSACTION_LOTS_INTERFACE and MTL_SERIAL_NUMBERS_INTERFACE.

Once you have set up the Inventory Concurrent Manager you can launch the Inventory Transactions Manager (INCTCM) through the Interface Managers Window which reads records from the MTL_TRANSACTIONS_INTERFACE table, validates them and moves the successful transactions onto  the MTL_MATERIAL_TRANSACTIONS_TEMP table, and submits the Transaction workers (sub-processes - INCTCW) which then processes these records through inventory. This process consists of data derivation, validation, and transfer of records from the MTL_TRANSCTIONS_INTERFACE,
MTL_TRANSACTIONS_LOTS_INTERFACE and MTL_SERIAL_NUMBERS_INTERFACE tables
into their respective TEMP (temporary) tables from where the transactions processor processes them.

The MTL_TRANSACTIONS_INTERFACE table is the key table through which transactions can be submitted.
The 3 main columns that needs to be set for the transaction processor to process the records are:
LOCK_FLAG = 2
PROCESS_FLAG = 1
TRANSACTION_MODE = 3

The TRANSACTION_INTERFACE_ID column is required for transactions of items under lot or serial control.  The value in the column in this table is used to identify the child rows in the lot or serial
interface tables MTL_TRANSACTION_LOTS_INTERFACE and MTL_SERIAL_NUMBERS_INTERFACE. If the transacted item is under lot control and/or serial control this column maps to MTL_TRANSACTION_LOTS_INTERFACE.TRANSACTION_INTERFACE_ID and MTL_SERIAL_NUMBERS_INTERFACE.TRANSACTION_INTERFACE_ID.
 

For more information on the tables please refer to Oracle Manufacturing API's and Open Interfaces Manual

Scenario: 1: Account Alias Receipt (NO Lot/Serial)

Testing the transaction open interface with minimum columns populated.
Account alias receipt for an item that is neither Lot or Serial control.

We have defined an item, bmw, and we have assigned the item to W1 Cherry hill organization.
We are going to receive 10 quantity into subinventory FGI and locator '1.1.1'.
Below is a SQL statement to check the organization id for organization W1:

 

select organization_code,organization_id from org_organization_definitions
where organization_code = 'W1';


ORG ORGANIZATION_ID
--- ---------------
W1 1884

 

Below is a SQL statement to check the inventory_item_id for out item bmw:

 

select inventory_item_id , segment , organization_id from mtl_system_items_b
where segment = 'bmw'
and organization_id = 1884;

 

 

INVENTORY_ITEM_ID SEGMENT1 ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
10531 bmw 1884

Below is a SQL statement to find out the transaction_type_id for transaction type Account alias receipt:

 

select transaction_type_id,transaction_type_name,description
from mtl_transaction_types
where transaction_type_name = 'Account alias receipt';

 

 

TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
41 Account alias receipt
Receive material against account alias


Below is the script to get the alias account name and the account id it is linked to.
Segment is the account alias name.

 

select disposition_id, description,segment , distribution_account
from mtl_generic_dispositions
where organization_id = 1884;


DISPOSITION_ID DESCRIPTION
-------------- --------------------------------------------------
SEGMENT DISTRIBUTION_ACCOUNT
---------------------------------------- --------------------
147 Default Account
DEFAULT 17021

 

Below is a SQL statement to get the locator id for locator ‘1.1.1’ associated with subinventory ‘FGI’.
 

select inventory_location_id,segment1, segment2, segment3,subinventory_code from mtl_item_locations
    where organization_id = 1884
    and subinventory_code = 'FGI'
    and segment1 = '1'
    and segment2 = '1'
    and segment3 = '1';


 
INVENTORY_LOCATION_ID SEGMENT1
--------------------- ----------------------------------------
SEGMENT2                                 SEGMENT3                                 SUBINVENTO
---------------------------------------- ---------------------------------------- ----------
  &nbsbsp;            1291 1
1                       &nbnbsp;              1                                        FGI

 

Below is a script to find the segments (account c) for the distribution acc021. to account
alias screen in Inventory and verify the account for the alias that is defined:

select code_combination_id, segment1 , segment2, segment3 , segment4 , segment5
from gl_code_combinations
where code_combination_id = 17021 ;


CODE_COMBINATION_ID SEGMENT SEGMENT2 SEGMENT3
------------------- ------------------------- ------------------------- -------------------------
SEGMENT4 SEGMENT5
------------------------- -------------------------
17021 01 520 5250
0000 000

 

Finally here is the complete SQL statement to interface an account alias receipt. The values populated are based on the values obtained :rom the above SQL sttatements.

 

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_source_name,
transaction_source_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Alias Receipt', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
10531 , --inventory item id
'FGI', --From subinventory code
1884, --organization id
' DEFAULT ', --transaction source
147, --transaction source id
10, --transaction quantity
10, --Primary quantity
41, --transaction type id
'10 ', --segment account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000' --segment5 account combination
);

commit;

 

 

Scenario: 2: Account Alias (No Lot/Serial)

Account alias issue for an item that is neither Lot or Serial control.
We are issuing out 10 qty that we had received earlier. The subinventory is FGI and the locator is '1.1.1'. We are using the same account alias ' DEFAULT '.

Below is a SQL statement to find out the transaction_type_id for the transaction type Account alias issue:

 

select transaction_type_id,transaction_type_name,description
from mtl_transaction_types
where transaction_type_name = 'Account alias issue';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
31 Account alias issue
Issue material against account alias

 

Below is the complete SQL statement to interface the account alias issue.
Note that the transaction type id is 3 for account alias issue and as we are issuing 10 quantity out, the transaction quantity is - 10.

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_source_name,
transaction_source_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Alias Issue', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
10531 , --inventory item id
'FGI', --From subinventory code
1884, --organization id
' DEFAULT ', --transaction source
147, --transaction source id
-10, --transaction quantity
10, --Primary quantity
31 , --transaction type id
'01', --segment1 account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000' --segment5 account combination
);

commit;

 

Scenario: 3: Account Alias Receipt (Lot Controled)

Account alias receipt for an item that is Lot controlled.
We have defined an item bmwlot and we have assigned the item to W1 Cherry hill organization. We are going to receive 10 quantity into subinventory FGI and locator '1.1.1'. The lot number we are going to assign is LT0001.

 

select inventory_item_id , segment , organization_id,
auto_lot_alpha_prefi , start_auto_lot_number
from mtl_system_items_b
where segment = 'bmwlot'
and organization_id = 1884;

 

 

INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
AUTO_LOT_ALPHA_PREFIX START_AUTO_LOT_NUMBER
------------------------------ ------------------------------
10532 bmwlot 1884
LT 0001

Below is the complete SQL statement to interface the account alias receipt. The values populated are based on the values obtained from the above SQL statements:

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_source_name,
transaction_source_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5,
transaction_interface_id)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Alias Receipt', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
10532, --inventory item id
'FGI', --From subinventory code
1884, --organization id
' DEFAULT ', --transaction source
147, --transaction source id
10, --transaction quantity
10, --Primary quantity
41 , --transaction type id
'01', --segment1 account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000', --segment5 account combination
999--transaction interface id
);


Insert into mtl_transaction_lots_interface
( transaction_interface_id,
lot_number,
Lot_expiration_date,
transaction_quantity,
last_update_date ,
last_updated_by ,
creation_date ,
created_by )
VALUES (999 ,
'LT00001',
sysdate+100,
10,
sysdate ,
0 ,
sysdate ,
0 );
commit;

 

Scenario: 4: Account Alias Receipt (Serial Controlled)

Account alias receipt for an item that is Serial controlled.
We have defined an item bmwserial and we have assigned the item to W1 Cherry hill organization. We are going to receive 10 quantity into subinventory FGI and locator '1.1.1'. The serial numbers we are going to assign are from SR0001 to SR001:.

 

Select inventory_item_id , segment1 , organization_id,
auto_serial_alpha_prefix, start_auto_serial_number
from mtl_system_items_b
where segment1 = 'bmwserial'
and organization_id = 1884;


INVENTORY_ITEM_ID SEGMENT1 ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
AUTO_SERIAL_ALPHA_PREFIX START_AUTO_SERIAL_NUMBER
------------------------------ ------------------------------
10534 bmwserial 1884
SR 0001

 


Below is the complete SQL statement to interface the account alias receipt. The values populated are based on the values obtained from the above SQL statements:

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_source_name,
transaction_source_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5,
transaction_interface_id)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Alias Receipt', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
10534, --inventory item id
'FGI', --From subinventory code
1884, --organization id
' DEFAULT ', --transaction source
147, --transaction source id
10, --transaction quantity
10, --Primary quantity
41 , --transaction type id
'01', --segment1 account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000', --segment5 account combination
999--transaction interface id
);

Insert into mtl_serial_numbers_interface
(transaction_interface_id,
fm_serial_number,
to_serial_number,
last_update_date,
last_updated_by,
creation_date,
created_by)
values
(999, --transaction interface_id
'SR0001', --from serial number
'SR0010' , --to serial number
sysdate, --last update date
0, --last updated by
sysdate, --creation date
0 --created by
);

commit;

 

Scenario: 5: Subinventory Transfer

Subinventory transfer for a lot controlled item.
We have defined an item bmwlot and we have assigned the item to W1 Cherry hill organization. We have already received 10 quantity into subinventory FGI and locator '1.1.1'. We are planning to move a quantity of 2 from subinventory FGI locator '1.1.1' to subinventory 'TC-LOOSE' and locator 'TCLO.1.1.'

Below is the SQL statement to find the locator id for locator 'TCLO.1.1'

 

select inventory_location_id,segment1, segment2, segment3,subinventory_code from mtl_item_locations
where organization_id = 1884
and subinventory_code = 'TC-LOOSE';


INVENTORY_LOCATION_ID SEGMENT1
--------------------- ----------------------------------------
SEGMENT2    SEGMENT3    SUBINVENTO
---------------------------------------- ---------------------------------------- ----------
1482 TCLO
1     1      TC-LOOSE

 

Below is the SQL statement to find the transaction type id for transaction type 'Subinventory Transfer'

 

select transaction_type_id,transaction_type_name,description
from mtl_transaction_types
where transaction_type_name ='Subinventory Transfer';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
2 Subinventory Transfer
Transfer material between subinventories

 

INSERT INTO MTL_TRANSACTIONS_INTERFACE
(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
transfer_subinventory,
transfer_locator,
transaction_interface_id)
VALUES (
'Ea', --transaction uom
sysdate, --transaction date
'Subinventory Transfer', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
sysdate, --last update date
0 , --last updated by
sysdate, --created date
0 , --created by
10532 , --inventory item id
'FGI', --subinventory code
1884, --organization id
2 , --transaction quantity
2 , --primary quantity
2, --transaction type id
'TC-LOOSE', -- from subinventory
1482, -- from locator id
999); --transaction interface id

INSERT INTO MTL_TRANSACTION_LOTS_INTERFACE
( transaction_interface_id,
lot_number,
Lot_expiration_date,
transaction_quantity,
last_update_date ,
last_updated_by ,
creation_date ,
created_by)
VALUES (999, --transaction interface id
'LT00001', --Lot number
sysdate+100, --Lot expiration date
2, --transaction quantity
sysdate, --last update date
0, --last updated by
sysdate, --creation date
0); --created by

commit;

 

Scenario: 6:  Misc. Receipt (with LPN and serial)

Miscellaneous receipt using LPN for an item under serial control

Overview of License Plate Numbers (LPN):

LPN's are used in the Oracle Warehouse Management System (WMS). Oracle WMS provides full visibility to inventory items that are stored in LPNs. An LPN in Oracle WMS is any object that
exists in a location and holds items. Although LPNs are associated with containers, they do not need to represent a physical identity, such as a box. Thus, a LPN might be defined as just a label or a collection of items. Oracle WMS enables you to track, transact and nest LPNs and their contents.

Using License Plate Numbers:

The Oracle WMS LPN features enable you to do the following:
a. Receive, store, and pick material by LPN
b. View on-hand balances by LPN
c. View contents of LPN, including item number, serial number, quantity, and so on
d. Move many items in a transaction using the LPN
e. Print labels and reports for referencing container contents
f. Track nested LPNs (for example, cartons on a pallet)
G. Pack, unpack, consolidate, split, and update LPNs
h. Reuse empty LPNs

Points to remember when using LPN s (License Plate Numbers):


LPN_ID : the LPN from which an Unpack operation is to be done
TRANSFER_LPN_ID : the LPN to which a Pack operation is to be done
CONTENT_LPN_ID: field is populated for Issue transactions and the TRANSFER_LPN_ID for Receipt transactions (LPN_ID field in MTI should NOT be used for these transactions)

We cannot issue individual serials from an LPN through an Issue transaction. If a Miscellaneous Issue is performed for an LPN the ENTIRE LPN and ALL ITS CONTENTS are issued out. If you want to issue out a single serial from an LPN, then you must first unpack the serial from the LPN by posting an unpack transaction and then issue the individual serial.

In our scenario we will receive item bmwlpnserial into LPN A using a miscellaneous receipt. We are going to receive 10 quantity of the item into subinventory FGI and locator'1.1.1'. We have generated the LPN using Generate LPN program through Warehouse Manger responsibility and the concurrent program is under Other> Requests > Run. You can check the LPN number in the log file of the Generate LPN program.

Below is the SQL statement to check the LPN information then Generate LPN program.

 

select lpn_id,license_plate_number,lpn_content
from wms_license_plate_numbers
where license_plate_number = 'LPN1A';


LPN_ID LICENSE_PLATE_NUMBER LPN_CONTEXT
--------- ------------------------------ -----------
128 LPN1A 5

 

Below is the SQL statement to find out the meaning for the LPN content:

 

select lookup_code,:meaning
from mfg_lookups
where lookup_type ='WMS_LPN_CONTEXT'
order by lookup_code;


LOOKUP_CODE MEANING
----------- --------------------------------------------------------------------------------
1  Resides in Inventory
2  Resides in WIP
3  Resides in Receiving
4  Issued out of Stores
5  Defined but not used
6  Resides in Intransit
7  Resides in Vendor
8  Packing content
9  Loaded to Dock
10 Prepack for WIP
11 Picked

 

We are going to use LPN A which has a content code of  5 - Defined but not used .

 

select transaction_type_id,transaction_type_name,description
from mtl_transaction_types
where transaction_type_name = 'Miscellaneous receipt';

 

 

TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
42 Miscellaneous receipt
Perform miscellaneous receipt of material

 

select inventory_item_id , segment , organization_id
from mtl_system_items_b
where segment1 = 'bmwlpnserial'
and organization_id = 1884;

 

 

INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
11821 bmwlpnserial 1884

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5,
transaction_interface_id,
transfer_lpn_id
)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Miscellaneous Receipt', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
11821 , --inventory item id
'FGI',--From subinventory code
1884, --organization id
10, --transaction quantity
10, --Primary quantity
42, --transaction type id
'01', --segment1 account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000', --segment5 account combination
999, --transaction interface id
128); --transfer lpn id

Insert into mtl_serial_numbers_interface
(transaction_interface_id,
fm_serial_number,
to_serial_number,
last_update_date,
last_updated_by,
creation_date,
created_by)
values
(999, --transaction interface_id
'SR00001' , --from serial number
'SR00010', --to serial number
sysdate, --last update date
0, --last updated by
sysdate, --creation date
0 --created by
);

commit;

 

After the import when you check the content of  LPN1A you will see that the content has changed to Resides in Inventory .

 

select lpn_id,license_plate_number,lpn_content
from wms_license_plate_numbers
where license_plate_number = 'LPN1A';


LPN_ID LICENSE_PLATE_NUMBER LPN_CONTEXT
--------- ------------------------------ -----------
28 LPN1A

 

 

Scenario: 7: Misc. Issue (with LPN and serial)

Miscellaneous issue using LPN for an item under serial control

We are going to perform a miscellaneous issue of the LPN, LPN A and its entire contents that we had received in scenario 6.

 

Select transaction_type_id,transaction_type_name,description from mtl_transaction_types
where transaction_type_name = 'Miscellaneous issue';

 

 

TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
32 Miscellaneous issue
Perform miscellaneous issue of material

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
dst_segment1,
dst_segment2,
dst_segment3,
dst_segment4,
dst_segment5,
transaction_interface_id,
content_lpn_id)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Miscellaneous Issue', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
2 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
11821, --inventory item id
'FGI', --From subinventory code
1884, --organization id
-10,--transaction quantity
10, --Primary quantity
32, --transaction type id
'01', --segment1 account combination
'520', --segment2 account combination
'5250', --segment3 account combination
'0000', --segment4 account combination
'000', --segment5 account combination
999, --transaction interface id
128); --transfer lpn id

 

Insert into mtl_serial_numbers_interface
(transaction_interface_id,
fm_serial_number,
to_serial_number,
last_update_date,
last_updated_by,
creation_date,
created_by)
values
(999, --transaction interface_id
'SR00001' , --from serial number
'SR00010' , --to serial number
sysdate, --last update date
0, --last updated by
sysdate, --creation date
0 ; --created by
);

commit;

 

 

select lpn_id,license_plate_number,lpn_content
from wms_license_plate_numbers
where license_plate_number = 'LPN1A';


LPN_ID LICENSE_PLATE_NUMBER LPN_CONTEXT
--------- ------------------------------ -----------
128 LPN1A 4

 

After the issue transaction when you check the content of LPN LPN1A you will see that the content has changed to 4 Issued out of Stores

 

Scenario: 8: Container Pack (No Lot/Serial)

Container pack item that is not Lot/Serial Control Into LPN

Generated an LPN using Generate LPN program. Now we are going to pack item bmwp which we have defined and has received loose qty (10) in subinventory FGI and locator'1.1.1' into LPN 'LPN21A' .

 

select lpn_id,license_plate_number,lpn_content
from wms_license_plate_numbers
where license_plate_number = 'LPN21A';

 

 

LPN_ID LICENSE_PLATE_NUMBER LPN_CONTEXT
--------- ------------------------------ -----------
135 LPN21A 5

We are going to use LPN21A which has a content 5 Defined but not used

 

select inventory_item_id , segment , organization_id from mtl_system_items_b
where segment = 'bmwp'
and organization_id = 1884;

 

 

INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
11822 bmwp 1884

 

select transaction_type_id,transaction_type_name,description from mtl_transaction_types
where transaction_type_name = 'Container Pack';

 

 

TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- --------------------------------------------------------------------------------
DESCRIPTION
----------------------------------------------------------------------------------------------------
87 Container Pack
Container Pack

The transaction type id for Container Pack is 87

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
transfer_lpn_id
)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Container Pack', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE,--last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
11822, --inventory item id
'FGI', --From subinventory code
1884, --organization id
10, --transaction quantity
10, --Primary quantity
87, --transaction type id
135); --transfer lpn id
commit;

 

 

select license_plate_number,lpn_content,subinventory_code,
locator_id, sealed_status
from wms_license_plate_numbers
where license_plate_number = 'LPN21A';

 

 

LICENSE_PLATE_NUMBER LPN_CONTEXT SUBINVENTO LOCATOR_ID SEALED_STATUS
------------------------------ ----------- ---------- ---------- -------------
LPN21A 1  FGI 1291  2

LPN content is 1 which means Resides in Inventory .

 

Scenario: 9: Container Unpack from LPN

Container Unpack from LPN

We are going to unpack LPN LPN21A which we had packed in scenario 8.

 

select transaction_type_id,transaction_type_name,description from mtl_transaction_types
where transaction_type_name = 'Container Unpack';

 

 

TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME
------------------- ------------------------------------------------------------------------
DESCRIPTION
------------------------------------------------------------------------------------
88 Container Unpack
Container Unpack


The transaction type id for Container UnPack is 88
Note that we are using column LPN_ID and NOT TRANSFER_LPN_ID as we are doing an unpack transaction.

Insert into mtl_transactions_interface(
transaction_uom,
transaction_date,
source_code,
source_line_id,
source_header_id,
process_flag ,
transaction_mode ,
lock_flag ,
locator_id ,
last_update_date ,
last_updated_by ,
creation_date ,
created_by ,
inventory_item_id ,
subinventory_code,
organization_id,
transaction_quantity ,
primary_quantity ,
transaction_type_id ,
lpn_id
)
VALUES (
'Ea', --transaction uom
SYSDATE, --transaction date
'Container UnPack', --source code
99, --source line id
99, --source header id
1, --process flag
3 , --transaction mode
2 , --lock flag
1291 , --locator id
SYSDATE , --last update date
0, --last updated by
SYSDATE , --creation date
0, --created by
11822, --inventory item id
'FGI', --From subinventory code
1884, --organization id
10, --transaction quantity
10, --Primary quantity
88, --transaction type id
135); --lpn id

commit;

 

 

select license_plate_number,lpn_content,subinventory_code,
locator_id, sealed_status
from wms_license_plate_numbers
where license_plate_number = 'LPN21A';

 

 

LICENSE_PLATE_NUMBER LPN_CONTEXT SUBINVENTO LOCATOR_ID SEALED_STATUS
------------------------------ ----------- ---------- ---------- -------------
LPN21A 5 2


You can see that LPN21A content is 5 Defined but not used and the subinventory and locator id is null in wms_license_plate_numbers table.

 

Scenario: 10: Direct Org Transfer (No Lot/Serial)

Direct-org transfer transaction open interface with minimum columns populated.

We have defined an item PISTON7 and we have assigned the item to M1 Seattle Manufacturing organization.
Below is the SQL statement to check organization id for organization M1 .

1)

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for out item PISTON7 .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'PISTON7'
and organization_id = 207;


INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264814 PISTON7 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt.

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'Direct Org Transfer';



TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
3 Direct Org Transfer Direct transfer between two orgs 3

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom, transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5, transfer_organization,
transfer_subinventory)
values (
'KM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264814,
5,
'Ea',
SYSDATE,
3,
3,
13,
17347,
116,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
'209',
'FGI');

COMMIT;

 

 

Scenario: 11: Intransit Org Transfer (No Lot/Serial)

Intransit transaction open interface for an item that is neither lot or serial controlled.

We have defined an item PISTON7 and we have assigned the item to M1 Seattle Manufacturing organization.
Below is the SQL statement to get the organization id for organization M1 .

1)

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for our item PISTON7 .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'PISTON7'
and organization_id = 207;


INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264814 PISTON7 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt.

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'Intransit Shipment';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
21 Intransit Shipment Ship to intransit sourced from Invnetory 21

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5,
transfer_organization,
transfer_subinventory)
values (
'KM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264814,
-5,
'Ea',
SYSDATE,
21,
21,
13,
17347,
120,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
'209',
'FGI');

COMMIT;

 

 

Scenario: 12: Sales Order Issue (No Lot/Serial)

Sales order transaction open interface for an item that is neither lot or serial controlled.

We have defined an assembly WAKEBOARD and we have assigned the item to the M1 Seattle Manufacturing organization. The assembly has components L BOOT and R BOOT.

The setup for this process is as follows:
1. Create Sales Order
2. Release Sales Order
3. Transact the Move Order


1) Below is the SQL statement to get the organization id for organization M1.

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for out item PISTON7 .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'WAKEBOARD'
and organization_id = 207;



INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
1022349 WAKEBOARD 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt.

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'Sales order issue';



TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
33 Sales order issue Ship confirm external sales order 1

4) Below is the SQL statement to find out the transaction_source_id from the mtl_sales_orders table where the transaction_source_id is the sales order id:

select sales_order_id from mtl_sales_orders
where segment1 = '62034';



SALES_ORDER_ID
------------------
900350


6) Below is the SQL statement to find the source_header_id and transaction_reference:

select header_id from oe_order_headers_all
where order_number = '62034';


HEADER_ID
------------------
120601

7)  Below is the SQL statement to find the source_line_id and trx_source_line_id:

select line_id from oe_order_lines_all
where header_id = 120601;


LINE_ID
----------------------------
218694

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5,
transaction_source_id,
trx_source_line_id,
acct_period_id,
transaction_reference)
values (
'ORDER ENTRY',
120601,
218694,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
1022349,
-5,
'Ea',
SYSDATE,
33,
1,
2,
17347,
147,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
900350,
218694,
246356,
120601);

COMMIT;

 

 

Scenario: 13: Account Issue (No Lot/Serial)

Account issue transaction for an item that is neither Lot or Serial controlled.

We have defined an item PISTON3 and we have assigned the item to M1 Seattle Manufacturing organization.
Below is the SQL statement to get the organization id for organization M1 .

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207

Below is the SQL statement to check the inventory_item_id for out item PISTON:

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'PISTON3'
and organization_id = 207;



INVENTORY_ITEM_ID segment1 ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
262810 PISTON3 207

Below is the SQL statement to find out the transaction_type_id for transaction type Account issue:

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'Account issue';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRX_ACTION_ID
------------------- --------------------- ------------------------------- -------------
1 Account issue Issue material against accounts 1

SELECT C.DISTRIBUTION_ACCOUNT_ID, C.* FROM MTL_MATERIAL_TRANSACTIONS C
WHERE INVENTORY_ITEM_ID = 262810;





Below is the complete SQL statement to do the account issue. The values populated are based on the values obtained from the above SQL statements:

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5)
values (
'KM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
262810,
-15,
'Ea',
SYSDATE,
1,
1,
3,
17347,
116,
'FGI',
'01',
'580',
'7740',
'0000',
'000');

COMMIT;

 

 

Scenario: 14: Account Receipt (No Lot/Serial)

Account receipt transaction open interface for an item that is neither Lot or Serial controlled.

We have defined an item PISTON and have assigned the item to M1 Seattle Manufacturing organization.

1) Below is the SQL statement to get the organization id for organization M1 .

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the sql to check the inventory_item_id for out item PISTON .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'PISTON3'
and organization_id = 207;



INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
262810 PISTON3 207


3) Below is the SQL statement to find the transaction_type_id for transaction type Account receipt:

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'Account receipt';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
40 Account receipt Receive material against account 27

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5)
values
(
'KM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
262810,
15,
'Ea',
SYSDATE,
40,
27,
3,
17347,
116,
'FGI',
'01',
'580',
'7740',
'0000',
'000');

COMMIT;

 

 

Scenario: 15: WIP Assembly Return (No Lot/Serial)

WIP assembly return transaction open interface for an item that is neither Lot or Serial controlled.

We have defined an assembly WAKEBOARD and we have assigned the item to M1 Seattle Manufacturing organization. The assembly has components L BOOT and R BOOT.

1) Below is the SQL statement to check organization id for organization M1 .

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for out item PISTON7 .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'WAKEBOARD'
and organization_id = 207;



INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264815 WAKEBOARD 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt.

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'WIP Completion Return';



TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
17 WIP Completion Return WIP Completion Return 32

4) Below is the SQL statement to find out the transaction_source_id. For a WIP Issue the transaction_source_id is the wip_entity value. Choose the highest value (most current WIP job):

select wip_entity_id from wip_entities
where primary_item_id like '264815';



wip_entity
---------------
730992

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5 ,
transaction_source_id,
wip_entity_type,
operation_seq_num)
values (
'CM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264816,
5,
'Ea',
SYSDATE,
43,
27,
5,
17347,
134,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
730992,
1,
10 );

COMMIT;

 

 

Scenario: 16: WIP Component Return (No Lot/Serial)

WIP component return transaction open interface for an item that is neither Lot or Serial controlled.

We have defined an assembly WAKEBOARD and we have assigned the item to M1 Seattle Manufacturing organization. The assembly has components L BOOT and R BOOT.

1) Below is the SQL statement to get the organization id for organization M1:

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for out item PISTON7:

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'L BOOT'
and organization_id = 207;



INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264816 L BOOT 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt:

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'WIP Issue';


TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
43 WIP Return WIP Return 27

4) Below is the SQL statement to find out the transaction_source_id. For a WIP Issue the transaction_source_id is the wip_entity value. Choose the highest value (most current WIP job).

select wip_entity_id from wip_entities
where primary_item_id like '264816';



wip_entity
---------------
730988

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5 ,
transaction_source_id,
wip_entity_type,
operation_seq_num)
values (
'CM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264816,
5,
'Ea',
SYSDATE,
43,
27,
5,
17347,
134,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
730988,
1 ,
10 );

COMMIT;

 

 

Scenario: 17: WIP Assembly Completion (No Lot/Serial)

WIP assembly completion transaction open interface for an item that is neither Lot or Serial controlled.

We have defined an assembly WAKEBOARD and we have assigned the item to M1 Seattle Manufacturing organization. The assembly has components L BOOT and R BOOT.

1) Below is the sql to check organization id for organization M1:

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement to check the inventory_item_id for out item PISTON7 .

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'WAKEBOARD'
and organization_id = 207;


INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264815 WAKEBOARD 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt:

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'WIP Completion';



TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
44 WIP Completion WIP Completion 31

4) Below is the SQL statement to find out the transaction_source_id. For a WIP Issue the transaction_source_id is the wip_entity value. Choose the highest value (most current WIP job).

select wip_entity_id from wip_entities
where primary_item_id like '264816';


wip_entity
---------------
730991

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5 ,
transaction_source_id,
wip_entity_type,
operation_seq_num,
final_completion_flag)
values (
'CM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264815,
5,
'Ea',
SYSDATE,
44,
31,
5,
17347,
134,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
730991,
1 ,
10,
'N' );

COMMIT;

 

 

Scenario: 18: WIP Component Issue

WIP component issue transaction open interface for an item that is neither Lot or Serial controlled.

We have defined an assembly WAKEBOARD and we have assigned the item to M1 Seattle Manufacturing organization. The assembly has components L BOOT and R BOOT.

1) Below is the sql to check organization id for organization M1:

select organization_code,organization_id from org_organization_definitions
where organization_code = 'M1';


ORG ORGANIZATION_ID
--- ---------------
M1 207


2) Below is the SQL statement  to check the inventory_item_id for out item PISTON7:

select inventory_item_id , segment1 , organization_id from mtl_system_items_b
where segment1 = 'L BOOT'
and organization_id = 207;



INVENTORY_ITEM_ID SEGMENT ORGANIZATION_ID
----------------- ---------------------------------------- ---------------
264816 L BOOT 207


3) Below is the SQL statement to find out the transaction_type_id for transaction type Account receipt:

select transaction_type_id,transaction_type_name,description, transaction_action_id
from mtl_transaction_types
where transaction_type_name = 'WIP Issue';



TRANSACTION_TYPE_ID TRANSACTION_TYPE_NAME DESCRIPTION TRANSACTION_ACTION_ID
-------------------- ---------------------- -------------- ---------------------
35 WIP Issue WIP Issue 1

4) Below is the SQL statement to find out the transaction_source_id. For a WIP Issue the transaction_source_id is the wip_entity value.

select wip_entity_id from wip_entities
where primary_item_id like '264816';


wip_entity
730986

 

insert into mtl_transactions_interface
(source_code,
source_header_id,
source_line_id,
process_flag,
lock_flag,
transaction_mode,
last_update_date,
last_updated_by,
creation_date,
created_by,
organization_id,
inventory_item_id,
transaction_quantity,
transaction_uom,
transaction_date,
transaction_type_id,
transaction_action_id,
transaction_source_type_id,
distribution_account_id,
transaction_interface_id,
subinventory_code,
dsp_segment1,
dsp_segment2,
dsp_segment3,
dsp_segment4,
dsp_segment5 ,
transaction_source_id,
wip_entity_type,
operation_seq_num)
values (
'CM',
1,
1,
1,
2,
3,
SYSDATE,
999,
SYSDATE,
999,
207,
264816,
-5,
'Ea',
SYSDATE,
35,
1,
5,
17347,
133,
'FGI',
'01',
'580',
'7740',
'0000',
'000',
730986,
1 ,
10 );

COMMIT;

 

  

Frequently Asked Questions (FAQ):

a. How do I know what error has occurred?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ans .  The process_flag in mtl_transactions_interface will be 3. The Error_Code and Error Explanation
columns will usually explain why the error has occurred.
The process flag indicates whether the row has been processed by the concurrent manager.
          The process flag status codes are:

               1 = Pending
               2 = Running
               3 = Error

 

b. What things should I check if I am getting errors?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ans. First check if you are populating the correct values in all the fields then check if there are any mandatory  columns. Often people forget to populate the mandatory values and the transaction import fails.
Check if the item is transactable or not by going to theorganization items screen.
Also check for invalid objects

Select object_name,object_type from all_objects where status = 'INVALID';


If any invalid objects exist recompile them and retest the transactions import.

 

If you are using serial numbers check the following:
The MTL_TRANSACTIONS_INTERFACE.TRANSACTION_QUANTITY will either match
the sum of the records in the
MTL_SERIAL_NUMBERS_INTERFACE.TRANSACTION_INTERFACE_ID for a specific
MTL_TRANSACTIONS_INTERFACE.TRANSACTION_INTERFACE_ID, or the 
FM_SERIAL_NUMBER and TO_SERIAL_NUMBER will have the number range to match the MTL_TRANSACTIONS_INTERFACE.TRANSACTION_QUANTITY for a particular record.

If you are using Lot numbers check the following:
Check to ensure that for a specific
MTL_TRANSACTIONS_INTERFACE.TRANSACTION_INTERFACE_ID there is a corresponding record in the MTL_TRANSACTION_LOTS_INTERFACE table with a matching MTL_TRANSACTION_LOTS_INTERFACE.TRANSACTION_INTERFACE_ID.

c. How do I resubmit the errored transactions?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1. Resubmission through the Application
 
Navigation Inventory:Transactions >Transaction Open Interface
Click in the check box under the "Submit" column then Save

2. Resubmission through SQL*Plus:

 

Update MTL_TRANSACTIONS_INTERFACE
    Set     PROCESS_FLAG = 1,
            LOCK_FLAG = 2,
            TRANSACTION_MODE = 3,
            VALIDATION_REQUIRED = 1,
            ERROR_CODE = NULL,
            ERROR_EXPLANATION = NULL
    Where   PROCESS_FLAG IN (1,3);

 

 

 

d. How to dig into errors more (Debug)?

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Below are some documents that support requires when a customer creates a service request for MTI
related issues.

A.Getting log files that give more details to where the error is happening.

1.Please enable inventory debug as per Note.148651.1. The details follow for your convenience:
  To generate a log file, set profile values for the user performing the transaction.
  a) These directories must be write enabled by the DBA;

  SELECT value
  FROM v$PARAMETER
  WHERE name = 'utl_file_dir';


  b) Set the following profile values

  INV: Debug Trace = YES
  INV: Debug File = [directory value from above query]/logfilename.log  (make sure that you have write permission for this file and directory)
  INV: Debug Level = 11


 
2. Go to System administration > Concurrent > Program > define.
   Query on short name 'INCTCM' or program name 'Process transaction interface'.
   Check enable trace and save.

 

3. Go to System administration > Concurrent > Program > define.
   Query on short name 'INCTCW' or program name 'Inventory transaction worker'.
   Check enable trace and save.

4. Run the inventory worker.

5. Provide the resulting worker log and inventory debug IF ONE IS CREATED.

B. Collecting organization information.
See Note:190893.1 Oracle Inventory Support Service Request Instrumentation for Organization Setup - for inventory (INVCt115h.sql)

C. Collecting Item information.
See Note: 223702.1 Oracle Inventory Item Setup Data Collection Tool - for the related item
(INVItemCt115h.sql )

D. See Note: 209928.1 (INVMTI115h.sql). This assists in diagnosing and resolving pending transactions in Release 11i from the MTL_TRANSACTIONS_INTERFACE table which could prevent further processing of Inventory records. Identifies records that are in error or have failed validation and provides some solutions.

E. See Note: 204577.1 (INVMMTT115h.sql). This assists in diagnosing and resolving pending transactions in Release 11i from the MTL_MATERIAL_TRANSACTIONS_TEMP

F. Provide file versions for the following files
All errors will require the transaction manager file versions. 
To get these versions, please run the following query:

IN SQL:
set serveroutput on;
execute
fnd_aolj_util.getClassVersionfromDB('oracle.apps.inv.transaction.server.BaseTransaction');
execute
fnd_aolj_util.getClassVersionfromDB('oracle.apps.inv.transaction.server.QtyManager');
execute
fnd_aolj_util.getClassVersionfromDB('oracle.apps.inv.transaction.server.LotTrxManager');
execute
fnd_aolj_util.getClassVersionfromDB('oracle.apps.inv.transaction.server.SerTrxManager');
execute
fnd_aolj_util.getclassversionfromdb('oracle.apps.inv.keyentities.SerialNumber');

IN UNIX:
$ strings -a $AU_TOP/resource/INVSLENT.pll |grep '$Header'
$ strings -a $INV_TOP/bin/INVLIBR |grep inltis.ppc
$ strings -a $INV_TOP/bin/INVLIBR |grep inlmsn.ppc
$ strings -a $INV_TOP/lib/libinv.a |grep inumer.ppc
$ strings -a $INV_TOP/lib/libinv.a |grep inutsu.ppc


INVTXMGB.pls
INVTXGGB.pls
TrxProcessor.java
BaseTransaction.java
inltev.ppc
inctcm.ppc
INVTXMGB.pls
INVTXMGS.pls
SerialNumber.java
SerTrxManager.java
$AU_TOP/resource/INVSLENT.pll
inltis.ppc inumer.ppc inutsu.ppc inlmsn.ppc

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22816976/viewspace-1408050/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22816976/viewspace-1408050/

<think>首先,用户的问题是关于“Failed to open settings file EuRoC.yaml in Monocular example”。这看起来像是一个错误消息,可能是用户在运行某个程序时遇到的。从系统级指令和用户提供的引用中,我可以看到一些相关的信息。 回顾引用: - 引用[1]: 提到了命令:`./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /home/hope/Downloads/EuRoc/ Examples/Monocular/EuRoC_TimeStamps/MH01.txt`。这表明用户可能在运行ORB-SLAM2的Monocular示例。 - 引用[2]: 直接提到了错误:"3.Input sensor was set to: RGB-D Failed to open settings file at: /home/catkin/ORB-SLAM2/Examples/Monocular/TUM3.yaml"。这类似于用户的问题,但针对TUM3.yaml。 - 引用[3]: 给出了另一个命令:`./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER`。 - 引用[4]: 用户提到在运行`rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml`时成功,但后来有段错误。 - 引用[5]: 讨论了编译问题,包括修改build.sh和添加头文件。 用户的问题具体是“Failed to open settings file EuRoC.yaml in Monocular example”。所以,我需要帮助用户解决这个文件打开失败的问题。 关键点: - 错误是“Failed to open settings file”,这表明程序无法找到或打开指定的YAML文件。 - 文件路径是“EuRoC.yaml”,在Monocular示例中。 可能的原因: 1. **文件路径不正确**:用户提供的路径可能错误或文件不存在。 2. **文件权限问题**:用户没有权限读取文件。 3. **路径拼写错误**:文件名或路径可能有拼写错误。 4. **工作目录问题**:程序运行时的工作目录不是预期的目录。 5. **文件缺失**:文件可能被移动或删除。 从引用中,用户似乎在使用ORB-SLAM2。在引用[1]中,命令指定了路径:`Examples/Monocular/EuRoC.yaml`。在ORB-SLAM2项目中,YAML文件通常位于`Examples/Monocular/`目录下。 解决方案步骤: 1. **验证文件存在**:确认`EuRoC.yaml`文件确实存在于指定的路径。用户应该检查文件系统。 2. **检查路径**:确保在运行命令时,路径正确。如果是相对路径,确保工作目录正确。 3. **使用绝对路径**:建议用户使用绝对路径来避免相对路径问题。 4. **权限检查**:确保用户有读取文件的权限。 5. **环境问题**:如果通过ROS运行,确保路径正确,并考虑使用`rosrun`或`roslaunch`的正确方式。 在引用[4]中,用户成功运行了`rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml`,但后来有错误。这表明对于EuRoC.yaml,可能需要类似处理。 结构化回答: - 由于用户可能不是专家,我需要清晰、逐步解释。 - 使用中文回答,因为指令要求。 - 生成相关问题,作为系统级指令的一部分。 - 在回答中引用相关段落,末尾添加引用标识。 回答结构: 1. **确认问题**:重述问题以确认理解。 2. **可能原因**:列出常见原因。 3. **解决步骤**:提供详细步骤来解决问题。 4. **预防措施**:建议如何避免类似问题。 5. **相关问题**:生成相关问题。 最后,添加引用标识。例如,如果提到引用[2],在末尾添加[^2]。 生成相关问题: - 基于上下文,生成2-3个相关问题。例如: - 如何正确配置ORB-SLAM2的YAML文件? - 在ROS中运行ORB-SLAM2时有哪些常见错误? - 如何修改YAML文件以适应不同数据集? 确保回答真实可靠:基于ORB-SLAM2文档和常见问题。</think>### 解决“Failed to open settings file EuRoC.yaml in Monocular example”错误 您的错误消息“Failed to open settings file EuRoC.yaml in Monocular example”表明程序无法打开指定的YAML配置文件。这通常发生在运行视觉SLAM系统(如ORB-SLAM2)时,路径或文件设置不正确。该错误会导致程序终止,因为YAML文件包含关键参数(如相机内参、数据集路径等)。下面我将逐步分析原因并提供解决方案。所有建议基于ORB-SLAM2的常见实践和文档[^1][^2][^3]。 #### 错误原因分析 - **文件路径错误**:程序找不到`EuRoC.yaml`文件,可能是因为路径拼写错误、相对路径不正确或文件被移动。 - **工作目录问题**:运行命令时的工作目录(working directory)不是ORB-SLAM2的根目录,导致相对路径失效。 - **文件权限或缺失**:文件可能被删除,或用户没有读取权限(常见于Linux系统)。 - **环境配置问题**:如果通过ROS运行,路径可能未正确解析[^4]。 #### 解决步骤(以ORB-SLAM2为例) 按照以下顺序操作,确保每一步成功后再继续: 1. **验证文件存在性和路径** - 打开终端,导航到ORB-SLAM2的根目录(例如`~/catkin_ws/src/ORB_SLAM2`)。 - 检查`Examples/Monocular/`目录下是否有`EuRoC.yaml`文件: ```bash ls Examples/Monocular/EuRoC.yaml ``` - 如果文件不存在: - 从ORB-SLAM2的GitHub仓库重新下载该文件([官方链接](https://github.com/raulmur/ORB_SLAM2/tree/master/Examples/Monocular))。 - 确保文件名大小写匹配(Linux区分大小写),例如`EuRoC.yaml`不是`euroc.yaml`。 - 如果文件存在但路径错误:在运行命令时使用绝对路径,例如: ```bash ./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt /home/your_user/catkin_ws/src/ORB_SLAM2/Examples/Monocular/EuRoC.yaml /path/to/dataset ``` 2. **检查工作目录** - 运行程序前,确保终端位于ORB-SLAM2根目录。例如: ```bash cd ~/catkin_ws/src/ORB_SLAM2 ./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /path/to/EuRoC_dataset ``` - 如果使用ROS(如`rosrun`),确保命令在正确上下文中执行。引用中的成功案例显示:`rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml`[^4]。将`TUM1.yaml`替换为您的`EuRoC.yaml`路径。 3. **处理文件权限问题** - 在终端中,为YAML文件添加读取权限: ```bash chmod +r Examples/Monocular/EuRoC.yaml ``` - 检查文件所有权:如果文件属于其他用户,使用`sudo chown your_user:your_group Examples/Monocular/EuRoC.yaml`修改。 4. **调试YAML文件内容** - 打开`EuRoC.yaml`,确保内容有效。常见问题包括: - 数据集路径未设置(如`EuRoC.yaml`中的`DatasetPath`参数)。 - 格式错误(YAML对缩进敏感)。使用工具如`yamllint`验证。 - 示例修正:如果文件指定了绝对路径但数据集移动,更新路径。 5. **编译和环境验证** - 重新编译ORB-SLAM2以排除底层错误: ```bash cd ~/catkin_ws/src/ORB_SLAM2 ./build.sh ``` - 如果编译卡住(如引用[5]所述),修改`build.sh`中的`make -j`为`make`,并检查`System.h`是否包含`#include <unistd.h>`[^5]。 - 设置环境变量(可选): ```bash export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS ``` #### 预防措施 - **使用绝对路径**:在命令中始终用绝对路径(如`/home/user/ORB_SLAM2/Examples/Monocular/EuRoC.yaml`)避免相对路径歧义。 - **日志检查**:运行程序时添加日志输出(例如`./mono_euroc ... > log.txt 2>&1`),分析错误细节。 - **备份配置文件**:修改YAML前创建备份,防止意外损坏。 如果以上步骤无效,请提供更多上下文(如完整命令、操作系统、ORB-SLAM2版本),我会进一步协助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值