If an item is not shown in iProcurement module, first thing to check is the list price of the item at both Master and Org level.
It is mandatory that Item should have an list price to be used in iProcurement because in iProcurement item search requires the running of an internal process (online extract API) against item updates, which then makes the item eligible for the search.
Even if you are not using iProcurement module it is a good practice to give ‘List price’ and ‘Market price’ for items.
Let’s consider that you have loads of items with null list price (hence not shown in iProcurement) and manually entering the list price consumes lots of resource and time, hence we will see how to update the list price technically with the help of queries.
Execute the action plan in test instance first.
Finding the items having null list price:
select inventory_item_id from mtl_system_items where list_price_per_unit is null
Updating the list price:
update mtl_system_item_b SET list_price_per_unit=0 where inventory_item_id in (enter the item id's you got fr. Previous sql);
Commit;
Querying the row id’s:
select MIN(ROWID),MAX(ROWID) from mtl_system_items_b;
Run the API, passing in the ROWID values from the above query:
Begin
ICX_CAT_UTIL_PVT.setCommitParameter (FND_API.G_TRUE);
ICX_CAT_UTIL_PVT.setBatchSize(100);
ICX_CAT_UTIL_PVT.getPurchasingCategorySetInfo;
ICX_CAT_UTIL_PVT.setWhoColumns(null);
ICX_CAT_POPULATE_MI_PVT.upgradeR12MIs(sysdate-2000,'&minROWID','&maxROWID');
END;
Commit;
Here ‘sysdate’ refers the list price of the items updatable which were created in the last 2000 days; you can change this value as needed.
Submit “Rebuild Catalog Intermedia Index” concurrent request.
Log out and login, the item will be shown in iprocurement.
---X---