In this Document
Purpose |
Details |
Scenario 1: Testing the basic item import with minimum columns populated |
Scenario 2: To import items and use item templates |
Scenario 3: To import items and material cost associated to it. |
Scenario 4: To import item and revisions associated to it |
Scenario 5: Import more than two revisions along with item creation |
Scenario 6: Import item categories along with items. |
Scenario 7: Import item catalogs along with items. |
Scenario 8: How to update existing items. |
Scenario 9: How to populate character and number columns and make it null |
Frequently Asked Questions (FAQ): |
a. How do I know what error has occurred? |
b. What things should I check if I getting errors? |
c. I run item import but records are not getting processed. The process_flag is still 1. |
d. What do I do to check more in to errors and see where the import is failing? |
e. 11.5.9 Item import issues and patches to be applied. |
f. List of documents required while logging a tar on item import. |
g. Some examples of errors and what it might mean |
h. Is there an API for Item creation and updation? |
References |
APPLIES TO:
Oracle Item Master - Version 11.5.8 to 12.1.3 [Release 11.5 to 12.1]
Information in this document applies to any platform.
INCOIN
This document is for all users of Oracle EBS 11i and R12 and later.
PURPOSE
Item Import Overview
~~~~~~~~~~~~~~~~~~~~~~~~~
Use the item import process to import items from your legacy system or PDM system. You can import items from any source into Oracle Inventory and Oracle Engineering.
When you import items through the Item Interface, you create new items in your Item Master organization or assign existing items to additional organizations. You can specify values for all the item attributes, or you can specify just a few attributes and let the remainder default or remain Null. You can also specify an item template for each item and inherit attribute values from the template. The Item Interface also lets you import revision details, including past and future revisions and effectivity dates. Validation of imported items is done using the same rules as the item definition forms, so you are insured of valid items.
The Item Interface reads data from two tables for importing items and item details. You use the MTL_SYSTEMS_ITEM_INTERFACE table for new item numbers and all item attributes. This is the main item interface table, and can be the only table you choose to use. If you are importing revision details for
new items, you can use the MTL_ITEM_REVISIONS_INTERFACE table.
A third table, MTL_INTERFACE_ERRORS, is used for error tracking of all items that the Item Interface fails. You can import item categories using interface table called as MTL_ITEM_CATEGORIES_INTERFACE.
Before you use the Item Interface, you must write and run a custom program that extracts item information from your source system and inserts it into the MTL_SYSTEM_ITEM_INTERFACE table, and (if revision detail is included) the MTL_ITEMS_REVISIONS_INTERFACE table. After you load the items into these interface tables, you run the Item Interface to import the data. The Item Interface assigns defaults, validates data you include, and then imports the new items. You may also specify an item template for each item being imported.
You must import items into the Item Master organization before you import items into additional organizations. You can accomplish this by specifying only your Item Master organization on first run of the Item Interface. Once this has completed, you can run the Item Interface again, this time specifying an
additional or all organizations. You can also use the Item Interface to import a single item material cost and material overhead, and revision details.
Below we will walk through few scenarios of item import and provide answers to frequently asked questions.
DETAILS
Scenario 1: Testing the basic item import with minimum columns populated
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
First always try to populate the master organization with a sample record and test.
1. How do I know my organization code and organization id?
Select organization_code , organization_id from org_organization_definitions
order by organization_code;
Sample out put is below.
ORG ORGANIZATION_ID
--- -------------------------------
V1 204
M1 207
M2 209
M3 606
M4 1641
M5 1642
M6 1643
M7 1644
2. How do I know which organization is master to a child organization?
select a.organization_id ,a.organization_code,a.master_organization_id, b.organization_code
from mtl_parameters a, org_organization_definitions b
where a.master_organization_id = b.organization_id
order by a.organization_code;
Sample out put is below
ORGANIZATION_ID ORG MASTER_ORGANIZATION_ID ORG
--------------------------- ------- ---------------------------------------- -------
204 V1 204 V1
207 M1 204 V1
209 M2 204 V1
606 M3 204 V1
1641 M4 204 V1
1642 M5 204 V1
1643 M6 204 V1
1644 M7 204 V1
In the above example for organizations M1 to M7, V1 organization is the master organization.
Populating V1 organization with one new item using just the basic columns.
Please truncate all IOI interface tables before loading mtl_system_items_interface:
ex. TRUNCATE TABLE <tablename>
TRUNCATE TABLE INV.MTL_SYSTEM_ITEMS_INTERFACE;
TRUNCATE TABLE INV.MTL_INTERFACE_ERRORS;
TRUNCATE TABLE INV.MTL_ITEM_REVISIONS_INTERFACE;
TRUNCATE TABLE INV.MTL_ITEM_CATEGORIES_INTERFACE;
Note: Truncate frees space, delete does not free space.
insert into mtl_system_items_interface
(process_flag,set_process_id,transaction_type,organization_id, segment1,description)
values (1,1,'CREATE',204,'TESTITEMIMPORT', 'Testing Item Import');
commit;
In the above insert Process_Flag = 1. Only when process_flag = 1 will the item import program process the record. Set_Process_Id = 1. You can set which ever number you want for this column. This is basically used like a batch number. You can tell item import which set of records to process by entering a set_process_id.
Transaction_Type is 'CREATE' when you are inserting new records and 'UDATE' when you are updating existing records.
We are using i.e. organization_id 204 which is for master organization V1. Note: If you have more than one segment defined for items please populate all those segments. To check which segments to be populated please got to: Setup > Flexfields > Key > Segments . Now query up 'System Items' by putting
it in flexfield title. Select segments button, and now you should be able to see the different segments being defined.
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completedsuccessfully. Now go to Master Items screen and query on 'TESTITEMIMPORT' the item that we had populated and you should be able to see the item.
Similarly you can import the same item for the child organization. Eg. we want item 'TESTITEMIMPORT' in organization M1 say Seattle manufacturing then all you have to do is replace the organization_id by M1 organization_id. Now the insert statement will look like this.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1,description)
values (1,1,'CREATE',207,'TESTITEMIMPORT', 'Testing Item Import');
commit;
Run the item import with the same parameters and then check if the concurrent request has completed successfully. Now do Change Organization and go to Organization Item screen and query up TESTITEMIMPORT and you should be able to see the item in M1 organization.
Scenario 2: To import items and use item templates
To see all template names run the following sql:
select template_id,template_name,description from MTL_ITEM_TEMPLATES;
To see all the attributes related to template run the following sql:
select template_id,attribute_name,enabled_flag,report_user_value
from MTL_ITEM_TEMPL_ATTRIBUTES where template_id = &template_id;
Please subsitute the template id from the 1st query in the second query to see the attribute values.
In our example, we use Purchasing Template.
select template_id,template_name,description
from MTL_ITEM_TEMPLATES
where template_id = 259;
template_id template_name description
----------- ------------- ----------------
259 Purchased Item Purchased Item
We are going to insert a new item in the master organization and use the purchasing template.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description,TEMPLATE_ID)
values
(1,1,'CREATE',204,'TESTTEMPLATE', 'Testing Item Import With Template',259);
commit;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completedsuccessfully.
Now go to master items screen and query on 'TESTTEMPLATE' the item that we had populated and you should be able to see the item. Now you will see that the purchasing attributes are set because we used the purchasing template.
Note: Instead of using template_id you can use template_name and you should see the same effect.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description,TEMPLATE_NAME)
values
(1,1,'CREATE',204,'TESTTEMPLATE', 'Testing Item Import With Template',
'Purchased Item');
commit;
Scenario 3: To import items and material cost associated to it.
First check which cost elements are defined for the organizaion:
select cost_type_id,cost_type,description from CST_COST_TYPES;
Output looks like this.
cost_type_id cost_type description
------------ ------------- ------------------------------------
1 Frozen Frozen Standard Cost Type
2 Average Average Cost Type
3 Pending Pending Standard Cost Type
To find the sub element name defined for your organization for a particular cost type please check bom resources table. In our example we are checking for material sub element in organization M1 with organization_id = 207 for cost_code type 1.
select resource_code,description,cost_element_id,cost_code_type
from bom_resources where organization_id = 207
and cost_code_type= 1;
resource_code description cost_element_id cost_code_type
----------------- -------------------------------- ------------------ -------------------
Material Material Sub element 1 1
Labor Labor Sub element 1 1
Expense Expense Sub element 1 1
In our scenario we want to create a new item in organization M1 along with its material cost (say $11) assuming the same item is already created in master organization V1.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description,template_id,MATERIAL_COST,MATERIAL_SUB_ELEM)
values
(1,1,'CREATE',207,'TESTCOSTMATERIAL', 'Testing Item Material Cost Import', 259,11,'Material');
commit;
In the above sql you might have observed we are populating MATERIAL_COST and MATERIAL_SUB_ELEM. Similary we can use MATERIAL_SUB_ELEM_ID, MATERIAL_OH_RATE, MATERIAL_OH_SUB_ELEM and MATERIAL_OH_SUB_ELEM_ID colums. To check the subelements you can go to Cost management responsibility for your organization and under Setup > Sub-Elements you will see the respectivesubelements being defined.
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'TESTCOSTMATERIAL' the item that we had populated and you should be able to see the item.
Go to Tools > Item Costs and then hit Open button from Item Cost Summary screen and you should see the details. In out example we see a material cost of $11 for the item in cost type 'Frozen'(Standard Costing).
NOTE: Item import cannot be used to update item costs.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You have to populate CST_ITEM_CST_DTLS_INTERFACE,CST_RESOURCE_COSTS_INTERFACE, CST_RES_OVERHEADS_INTERFACE and CST_DEPT_OVERHEADS_INTERFACE accordingly. The concurrent request can be launched by navigating to Cost > Cost Mass Edits > Import Cost Information.
The parameters for the Cost Import concurrent program and their description are as follows:
Import Cost Option : A LOV is provided from which the user can select one of the import options which may be either to import Only item costs , Only resource costs , Only overhead rates or all the cost information .
Option | Table from which data is processed |
---|---|
Only item cost | cst_item_cst_dtls_interface |
Only resource costs | cst_resource_costs_interface |
Only overhead rates | cst_res_overheads_interface , cst_dept_overheads_interface |
All Cost Information | From all the four interface tables |
Mode to run this request : A LOV is provided with possible two values , 'Insert new cost' or 'Remove and replace cost'. The 'Insert new cost' mode , is useful if you are importing large # of items and are not sure if that Item/Organization/Cost Type combination already exists in the production tables, if it does then the row in the interface table would be flaged as errored and not imported.This would prevent any accidental overwrite of already existing data.
With 'Remove and replace cost' mode all the previous cost information for this item, cost_type and organization combination will be deleted from the production tables and the new information will overwrite (replace) the already existing one.
Group Id Option: A LOV is provided from which the user can either select 'ALL' or 'Specific Group Id' . If the user wishes to submit multiple Cost Import process requests he can do so by submitting one request per group id. For doing so the data in the interface tables should be stamped with distinct group id value by using the NEXTVAL from the sequence generator CST_LISTS_S .The use of this sequence geneartor is a MUST for generating multiple groups or may lead to data corruption as these interface tables are used by other processes too.
If the user selects "ALL" from the list then a group ID generated by a sequence will replace the group ID in the interface tables (if any) and all the unprocessed rows from the four interface table (viz.cst_item_cst_dtls_interface, cst_resource_costs_interface, cst_res_overheads_interface, cst_dept_overheads_interface ) will be processed in one run.
Cost type to import to: The user is provided with a LOV from which he needs to select the cost type in which he wishes to import the cost information. Even if the user has populated a cost type or cost type ID in the interface tables, it would be overwritten with the one that is selected here. The cost types that the user can pick from is restricted to the multi-org, updateable cost types.
Delete succesfull rows: This parameter decides whether the successfully processed rows should be deleted from the interface tables at the end of the run. If the user selects 'Yes' then all the successful rows be deleted, basically rows that do not have their error flag set to "E".
Importing directly into Frozen/Average cost type (i.e non updateable cost types) and merging of new cost with existing costs is not supported at this time and would still have to be processed by cost update routines. Also when importing the costs from the interface table ,material overhead defaults (if any)
specified for an Organization/Category would not be respected.
Minimum columns in each table that the user needs to provide
1. CST_ITEM_CST_DTLS_INTERFACE
The columns that the user has to provide are:
a. Inventory_item_id
b. organization_ID or organization_code.
c. resource_ID or resource_code for cost elements other than 1(material).
If we are importing cost into material cost element and default material subelement has been specified on 'Define Organization parameters' form then that would be respected unless the user overides it with a value in this column.
d. usage_rate_or_amount
e. cost_element_ID or cost_element
f. Process Flag (must be set to 1)
We default values for based_on_rollup, shrinkage_rate, inventory_asset_flag, lot_size from the row from CST_ITEM_COSTS for this item and the default cost type(default cost type of the cost type specified to import the costs into). If there is no such row already defined in CST_ITEM_COSTS, then, the values for these 4 columns also need to be specified and they have to be the same for all rows of this item, cost type and organization combination.
CST_RESOURCE_COSTS_INTERFACE
a. Resource_ID or resource_code
b. organization_ID or organization_code
c. resource_rate
d. Process_flag (must be set to 1)
CST_RES_OVERHEADS_INTERFACE
a. Resource_ID or resource_code
b. Overhead_ID or overhead
c. Organization_ID or organization_code
d. Process_flag(must be set to 1)
CST_DEPT_OVERHEADS_INTERFACE
a. Department_ID or department
b. Overhead_ID or overhead
c. Organization_ID
d. Rate_or_amount
e. Process_flag(must be set to 1)
The other columns will be defaulted.
This is available for only 11.5.9 and above customers.
Customers on 11.5.8 can apply patch 2193391 to get this functionality.
Please refer to costing Manuals for further details.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In case you have any questions please log a Support Request with the Costing Group
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sample cost update statement is below:
INSERT INTO CST_ITEM_CST_DTLS_INTERFACE
(INVENTORY_ITEM_ID,ORGANIZATION_ID,COST_TYPE,RESOURCE_CODE,USAGE_RATE_OR_AMOUNT,
COST_ELEMENT_ID,PROCESS_FLAG)
VALUES
(9935,207,'Pending','Material',17,1,1);
commit;
Using this I update the pending cost for the item from $11 to $17. Now once the pending cost is updated you will have to use 'Update Standard Cost' Concurrent program to update Frozen cost for the item from the pending cost.
Scenario 4: To import item and revisions associated to it
When ever you import a new item based on the Starting revision specified under 'Revison/Lot/Serial' tab in organization parameters screen the default revison gets assigned to the item. For eg. the default revision in V1 organization is 'A' when we do item import this revision gets associated to the item.
Now lets import a new item with revision 'B' which is not the default revision.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description,REVISION)
values
(1,1,'CREATE',204,'TESTREVB1', 'Testing Item Revision','B');
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully.
Now go to organization items and query on 'TESTREVB1' the item that we had populated and you should be able to see the item. Go to Tools > Revisions and then you should be able to see two records one with revision 'A' which is the default revision and another with revision 'B' that we had populated.
In case you want to import a new revision say revision 'C'. You directly populate the MTL_ITEM_REVISIONS_INTERFACE table and then run item import.
insert into MTL_ITEM_REVISIONS_INTERFACE
(item_number,revision, revision_label,implementation_date, effectivity_date, process_flag, organization_id ,set_process_id, transaction_type)
values
('TESTREVB1','C','C',sysdate,sysdate,1,204,1,'CREATE');
Commit;
Now run the item import. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. When you query up the item 'TESTREVB1' You will see the new revision 'C'.
Scenario 5: Import more than two revisions along with item creation
We will be populating MTL_ITEM_REVISIONS_INTERFACE. The key point here is the IMPLEMENTATION_DATE should increment cronologically.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description)
values
(1,1,'CREATE',204,'TESTREVB2', 'Testing Item Revision');
insert into MTL_ITEM_REVISIONS_INTERFACE
(item_number,revision, revision_label,implementation_date, effectivity_date, process_flag, organization_id ,set_process_id, transaction_type)
values
('TESTREVB2','A','A',sysdate,sysdate,1,204,1,'CREATE');
insert into MTL_ITEM_REVISIONS_INTERFACE
(item_number,revision, revision_label,implementation_date, effectivity_date, process_flag, organization_id ,set_process_id, transaction_type)
values
('TESTREVB2','B','B',sysdate+.0003472,sysdate+.0003472,1,204,1,
'CREATE');
insert into MTL_ITEM_REVISIONS_INTERFACE
(item_number,revision, revision_label,implementation_date, effectivity_date, process_flag, organization_id ,set_process_id, transaction_type)
values
('TESTREVB2','C','C',sysdate+.0023472,sysdate+.0023472,1,204,1, 'CREATE');
COMMIT;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'TESTREVB2' the item that we had populated and you should be able to see the item. Go to Tools > Revisions and then you should be able to see three records one with revision 'A', another with revision 'B' and the thrid one is 'C' that we had populated.
Note: We have been inctementing the minutes section by sysdate+.0003472 and sysdate+.0023472 so that the implementation date is in cronological order.
Scenario 6: Import item categories along with items.
select category_id,structure_id,segment1,description,category_concat_segs, structure_name
from mtl_categories_v
where segment1 = 'DAIRY'
order by category_id,structure_id;
category_id structure_id segment1
description category_concat_segs structure_name
---------------------------------------------------------------------------------------
1440 51466 DAIRY
Dairy Products DAIRY Inventory Class
1861 51467 DAIRY
Dairy Products DAIRY Planning Class
1869 51470 DAIRY
Dairy Products DAIRY Sales Class
1886 51766 DAIRY
DAIRY DAIRY L Product Line
select category_set_id,category_set_name,description,structure_name, structure_id
from mtl_category_sets_v where category_set_name = 'Inventory Class';
category_set_id category_set_name description structure_name
structure_id
---------------------------------------------------------------------
90 Inventory Class Inventory Class Inventory Class
51466
In our example we want to use category 'DAIRY' which has a category_id of 1440 and category set 'Inventory Class' which has category_set_id of 90. You can go to the application Setup > Items > Categories > Category Codes and using examine get the category id. You can go to the application Setup > Items > Categories > Category Sets and using examine get the category set id.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1,
description)
values
(1,1,'CREATE',204,'TESTCATG1', 'Testing Item Categories');
insert into MTL_ITEM_CATEGORIES_INTERFACE
(item_number,category_set_id, category_id,process_flag, organization_id, set_process_id, transaction_type)
values
('TESTCATG1',90,1440,1,204,1,'CREATE');
In the above insert statement you could use CATEGORY_SET_NAME and CATEGORY_NAME
instead of CATEGORY_SET_ID and CATEGORY_ID.
commit;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'TESTCATG1' the item that we had populated and you should be able to see the item. Go to Tools > Categoriess and then you should be able to see category Dairy associated to the item.
To verify you can run the following query
Select * from MTL_ITEM_CATEGORIES where inventory_item_id in
(select distinct inventory_item_id from mtl_system_items_b where segment1 = 'TESTCATG1');
It shows one record.
NOTE: Populating set_process_id is mandatory for categories import. Please put the same set process id when you run the import program.
Updating exsisting item categories:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Updated transaction can only be performed as a combination of DELETE assignment, then CREATE.
Lets take our above example of item 'TESTCATG1' which has now category 'DAIRY' associated with it. I want to update category 'DAIRY' with a new category 'BAKERY' whose category_id is 1436 for item 'TESTCATG1'.
insert into MTL_ITEM_CATEGORIES_INTERFACE
(item_number,category_set_id, category_id,process_flag, organization_id, set_process_id, transaction_type)
values
('TESTCATG1',90,1440,1,204,1,'DELETE');
insert into MTL_ITEM_CATEGORIES_INTERFACE
(item_number,category_set_id, category_id,process_flag, organization_id, set_process_id, transaction_type)
values
('TESTCATG1',90,1436,1,204,1,'CREATE');
commit;
Run item import.In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 2 in create or update items field as we are updating the exsisting item and changing its category. Hit OK button. You can check view requests to check whether your request has completed successfully.
When you query up item 'TESTCATG1' and select the categories from tools you will find that the category 'BAKERY' is now asscoiated with the item.
Scenario 7: Import item catalogs along with items.
In our example we want to associate 'ADSL Modem' catalog to our item.
select ITEM_CATALOG_GROUP_ID,SEGMENT1 from MTL_ITEM_CATALOG_GROUPS_B
where ITEM_CATALOG_GROUP_ID = 161;
ITEM_CATALOG_GROUP_ID SEGMENT1
--------------------- ----------------------------------------
161 ADSL Modem
select ITEM_CATALOG_GROUP_ID,ELEMENT_NAME,ELEMENT_SEQUENCE,DESCRIPTION
from mtl_descriptive_elements
where ITEM_CATALOG_GROUP_ID = 161;
ITEM_CATALOG_GROUP_ID ELEMENT_NAME ELEMENT_SEQUENCE DESCRIPTION
--------------------- ------------ ---------------- -----------
161 2wire 10 2wire
161 linksys 20 linksysdesc
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type,organization_id,segment1, description,ITEM_CATALOG_GROUP_ID)
values
(1,1,'CREATE',204,'TESTCATA1', 'Testing Item Catalog',161);
commit;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 1 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'TESTCATA1' the item that we had populated and you should be able to see the item. Go to Tools > Catalogs and then you should be able to see 'ADSL Modem' along with descriptive elements '2wire' and 'linksys'. In 11.5.9 you have to manually enter the values for descriptive elements. In 11.5.10 API to import descriptive element values will be present.
Scenario 8: How to update existing items.
Let's say we have an item 'ODC' which has no buyer code in Seattle organization (M1 organization code). Need to update and asscoiate 'West, Rod' as buyer to the item 'ODC'. First we check under Setup > Items > Attribute Contol to check if it controlled at the organization level or master level. In our case the attribute is controlled at the Org Level. Now we check if Rod exists in the list of valid buyers.
select agent_id,agent_name,start_date_active,end_date_active
from PO_AGENTS_V where agent_name like '%Rod%';
agent_id agent_name start_date_active end_date_active
-------- ---------- ----------------- ---------------
10183 West, Rod 17-FEB-04
select inventory_item_id from mtl_system_items_b
where segment1 = 'ODC'
and organization_id = 207;
207 organization id is for M1(Seattle organization)
INVENTORY_ITEM_ID
-----------------
9372
Now use the above values in the insert script.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type, organization_id, inventory_item_id, BUYER_ID)
values
(1,1,'UPDATE',207,9372,10183);
commit;
Now you will observe that the transaction type is 'UPDATE' because we are updating an existing record. I am also using inventory_item_id because when you use id's the performance is better. And also when running the item import I use value 2 in create or update items field.
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 2 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'ODC' item in M1 organization. Under purchasing tab you will see that the buyer 'West, Rod' populated.
Scenario 9: How to populate character and number columns and make it null
Just from our above example we have buyer 'West, Rod' populated for item 'ODC'. Now for some reason we want to make null for buyer for item ODC. Buyer id column is a number column. To make it null we have to populate -999999.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type, organization_id, inventory_item_id, BUYER_ID)
values
(1,1,'UPDATE',207,9372,-999999);
commit;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 2 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'ODC' item in M1 organization. Under purchasing tab you will see that the buyer field is updated to null.
Suppose planner 'S.Peters' is asscoiated to item ODC. You want to make it null. PLANNER_CODE in mtl_system_items_interface is a charracter type. To make it null we have to use '!'.
insert into mtl_system_items_interface
(process_flag, set_process_id, transaction_type, organization_id, inventory_item_id, PLANNER_CODE)
values
(1,1,'UPDATE',207,9372,'!');
commit;
Now run the item import program ie. Item > Import > Import Items. In Process Set enter 1 as we had used 1 in the set_process_id column. Now enter 2 in create or update items field and hit OK button. You can check view requests to check whether your request has completed successfully. Now go to organization items and query on 'ODC' item in M1 organization. Under general planning tab you will see that the planner is updated to null.
Frequently Asked Questions (FAQ):
a. How do I know what error has occurred?
Ans . The process_flag in mtl_system_items_interface will be 3. Now the error message will be in mtl_interface_errors table. The record in mtl_system_items_interface will have a transaction_id. There will be corresponding record with error code and explanation in mtl_interface_errors.
select transaction_id from mtl_system_items_interface where process_flag = 3;
Now substitue the &transaction_id value in the following sql by the value that you get in the ablove sql. You should be able to see the error.
select message_name,column_name,error_message from mtl_interface_errors
where transaction_id = &transaction_id;
b. What things should I check if I getting errors?
Ans. First check if you are populating the correct values in all the fields. Then check if there are any mandatory descriptive flexfield columns. You can go to application setup > flexfields > descriptive > segments and on query type ?Items? in title field and then check each segment whether it is mandatory
and whether it is doing any validation against some pre-existing values in some value set. If so check if the corresponding attributes are populated properly. Many times user forgets to populate mandatory values and item import fails.
Also check for invalid objects
Select object_name,object_type from all_objects where status = 'INVALID';
If any invalid objects please recompile those and retest item import.
c. I run item import but records are not getting processed. The process_flag is still 1.
Ans. Check under sysadmin> concurrent managers whether inventory namager is running. Then check if there is suffcient memory and extent spaces. Use Note 1019721.6 and Note 1020085.6 to determine if there is a memory or extents issue. Check if there is sufficient roll back segments, system global area and tablespace. Use the following truncate, this frees up space.
TRUNCATE TABLE INV.MTL_SYSTEM_ITEMS_INTERFACE;
TRUNCATE TABLE INV.MTL_INTERFACE_ERRORS;
TRUNCATE TABLE INV.MTL_ITEM_REVISIONS_INTERFACE;
TRUNCATE TABLE INV.MTL_ITEM_CATEGORIES_INTERFACE;
Now try importing one record and see if you are able to import it successfully. If you see ORA-1654 happens while inserting records into mtl_pending_item_status table in the log file (01654, 00000, "unable to extend index %s.%s by %s in tablespace %s") please use ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the tablespace indicated.
d. What do I do to check more in to errors and see where the import is failing?
1. From sysdamin please set the following profile options.
INV: Debug Trace: set Yes to turn on the debug functionality.
INV:Debug Level: set 10 , to print the detail debug messages.
INV: Debug file (Including the complete path):
The path is one of the directories from the valid directories defined in the obtained v$parameter through the following sql :
select value
from v$parameter
where name = 'utl_file_dir';
Make sure to include the file name at the end of the path,
e.g. '/<>/trx_mgr.log'
MRP: Debug Mode 'Yes'.
2. After setting the above system profile values go to Sysadmin > Concurrent > Program > Define. Query on short name 'INCOIN'. Now check enable trace and save. Now run the item import the log file of item import will give more details.
To identify the correct trace file please run the following query:
select request_id,oracle_process_id
from fnd_concurrent_requests
where request_id = &request_id;
Please substitute &request_id by the correct request id from the concurrent program. The trace file in the trace directory would have the number that you get for oracle_process_id from the above query as a part of the file name.
eg: if oracle_process_id = 22771
The file could be ora22771.trc
e. 11.5.9 Item import issues and patches to be applied.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. Cannot create items - Patch 3215473
2. INV_IOI_REV_BAD_ORDER error message for revisions - Patch 3226359
3. Item import fails with no error message - Patch 3226359
4. Item import completes but process_flag = 4 and set_process_id = -999
- Patch 3226359
5. If duplicate records for one master IOI does not import child recs for
other master records. The error message that you will get is "This Child
Item has no Master Item record in MTL_SYSTEM_ITEMS" - Patch 3474468
f. List of documents required while logging a tar on item import.
1. Dump of records in all 4 interface tables (in excel spread sheet including
column headers) MTL_SYSTEM_ITEMS_INTERFACE,MTL_INTERFACE_ERRORS,
MTL_ITEM_REVISIONS_INTERFACE and MTL_ITEM_CATEGORIES_INTERFACE before running import and after running import.
2. Output of BOMCHECK.sql See Note 244145.1
3. Raw Trace, Tkprof of trace and log files after doing settings recommended in section d( What do I do to check more in to errors and see where the import is failing?) above.
4. Version of INCOIN from the server.
g. Some examples of errors and what it might mean
a. Sometimes users are unable to import items to child organization. They might get error DEFAULT_INCLUDE_IN_ROLLUP_FLAG,INVENTORY_ITEM_STATUS_CODE, INVENTORY_PLANNING_CODE,PLANNER_CODE,PLANNING_MAKE_BUY_CODE, FIXED_LOT_MULTIPLIER,ROUNDING_CONTROL_TYPE,CARRYING_COST
Check the corresponding attribute values. If planner code is set at Master level please make it organization level.
(Ref. Oracle Inventory User Guide pg 5-52 - General Planning Attribute Group)
"Planner Code This attribute is controlled at the Organization level only."
b. Sometimes users might get MESSAGE NAME : BOM_PARSE_ITEM_ERROR
or
MESSAGE NAME : INV_IOI_ERR
ERROR MESSAGE : *** BAD RETURN CODE b ***
Please do the following
1) See that setup > Receiving > (Purchasing and Receiving) setups are complete.
2) Auto extend all MTL Tables and MTL Indexes.
3) Auto extend Table Space.
4) Re-Link all Inventory libraries. Relink INCOIN.o.
5) Compile all Inventory Key Flex Fields.
6) Compile all invalid objects.
7) Check all INV profile options are set.
8) Truncate the interface tables and populate it with few records and run import. The error should go.
h. Is there an API for Item creation and updation?
Refer to Note 760498.1 - Item API Or Concurrent Manager, Which One Is Best For Item Creation?
Other useful references:
^^^^^^^^^^^^^^^^^^^^^^^^^^
Refer to Note:109628.1 FAQ for Item Import
Refer to Note:221911.1 How To Import Catalog Descriptive Values During Item Catalog Import Updating Items using Open Interface
Oracle Manufacturing APIs and Open Interface Manual
For questions on the Item Open Interface set-up and usage, visit the Master Data Management Community
REFERENCES
NOTE:760498.1 - Item API Or Concurrent Manager, Which One Is Best For Item Creation?
NOTE:1347604.1 - INCOIN: Why Should the Interface Tables Be Truncated
NOTE:423551.1 - How to create a Category Set and Assign Items to Categories
NOTE:115557.1 - How to Use Item Open Interface (IOI) to Import Item Category Assignments
Understanding Item Import and Debugging Problems with Item Import (Doc ID 268968.1)的更多相关文章
-
11 Zabbix Item类型之Zabbix Calculated 计算型Item类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型 计算类型 ...
-
使用import简化spring的配置 spring import 标签的解析 使用import或加载spring配置时,报错误There is no ID/IDREF 多个Spring配置文件import resource路径配置
spring-import 标签的解析.使用案例: 对于spring配置文件的编写,我想,对于经历过庞大项目的人,都有那种恐惧的心理,太多的配置文件.不过,分模块都是大多数人能想到的方法,但是,怎么分 ...
-
python 运行脚本报错 from keyword import iskeyword as _iskeyword ImportError: cannot import name iskeyword,说明python环境坏了,得重装,尚不知具体原因,
C:\Python27\Scripts>python task_test.pyTraceback (most recent call last): File "task_test.p ...
-
Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)
Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1) APPLIES TO ...
-
react import 配置路径别名&#39;@&#39;,简化import Component的方式
摘要 在react中,大多数业务逻辑都组件化:极大的减轻了代码的冗余度,如果组件的层次比较深的话,组件的import就比较费劲,在import时使用“../../components/test”的方式 ...
-
解决Android v4、v7包导入标红问题import android.support.v4.app.ActivityCompat;import android.support.v7.app
如果有如下错误:import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity ...
-
Item Import: What Does ";Sync"; Items Do? (Doc ID 417887.1)
In this Document Goal Solution APPLIES TO: Oracle Item Master - Version 11.5.10.0 to 11.5.10.0 [Rele ...
-
大话listview之设置item监听器无效大坑之一:item设了属性clickable
今天一个listview设置item监听器居然没有作用: 看了半天,怀疑是item设置了这个属性, 于是删了,果然就可以了. 大坑 ...
-
解决ListView中Item的子控件与Item点击事件冲突
常常会碰到在ListView中点击当中一个Item.会一并触发其子控件的点击事件.比如Item中的Button.ImageButton等.导致了点击Item中Button以外区域也会触发Button点 ...
随机推荐
-
实现Asp.Net MVC无刷新分页
整个过程主要就是:一开始进入页面是,在页面加载完成之后直接通过$(function(){ LoadRegisterUserInfo(1,10,0,0);//加载注册用户信息 });无条件加载数据,调 ...
-
python环境中运行程序
运行Python程序,我们比较常用的是直接在Windows命令提示窗口或者Linux终端或shell窗口中,直接:Python *.py,或者在Linux环境下,在投不中,加入: #!/usr/bin ...
-
mysql event
1.定时调用 存储过程 DELIMITER $$ ALTER DEFINER=`root`@`localhost` EVENT `event_stroke_ArchivesReportDataRefr ...
-
JS代码的简单重构与优化
JS代码的简单重构与优化(适合新手) 原文 http://www.cnblogs.com/similar/p/5016424.html Demo . 1 //bad if (age > 20) ...
-
JS中的prototype属性
JavaScript是基于对象的,任何元素都可以看成对象.然而,类型和对象是不同的.本文中,我们除了讨论类型和对象的一些特点之外,更重要的 是研究 如何写出好的并且利于重用的类型.毕竟,JavaSc ...
-
敏捷冲刺每日报告四(Java-Team)
第四天报告(10.28 周六) 团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://gi ...
-
Python作业之工资管理
作业之工资管理 工资管理实现要求: 工资管理系统 Alex 100000 Rain 80000 Egon 50000 Yuan 30000 -----以上是info.txt文件----- 实现效果: ...
-
PHP代码审计之命令注入
命令注入 命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种(常见:,常见!!): 命令注入 (Comma ...
-
Tomcat 部署多个项目出现错误
有时,我们会遇到部署同样项目可是不同版本号来回切换的问题.可是有时就是莫名奇异的会起不来. 也没太多时间去解决这些问题,所以就又一次把纯净版的Tomcat部署进去就能够了. 我想非常有可能就是Tomc ...
-
浅析Java中的23种设计模式
前言 设计模式不论是在我们学习编程,还是在工作和面试过程中,都会涉及到的一个问题,所以了解和学习好设计模式,是我们每一位码农必须要具备的技能,对以后的发展和自己技能的提升都有好处. 什么是设计模式(D ...