A database link is a path through which a remote user in another database can connect to any other database. Once created the database link exists as an object in the user schema.

Type of DB Links
There are 3 types of DB links. They are as follows:

1. PRIVATE: When the DB links is created, it is created under Private mode as default. The Private DBLINK is only available to the user who has created it. It is not possible for a user to grant access on a private DBLINK to other users.

2. PUBLIC: The Public DBLINK is available to all the users and all users can have the access without any restrictions.

3. SHARED: Shared database link uses share the server connection to support database link connection. If there are multiple concurrent database link access into a remote database, shared database link can be used to reduce the number of server connections required. Without the shared clause each database link connection requires a separate connection to the remote database.

Types of Logins:
In dblink we can use 2 types of login. They are as follows:

1. DEFAULT LOGIN: The User name and Password is same in both the databases.
Syntax
======
CREATE [PUBLIC] DATABASE LINK CONNECT TO CURRENT_USER USING
Code: (Text)
Create public database link daslink connect to current_user using ‘ORCL’


2. EXPLICIT LOGIN: The User Name and Password is different in both the databases.
Syntax
======
CREATE [PUBLIC|SHARED] DATABASE LINK CONNECT TOIDENTIFIED BY USING
Code: (text)
CREATE PUBLIC DATABASE LINK DDLNK CONNECT TO SCOTT IDENTIFIED BY TIGER USING ‘ORCL’

Note: To create the public DBLINK the user must have create public database link system privileges.

Oracle inventory main reporting tables.
——————————————————————————–

MTL_MATERIAL_TRANSACTIONS
Base table for all transactions (etc RCV,Issuance,Sub Inv Transfer,Inter Org Transfer,Misl Transactions…).

MTL_SYSTEM_ITEMS
Table contains all System items organization wise. It is Base table for items.
This table holds the definitions for inventory items, engineering items, and purchasing items. The flexfield code is MSTK. The primary key for an item is the INVENTORY_ITEM_ID and the ORGANIZATION_ID. The same item could be defined in more than one organization. Each row represents an item in an organization.

MTL_SYSTEM_ITEMS_TL
Table contains translated description of each master item.
The primary key is INVENTORY_ITEM_ID, ORGANIZATION_ID and LANGUAGE.

MTL_TRANSACTION_TYPES
Transaction types and names.

ORG_ACCT_PERIODS
Organization wise accounting periods.

GL_CODE_COMBINATIONS
Stores valid Accounting Flexfield segment value combinations for each accounting flexfield structure within your General Ledger. Primary key: CODE_COMBINATION_ID.

MTL_SECONDARY_INVENTORIES
This table is the definition table for the subinventory. Subinventories are assigned to items, indicating a list of valid places in which this item may be located. The primary key is SECONDARY_INVENTORY_NAME, ORGANIZATION_ID.

 MTL_ITEM_CATEGORIES
This table stores the item assignments to categories within a category set. For each assignment, this table stores the item, category set, and the category. Items can be assigned to multiple categories and category sets, but can be assigned to only one category in a given category set. This table is populated through either the Define Item or the Update Item/Org Attributes forms. It can also be populated by performing item assignments when a category set is defined. The primary key is INVENTORY_ITEM_ID, ORGANIZATION_ID, CATEGORY_SET_ID.
 
Oracle Purchasing main reporting tables.
——————————————————————————–
RCV_TRANSACTIONS
You can get data of all receiving transactions in this table.
Important columns
TRANSACTION_TYPE like  DELIVER,REJECT,ACCEPT,CORRECT,RETURN TO RECEIVING
TRANSFER, RETURN TO VENDOR, RECEIVE.
Also you can directly connect to shipment and purchase order tables for rcv_transactions
By  SHIPMENT_HEADER_ID and PO_HEADER_ID.
PO_HEADERS_ALL
Get purchase order header level information from this table.
Important Columns
TYPE_LOOKUP_CODE indicates purchase order type like RFQ, STANDARD.
PO_LINES_ALL
Get purchase order live level information from this table.
Important columns
ITEM_ID join with table MTL_SYSTEM_ITEMS column ITEM_ID to get item all information.
PO_VENDORS
Get vendor level information from this table.
Important columns
PO_VENDOR_SITES_ALL
Get vendor sites information from this table in detail.

 

1.EGO_ITEM_PUB.Assign_Item_To_Org

This API provide functionality to assign one/more items to an organization(s)
How to Assign Item Using Assign_item_to_org 


2. Item Creation and Updation Public API.
This API used to create items.
EGO_ITEM_PUB.Process_item(s)

 3. Category Code Creation Public API.
This API provides functionality to create a category.
INV_ITEM_CATEGORY_PUB.Create_Category

4. Item Category Assignment Public API
EGO_ITEM_PUB.Process_Item_Cat_Assignment

5. Item Catalog Descriptive Element Public API.

EGO_ITEM_PUB.Process_item_descr_elements

6. Item Revision Creation and Updation Public API.

EGO_ITEM_PUB.Process_Item_Revision
7. Implement Item Pending Changes Public API.

This API provides functionality to implement pending changes (phase and/or status) for an item/item revision.

EGO_ITEM_PUB.Implement_Item_Pending_Changes
8. Item Lifecycle Public API.

EGO_ITEM_PUB.Process_item_phase_and_status
9. Item Grant public API

EGO_ITEM_PUB.Process_item_role
10. Item User-Defined Attributes Data Public API.

EGO_ITEM_PUB.Process_User_Attrs_For_Item
11. Item Assignment to an Organization Public API.
This post will cover API ego_item_pub.assign_item_to_org used to assign item to an organization.
Step by step demonstration of code.
Please download attached file to use as sample code. This sample code assign single item at a time to single organization you can modify it for multiple items or multiple organizations at a time.
This API assigns a specific item to any inventory organization. The item to be assigned must already assigned to parent organization before running this API.

Input parameters.
P_param1                   pass inventory item id.
P_organization_id      organization id to which you want to assign item
P_organization_code organization code of specific organization


Variables need to be assign values by you.
l_user_id                     your used id
l_resp_id                     your responsibility id
l_application_id          application id

Get this information from fnd_responsibility table.

Running attached code I recommend to run it initially for some items and verify that these items are assigned to specific organizations.

Download.
To register your custom table under FND.

1. Input is your custom table name. Execute these  4 queries
2. Spool the records
3. Execute the spooled records in apps
4. Commit;

select ‘EXEC ‘||’AD_DD.REGISTER_TABLE(”XXCUST”, ”’||TABLE_NAME||”’,”T”,8,10,90);’ from all_tables
where table_name = :TABLE_NAME
/
select ‘EXEC ‘||’AD_DD.REGISTER_COLUMN(”XXCUST”, ”’||TABLE_NAME||”’,”’||COLUMN_NAME||”’,’||COLUMN_ID||’,”’||DATA_TYPE||”’,’||DATA_LENGTH||’,”’||NULLABLE||”’,”N”);’ from all_tab_columns
where table_name = :TABLE_NAME
ORDER BY COLUMN_ID
/
select ‘EXEC ‘||’AD_DD.REGISTER_PRIMARY_KEY(”XXCUST”,”’||INDEX_NAME||”’,”’||TABLE_NAME||”’,”’||ITYP_NAME||”’,”S”,”Y”,”Y”);’
FROM ALL_INDEXES
WHERE table_name = :TABLE_NAME
and uniqueness = ‘UNIQUE’
/
select ‘EXEC ‘||’AD_DD.REGISTER_PRIMARY_KEY_COLUMN(”XXCUST”,”’||A.INDEX_NAME||”’,”’||A.TABLE_NAME||”’,”’||A.COLUMN_NAME||”’,’||A.COLUMN_POSITION||’);’
FROM ALL_IND_COLUMNS A, ALL_INDEXES B
WHERE A.TABLE_NAME = :TABLE_NAME
AND A.INDEX_NAME = B.INDEX_NAME
AND B.UNIQUENESS = ‘UNIQUE’
/

To delete the registered Tables, columns
select ‘EXEC ‘||’AD_DD.DELETE_TABLE(”XXCUST”, ”’||TABLE_NAME);’ from all_tables
where table_name = :TABLE_NAME
/
select ‘EXEC ‘||’AD_DD.REGISTER_COLUMN(”XXCUST”, ”’||TABLE_NAME||”’,”’||COLUMN_NAME);’ from all_tab_columns
where table_name = :TABLE_NAME
ORDER BY COLUMN_ID
/