You are on page 1of 221

Oracle Product Hub: White Paper on Data

Import
Version 1.0

Copyright 2015 Oracle Corporation


All Rights Reserved

This document is not a promise to deliver and may not be included as part of any contract.

Contents
Introduction .................................................................................................................................................. 8
Overview of methods .................................................................................................................................... 8
FNDLOAD................................................................................................................................................... 8
iSetup ........................................................................................................................................................ 9
Interfaces and Public APIs ......................................................................................................................... 9
Import from Excel Web Application Desktop Integrator ..................................................................... 10
Web Services ........................................................................................................................................... 11
Importing and Exporting Catalog Setup Metadata ..................................................................................... 12
Using FNDLOAD for Item Catalog Categories and Related Entities ........................................................ 13
ICC Header Information ...................................................................................................................... 13
Attribute Group Information .............................................................................................................. 14
Value Sets Information ....................................................................................................................... 15
Attribute Group Association Information ........................................................................................... 15
Pages Information ............................................................................................................................... 16
Display Formats, Import Formats Information ................................................................................... 17
Search Criteria Information ................................................................................................................ 18
Workflow Template Information ........................................................................................................ 18
Item Rules Information ....................................................................................................................... 19
Using iSetup for Item Catalog Categories ............................................................................................... 20
ICC Header Information ...................................................................................................................... 20
Value Sets Information ....................................................................................................................... 23
Using InterfaceTables and Public APIs for Item Catalog Categories and Related Entities ...................... 25
ICC Header Information ...................................................................................................................... 26
Attribute Group Information .............................................................................................................. 31
Value Sets Information ....................................................................................................................... 36

Attribute Group Association Information ........................................................................................... 43


Pages Information ............................................................................................................................... 45
Number/Description Generation Function Information..................................................................... 47
New Item Request Information .......................................................................................................... 51
Transaction Attributes Information .................................................................................................... 52
Using Web Services for Item Catalog Categories .................................................................................... 57
Publishing ICC information.................................................................................................................. 57
Publishing Value Set Information ....................................................................................................... 61
Importing and Exporting Alternative Catalogs (Item Categories) ............................................................... 65
Using FNDLOAD for Alternative Catalogs................................................................................................ 65
Category Set Information .................................................................................................................... 65
Category Information .......................................................................................................................... 66
Valid Categories Information .............................................................................................................. 66
Default Category Set Information ....................................................................................................... 67
Using iSetup for Alternate Catalogs ........................................................................................................ 67
Category Set Information .................................................................................................................... 67
Using Public APIs for Alternate Catalogs................................................................................................. 70
Category Information .......................................................................................................................... 70
Valid Category Information ................................................................................................................. 72
Importing and Exporting Items ................................................................................................................... 73
Using iSetup for Items ............................................................................................................................. 74
Item Information ................................................................................................................................. 74
Item Cross Reference Information ...................................................................................................... 77
Item Template Information ................................................................................................................ 78
Importing Items .................................................................................................................................. 80

Importing Operational Attributes ....................................................................................................... 82


Assigning Items to Additional Organizations ...................................................................................... 85
User Defined Attributes Information .................................................................................................. 86
Item Category (Alternative Catalog) Assignment Information ........................................................... 94
Item Revision Information .................................................................................................................. 95
Item People Information ..................................................................................................................... 96
Related Items Information .................................................................................................................. 97
Item Cross References Information .................................................................................................... 98
Customer Item Cross Reference Information ................................................................................... 100
Using Public APIs for Items ................................................................................................................... 103
Process Items Interface ..................................................................................................................... 103
Creating an Item Revision ................................................................................................................. 108
Adding Roles ..................................................................................................................................... 110
Associating Categories to an Item .................................................................................................... 111
Updating Item Descriptive Elements ................................................................................................ 113
Promoting/Demoting the Life Cycle Phase of an Item ..................................................................... 114
Updating UDA Values for an Item ..................................................................................................... 115
Item Associations: Cross References ................................................................................................ 120
Using Import From Excel for Items ....................................................................................................... 121
Importing Items Using Excel ............................................................................................................. 121
Importing GTIN Cross References from Excel ................................................................................... 126
Importing Supplier and Supplier Site Associations from Excel ......................................................... 127
Importing Item Revisions from Excel ................................................................................................ 127
Importing Item People from Excel .................................................................................................... 129
Importing Item Category Associations from Excel ............................................................................ 130

Import Item Organization Associations from Excel .......................................................................... 132


Using the Import WorkBench for Items ................................................................................................ 135
Creating an Item Batch ..................................................................................................................... 135
Importing Items using the Batch ....................................................................................................... 137
Viewing the Item Batch Summary Details ........................................................................................ 140
Using Web Services for Items ............................................................................................................... 141
Using Microsoft Excel to Export Items .................................................................................................. 150
Exporting Items to Excel.................................................................................................................... 150
Importing and Exporting Roles ................................................................................................................. 152
Using FNDLOAD for Roles .................................................................................................................... 152
Roles and Privilege Setup and Association Information ................................................................... 152
Roles Mappings Setup Information .................................................................................................. 153
Using iSetup for Roles ........................................................................................................................... 153
Roles and Privileges Set Up and Association Information ................................................................ 153
Importing and Exporting Structure Type Information .............................................................................. 156
Using FNDLOAD for Structure Type Information .................................................................................. 157
Structure Names and Structure Name Association .......................................................................... 157
Using iSetup for Structure Type Information ....................................................................................... 157
Structure Names Information ........................................................................................................... 157
Importing and Exporting Structures ......................................................................................................... 160
Using Public APIs for Structures ............................................................................................................ 163
Process BOM Information ................................................................................................................. 163
Process UDA Information .................................................................................................................. 173
Using an Interface for Structures .......................................................................................................... 179
Structure Header Information .......................................................................................................... 181

Structure Component Information ................................................................................................... 182


Structure Components UDA Information ......................................................................................... 183
Component Reference Designator Information ............................................................................... 185
Substitute Component Information .................................................................................................. 186
Importing Structures From Excel .......................................................................................................... 188
Creating Structures with Components.............................................................................................. 188
Creating Component Reference Designators ................................................................................... 190
Using the Import Workbench to Import Structures.............................................................................. 192
Using Web Services for Structures ........................................................................................................ 198
Using Export to Excel for Structures ..................................................................................................... 211
Structure Header and Component Information ............................................................................... 211
Appendix A Useful Resources ................................................................................................................. 214
Useful Metalink Notes about the Item Open Interface ........................................................................ 214
Useful Metalink Notes about the Item Public API ................................................................................ 214
APPENDIX B A CASE STUDY .................................................................................................................... 216
Value Set Sync ....................................................................................................................................... 217
Attribute Group Sync ............................................................................................................................ 217
Syncing the ICC and its Hierarchy ......................................................................................................... 218
Items, Item Revisions and Item UDAs Associated with the ICC and its Hierarchy ................................ 219
Structure Headers and Components for Items belonging to the ICC and its Hierarchy ....................... 219
Component UDAs Associated with the Items Belonging to the ICC and its Hierarchy ......................... 221

Introduction
One of the key challenges of implementing a Master Data Management solution is importing data into
the system. Oracle Product Hub offers numerous ways of importing the setup data and the actual
product data. This white paper explains all available methods to import data, provides details and
examples of each method, discusses special cases, and provides some troubleshooting tips.

Overview of methods
Oracle Product Hub uses the following methods to import data:

FNDLOAD
iSetup
Interfaces and Public APIs
Import from Excel Web Application Desktop Integrator
Web Services

FNDLOAD
The Generic Loader (FNDLOAD) is a concurrent program that can move Oracle E-Business Suite data
between database and text file representations. The loader reads a configuration file to determine what
data to access. It can download data from an application entity into a portable, editable text file. This
file can then be uploaded into any other database to copy the data. Conversion between database store
and file format is specified by a configuration file that is read by the loader. FNDLOAD downloads data
from a database according to a configuration (.lct) file, and converts the data into a data file (.ldt file).
The Generic Loader can then upload this data to another database using a configuration file. It is the
most preferred way of shipping seeded data internally.
Limitations
Generic Loader configuration file is not available for all entities.
The design is usually restricted to seed data, so filter capabilities and validations are limited.
Error reporting is limited.
Troubleshooting
Check the log file generated by the FNDLOAD command to see if it reports any errors.
Check the version of the LCT file that is used for upload/downloading data from the database. It
should be equal or greater than the version of the LCT file mentioned in the corresponding LDT
file.
The FNDLOAD PL/SQL utility makes upload decisions based on the presence of a timestamp and
use of sysdate. Timestamp and sysdate are used by the utility to determine the data version.
The LDT file should have the latest last_update_date for the entity to upload. If not, no update is
made to the database.

Some FNDLOAD downloads or uploads may run for a long time. You can run the FNDLOAD
command in the background and check the log file content periodically for the command run
status, but the log file may not update for several minutes. Alternatively, you can collect a trace
for the FNDLOAD command. The command creates a DB session for the download or upload.
Capture a trace for the session from the DB side.

iSetup
Oracle iSetup is a data migration and reporting tool. This tool consists of the Migrator and the Reporter.
The Migrator enables you to migrate data from one instance of the Oracle E-Business Suite to another.
The Reporter generates reports about the migration.
Limitations
Oracle Advanced Product Catalog (Product Hub) data available for migration is limited in iSetup.
Troubleshooting
A concurrent program launches to create an Extract or Load. View a log of the concurrent programs
by clicking on the 'View Log' Button in the View Details page.
-

Set the following profile options:


o AZ: Debug Mode(1) => 'Y'
o FND: Diagnostic => Yes, site level (Enables the Diagnostics link)
o FND: Debug Log Level => Statement
o FND: Debug Log Module => ego%
Enable trace.
Reproduce the issue and check the concurrent program logs for errors.

Interfaces and Public APIs


Oracle Open Interfaces are the most preferred method of importing data into Oracle. Inbound interface
tables and/or public APIs are available for most of the entities. Oracle internally uses the same code
footprint for many flows.
Limitations
Primarily an import tool. Users must write logic to either insert records into interface tables or
populate the PLSQL tables for APIs.
Troubleshooting
To identify that an error has occurred:

Verify that the concurrent program launched for importing the data ends with a warning/error.
Check the process_flag for the records in the corresponding interface table. Process_flag 3
represents an error while processing the record.
Check mtl_interface_errors for the particular record error. Error codes with error messages are
marked.

Debugging:

To enable debug, set the following profile options:


o FND: Debug Log Enabled: Yes
o FND: Debug Log Level: Statement
o INV: Debug Trace: Yes
o INV: Debug Level: 102
o INV: Debug File = /tmp/invdbg_TAR.dbg
Enable trace for the corresponding concurrent program.
Truncate the corresponding interface tables and load only a set of data.
Reproduce the issue.
Check the concurrent program log and mtl_interface_errors for the errors.
While using a pl/sql API, before using the script, initialize the application context using
FND_GLOBAL.APPS_INITIALIZE (l_user_id, l_resp_id, l_application_id). A debug log file with the
file name as provided in the profile "INV: Debug File" is generated.

Import from Excel Web Application Desktop Integrator


Oracle Product Hub uses the Oracle Web Applications Desktop Integrator integration with Microsoft
Excel to export and import data from/to a spreadsheet.
Troubleshooting
o Perform a Functional Setup Test through BNE Admin Servlet: BNE Admin Servlet.
http://<server_name>:<server_port>/oa_servlets/oracle.apps.bne.framework.BneAdminServlet
o Check the function BNE_CREATE_DOCUMENT and ensure the Web HTML call is set to the
Servlet BneApplicationServiceBneApplicationService and that the Web Host is set to the correct
host.
o Enable Trace and inspect the errors listed in the log file generated.
o To enable Debug, set the profiles listed under System Administrator - System Profiles.
For example:
BNE Server Log Filename: <create name> (Verify that the name does not already exist
and if it does, delete it.)
BNE Server Log Level: TRACE
BNE Server Log Path: free to choose. For example, IAS_TOP/Apache/Jserv/logs (use the
full path).
o Reproduce the issue.
o Once the issue is reproduced, turn off Trace by setting BNE Server Log Level back to
Detail.
o Check the trace for the errors.

Web Services
Various web services are available to extract data for the following entities using the Publication
Framework functionality.

Item/Structure
Metadata, such as Item Catalog Category, Valueset.

All services referred to in this document are Oracle Data Integrator (ODI)-based services. Oracle
recommends that you use ODI-based services to publish data from Product Hub. The Product Hub web
services currently documented in the Integration Repository and in the Web Services for Publishing
appendix, Oracle Product Hub Implementation Guide, such as ItemService_GetItemInformation and
ItemService_getItemStructure, are no longer supported as of release 12.2.5. Oracle recommends using
ODI-based services, which offers more functionality and configuration flexibility.
Details about the Item ODI web services are documented in My Oracle Support Doc ID 888696.1 (for
release 12.1) and 1336146.1 (for release 12.2).
Disclaimer:
The code used in examples is for informative purposes only. Use details available in this document
only after sufficient testing. For special cases, consult with Oracle Support/Development.

Importing and Exporting Catalog Setup Metadata


The matrix below summarizes the available import/export methods for each entity.
Entity

Header
Attribute
Groups (AG)
Value Sets
AG
Association
Pages
Display
Format
Import
Format
Search
Criteria
Workflow
Templates
Item Rule
Sets
Num/Desc
generation
NIR
Association
Transaction
Attributes
ICC Versions
Value Set
Versions

User
Interface

FNDLOAD iSetup Interface

Web
Service

Inbound Technique: Interface


Outbound Technique: Web Service
Inbound/Outbound Technique: FNDLOAD, iSetup
The following subentities of catalog metadata are not extracted or imported since they change
infrequently.

Lifecycle Policies
Match Rules
Roles Association
Lifecycle Association
Attachment Category Association
Item Template Association
Report Template Association
Lifecycle Phase Status Association
Attribute Groups Actions

Back to Summary

Using FNDLOAD for Item Catalog Categories and Related Entities


When importing using FNDLOAD, import the data in the following order:

Value Sets
Attribute Groups
Pages
Item Catalog Categories (ICCs)
Note: ICCs do not reside within the User-Defined Attribute (UDA) Framework.
Associations (although ICC-specific associations are imported along with ICCs).
Note: Any module that uses the UDA Framework can use Associations.
Display Formats, Import Formats, Search Criteria, Workflow Templates, and Item Rule Sets (they
can all be imported at the same time; they are independent of each other).

ICC Header Information


File name
Location
Entities

Key
Internal Usage

egocatgrp.lct
$EGO_TOP/patch/115/import
Item Catalog Group (ITEM_CATALOG_GROUP)
Attribute Group Association (CAT_ATTR_GRP_ASSOC)
Item Pages (CAT_ITEM_PAGES)
Item Page entries (CAT_ITEM_PAGE_ENTRIES)
ICC Name (CATALOG_GROUP)
None

Downloading an Item Catalog Category


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Processors ICC defined in the system. This
command will also download the related Attribute Group Association, Item Pages and Item Page
entries.

FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD


$EGO_TOP/patch/115/import/egocatgrp.lct xxprocessors_icc.ldt
ITEM_CATALOG_GROUP CATALOG_GROUP=ProcessorsUploading an Item Catalog Category
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Processors ICC from xxprocessors_icc.ldt.
This command will also upload the related Attribute Group Association, Item Pages and Item
Page entries.
NOTE: egocatgrp.lct does not support ICC versioning.

FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD


$EGO_TOP/patch/115/import/egocatgrp.lct xxprocessors_icc.ldt
Back to Summary

Attribute Group Information


File name
Location
Entities

Key

Internal Usage

egoefag.lct
$EGO_TOP/patch/115/import
Attribute Group (ATTRIBUTE_GROUP)
Attribute Group Data Level Association (ATTRIBUTE_GROUP_DL)
Attributes (ATTRIBUTE)
Application Id (APPLICATION_ID)
Attribute Group Type (ATTR_GROUP_TYPE)
Attribute Group Name (ATTR_GROUP_NAME)
Used to ship many seeded Attribute Groups such as GTIN and Master Item
Operational Attribute Groups.

Downloading an Attribute Group


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Attribute Group Capacitor_Specs defined in the
system.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egoefag.lct xxcapacitorspec_ag.ldt
ATTRIBUTE_GROUP APPLICATION_ID=431
ATTR_GROUP_TYPE=EGO_ITEMMGMT_GROUP
ATTR_GROUP_NAME=Capacitor_Specs
NOTE: egoefag.lct is a user-defined attribute framework LCT. It is used by multiple products for
seeding the attribute groups. For Advanced Product Catalog (EGO) attribute groups, the
Application_id is 431 and the Attribute Group type is EGO_ITEMMGMT_GROUP.
NOTE: If you do not specify the ATTR_GROUP_NAME parameter, then the above command will
download ALL attribute groups defined in the system.
Uploading an Attribute Group
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Capacitor Specs Attribute Group from
xxcapacitorspec_ag.ldt.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egoefag.lct xxcapacitorspec_ag.ldt

Back to Summary

Value Sets Information


File name
Location
Entities

Key
Internal Usage

egoefval.lct
$EGO_TOP/patch/115/import
Value Set (VALUE_SET)
Value Set Values (VALUE_SET_VALUES)
Value Set Table Metadata (VALUE_SET_VAL_TABLE)
Value set name (VALUE_SET_NAME)
Format Code (FORMAT_CODE) Not used.
Used to ship EGO specific value sets such as egogtinvs.ldt.

Downloading a Value Set


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the value set EGO_BATCH_TYPE defined in the
system.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egoefval.lct xxegobatch_type.ldt
VALUE_SET VALUE_SET_NAME=EGO_BATCH_TYPE
NOTE: If you do not specify the VALUE_SET_NAME parameter, then this command downloads
all value sets defined in the system. Since EGO value sets are built on top of FND value sets, this
command also downloads all non-EGO defined value sets. It is not recommended to use this LCT
to download all value sets in the system.
NOTE: egoefval.lct is different from a FND value set LCT such as afffload.lct. egoefval.lct also
seeds EGO specific information. Use egoefval.lct only if you want to import EGO specific value
sets.
NOTE: egoefval.lct does not support value set versions.
Uploading a Value Set
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the value set EGO_BATCH_TYPE from
xxegobatch_type.ldt.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egoefval.lct xxegobatch_type.ldt
Back to Summary

Attribute Group Association Information


File name
Location

egoefassocs.lct
$EGO_TOP/patch/115/import

Entities
Key

Internal Usage

Object Association (EGO_EF_ASSOCIATION)


Object Name (OBJECT_NAME)
Classification Code ICC Name (CLASSIFICATION_CODE)
Data Level (DATA_LEVEL)
Application (APPLICATION_ID)
Attribute Group Type (ATTR_GROUP_TYPE)
Attribute Group Name (ATTR_GROUP_NAME)
None.

NOTES:

egoefassocs.lct is a user defined attribute framework specific LCT that is used by different
products. To import Item Catalog Category specific associations, use egocatgrp.lct.

Apply the performance patch 21080231:R12.EGO.C before downloading attribute group associations.

Downloading AG Associations
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the AG association defined in the system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egoefassocs.lct xxegoagassoc.ldt
EGO_EF_ASSOCIATION OBJECT_NAME="EGO_ITEM"Uploading AG Associations
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the AG association xxegoagassoc.ldt.
FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egoefassocs.lct xxegoagassoc.ldt

Back to Summary

Pages Information
File name
Location
Entities
Key
Internal Usage

egoefpages.lct
egopages.lct
$EGO_TOP/patch/115/import
Pages (EGO_PAGES)
Page Entries (EGO_PAGE_ENTRIES)
Page Internal Name (PAGE_INTERNAL_NAME)
egopages.lct is used to ship various seeded Operational Attribute Group
pages.
egoefpages.lct is not used internally.

NOTE: egoefpages.lct is a user defined attribute framework specific LCT which is used by different
products. To import Item Catalog Category specific pages and page entries, use egocatgrp.lct.

Downloading Pages
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the pages defined in the system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egoefpages.lct xxegopages.ldt EGO_PAGES
OBJECT_NAME="EGO_ITEM"
Uploading Pages
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the pages xxegopages.ldt.
FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/ egoefpages.lct xxegopages.ldt
Back to Summary

Display Formats, Import Formats Information


File name
Location
Entities

Key

Internal Usage

egoresultsformat.lct
$EGO_TOP/patch/115/import
Result Format (EGO_RESULTS_FORMAT)
Result Format Column (EGO_RESULT_COLUMN)
Result Section (EGO_RESULT_SECTION)
CUSTOMIZATION_APPLICATION_ID
CUSTOMIZATION_CODE
REGION_APPLICATION_ID
REGION_CODE

egoresultsformat.lct is used to ship seeded import formats and display


formats.

Downloading Display Formats/Import Formats


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the display formats and import formats defined in the
system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egoresultsformat.lct
xxegoresultsformat.ldt EGO_RESULTS_FORMAT
CUSTOMIZATION_APPLICATION_ID="431"
Uploading Display Formats/Import Formats
1. Log on to the application server and initialize the application environment variable.

2. Run the following command to upload the display formats and import formats
xxegoresultsformat.ldt.
FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egoresultsformat.lct
xxegoresultsformat.ldt
Back to Summary

Search Criteria Information


File name
Location
Entities

egocriteriatemplate.lct

Key

$EGO_TOP/patch/115/import
Result Format (EGO_CRITERIA_TEMPLATE)
Result Format Column (EGO_CRITERION)
CUSTOMIZATION_APPLICATION_ID
CUSTOMIZATION_CODE
REGION_APPLICATION_ID
REGION_CODE

Internal Usage

egocriteriatemplate.lct is used to ship seeded search criteria.

Downloading Search Criteria


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Search Criteria defined in the system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egocriteriatemplate.lct
xxegosearchcri.ldt EGO_CRITERIA_TEMPLATE
CUSTOMIZATION_APPLICATION_ID="431"
Uploading Search Criteria
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Search Criteria xxegosearchcri.ldt.
FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egocriteriatemplate.lct
xxegosearchcri.ldt
Back to Summary

Workflow Template Information


File name
engrttmp.lct
Location
Entities

$ENG_TOP/patch/115/import/
Workflow Template (ROUTING_TEMPLATE)
Workflow Name (ROUTE_NAME)

Key

CUSTOMIZATION_APPLICATION_ID
CUSTOMIZATION_CODE
REGION_APPLICATION_ID
REGION_CODE

Internal Usage

None

Downloading Workflow Templates


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Change Management workflow templates defined
in the system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$ENG_TOP/patch/115/import/ engrttmp.lct Test_Template.ldt
ROUTING_TEMPLATE ROUTE_NAME="Approval"
Uploading Workflow Templates
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Workflow Template Test_Template.ldt.
FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$ENG_TOP/patch/115/import/ engrttmp.lct Test_Template.ldt
Back to Summary

Item Rules Information


File name
Location
Entities
Key
Internal Usage

egorules.lct
$EGO_TOP/patch/115/import
Rule sets(EGO_RULE_SETS)
RULESET_NAME
None

Downloading Item Rule Sets


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the item rule sets defined in the system.
FNDLOAD <username>/<password>@<SID> 0 Y DOWNLOAD
$EGO_TOP/patch/115/import/egorules.lct rule_set.ldt EGO_RULE_SETS
[RULESET_NAME=<ruleset name>] [BUSINESS_ENTITY=<business entity>]
Uploading Item Rule Sets
1. Log on to the target application server and initialize the application environment variable.

2. Run the following command to upload item rule set rule_set.ldt.


FNDLOAD <username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egorules.lct rule_set.ldt [CUSTOM_MODE=FORCE] [LOG_NAME=<log file name>]
3. Retrieve the migration log on the target instance.
The migration log is generated by the rule migration program and only exists for the upload
command. You can find the migration log in the path specified by the db parameter utl_file_dir.
Use the parameter LOG_NAME in the FNDLOAD UPLOAD command to specify the log file name.
If you omit the parameter LOG_NAME, the log file name is composed by combining the
uploaded rule set name and the timestamp (for example, XB2Rule1Supp_2013-0514_18003.txt). One log file is generated for each rule set processed.

Back to Summary

Using iSetup for Item Catalog Categories


Use iSetup to extract Catalog Group setup information from an Oracle Inventory instance or to load
Catalog Group setup information into an Oracle Inventory instance. Catalog Setup information imported
into an Oracle Product Hub instance creates item catalog category (ICC) header information, but not ICCassociated entities such as attribute groups and pages. Use another method to synchronize changes to
ICC header information between instances.
ICC Header Information
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. In the Selection Sets page, select Create.
5. In the Templates page, select the Discrete Mfg. and Distribution Template.

6. Click Continue.

7. Deselect all entities and select only Inventory > Catalog Groups.

8. Optionally, specify the filter condition. ICC name is the only filter available for Catalog Groups.
9. Specify a Name for the Selection Set and click Apply to save the changes.

Extracting data
10. Search for the selection set created above. Select the selection set and click Extract.

11. Specify an extract name and click Continue.

12. Select the schedule option as As soon as possible and click Finish. Alternatively, schedule the
extract for a future date and time.

13. Navigate to Migrations > Extracts and search for the extract name. Confirm that the status of
the request is Completed (Normal). Optionally, download the extract zip file.

NOTE: iSetup for Item Catalogs does not support the Transform functionality. However, you can use the
Report functionality for validation and comparisons.
Loading data
14. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.

15. Specify the load name and Target Instance. Click Next.

16. Select the Catalog Group in the Set Object Details page. Click Next.
17. Select the schedule option As soon as possible and click Finish. Alternatively, schedule the
load for a future date and time.
18. Navigate to Migrations > Load and search for the load name. Check the load status.
NOTE: Select the Load/Extract name to view the log file if the request completed with a Warning or
Error status.

Back to Summary

Back to Summary

Value Sets Information


You can use iSetup to migrate or update value sets created from the FND responsibility, but not from
Oracle Product Hub.
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select the General Foundation template and click Continue.

6. Specify a selection set name and a source instance. Select General Foundation > Valueset values,
then click Apply. Alternatively, specify filter values for the value set.

Extracting data
7. Search for the selection set created in the previous step. Select the selection set and click
Extract.
8. Specify an extract name and source and then click Continue.

9. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.
10. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.

NOTE: The value set extract in iSetup does not support Transform. Transform is a feature available in
iSetup that transforms extracted data before loading it into the target instance.

Loading data
11. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.
12. Specify the Load Name and Target Instance and click Next.
13. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
14. Navigate to Migrations > Load and search for the load name. Check the load status.
NOTE: Select the load/extract name to view the log file if the request completed with a warning or error
status.
Back to Summary

Back to Summary

Using InterfaceTables and Public APIs for Item Catalog Categories and Related
Entities
In Release 12.1.3, Oracle Product Hub introduced a new feature that imports Item Catalog Categories
and related entities such as attribute groups and value sets using Oracle Open Interfaces. First, populate
the interface tables with the data to import, then launch a concurrent program to process and import
the records from these interface tables.
Use the Development Manager responsibility to launch the seeded EGO Import Metadata concurrent
program that imports ICC metadata. This program has the following five parameters.

Import Value sets Select Yes to import value sets.


Import Attribute Groups - Select Yes to import attribute groups.
Import Item Catalog Categories - Select Yes to import ICCs.
Batch ID Enter the value of the SET_PROCESS_ID in the interface table used to group the
import.
Delete Processed Records - Select Yes to delete records after successfully processing the
records.

ICC Header Information


Interface Table Name
Key/Important Columns
ITEM_CATALOG_NAME

MTL_ITEM_CAT_GRPS_INTERFACE
ICC Name.
Alternatively, specify ITEM_CATALOG_GROUP_ID or SEGMENT1-20.

PARENT_CATALOG_GROUP_NAME

Parent ICC Name.


Alternatively, specify PARENT_CATALOG_GROUP_ID.
NOTE: Create the Parent ICC before creating the child ICC .

ITEM_NUM_GEN_METHOD_TYPE
PREFIX
STARTING_NUMBER
INCREMENT_BY
SUFFIX
ITEM_NUM_GENERATION_FUNCTION
ITEM_NUM_FUNCTION_ID
ENABLE_KEY_ATTRS_NUM

Columns used to specify the Item Number Generation action.


ITEM_NUM_GEN_METHOD_TYPE
U/Null User Defined
I Inherited from Parent
S Sequence Generated
F Function Generated.
PREFIX, STARTING_NUMBER, INCREMENT_BY, SUFFIX,
ITEM_NUM_SEQ_NAME
Used for populating the Sequence Generation information. Applicable
only if the ITEM_NUM_GEN_METHOD_TYPE is S.
ITEM_NUM_GENERATION_FUNCTION/ITEM_NUM_FUNCTION_ID,
ENABLE_KEY_ATTRS_NUM
Used for populating Function Generation information. Applicable only if
the ITEM_NUM_GEN_METHOD_TYPE is F.
ITEM_NUM_GENERATION_FUNCTION/ITEM_NUM_FUNCTION_ID
is populated from the INTERNAL_NAME/FUNCTION_ID columns of the
ego_functions_b table.
NOTE: You must also map all function parameters through the
EGO_FUNC_PARAMS_MAP_INTERFACE table.

ITEM_DESC_GEN_METHOD_TYPE
ITEM_DESC_GENERATION_FUNCTION
ITEM_DESC_FUNCTION_ID
ENABLE_KEY_ATTRS_DESC

Columns used to specify the Item Description Generation action.


ITEM_DESC_GEN_METHOD_TYPE
U/Null User Defined
I Inherited from Parent
F Function Generated.
ITEM_DESC_GENERATION_FUNCTION/ITEM_DESC_FUNCTION_ID,
ENABLE_KEY_ATTRS_NUM
Used for populating Function Generation information. Applicable only if
ITEM_DESC_GEN_METHOD_TYPE is F.
ITEM_DESC_GENERATION_FUNCTION/ITEM_DESC_FUNCTION_ID
is populated from the INTERNAL_NAME/FUNCTION_ID columns of the
ego_functions_b table.

NEW_ITEM_REQUEST_NAME
NEW_ITEM_REQUEST_TYPE

NOTE: You must also map all function parameters through the
EGO_FUNC_PARAMS_MAP_INTERFACE table.
New Item Request Type
Indicates whether the NIR is associated to the ICC. Valid values are Y or N.

Example 1-1: Creating a Simple ICC


1. Insert a row into the MTL_ITEM_CAT_GRPS_INTERFACE table.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
ITEM_CATALOG_NAME
SET_PROCESS_ID

,
,

PROCESS_STATUS

TRANSACTION_TYPE

ITEM_CREATION_ALLOWED_FLAG,
DESCRIPTION

PARENT_CATALOG_GROUP_NAME
)
VALUES
(
'SIMPLE_ICC',
10001

'SYNC'

'Y'

'Simple ICC',
NULL
)

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 1001 and the
Import Item Catalog Categories parameter set to Yes.
Example 1-2: Creating an ICC with a Parent
1. Insert a row into the MTL_ITEM_CAT_GRPS_INTERFACE table.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
ITEM_CATALOG_NAME
SET_PROCESS_ID

,
,

PROCESS_STATUS

TRANSACTION_TYPE

ITEM_CREATION_ALLOWED_FLAG,
DESCRIPTION

PARENT_CATALOG_GROUP_NAME
)
VALUES
(
'CHILD_ICC',
10002
1

,
,

'SYNC'
'Y'

,
,

'Child ICC',

'SIMPLE_ICC'
);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 1002 and the
Import Item Catalog Categories parameter set to Yes.
Example 1-3: Creating an ICC with Sequence Generated Item Numbering
1. Insert a row into the MTL_ITEM_CAT_GRPS_INTERFACE table.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
ITEM_CATALOG_NAME

SET_PROCESS_ID

PROCESS_STATUS

TRANSACTION_TYPE

ITEM_CREATION_ALLOWED_FLAG,
DESCRIPTION

PARENT_CATALOG_GROUP_NAME,
ITEM_NUM_GEN_METHOD_TYPE,
PREFIX

STARTING_NUMBER
INCREMENT_BY

,
,

SUFFIX
)
VALUES
(
'ITEM_NUM_SEQ_ICC'

10003
1

,
,

'SYNC'
'Y'

,
,

'ICC with Item Number Sequence Generated',


NULL
'S'

,
,

'PP-'

1000
1

,
,

'-SS'
);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 1003 and the
Import Item Catalog Categories parameter set to Yes.
Example 1-4: Update the description and prefix of an ICC
1. Insert a row into the MTL_ITEM_CAT_GRPS_INTERFACE table.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(

ITEM_CATALOG_NAME,
SET_PROCESS_ID ,
PROCESS_STATUS ,
TRANSACTION_TYPE,
DESCRIPTION

PREFIX
)
VALUES
(
'ITEM_NUM_SEQ_ICC' ,
10005
1

,
,

'SYNC'

Updated Description,
UU-
);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 10005 and the
Import Item Catalog Categories parameter set to Yes.
Example 1-4: Associating a NIR to an ICC
1. Insert a row into the MTL_ITEM_CAT_GRPS_INTERFACE
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
DESCRIPTION

SEGMENT1

ATTRIBUTE1

ITEM_CREATION_ALLOWED_FLAG,
NEW_ITEM_REQUEST_TYPE
NEW_ITEM_REQUEST_NAME
SET_PROCESS_ID

PROCESS_STATUS

TRANSACTION_TYPE
)
VALUES
(
'NIR Name Catalog description',
'TestVJICC_2_NIR'

'100'

'Y'

'Y'

'EBS ICC NIR'

80
1
'CREATE'
);

2. Commit the transaction.

,
,
,

,
,

table.

3. Launch the EGO Import Metadata concurrent program with Batch ID 10005 and the
Import Item Catalog Categories parameter set to Yes.

Back to Summary

Attribute Group Information


Interface Table Name
Key/Important Columns:
ATTR_GROUP_TYPE
ATTR_GROUP_NAME
ATTR_GROUP_DISP_NAME

EGO_ATTR_GROUPS_INTERFACE
EGO_ATTR_GROUP_COLS_INTF
EGO_ATTR_GROUPS_DL_INTERFACE
EGO_ATTR_GROUPS_INTERFACE
For Attribute Groups created within an ICC, the ATTR_GROUP_TYPE is always
EGO_ITEMMGMT_GROUP.
ATTR_GROUP_NAME Attribute Group Internal Name.
ATTR_GROUP_DISP_NAME Attribute Group Display Name.
Alternatively, specify ATTR_GROUP_ID for UPDATE transactions.

MULTI_ROW
VARIANT
NUM_OF_ROWS
NUM_OF_COLS
Key/Important Columns:
INTERNAL_NAME
DISPLAY_NAME

N/Null Use for Single Row Attribute Groups.


Y Use for Multi Row Attribute Groups.
N/Null use for normal Attribute Groups.
V Use for variant Attribute Groups.
Applicable for Multi Row attribute groups. If no value is provided, then
DEFAULT values are populated.
EGO_ATTR_GROUP_COLS_INTF
INTERNAL_NAME Attribute Internal Name.
DISPLAY_NAME Attribute Display Name.
Alternatively, specify ATTR_ID for UPDATE transactions.

ATTR_GROUP_TYPE
ATTR_GROUP_NAME
ATTR_GROUP_DISP_NAME
SEQUENCE
DATA_TYPE

APPLICATION_COLUMN_NAME

FLEX_VALUE_SET_NAME

Foreign key to Attribute Group. The value must be present in the


EGO_ATTR_GROUPS_INTERFACE table.
Sequence of the attribute. Must be Unique.
A Translatable Attribute
C Character Attribute
N Number Attribute
X Date Attribute
Y Timestamp Attribute
Application Column Name for the attribute.
If the data type is a:
character attribute, then the value must be C_EXT_ATTR1-40.
number attribute, then the value must be N_EXT_ATTR1-20.
date/date time attribute, then the value must be D_EXT_ATTR1-10.
translatable attribute, then the value must be TL_EXT_ATTR1-40.
Value set name.
Alternatively, specify the FLEX_VALUE_SET_ID.

DISPLAY_CODE

Key/Important Columns:
ATTR_GROUP_TYPE
ATTR_GROUP_NAME

Display as field:
R Radio Group
D Dynamic URL
T- Text Field
C Check Box
A Text Area
H Hidden
S Static Text
EGO_ATTR_GROUPS_DL_INTERFACE
Foreign key to Attribute Group. The value must be present in
EGO_ATTR_GROUPS_INTERFACE

DATA_LEVEL_NAME

Valid values are

ITEM_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG,


ITEM_REVISION_LEVEL

Example 2-1: Creating a Single Row Attribute Group


1. Insert a row into the EGO_ATTR_GROUPS_INTERFACE table.
INSERT
INTO EGO_ATTR_GROUPS_INTERFACE
(
attr_group_type

attr_group_name

attr_group_disp_name,
process_status

transaction_type

set_process_id
)
VALUES
(
'EGO_ITEMMGMT_GROUP',
'AG1'

'AG 1'

'CREATE'

20001
);

2. Insert a row into the EGO_ATTR_GROUPS_DL_INTERFACE table to set the Attribute


Group at Item Level.
INSERT
INTO EGO_ATTR_GROUPS_DL_INTERFACE
(
ATTR_GROUP_TYPE,
ATTR_GROUP_NAME,
DATA_LEVEL_NAME,
DEFAULTING

PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID
)
VALUES
(
'EGO_ITEMMGMT_GROUP',
'AG1'

'ITEM_LEVEL'
'D'

'CREATE'
20001
);

NOTE: Insert one row for each data level associated to the Attribute Group.
3. Insert rows into the EGO_ATTR_GROUP_COLS_INTF table for each attribute.
INSERT
INTO EGO_ATTR_GROUP_COLS_INTF
(
ATTR_GROUP_TYPE

ATTR_GROUP_NAME

INTERNAL_NAME

DISPLAY_NAME

SEQUENCE

APPLICATION_COLUMN_NAME,
DATA_TYPE

DISPLAY_CODE

PROCESS_STATUS

TRANSACTION_TYPE
ENABLED_FLAG

,
,

SET_PROCESS_ID
)
VALUES
(
'EGO_ITEMMGMT_GROUP',
'AG1'

'Attr1'

'Attribute 1'

10

'C_EXT_ATTR1'
'C'

'T'

'CREATE'
'Y'

,
,

20001
);
INSERT
INTO EGO_ATTR_GROUP_COLS_INTF
(
ATTR_GROUP_TYPE

ATTR_GROUP_NAME

INTERNAL_NAME

DISPLAY_NAME
SEQUENCE

,
,

APPLICATION_COLUMN_NAME,
DATA_TYPE

DISPLAY_CODE

PROCESS_STATUS

TRANSACTION_TYPE
ENABLED_FLAG
SET_PROCESS_ID
)
VALUES

,
,

(
'EGO_ITEMMGMT_GROUP',
'AG1'

'Attr2'

'Attribute 2'

20

'N_EXT_ATTR1'
'N'

'T'

'CREATE'
'Y'

,
,

20001
);

4. Commit the transaction.


5. Launch the EGO Import Metadata concurrent program with Batch ID 20001 and the
Import Attribute Groups parameter set to Yes.

Example 2-2: Updating the Attribute Display Name of a Single Row Attribute Group
1. Insert a row into EGO_ATTR_GROUPS_INTERFACE.
INSERT
INTO EGO_ATTR_GROUPS_INTERFACE
(
ATTR_GROUP_TYPE

ATTR_GROUP_NAME

ATTR_GROUP_DISP_NAME,
PROCESS_STATUS
TRANSACTION_TYPE

,
,

SET_PROCESS_ID
)
VALUES
(
'EGO_ITEMMGMT_GROUP',
'AG1'

'AG 1'

1
'SYNC'

,
,

20002
);

2. Insert rows into EGO_ATTR_GROUP_COLS_INTF for the attribute to update.


INSERT
INTO EGO_ATTR_GROUP_COLS_INTF
(
ATTR_GROUP_TYPE
ATTR_GROUP_NAME

,
,

INTERNAL_NAME

DISPLAY_NAME
SEQUENCE

,
,

APPLICATION_COLUMN_NAME,
DATA_TYPE

DISPLAY_CODE

PROCESS_STATUS

TRANSACTION_TYPE
ENABLED_FLAG

,
,

SET_PROCESS_ID
)
VALUES
(
'EGO_ITEMMGMT_GROUP,
'AG1'

'Attr1'

'Attribute 1 updated',
10

'C_EXT_ATTR1'
'C'

'T'

'SYNC'
'Y'

,
,

20002
);

3. Commit the transaction.


Launch the EGO Import Metadata concurrent program with Batch ID 20002 and the
Import Attribute Groups parameter set to Yes.

Back to Summary

Value Sets Information


Interface Table Name
Key/Important Columns:
VALUE_SET_NAME

EGO_FLEX_VALUE_SET_INTF
EGO_FLEX_VALUE_INTF
EGO_FLEX_VALUE_TL_INTF
EGO_FLEX_VALUE_SET_INTF
Value Set Name.
Alternatively, VALUE_SET_ID for UPDATE transactions.

VALIDATION_TYPE

FORMAT_TYPE

MAXIMUM_SIZE
PARENT_VALUE_SET_NAME
VERSION_SEQ_ID
APPLICATION_TABLE_NAME

I Independent
F Table
X Translatable Independent
N None
C Character
N Number
D - Date
Maximum size for the value column.
Represents the parent value set name while creating child value sets.
Version Sequence
Table name. Applicable only if Validation Type is Table (T).

VALUE_COLUMN_NAME
VALUE_COLUMN_TYPE
VALUE_COLUMN_SIZE

Value column details. Applicable only if Validation Type is Table (T).

ID_COLUMN_NAME
ID_COLUMN_SIZE
ID_COLUMN_TYPE

ID column details. Applicable only if Validation Type is Table (T).

MEANING_COLUMN_NAME
MEANING_COLUMN_SIZE
MEANING_COLUMN_TYPE

Meaning column details. Applicable only if Validation Type is Table (T).

ADDITIONAL_WHERE_CLAUSE
Key/Important Columns:
VALUE_SET_NAME

Additional Where Clause. Applicable only if Validation Type is Table (T).


EGO_FLEX_VALUE_INTF
Value Set Name. Foreign Key to EGO_FLEX_VALUE_SET_INTF
Alternatively, specify VALUE_SET_ID for UPDATE transactions.

FLEX_VALUE
VERSION_SEQ_ID
DISP_SEQUENCE
Key/Important Columns:
VALUE_SET_NAME

Value. Only for Independent Value.


Version Sequence. Foreign Key to EGO_FLEX_VALUE_SET_INTF
Applicable only for versioned value sets.
Display Sequence
EGO_FLEX_VALUE_TL_INTF
Value Set Name. Foreign Key to EGO_FLEX_VALUE_SET_INTF
Alternatively, specify VALUE_SET_ID for UPDATE transactions.

FLEX_VALUE
VERSION_SEQ_ID
LANGUAGE
SOURCE_LANG
DESCRIPTION
FLEX_VALUE_MEANING

Value for Translatable Independent and Dependent Value.


Version Sequence. Foreign Key to EGO_FLEX_VALUE_SET_INTF
Applicable only for versioned value sets.
Language and Source Language
Display name and description.

Example 3-1: Creating an Independent Value Set


1. Insert a row into EGO_FLEX_VALUE_SET_INTF.
INSERT
INTO EGO_FLEX_VALUE_SET_INTF
(
VALUE_SET_NAME,
DESCRIPTION

FORMAT_TYPE

LONGLIST_FLAG ,
VALIDATION_TYPE,
MAXIMUM_SIZE

TRANSACTION_TYPE,
PROCESS_STATUS,
SET_PROCESS_ID
)
VALUES
(
'TS6_ModeVS,
'Access Mode',
'C'

'N'
'I'

,
,

40

'SYNC'

1, 30001
);

2. Insert rows into EGO_FLEX_VALUE_INTF for each value.


INSERT
INTO EGO_FLEX_VALUE_INTF
(
VALUE_SET_NAME,
FLEX_VALUE

DISP_SEQUENCE ,
ENABLED_FLAG

TRANSACTION_TYPE,
PROCESS_STATUS,
SET_PROCESS_ID
)
VALUES
(
'TS6_ModeVS',
'ADSL'

'Y'

'SYNC'
1
30001
);

,
,

3. Insert rows into EGO_FLEX_VALUE_TL_INTF for each Value-Language combination.


INSERT
INTO EGO_FLEX_VALUE_TL_INTF
(
VALUE_SET_NAME
FLEX_VALUE

DESCRIPTION

FLEX_VALUE_MEANING,
LANGUAGE

SOURCE_LANG

TRANSACTION_TYPE,
PROCESS_STATUS

SET_PROCESS_ID
)
VALUES
(
'TS6_MODEVS'

'ADSL'

'ASSYMETRIC DIGITAL SUBSCRIBER LINE',


'ADSL LINE'

'US'

'US'

'SYNC'

30001
);
INSERT
INTO EGO_FLEX_VALUE_TL_INTF
(
VALUE_SET_NAME
FLEX_VALUE

DESCRIPTION

FLEX_VALUE_MEANING,
LANGUAGE

SOURCE_LANG

TRANSACTION_TYPE,
PROCESS_STATUS

SET_PROCESS_ID
)
VALUES
(
'TS6_MODEVS'

'ADSL'

'ASSYMETRIC DIGITAL SUBSCRIBER LINE (ARABIC)',


'ADSL LINE'

'AR'

'US'

'SYNC'
1

,
,

30001
);
INSERT
INTO EGO_FLEX_VALUE_TL_INTF
(
VALUE_SET_NAME
FLEX_VALUE

DESCRIPTION

FLEX_VALUE_MEANING,
LANGUAGE

SOURCE_LANG

TRANSACTION_TYPE ,
PROCESS_STATUS

SET_PROCESS_ID
)
VALUES
(
'TS6_MODEVS'

'ADSL'

'ASSYMETRIC DIGITAL SUBSCRIBER LINE(KOREAN)',


'ADSL LINE'

'KO'

'US'

'SYNC'

30001
);

4. Commit the transaction.


Launch the EGO Import Metadata concurrent program with Batch ID 30001 and the
Import Value sets parameter set to Yes.

Example 3-2: Creating a Value Set Based on a Table


1. Insert a row into EGO_FLEX_VALUE_SET_INTF.
INSERT
INTO EGO_FLEX_VALUE_SET_INTF
(
VALUE_SET_NAME
DESCRIPTION

,
,

FORMAT_TYPE

LONGLIST_FLAG

VALIDATION_TYPE

APPLICATION_TABLE_NAME,
MAXIMUM_SIZE

VALUE_COLUMN_NAME

VALUE_COLUMN_TYPE

VALUE_COLUMN_SIZE

ID_COLUMN_NAME
ID_COLUMN_TYPE

,
,

ID_COLUMN_SIZE

MEANING_COLUMN_NAME

MEANING_COLUMN_TYPE
MEANING_COLUMN_SIZE

,
,

ADDITIONAL_WHERE_CLAUSE,
TRANSACTION_TYPE

PROCESS_STATUS

SET_PROCESS_ID
)
VALUES
(
'TS6_QUALITYPLANVS,
'QUALITY PLAN VS'
'C'

'N'

'F'

'QA_PLANS'

40

'NAME'
'C'

,
,

40

'NAME'
'C'

,
,

40

'NAME'
'C'

,
,

40

'ORGANIZATION_ID=204',
'SYNC'
1

,
,

30002
);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 30003 and the
Import Value Sets parameter set to Yes.

Example 3-4: Creating a Versioned Value Set


1. Insert a row into EGO_FLEX_VALUE_SET_INTF, EGO_FLEX_VALUE_INTF,
EGO_FLEX_VALUE_TL_INTF.
INSERT
INTO EGO_FLEX_VALUE_SET_INTF
(
VALUE_SET_NAME
DESCRIPTION
FORMAT_TYPE

, VALUE_SET_ID

, VERSION_DESCRIPTION
, LONGLIST_FLAG

VALIDATION_TYPE

, PARENT_VALUE_SET_NAME ,

VERSION_SEQ_ID

, START_ACTIVE_DATE

END_ACTIVE_DATE

, MAXIMUM_SIZE

,
,

and

MINIMUM_VALUE

, MAXIMUM_VALUE

VALUE_COLUMN_NAME
VALUE_COLUMN_SIZE
ID_COLUMN_SIZE

, VALUE_COLUMN_TYPE
, ID_COLUMN_NAME

, ID_COLUMN_TYPE

MEANING_COLUMN_NAME

, MEANING_COLUMN_SIZE

MEANING_COLUMN_TYPE

, TABLE_APPLICATION_ID ,

APPLICATION_TABLE_NAME, ADDITIONAL_WHERE_CLAUSE,
TRANSACTION_TYPE
PROCESS_STATUS

, TRANSACTION_ID

, SET_PROCESS_ID

REQUEST_ID

, PROGRAM_APPLICATION_ID,

PROGRAM_ID

, PROGRAM_UPDATE_DATE

LAST_UPDATE_DATE

, LAST_UPDATED_BY

CREATION_DATE

, CREATED_BY

LAST_UPDATE_LOGIN
)
VALUES
(
TESTVERSIONEDVS, NULL
'VERSION VS, 'C'
'I'

, NULL

SYSDATE+2

, 'TESTVERSIONEDVS THROUGH IOI' ,

, 'N'
,1

,
,

, NULL

, 100

NULL

, NULL

, NULL

NULL

, NULL

, NULL

NULL

, NULL

, NULL

NULL

, NULL

, NULL

NULL

, NULL

, 'SYNC'

NULL

,1

NULL

, NULL

NULL

, SYSDATE

SYSDATE

, NULL

,
,

, NULL

, -1

-1,-1
);
INSERT
INTO EGO_FLEX_VALUE_INTF
(
VALUE_SET_NAME
FLEX_VALUE

, VALUE_SET_ID

, FLEX_VALUE_ID

VERSION_SEQ_ID

, DISP_SEQUENCE

START_ACTIVE_DATE
ENABLED_FLAG

, END_ACTIVE_DATE

, TRANSACTION_TYPE

TRANSACTION_ID

, PROCESS_STATUS

SET_PROCESS_ID

, REQUEST_ID

PROGRAM_APPLICATION_ID, PROGRAM_ID

PROGRAM_UPDATE_DATE , LAST_UPDATE_DATE
LAST_UPDATED_BY
CREATED_BY

, CREATION_DATE

, LAST_UPDATE_LOGIN

)
VALUES
(
'TESTVERSIONEDVS', NULL
1,1, NULL ,NULL , 'Y'

, 'TEN'

, 'SYNC' ,

, NULL

NULL , 1

, NULL , NULL , NULL ,

NULL , NULL , SYSDATE, -1

, SYSDATE,

-1,-1
);
INSERT
INTO EGO_FLEX_VALUE_TL_INTF
(
VALUE_SET_NAME
FLEX_VALUE

, VALUE_SET_ID

, FLEX_VALUE_ID

VERSION_SEQ_ID
DESCRIPTION

, "LANGUAGE"

, SOURCE_LANG

FLEX_VALUE_MEANING

, TRANSACTION_TYPE

TRANSACTION_ID

, PROCESS_STATUS

SET_PROCESS_ID

, REQUEST_ID

,
,

PROGRAM_APPLICATION_ID, PROGRAM_ID

PROGRAM_UPDATE_DATE , LAST_UPDATE_DATE
LAST_UPDATED_BY
CREATED_BY

, CREATION_DATE

, LAST_UPDATE_LOGIN

)
VALUES
(
'TESTVERSIONEDVS'

, NULL

, 'TEN'

NULL

,1

, 'US'

'TEST'

, 'US'

, 'TENDISPLAYTRIAL',

'SYNC'

, NULL

,1

NULL

, NULL

, NULL

NULL

, NULL

, SYSDATE

-1

, SYSDATE

,
,
,

, -1,-1

);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 30003 and the
Import Value sets parameter set to Yes.

Back to Summary

Attribute Group Association Information


Interface Table Name
Key/Important Columns:
ITEM_CATALOG_NAME

EGO_ATTR_GRPS_ASSOC_INTERFACE
ICC Name.
Alternatively, provide the ITEM_CATALOG_GROUP_ID.
Valid values are
ITEM_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG,
ITEM_REVISION_LEVEL.
Alternatively, provide DATA_LEVEL_ID.
The attribute group must be created at the same data level.
Attribute Group Name (Internal Name).
Alternatively, provide the ATTR_GROUP_ID.

DATA_LEVEL

ATTR_GROUP_NAME

Example 4-1: Associating an Attribute Group to an ICC at Item Level


1. Insert a row into EGO_ATTR_GRPS_ASSOC_INTERFACE.
INSERT INTO EGO_ATTR_GRPS_ASSOC_INTERFACE
(ITEM_CATALOG_NAME
, ATTR_GROUP_NAME
, PROCESS_STATUS
, SET_PROCESS_ID
, TRANSACTION_TYPE
)
VALUES
('SIMPLE_ICC'
,'AG1'
,1
,40001
,'CREATE'
);

2. Launch the EGO Import Metadata concurrent program with Batch ID 40001 and the
Import Attribute Group and Import Item Catalog parameters set to Yes.
Example 4-2: Removing an Association
1. Insert a row into EGO_ATTR_GRPS_ASSOC_INTERFACE.
INSERT INTO EGO_ATTR_GRPS_ASSOC_INTERFACE
(ITEM_CATALOG_NAME
, ATTR_GROUP_NAME
, PROCESS_STATUS
, SET_PROCESS_ID
, TRANSACTION_TYPE
)
VALUES
('SIMPLE_ICC'
,'AG1'
,1
,40002
,'DELETE'

);

2. Launch the EGO Import Metadata concurrent program with Batch ID 40002 and the
Import Attribute Group and Import Item Catalog parameters set to Yes.

Back to Summary

Pages Information
Interface Table Name

EGO_PAGES_INTERFACE
EGO_PAGE_ENTRIES_INTERFACE
EGO_PAGES_INTERFACE
Page Display Name.
Page Internal Name.
ICC Name.
Alternatively, populate ITEM_CATALOG_GROUP_ID in the
CLASSIFICATION_CODE column.
Valid values are
ITEM_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG,
ITEM_REVISION_LEVEL.

Key/Important Columns:
DISPLAY_NAME
INTERNAL_NAME
CLASSIFICATION_NAME

DATA_LEVEL

The attribute group must be created at the same data level.


Unique sequence for the page.
EGO_PAGE_ENTRIES_INTERFACE
Page Internal Name. Foreign key to EGO_PAGES_INTERFACE
ICC Name. Foreign key to EGO_PAGES_INTERFACE
Alternatively, populate ITEM_CATALOG_GROUP_ID in the
CLASSIFICATION_CODE column.
Attribute Group Name
Sequence of AG in the page.
Used in UPDATE mode.

SEQUENCE
Key/Important Columns:
INTERNAL_NAME
CLASSIFICATION_NAME

OLD_ATTR_GROUP_NAME
SEQUENCE
NEW_ATTR_GROUP_NAME

Example 5-1: Create a Page


1. Insert a row into EGO_PAGES_INTERFACE.
INSERT INTO EGO_PAGES_INTERFACE
(DISPLAY_NAME,
INTERNAL_NAME,
CLASSIFICATION_NAME,
DATA_LEVEL,
SEQUENCE,
PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID)
VALUES

('AG1 PAGE',

'AG1_PG',
'SIMPLE_ICC',
'ITEM_LEVEL',
701,
1,
'CREATE',
50001);

2. Insert a row into EGO_PAGE_ENTRIES_INTERFACE.


INSERT INTO EGO_PAGE_ENTRIES_INTERFACE
(INTERNAL_NAME,
OLD_ATTR_GROUP_NAME,
SEQUENCE,

CLASSIFICATION_NAME,
PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID)
VALUES

('AG1_PG',

'AG1',
10,
'SIMPLE_ICC',
1,
'CREATE',
50001);

3. Launch the EGO Import Metadata concurrent program with Batch ID 50001 and the
Import Attribute Group and Import Item Catalog parameters set to Yes.

Back to Summary

Back to Summary

Number/Description Generation Function Information


Interface Table Name

Key/Important Columns:
INTERNAL_NAME
DISPLAY_NAME
DESCRIPTION
FUNCTION_TYPE

FUNCTION_INFO_1

EGO_FUNCTIONS_INTERFACE
EGO_FUNC_PARAMS_INTERFACE
EGO_FUNC_PARAMS_MAP_INTERFACE
EGO_FUNCTIONS_INTERFACE
Function Internal Name
Function Display Name
Function description
Function Type:
P PLSQL
J Java
U - URL
If Function Type is:
P then enter Package Name.
J then enter a package qualified class name.
U then enter the URL.

FUNCTION_INFO_2

If Function Type is:


P then enter the Function or Procedure Name.
J then enter the Method Name.
U then leave blank.

Key/Important Columns:
FUNCTION_INTERNAL_NAME
INTERNAL_NAME
DISPLAY_NAME
SEQUENCE
DATA_TYPE

EGO_FUNC_PARAMS_INTERFACE
Function Internal Name. Foreign Key to EGO_FUNCTIONS_INTERFACE.
Parameter Internal Name.
Parameter Display Name.
Parameter Sequence.
Parameter Data Type.
If Function Type is P then valid values are:
V VARCHAR2
N Number
D Date
E Error Array
If Function Type is J then
for valid values.

PARAM_TYPE
Key/Important Columns:
FUNCTION_NAME
ITEM_CATALOG_NAME
ATTR_GROUP_NAME
ATTR_NAME
PARAMETER_NAME

If Function Type is U then "S" is the only valid value.


Refer to Creating User-Defined Functions for Item Attributes, Oracle Product
Information Management Implementation Guide.
EGO_FUNC_PARAMS_MAP_INTERFACE
Function Name
Alternatively, provide FUNCTION_ID from the EGO_FUNCTIONS_B table.
ICC Name.
Alternatively, provide ITEM_CATALOG_GROUP_ID.
Attribute Group Internal Name.
Alternatively, provide ATTR_GROUP_ID.
Attribute Internal Name.
Alternatively, provide ATTR_ID.
Function Parameter Internal Name.
Alternatively, provide PARAMETER_ID from EGO_FUNC_PARAMS_B.

NOTE: Oracle recommends creating the user defined functions from the Setup Workbench instead of
interfaces. Use interfaces to create user defined functions only if there is a need to create a large
volume of user defined functions.
NOTE: There is no need to populate EGO_FUNCTIONS_INTERFACE and EGO_FUNC_PARAMS_INTERFACE if you
are mapping already existing functions to Item Number/Description generation actions.

Example 6-1: Create a User Defined PLSQL Function


1. Insert a row into EGO_FUNCTIONS_INTERFACE.
INSERT INTO EGO_FUNCTIONS_INTERFACE
(INTERNAL_NAME,
DISPLAY_NAME,
DESCRIPTION,
FUNCTION_TYPE,
FUNCTION_INFO_1,
FUNCTION_INFO_2,
PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID)
VALUES

('UD_FUNC',

'USER DEFINED FUNCTION',


'USER DEFINED FUNCTION',
'P',
'XX_EGO_ITEM_ACTIONS',
'GET_ITEM_NUMBER',
1,
'CREATE',
60001);

2. Insert row(s) into EGO_FUNC_PARAMS_INTERFACE for each parameter.


INSERT INTO EGO_FUNC_PARAMS_INTERFACE
(FUNCTION_INTERNAL_NAME,
INTERNAL_NAME,
DISPLAY_NAME,
SEQUENCE,
DATA_TYPE,
PARAM_TYPE,
PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID)
VALUES

('UD_FUNC',

'P_ATTR1',
'PARAMETER ATTR1',
10,
'V', -- VARCHAR2
'I', -- INPUT

1,
'CREATE',
60001);
INSERT INTO EGO_FUNC_PARAMS_INTERFACE
(FUNCTION_INTERNAL_NAME,
INTERNAL_NAME,
DISPLAY_NAME,
SEQUENCE,
DATA_TYPE,
PARAM_TYPE,
PROCESS_STATUS,
TRANSACTION_TYPE,
SET_PROCESS_ID)
VALUES

('UD_FUNC',

'X_ITEM',
'RETURN ITEM NUMBER',
20,
'V', -- VARCHAR2
'R', -- RETURN
1,
'CREATE',
60001);

4. Launch the EGO Import Metadata concurrent program with Batch ID 60001 and the
Import Attribute Group and Import Item Catalog parameters set to Yes.

Example 6-2: Create an Item Number Generation Based on a User Defined Function
1. Insert a row into MTL_ITEM_CAT_GRPS_INTERFACE.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
ITEM_CATALOG_NAME, SET_PROCESS_ID,

PROCESS_STATUS, TRANSACTION_TYPE,

ITEM_CREATION_ALLOWED_FLAG, DESCRIPTION, PARENT_CATALOG_GROUP_NAME,


ITEM_NUM_GEN_METHOD_TYPE, ITEM_NUM_GENERATION_FUNCTION
)
VALUES
(
'SIMPLE_ICC', 60002,
'Y',

'SIMPLE ICC',

1,

'SYNC',

NULL,

'F', 'UD_FUNC'
);

NOTE: Only map those functions that have the VARCHAR2-RETURN parameter set to the Item
Number/Description generation action.
2. Insert row(s) into the EGO_FUNC_PARAMS_MAP_INTERFACE for each parameter.

INSERT
INTO
EGO_FUNC_PARAMS_MAP_INTERFACE
(FUNCTION_NAME,
ITEM_CATALOG_NAME, ATTR_GROUP_NAME, ATTR_NAME, PARAMETER_NAME,
SET_PROCESS_ID, PROCESS_STATUS, TRANSACTION_TYPE)
VALUES ('UD_FUNC, 'SIMPLE_ICC', 'AG1',
'ATTR1', 'P_ATTR1', 60002, 1, 'SYNC');

New Item Request Information


Example 7-1: Create an ICC with a New Item Request Type
1. Insert a row into MTL_ITEM_CAT_GRPS_INTERFACE.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
DESCRIPTION

SEGMENT1

ATTRIBUTE1

ITEM_CREATION_ALLOWED_FLAG,
NEW_ITEM_REQUEST_TYPE
NEW_ITEM_REQUEST_NAME
SET_PROCESS_ID

,
,

PROCESS_STATUS

TRANSACTION_TYPE
)
VALUES
(
'NIR NAME CATALOG DESCRIPTION',
'TESTVJICC_2_NIR'
'100'

'Y'

'Y'

'EBS ICC NIR'

80
1
'CREATE'

,
,
,

);

2. Commit the transaction.


3. Launch the EGO Import Metadata concurrent program with Batch ID 10005 and the
Import Item Catalog Categories parameter set to Yes.
Back to Summary

Back to Summary

Transaction Attributes Information


Interface Table Name
Key/Important Columns
ITEM_CATALOG_NAME
START_DATE
END_DATE
VER_SEQ_NO
DESCRIPTION
Key/Important Columns
ATTR_NAME
ATTR_DISPLAY_NAME
ITEM_CATALOG_GROUP_NAME
ICC_VERSION_NUMBER
SEQUENCE
VALUE_SET_NAME
DATA_TYPE

METADATA_LEVEL

EGO_ICC_VERS_INTERFACE
EGO_TRANS_ATTRS_VERS_INTF
EGO_ICC_VERS_INTERFACE
ICC Name.
Alternatively, provide the ITEM_CATALOG_GROUP_ID.
Start and End date of the version.
Version Sequence Number.
Description.
EGO_TRANS_ATTRS_VERS_INTF
Transaction Attribute Internal Name.
Transaction Attribute Display Name.
ICC Name.
Foreign key to EGO_ICC_VERS_INTERFACE.ITEM_CATALOG_NAME.
ICC Version Number.
Foreign key to EGO_ICC_VERS_INTERFACE.VER_SEQ_NO.
Transaction Attribute Sequence.
Value Set Name.
A Translatable Attribute
C Character Attribute
N Number Attribute
X Date Attribute
Y Timestamp Attribute
ICC At ICC Level
ITEM At Item Level

NOTE: EGO_ICC_VERS_INTERFACE and EGO_TRANS_ATTRS_VERS_INTF are used to create ICC versions when the
profile option "Enable PIM for Telco Features" is set to Yes.

NOTE: There is a difference between creating an ICC version in Setup Workbench and in an interface. In
Setup Workbench, you add/modify transaction attributes in a draft version and then release the ICC as
the next version. In an interface, you can not add/modify transaction attributes in a draft ICC version.
You must populate the interface for a new version with the required transaction attributes. The
interface program then creates a new version and copies the transaction attributes to a draft version. A
new version is created only if there are differences between the new and draft versions.
NOTE: You must populate all transaction attributes in the interface. If you do not, when a user adds a
transaction attribute to a draft ICC version in Setup Workbench and releases it, a new version is created
with the newly added transaction attribute and all existing transaction attributes from the previous
version. To create a similar result using the interface, a user must create records in the interface table
for both the new transaction attribute and the existing transaction attributes from the previous ICC
version. If the user does not add the existing transaction attributes from the previous ICC version, the
interface creates a new version with only the newly added transaction attribute.

Example 8-1: Creating ICC Versions


1. Insert a row into MTL_ITEM_CAT_GRPS_INTERFACE.
INSERT
INTO MTL_ITEM_CAT_GRPS_INTERFACE
(
ITEM_CATALOG_NAME
SET_PROCESS_ID

,
,

PROCESS_STATUS

TRANSACTION_TYPE

ITEM_CREATION_ALLOWED_FLAG,
DESCRIPTION

PARENT_CATALOG_GROUP_NAME
)
VALUES
(
'VERSIONED_ICC',
80001

'SYNC'
'Y'

,
,

'VERSIONED ICC',
NULL
);

2. Insert a row into EGO_ICC_VERS_INTERFACE.


INSERT
INTO EGO_ICC_VERS_INTERFACE
(
ITEM_CATALOG_NAME,
VER_SEQ_NO

SET_PROCESS_ID ,
PROCESS_STATUS ,
TRANSACTION_TYPE
)
VALUES
(
'VERSIONED_ICC',
1

80001
1

,
,

'CREATE'
);

Example 8-2: Creating ICC Versions with New Transaction Attributes


1. Insert a row into EGO_ICC_VERS_INTERFACE.
INSERT
INTO EGO_ICC_VERS_INTERFACE
(
ITEM_CATALOG_NAME,

VER_SEQ_NO

SET_PROCESS_ID ,
PROCESS_STATUS ,
TRANSACTION_TYPE
)
VALUES
(
'VERSIONED_ICC',
2

80002

'CREATE'
);

2. Insert a row into EGO_TRANS_ATTRS_VERS_INTF.


INSERT
INTO EGO_TRANS_ATTRS_VERS_INTF
(
ATTR_NAME

ICC_VERSION_NUMBER

ATTR_DISPLAY_NAME
SEQUENCE

METADATA_LEVEL

ITEM_CATALOG_GROUP_NAME,
DATA_TYPE

PROCESS_STATUS
TRANSACTION_TYPE

,
,

SET_PROCESS_ID
)
VALUES
(
'TA1'

'TA1'

10

'ICC'

'VERSIONED_ICC',
'C'

'CREATE'

80002
);

Example 8-3: Creating an ICC Version by Adding a Transaction Attribute


1. Insert a row into EGO_ICC_VERS_INTERFACE.
INSERT
INTO EGO_ICC_VERS_INTERFACE
(
ITEM_CATALOG_NAME,
VER_SEQ_NO

SET_PROCESS_ID ,
PROCESS_STATUS ,
TRANSACTION_TYPE
)
VALUES
(
'VERSIONED_ICC',
3

80003
1

,
,

'CREATE'
);

2. Insert two rows into EGO_TRANS_ATTRS_VERS_INTF. Add one row for the new
transaction attribute and one for the existing transaction attribute from the
previous version. If you only insert one row with the new transaction attribute,
the program creates the new ICC version with only the new transaction
attribute.
INSERT
INTO EGO_TRANS_ATTRS_VERS_INTF
(
ATTR_NAME

ICC_VERSION_NUMBER

ATTR_DISPLAY_NAME
SEQUENCE

METADATA_LEVEL

ITEM_CATALOG_GROUP_NAME,
REQUIRED_FLAG

READONLY_FLAG
DATA_TYPE

,
,

PROCESS_STATUS
TRANSACTION_TYPE

,
,

SET_PROCESS_ID
)
VALUES
(
'TA1'
3

,
,

'TA1'

10

'ICC'

'VERSIONED_ICC',
N

Y ,'C'
1
'CREATE'

,
,
,

80003
);
INSERT INTO EGO_TRANS_ATTRS_VERS_INTF

(ATTR_NAME, ICC_VERSION_NUMBER,
ATTR_DISPLAY_NAME, SEQUENCE, METADATA_LEVEL,
ITEM_CATALOG_GROUP_NAME, DATA_TYPE,
PROCESS_STATUS, TRANSACTION_TYPE, SET_PROCESS_ID)
VALUES
('TA2', 3,
'TA2', 20, 'ICC',
'VERSIONED_ICC', 'C',
1, 'CREATE', 80003);

Back to Summary

Using Web Services for Item Catalog Categories


Oracle Product Hub enables you to publish the following metadata to various consuming systems:
Item catalog categories
Value sets
Publishing ICC information
Publish ICC information by invoking ICC-specific web services provided by Oracle Product Hub. Invoke
these web services on both ICC versions and non-version ICCs.
Web Service Details:
Method: getICCDetails - This web service method provides an interface to extract the information about
the ICC and/or its hierarchy.
There are 2 modes used to invoke web services:
1. Batch Mode
Retrieves the details of the ICC(s) published as part of a batch from the Oracle Product Hub
Publication user interface.
- Use this mode when you can provide the batch ID to use the ICC services. The parameters
provided while creating the batch take precedence over the values provided for the
parameters below while invoking the service.
.
2. List Mode
Passes a list of ICC identifiers as input to the getICCDetails method.
- Optionally provides any number of ICC IDs for invoking the services.
Prerequisites
Before publishing any data, you must set up Oracle Data Integrator Artifacts and Web Services for Oracle
Product Hub. For release 12.1.3 set up instructions, refer to My Oracle Support ID 888696.1.
ICC: Web Service Batch Mode
NOTE: For more information about the web services used during publishing and controlling the output
payload, refer to Oracle Product Information Management Web Services Overview, Oracle Product
Information Management Implementation Guide.
1. Search for an ICC to publish.
2. Click on Publish in the Basic Information page.

3. In the ICC Publish Parameters page, enter the batch name and other parameters as necessary
and click Continue.

4. In the ICC Publish Parameters page, Enter the Workspace Name and select the systems to which
you want to publish by clicking Add Another Row. When finished selecting systems, click
Apply.

5. In the Publish History page, track the status of the batch.

6. Click on the Batch ID to view the details of the batch created.

Back to Summary

ICC: Web Service List Mode


In List mode, the call is made to the getICCDetails method by passing the input parameters.
For a complete list of input parameters and output payload details, refer to Oracle Product Hub Web

Services Overview and Controlling the Output Payload, Oracle Product Information Management
Implementation Guide.
Sample Request Payload:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:item="http://xmlns.oracle.com/ItemCatalogCategorySvc">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-6142207" xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>plmmgr</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile1.0#PasswordText">welcome</wsse:Password>
<wsse:Nonce>Geyc9SOdz1iu5SNUVAuizA==</wsse:Nonce>
<wsu:Created>2012-01-18T07:24:20.781Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<item:IccQueryIn>

<ICCQueryParam>
<BatchId></BatchId>
<ICCIdentifiersList>
<!--Zero or more repetitions:-->
<ICCIdentifier>
<ICCId>111027</ICCId>
<VersionSequence></VersionSequence>
</ICCIdentifier>
</ICCIdentifiersList>
<ICCPubEntityObject>
<UserDefAttrGrps>false</UserDefAttrGrps>
<ICCVersions>false</ICCVersions>
<TransAttrs>false</TransAttrs>
<ICCStructure>false</ICCStructure>
<ParentICCs>false</ParentICCs>
<ChildICCs>false</ChildICCs>
<ReturnPayload>true</ReturnPayload>
<ListOfLanguages>
<!--Zero or more repetitions:-->
<Language>
<LanguageCode>US</LanguageCode>
<LanguageName></LanguageName>
</Language>
</ListOfLanguages>
</ICCPubEntityObject>
</ICCQueryParam>
<FndSecurity>
<RESPONSIBILITY_NAME>EGO_DEVELOPMENT_MANAGER</RESPONSIBILITY_NAME>
<RESPONSIBILITY_APPL_NAME>EGO</RESPONSIBILITY_APPL_NAME>
<SECURITY_GROUP_NAME>STANDARD</SECURITY_GROUP_NAME>
<NLS_LANGUAGE>AMERICAN</NLS_LANGUAGE>
</FndSecurity>
</item:IccQueryIn>
</soapenv:Body>
</soapenv:Envelope>

Sample Response Payload:


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:IccQueryOut xmlns:ns2="http://xmlns.oracle.com/ItemCatalogCategorySvc"
xmlns:ns3="http://xmlns.oracle.com/apps/ego/itemcatalog/service/in"
xmlns:ns4="http://xmlns.oracle.com/apps/ego/itemcatalog/service/out">
<ns4:ListOfICCs>
<ItemCatalogCategory>
<ItemCatalogGroupId>111027</ItemCatalogGroupId>
<EnabledFlag>Y</EnabledFlag>
<ItemCreationAllowedFlag>Y</ItemCreationAllowedFlag>
<NewItemRequestReqd>N</NewItemRequestReqd>
<ParentCatalogGroupName/>
<CategoryName>RT_COMMS4</CategoryName>
<Segment1>RT_COMMS4</Segment1>
<TranslatableAttributes>
<Language>US</Language>
<Description>RT_COMMS4</Description>
</TranslatableAttributes>
</ItemCatalogCategory>
<Status/>
</ns4:ListOfICCs>
</ns2:IccQueryOut>
</S:Body>
</S:Envelope>

Back to Summary

Publishing Value Set Information


Publish value set information by invoking value set-specific web services provided by Oracle Product
Hub. Invoke the web services on both value set versions and non-version value sets.
Web Service Details:
Method: getValueSetDetails - This web service method provides an interface to extract the information
about the value set and/or its hierarchy.

There are 2 modes used to invoke the web services.


1. Batch Mode
- Retrieves the details of the value set(s) published as part of a batch from the Oracle Product Hub
Publication user interface.
- Use this mode when you can directly provide the batch ID to use the value set services. The
parameters provided while creating the batch take precedence over the values provided for
the parameters below while invoking the service.
2. List Mode
- Passes a list of value set identifiers directly as input to the getValueSetDetails method.
- Optionally provides any number of value set IDs for invoking the services.
Prerequisites
Before publishing any data, you must set up Oracle Data Integrator Artifacts and Web Services for Oracle
Product Hub. For release 12.1.3 set up instructions, refer to My Oracle Support ID 888696.1.
Back to Summary

Value Set: Web Service Batch Mode


NOTE: For more information about the web services used during publishing and controlling the output
payload, refer to Oracle Product Information Management Web Services Overview, Oracle Product
Information Management Implementation Guide.

1. From the Oracle Applications Home Page, select an appropriate responsibility, then Setup
Workbench. Select the Value Sets tab.
2. In the Maintain Value Sets page, search for one or more value sets to publish.

3. Select the value sets to publish and then click Publish.

4. In the Valueset Publish Parameters page, enter the batch name.

5. In the Valueset Publish Parameters page, enter the Workspace Name and select the systems to
which you want to publish by clicking Add Another Row. When finished adding systems, click
Finish.

6. In the Publish History page, track the status of the batch. Click the Batch ID to view the batch
details.
Value Set: Web Service List Mode
In List mode, the call is made to the getValueSetDetails method by passing the input parameters.

For a complete list of input parameters, output payload details, and controlling the output payload,
refer to Web Services Overview for Publishing, Oracle Product Information Management
Implementation Guide.
Sample Request Payload:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:val="http://xmlns.oracle.com/ValuesetService">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-6142207" xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>plmmgr</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile1.0#PasswordText">welcome</wsse:Password>
<wsse:Nonce>Geyc9SOdz1iu5SNUVAuizA==</wsse:Nonce>
<wsu:Created>2012-01-18T07:24:20.781Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<val:ValuesetQueryIn>
<ValuesetQueryParam>
<BatchId></BatchId>
<ValuesetIdentifiersList>
<!--Zero or more repetitions:-->
<ValuesetIdentifier>
<ValueSetId>1027727</ValueSetId>
<VersionSeqId></VersionSeqId>
</ValuesetIdentifier>
</ValuesetIdentifiersList>
<ReturnPayload>true</ReturnPayload>
<ListOfLanguages>
<!--Zero or more repetitions:-->
<Language>
<LanguageCode>US</LanguageCode>
<LanguageName></LanguageName>
</Language>
</ListOfLanguages>
</ValuesetQueryParam>
<FndSecurity>
<RESPONSIBILITY_NAME>EGO_DEVELOPMENT_MANAGER</RESPONSIBILITY_NAME>
<RESPONSIBILITY_APPL_NAME>EGO</RESPONSIBILITY_APPL_NAME>
<SECURITY_GROUP_NAME>STANDARD</SECURITY_GROUP_NAME>
<NLS_LANGUAGE>AMERICAN</NLS_LANGUAGE>
</FndSecurity>
</val:ValuesetQueryIn>
</soapenv:Body>
</soapenv:Envelope>

Sample Response Payload:


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:ValuesetQueryOut xmlns:ns2="http://xmlns.oracle.com/apps/ego/extfwk/service/out"
xmlns:ns3="http://xmlns.oracle.com/ValuesetService" xmlns:ns4="http://xmlns.oracle.com/apps/ego/extfwk/service/in">
<ListOfValueSets>

<Valueset>
<ValueSetId>1027727</ValueSetId>
<ValueSetName>PIMODI_Numeric_VS_003</ValueSetName>
<DataType>Number</DataType>
<MaximumSize>127</MaximumSize>
<ValidationType>Table</ValidationType>
<ListType>List of Values</ListType>
<ParentValueSetId>1027726</ParentValueSetId>
<ParentValueSetName>PIMODI_Numeric_VS_002</ParentValueSetName>
<TableInfo>
<AppName>Advanced Product Catalog</AppName>
<AppId>431</AppId>
<TableName>EGO_VALUE_SET_VALUES_V vsv , EGO_VS_VALUES_DISP_ORDER do</TableName>
<WhereClause>vsv.FLEX_VALUE_ID = do.value_set_value_id
AND do.value_set_id =
1027727
AND vsv.value_set_id = 1027726
AND vsv.ENABLED_CODE = 'Y'
AND (
(vsv.start_date IS NOT NULL AND vsv.start_date &lt;= SYSDATE) OR (vsv.start_date IS NULL) ) AND (
(vsv.end_date IS NOT NULL AND vsv.end_date >= SYSDATE) OR (vsv.end_date IS NULL) ) ORDER BY
do.disp_sequence</WhereClause>
<ValueColumn>
<Name>TO_NUMBER(vsv.DISPLAY_NAME)</Name>
<Type>N</Type>
<Size>150</Size>
</ValueColumn>
<IDColumn>
<Name>TO_NUMBER(vsv.INTERNAL_NAME)</Name>
<Type>N</Type>
<Size>150</Size>
</IDColumn>
<MeaningColumn>
<Name>vsv.DESCRIPTION</Name>
<Type>C</Type>
<Size>150</Size>
</MeaningColumn>
</TableInfo>
</Valueset>
<Status/>
</ListOfValueSets>
</ns3:ValuesetQueryOut>
</S:Body>
</S:Envelope>
Back to Summary

Importing and Exporting Alternative Catalogs (Item Categories)


The matrix below is a summary of available import/export methods for each entity.
Entity

User Interface

FNDLOAD

Categories

Valid Categories

Default Category Association

Direction data travels when using each method:


Catalogs (Category Sets)

iSetup

Public API

Inbound: Public API


Outbound: None
Inbound/Outbound: FNDLOAD, iSetup
Back to Summary

Using FNDLOAD for Alternative Catalogs


Category Set Information
File name
Location
Entities
Key
Internal Usage

invicset.lct
$INV_TOP/patch/115/import
Category Sets (MTL_CATEGORY_SETS)
Category Set Id (CATEGORY_SET_ID)
None.

Downloading a Category Set


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the category set with ID = 96.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$INV_TOP/patch/115/import/invicset.lct xxcategorset.ldt
MTL_CATEGORY_SETS CATEGORY_SET_ID=96
NOTE: If you do not specify the Category Set ID parameter, then FNDLOAD downloads all
category sets defined in the system.
Uploading a Category Set
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the category set.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$INV_TOP/patch/115/import/invicset.lct xxcategorset.ldt
NOTE: When creating a new category set, specify a unique CATEGORY_SET_ID. If a category set with
the same ID exists, then the existing category set is updated.

Category Information
File name
Location
Entities
Key
Internal Usage

invcatcg.lct
$INV_TOP/patch/115/import
Category (MTL_CATEGORY_DTL)
Category Set Name (CATEGORY_NAME)
None.

Downloading a Category
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download all categories associated to the category set "GL
Business Class".
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$INV_TOP/patch/115/import/invcatcg.lct xxcategory.ldt
MTL_CATEGORY_DTL CATEGORY_SET_NAME="GL Business Class"
NOTE: If you do not specify the category set name, then FNDLOAD downloads all categories
associated to all category sets defined in the system.
Uploading a Category
3. Log on to the application server and initialize the application environment variable.
4. Run the following command to upload the categories belonging to a category set.

FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD


$INV_TOP/patch/115/import/invcatcg.lct xxcategory.ldt
Back to Summary

Valid Categories Information


File name
Location
Entities
Key

Internal Usage

invvlcat.lct
$INV_TOP/patch/115/import
Valid Categories (MTL_VALID_CATEGORY)
Category Set Id (CATEGORY_SET_ID)
Catetgory Id (CATEGORY_ID)
Category Set Name (CATEGORY_SET_NAME)
Category Name (CATEGORY_NAME)
None.

Downloading Valid Categories


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download all valid categories associated to the category set "GL
Business Class".
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$INV_TOP/patch/115/import/invvlcat.lct xxvalidcategories.ldt
MTL_VALID_CATEGORY CATEGORY_SET_NAME="Product Catalog"
NOTE: invvlcat.lct also supports category hierarchies.

Uploading Valid Categories


3. Log on to the application server and initialize the application environment variable.
4. Run the following command to upload the categories belonging to a category set.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$INV_TOP/patch/115/import/invvlcat.lct xxvalidcategories.ldt
Back to Summary

Default Category Set Information


File name
Location
Entities
Key

invdfcst.lct
$INV_TOP/patch/115/import
Default Category Set (MTL_DEFAULT_CATEGORY_SETS)
Functional Area Id (FUNCTIONAL_AREA_ID)

Internal Usage

None.

Downloading Default Category Set


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download a default category set for the functional area ID = 1.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$INV_TOP/patch/115/import/invdfcst.lct xxdefcatset.ldt
MTL_DEFAULT_CATEGORY_SETS FUNCTIONAL_AREA_ID=1

Uploading a Default Category Set


3. Log on to the application server and initialize the application environment variable.
4. Run the following command to upload the default category set.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$INV_TOP/patch/115/import/invdfcst.lct
Back to Summary

Using iSetup for Alternate Catalogs


iSetup can migrate Alternate Catalogs in bulk. iSetup is especially useful for pre-production migrations.
Category Set Information
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.

5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Deselect all entities and select only Inventory > Category Sets.

7. Optionally, specify the filter condition. Filter conditions based on business key are available.
8. Specify a name for the selection set and click Apply to save the changes.

Extracting data
9. Search for the selection set created in the previous step. Select the selection set and click
Extract.

10. Specify an extract name and click Continue.

11. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.

12. Navigate to Migrations > Extracts and Search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.

NOTE: iSetup for Alternate Catalogs does not support the Transform functionality. However, you can use
the Report functionality for validation and comparisons.
Loading data
13. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.

14. Specify the load name and target instance and then click Next.

15. Select Catalog Group in the Create Load: Set Object Details page and then click Next.
16. Select the As soon as possible Schedule option and then click Finish. Alternatively, schedule
the load for a future date and time.
17. Navigate to Migrations > Load and search for the load name. Check the load status.
NOTE: iSetup supports updating alternative catalogs except for Item Valid categories.
NOTE: You can select the load/extract name to view the log file if the request completed with a warning
or error status.
Back to Summary

Category Information
Same steps as Category Set Information.
Valid Category Association Information
Same steps as Category Set Information.
Default Category Set Information
Same steps as Category Set Information.
Back to Summary

Using Public APIs for Alternate Catalogs


Category Information
API Name
Available Method
p_category_rec

INV_ITEM_CATEGORY_PUB
Create_Category
PLSQL Collection CATEGORY_REC_TYPE defined in
INV_ITEM_CATEGORY_PUB.

Additional Methods

Update_Category
Delete_Category
Update_Category_Description

Example 1-1: Creating a Category


set serverout ON;
DECLARE

l_cat_rec
inv_item_category_pub.category_rec_type;
l_category_id mtl_categories_b.category_id%TYPE;
l_return_status VARCHAR2(10);
l_errcode
VARCHAR2(100);
l_msg_count NUMBER;
l_msg_data
VARCHAR2(4000);
l_msg_data1 VARCHAR2(4000);
l_errorcode NUMBER;
l_index
INTEGER;
api_exception EXCEPTION;
BEGIN
dbms_output.Enable(32000);
fnd_global.Apps_initialize(1006535, -- user id
24089, -- resp id
431); -- resp appl id
l_cat_rec.structure_code := 'ITEM_CATEGORIES';
l_cat_rec.segment1 := 'ELBOW';
l_cat_rec.segment2 := 'MISC';
l_cat_rec.enabled_flag := 'Y';
l_cat_rec.description := 'Category created from API';
INV_ITEM_CATEGORY_PUB.Create_category (p_api_version => 1.0,
p_category_rec => l_cat_rec, p_commit => fnd_api.g_true,
x_category_id => l_category_id, x_return_status => l_return_status,
x_msg_count => l_msg_count, x_msg_data => l_msg_data,
x_errorcode => l_errorcode
);
dbms_output.Put_line('Category creation return status = '
|| l_return_status);
dbms_output.Put_line('Category creation category_id = '
|| l_category_id);
IF l_return_status <> 'S' THEN
IF ( fnd_msg_pub.count_msg > 0 ) THEN
FOR i IN 1..fnd_msg_pub.count_msg LOOP
fnd_msg_pub.Get(p_msg_index => i, p_data => l_msg_data,
p_encoded => 'F'
,
p_msg_index_out => l_index);
l_msg_data1 := l_msg_data1
||' '
|| l_msg_data;
END LOOP;
dbms_output.Put_line('Category creation Error msg : '
|| l_msg_data1);
END IF;
RAISE api_exception;
END IF;
END;
Back to Summary

Valid Category Information


API Name
Available Method
p_category_set_id
p_category_id
p_parent_category_id
Additional Methods

INV_ITEM_CATEGORY_PUB
Create_Valid_Category
Category Set Id.
Derived from mtl_category_sets.
Category Id.
Derived from mtl_categories_b.
Provide the Parent Category ID to create a category hierarchy.
Update_Valid_Category
Delete_Valid_Category

Example 2-1: Creating a Valid Category


set serverout ON;
DECLARE
l_catset_id mtl_category_sets_b.category_set_id%TYPE;
l_category_id mtl_categories_b.category_id%TYPE;
l_return_status VARCHAR2(10);
l_errcode
VARCHAR2(100);
l_msg_count NUMBER;
l_msg_data
VARCHAR2(4000);
l_msg_data1 VARCHAR2(4000);
l_errorcode NUMBER;
l_index
INTEGER;
api_exception EXCEPTION;
CURSOR c_cat_set IS
SELECT catset.category_set_id
FROM mtl_category_sets catset
WHERE catset.category_set_name = 'Inventory';
CURSOR c_cat IS
SELECT mcat.category_id
FROM mtl_categories_b mcat,
fnd_id_flex_structures iflex
WHERE mcat.structure_id = iflex.id_flex_num
AND iflex.id_flex_code = 'MCAT'
AND iflex.id_flex_structure_code = 'ITEM_CATEGORIES'
AND mcat.segment1 = 'ELBOW'
AND mcat.segment2 = 'MISC';
BEGIN
dbms_output.enable(32000);
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431); -- resp appl id
OPEN c_cat_set;
FETCH c_cat_set INTO l_catset_id;
CLOSE c_cat_set;
OPEN c_cat;
FETCH c_cat INTO l_category_id;
CLOSE c_cat;

INV_ITEM_CATEGORY_PUB.Create_valid_category (p_api_version => 1.0,


p_category_set_id => l_catset_id, p_category_id => l_category_id,
p_parent_category_id => NULL, p_commit => fnd_api.g_true,
x_return_status => l_return_status, x_msg_count => l_msg_count,
x_msg_data => l_msg_data, x_errorcode => l_errorcode);
dbms_output.put_line('Valid Category creation return status = '
|| l_return_status);
IF l_return_status <> 'S' THEN
IF ( fnd_msg_pub.count_msg > 0 ) THEN
FOR i IN 1..fnd_msg_pub.count_msg LOOP
fnd_msg_pub.get(p_msg_index => i, p_data => l_msg_data,
p_encoded => 'F'
,
p_msg_index_out => l_index);
l_msg_data1 := l_msg_data1
||' '
|| l_msg_data;
END LOOP;
dbms_output.put_line('Valid Category creation Error msg : '
|| l_msg_data1);
END IF;
RAISE api_exception;
END IF;
END;

Back to Summary

Importing and Exporting Items


The matrix below is a summary of available import/export methods for each item-related entity.
Entity

Operational
Attributes
Organization
Assignments
Data Level UDA
Descriptive
Flexfield
Descriptive
Elements
Category
Associations
Lifecycle PhaseItem Status
Cross Reference
Association
Related Items
Association
Customer Items
Association

User
Interface

iSetup

Interface

Pl/Sql
API
(Public)

Web
Service

Import
from
Excel

Import
Work
Bench

Export
To Excel

Manufacturing
Part Numbers
Association
GTIN Cross
References
Association
Source System
Items
Association
Supplier and
Supplier Site
Association
Roles
Association
Item Revisions
Item Templates
Transaction
Attributes

Inbound: Interface, Public API, Import from Excel, Import Workbench


Outbound: Web Service, Export to Excel
Inbound/Outbound: iSetup
Back to Summary

Using iSetup for Items


iSetup provides functionality for migrating item information from source instances to target instances. It
enables the migration of item related information such as Operational Attributes, Item Revisions,
Descriptive flex fields, Item Category Associations, Item Cross References and Item Templates while also
supporting the update and synchronization of an item. iSetup limits the number of descriptive flexfield
attributes migrated to 15.
Item Information
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Deselect all entities and select only Bills Of Material > Items.

7. Optionally, specify the filter condition. Item Name and the Organization ID are available for filter
conditions.

8. Specify a name for the selection set and click Apply to save the changes.

Extracting data
9. Search for the selection set created in the previous step. Select the selection set and click
Extract.

10. Specify an extract name and click Continue.

11. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.

12. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.

Loading data
13. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.

14. Specify the load name and target instance and click Next.

15. Select/Deselect Update Records in the items Set Object Details page and click Next.

16. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
17. Navigate to Migrations > Load and search for the load name. Check the load status.
NOTE: By Default, only the master items are extracted. To extract the organization assignments for an
item, specify the required Organization ID as a filter parameter while defining the selection set.
Back to Summary

Item Cross Reference Information


You can use iSetup for migrating and updating item cross references. Select a particular cross reference
type and extract all of the item cross references for that particular type.
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Specify a selection set name and a source instance. Select Inventory > Item Cross References
and then click Apply. You can specify filter values for cross reference types.

Extracting data
7. Search for the selection set created in the previous step. Select the selection set and click
Extract.
8. Specify an extract name and source and then click Continue.
9. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.
10. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.
Loading data
11. Navigate to Migrations > Extracts and Search for the extract name. Select the extract and click
Load.
12. Specify the load name and target instance and then click Next.
13. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
14. Navigate to Migrations > Load and search for the load name. Confirm the load status.
NOTE: Click the load/extract name to view the log file if the request completed with a warning or an
error status.
Back to Summary

Item Template Information


Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Specify a selection set name and a source instance. Select Inventory > Item Templates and click
Apply. You can specify filter values for a particular template name.

Extracting data
7. Search for the selection set created in the previous step. Select the selection set and click
Extract.
8. Specify an extract name and source and then click Continue.
9. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.
10. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.
Loading data
11. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.
12. Specify the load name and target instance and click Next.
13. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
14. Navigate to Migrations > Load and search for the load name. Verify the load status.

NOTE: Click the load/extract name to view the log file if the request completed with a warning or an
error status.

NOTE: iSetup provides templates to extract item setup-related information such as Item Status Codes,
Item Attribute Controls, etc.
Back to Summary

Using Interfaces for Items


Use the Item Open Interface (IOI) to:
1.
2.
3.
4.

Create master items.


Assign items to additional organizations.
Create revisions.
Assigning categories to items.

You can also use IOI to import item material cost and material overhead, which is not covered in this
white paper.
Importing Items
1. Insert the details of the items to import into following tables:
a. MTL_SYSTEM_ITEMS_INTERFACE (Items)
b. MTL_ITEM_CATEGORIES_INTERFACE (Item Categories)
c. MTL_ITEM_REVISIONS_INTERFACE (Item Revisions)

2. Navigate to the Import Items or All Reports window.

NOTE: In 12.1.3 and later releases, the parameter "Gather Schema Stats" gathers schema
statistics for relevant tables and schemas. Oracle recommends following the process discussed
in NOTE 1208945.1 to avoid gathering statistics during each run.
3. Enter Import Items in the Name field. The Parameters window appears.
4. In the All organizations field, indicate whether to run the interface for all organizations in the
item interface table.
If you choose No, the interface runs only for the current organization and interface table rows
for other organizations are ignored.
5. Indicate whether to validate all items and their data residing in the interface table that has not
yet been validated. If items are not validated, they are not processed into Oracle Inventory.
Select No if you previously ran the item interface and responded Yes in the Validate Items field
and No in the Process Items field, but now you want to process your items.
6. Indicate whether to process items. If you choose Yes, all qualifying items in the interface table
are inserted into Oracle Inventory. Select No, along with Yes for Delete Processed Rows, to
remove successfully processed rows from the interface table without performing any other
processing.

7. Indicate whether to delete successfully processed items from the item interface tables. Choose
No to leave all successfully processed item rows in the item interface tables.
8. Click OK to close the Parameters window and then click Submit.
Useful Metalink Notes about the Item Open Interface
Note ID
Description
268968.1 Understanding Item Import and Debugging Problems with Item Import
115557.1 How to Use Item Open Interface (IOI) to Import Item Category Assignments
429924.1 Troubleshooting Guide for INV_IOI_MASTER_CHILD Errors in Item Import
103869.1 Item Attribute vs Template Attributes Using IOI
458544.1 Inventory Item Open Interface SR Template
1208945.1 Optimizing Item Import Performance in Oracle Product Hub/Inventory

Back to Summary

Importing Operational Attributes


Before importing operational attributes, you must first import items must into their item master
organizations. You can create items specifying a minimal number of operational attributes and let the
system assign default values based on ICC setup. There are 300 + operational attribute columns. The
following table describes only the minimal columns required in MTL_SYSTEM_ITEMS_INTERFACE to
create an item in a master organization. The semantics required for the remaining operational attribute
columns can be found at eTRM.
Interface Table Name
Key/Important Columns:
ITEM_NUMBER
ORGANIZATION_CODE
DESCRIPTION
INVENTORY_ITEM_STATUS_CODE

PRIMARY_UOM_CODE
TEMPLATE_ID
TEMPLATE_NAME
COPY_ITEM_NUMBER
ITEM_CATALOG_GROUP_NAME

MTL_SYSTEM_ITEMS_INTERFACE
Item Number.
Alternatively, specify SEGMENT1-20 based on the item KFF setup.
Organization Code.
Alternatively, specify ORGANIZATION_ID.
Item Description. This is a mandatory column.
Inventory Item Status Code.
Specify the Material Status Code. Otherwise, the value defaults from the
profile option INV: Default Item Status.
Primary Unit of Measure.
Alternatively, specify the PRIMARY_UNIT_OF_MEASURE.
Template name used to specify attributes for the item.
A new item number is created as a copy of the item number specified in this
column.
ICC Name.

Example 1-1: Creating an Item in Master Organization V1


1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,

ORGANIZATION_CODE,
DESCRIPTION
,
SET_PROCESS_ID ,
PROCESS_FLAG ,
TRANSACTION_TYPE
)
VALUES
(
'Simple_Item'
,
'V1'
,
'Simple Item created from IOI',
100001
,
1
,
'CREATE'
);

2. Commit the transaction.


3. Launch the Item Import concurrent program.
Example 1-2: Creating an Item in Master Organization V1 and Apply Template "Finished good"
1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,
ORGANIZATION_CODE,
DESCRIPTION
,
TEMPLATE_NAME ,
SET_PROCESS_ID ,
PROCESS_FLAG ,
TRANSACTION_TYPE
)
VALUES
(
'FG-100002' ,
'V1'
,
'FG Item 100002',
'Finished good' ,
100002
,
1
,
'CREATE'
);

2. Commit the transaction.


3. Launch Item Import concurrent program.
NOTE: You can specify only one template during item creation. However, you can run the IOI in update
mode and apply more than one template.
NOTE: If an attribute value is present in both the interfacetable and in the template, the value in the
interface table takes precedence.
Example 1-3: Creating an Item in Master Organization V1 by Copying an Item.
1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE

(
ITEM_NUMBER
,
ORGANIZATION_CODE,
DESCRIPTION
,
COPY_ITEM_NUMBER,
SET_PROCESS_ID ,
PROCESS_FLAG ,
TRANSACTION_TYPE
)
VALUES
(
'AS18947_Copy' ,
'V1'
,
'Copy of AS18947',
'AS18947'
,
100003
,
1
,
'CREATE'
);

2. Commit the transaction.


3. Launch the Item Import concurrent program.

Example 1-4: Updating the Purchase Item Flag of an Item.


1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,
ORGANIZATION_CODE ,
DESCRIPTION
,
PURCHASING_ITEM_FLAG,
SET_PROCESS_ID
,
PROCESS_FLAG
,
TRANSACTION_TYPE
)
VALUES
(
'FG-100002' ,
'V1'
,
'FG Item 100002',
'Y'
,
100004
,
1
,
'UPDATE'
);

2. Commit the transaction.


3. Launch the Item Import concurrent program after setting the Create or Update
parameter to Update.
Example 1-5: Creating an Item in an ICC
1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,

ORGANIZATION_CODE
,
DESCRIPTION
,
ITEM_CATALOG_GROUP_NAME,
SET_PROCESS_ID
,
PROCESS_FLAG
,
TRANSACTION_TYPE
)
VALUES
(
'FG-100003'
,
'V1'
,
'FG Item 100002'
,
'Automotive - Engines',
100006
,
1
,
'CREATE'
);

2. Commit the transaction.


3. Launch the Import Items concurrent program.

Back to Summary

Assigning Items to Additional Organizations


You can also use MTL_SYSTEM_ITEMS_INTEFACE to assign an item to additional organizations. The item
must first exist in a master organization before you can add it to other organizations. You also have the
option to specify child organization level controlled attributes.
Example 2-1: Adding Items to Additional Organizations
1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,
ORGANIZATION_CODE,
DESCRIPTION
,
SET_PROCESS_ID ,
PROCESS_FLAG ,
TRANSACTION_TYPE
)
VALUES
(
'FG-100002' ,
'M1'
,
'FG Item 100002',
200001
,
1
,
'CREATE'
);

2. Commit the transaction.


3. Launch the Item Import concurrent program.

Back to Summary

User Defined Attributes Information


Interface Table Name
Key/Important Columns:
ITEM_NUMBER

EGO_ITM_USR_ATTR_INTRFC
Item Number.
Alternatively, specify INVENTORY_ITEM_ID.
Organization Code.
Alternatively, specify ORGANIZATION_ID.
Attribute Group Internal Name
Attribute Internal Name
The attribute value, if its data type is String.
The attribute value, if its data type is Number
The attribute value, if its data type is Date.
The attribute value in its user-friendly form; used mainly for attributes with
value sets of validation type Independent or Table.
Item Catalog Group Id.
Derived from MTL_ITEM_CATALOG_GROUPS_B.
Valid values are:
ITEM_LEVEL, ITEM_ORG, ITEM_SUP, ITEM_SUP_SITE, ITEM_SUP_SITE_ORG,
and ITEM_REVISION_LEVEL.
Alternatively, specify DATA_LEVEL_ID.
An identifier for the collection of rows to be processed together. Typically,
there is one unique value per attribute group.
Mandatory. Equivalent to SET_PROCESS_ID in other interface tables.
NOTE: Generate this value from the sequence EGO_IUA_DATA_SET_ID_S.
An identifier for the collection of rows that make up one logical attribute
group row.
Specify CREATE, UPDATE, or DELETE when deleting multi row UDA values.

ORGANIZATION_CODE
ATTR_GROUP_INT_NAME
ATTR_INT_NAME
ATTR_VALUE_STR
ATTR_VALUE_NUM
ATTR_VALUE_DATE
ATTR_DISP_VALUE
ITEM_CATALOG_GROUP_ID
DATA_LEVEL_NAME

DATA_SET_ID

ROW_IDENTIFIER
TRANSACTION_TYPE

NOTE: The combined values of Data_Set_id, Row_Identifier, and Attr_Int_Name must be unique if, for
example, you have a single row attribute group with two attributes.
Data Set Id

Row Identifier

100001
100001

1
2

Attribute Group
Internal Name
AG1
AG1

Attribute Internal
Name
A1
A2

Example: Column values for two single row attribute groups with two attributes each.
Data Set Id

Row Identifier

100001
100001
100002
100002

1
2
1
2

Attribute Group
Internal Name
AG1
AG1
AG2
AG2

Attribute Internal
Name
A1
A2
A1
A2

Alternatively, for two single row attribute groups with two attributes each, use a single Data Set ID, but
with a different Row Identifier.
Data Set Id

Row Identifier

100001
100001
100001
100001

1
2
3
4

Attribute Group
Internal Name
AG1
AG1
AG2
AG2

Attribute Internal
Name
A1
A2
A1
A2

Oracle recommends using the Data Set ID to group records into optimally sized batches and using the
Row Identifier to identify each record in that batch. Additionally, group attributes within the same
attribute group into the same batch to improve performance.
Example: A multi row attribute group with two attributes.
Data Set Id

Row Identifier

100001
100001
100001
100001

1
1
2
2

Attribute Group
Internal Name
AG1
AG1
AG1
AG1

Attribute Internal
Name
A1
A2
A1
A2

Value
Value1
Value 2
Value 3
Value 4

NOTE: To delete the attribute value of a single row AG, pass the value as
31-DEC-9999 for a Date type attribute,
I for a Char type attribute, and
9.99E125 for a Number type attribute. Specify the TRANSACTION_TYPE as UPDATE.
To delete an attribute value for a multi row AG, pass the unique attribute value with a
TRANSACTION_TYPE of DELETE.
You can not update the unique key of a multi row AG using API/IOI.
Back to Summary

Example 3-1: Creating UDA for a Single Row AG


1. Insert a row into MTL_SYSTEM_ITEMS_INTERFACE.
INSERT
INTO MTL_SYSTEM_ITEMS_INTERFACE
(
ITEM_NUMBER
,
ORGANIZATION_CODE
,
DESCRIPTION
,
ITEM_CATALOG_GROUP_NAME,
SET_PROCESS_ID
,
PROCESS_FLAG
,
TRANSACTION_TYPE
)

VALUES
(
'FG-10004'
,
'V1'
,
'FG ITEM 10004'
,
'AUTOMOTIVE - ENGINES.',
30002,1,
'UPDATE'
);

NOTE: When creating, updating, or deleting a user defined attribute (UDA) for an existing item, you only
need to insert a record in MTL_SYSTEM_ITEMS_INTERFACE to update UDAs in the master item record.
2. Insert rows into EGO_ITM_USR_ATTR_INTRFC for each attribute.
INSERT
INTO EGO_ITM_USR_ATTR_INTRFC
(
ITEM_NUMBER
,
ORGANIZATION_CODE ,
ATTR_GROUP_INT_NAME ,
ATTR_INT_NAME
,
ATTR_VALUE_NUM
,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME
,
DATA_SET_ID
,
ROW_IDENTIFIER
,
PROCESS_STATUS
,
TRANSACTION_TYPE
)
VALUES
(
'FG-10004'
,
'V1'
,
'CZ_AUTO_ENGINE_SPECS',
'CZ_TORQUE'
,
200
,
7993
,
'ITEM_LEVEL'
,
30002
, -- YOU MUST USE SEQUENCE EGO_IUA_DATA_SET_ID_S INSTEAD
1,1,
'SYNC'
)

NOTE: Generate the DATA_SET_ID value from the EGO_IUA_DATA_SET_ID_S database sequence. Use
this value in the SET_PROCESS_ID column in other tables such as MTL_SYSTEM_ITEMS_B in the above
example if you want to batch process the records.
3. Launch the Import Catalog Items concurrent program. The parameters are the same as those in
the Import Items concurrent program.
Example 3-2: Creating UDAs for Two Different Single Row AGs
1. Run the following script from sqlplus.
DECLARE
l_icc_name mtl_item_catalog_groups_b.segment1%TYPE;
l_icc_id mtl_item_catalog_groups_b.item_catalog_group_id%TYPE;
l_process_id NUMBER;

CURSOR c IS
SELECT item_catalog_group_id
FROM mtl_item_catalog_groups_b
WHERE segment1 = l_icc_name;
BEGIN
l_icc_name := 'Auto_Segment';
SELECT ego_iua_data_set_id_s.nextval
INTO l_process_id
FROM dual;
--- insert record into items interface
-INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE
(ITEM_NUMBER,
ORGANIZATION_CODE,
DESCRIPTION,
ITEM_CATALOG_GROUP_NAME,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE)
VALUES
( 'TCor2005LE',
'V1',
'TCor Year2005 ModelLE',
l_icc_name,
l_process_id,
1,
'CREATE' );
OPEN c;
FETCH c INTO l_icc_id;
CLOSE c;
--- insert record into UDA interface for AG: AutoEngineSpec
-INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES ( 'TCor2005LE',
'V1',
'AutoEngineSpec',
'Torque',
'200 N-m',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
1,
1,
'SYNC');

INSERT INTO EGO_ITM_USR_ATTR_INTRFC


(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoEngineSpec',
'FuelEconomy',
'30 mpg',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
2,
1,
'SYNC');
--- insert record into UDA interface for AG: AutoBodySpec
-INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoBodySpec',
'Color',
'Silver Gray',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
3,
1,
'SYNC');
INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,

ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoBodySpec',
'Type',
'Sedan',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
4,
1,
'SYNC');
dbms_output.PUT_LINE ('Data set id =
|| l_process_id);
COMMIT;
END;

2. Launch the Import Catalog Items concurrent program. The parameters are the same as those in
the Import Items concurrent program.

Example 3-3: Creating UDAs for Multi Row AGs


1. Run the following script from sqlplus.
DECLARE
l_icc_name mtl_item_catalog_groups_b.segment1%TYPE;
l_icc_id mtl_item_catalog_groups_b.item_catalog_group_id%TYPE;
l_process_id NUMBER;
CURSOR c IS
SELECT item_catalog_group_id
FROM mtl_item_catalog_groups_b
WHERE segment1 = l_icc_name;
BEGIN
l_icc_name := 'Auto_Segment';
SELECT ego_iua_data_set_id_s.nextval
INTO l_process_id
FROM dual;
--- insert record into items interface
-INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE
(ITEM_NUMBER,
ORGANIZATION_CODE,
DESCRIPTION,
ITEM_CATALOG_GROUP_NAME,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE)
VALUES
(TCor2005LE,
'V1',
'TCor Year2005 ModelLE',
l_icc_name,
l_process_id,

1,
UPDATE);
OPEN c;
FETCH c INTO l_icc_id;
CLOSE c;
--- insert record into UDA interface for first row of AG: AutoOwnerHistory
-- row identifier = 1
-INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoOwnerHistory',
'Owner',
'Jim Hong',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
1,
1,
'SYNC');
INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_DATE,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoOwnerHistory',
'PurchaseDate',
to_date ('30-MAR-2004','DD-MON-YYYY'),
l_icc_id,
'ITEM_LEVEL',
l_process_id,
1,
1,
'SYNC');
dbms_output.PUT_LINE('Data set id 1 = '
|| l_process_id);

--- insert record into UDA interface for first row of AG: AutoOwnerHistory
-- row identifier = 2
--

INSERT INTO EGO_ITM_USR_ATTR_INTRFC


(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoOwnerHistory',
'Owner',
'Alec Rex',
l_icc_id,
'ITEM_LEVEL',
l_process_id,
2,
1,
'SYNC');
INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_DATE,
ITEM_CATALOG_GROUP_ID,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoOwnerHistory',
'PurchaseDate',
to_date ('04-JUL-2005','DD-MON-YYYY'),
l_icc_id,
'ITEM_LEVEL',
l_process_id,
2,
1,
'SYNC');
dbms_output.PUT_LINE('Data set id = '
|| l_process_id);
COMMIT;
END;

2. Launch the Import Catalog Items concurrent program. The parameters are the same as those in
the Import Items concurrent program.
Example 3-3: Deleting UDAs for Multi Row AGs
1. Run the following script from sqlplus.
DECLARE
l_process_id NUMBER;
BEGIN
SELECT ego_iua_data_set_id_s.nextval
INTO l_process_id
FROM dual;
--- insert record into UDA interface for first row of AG: AutoOwnerHistory
-- row identifier = 1
-INSERT INTO EGO_ITM_USR_ATTR_INTRFC
(ITEM_NUMBER,
ORGANIZATION_CODE,
ATTR_GROUP_INT_NAME,
ATTR_INT_NAME,
ATTR_VALUE_STR,
DATA_LEVEL_NAME,
DATA_SET_ID,
ROW_IDENTIFIER,
PROCESS_STATUS,
TRANSACTION_TYPE)
VALUES (TCor2005LE,
'V1',
'AutoOwnerHistory',
'Owner',
'Jim Hong',
'ITEM_LEVEL',
l_process_id,
1,
1,
'DELETE');

COMMIT;
END;

2. Launch the Import Catalog Items concurrent program. The parameters are the same as those in
the Import Items concurrent program.
Back to Summary

Item Category (Alternative Catalog) Assignment Information


Interface Table Name
Key/Important Columns:
ITEM_NUMBER
ORGANIZATION_CODE

MTL_ITEM_CATEGORIES_INTERFACE
Item Number.
Alternatively, specify INVENTORY_ITEM_ID.
Organization Code.

CATEGORY_SET_NAME
CATEGORY_NAME

Alternatively, specify ORGANIZATION_ID.


Category Set Name
Alternatively, specify CATEGORY_SET_ID.
Category Name
Alternatively, specify CATEGORY_ID.

Example 4-1: Creating an Item Category Association


1. Insert a record into the Items Interface.
INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE
(ITEM_NUMBER,
ORGANIZATION_CODE,
DESCRIPTION,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE)
VALUES
( 'TCor2005LE',
'V1',
'TCor Year2005 ModelLE',
40001,
1,
'UPDATE' );

2. Insert a record into the Item Category Interface.


INSERT INTO MTL_ITEM_CATEGORIES_INTERFACE
(ITEM_NUMBER,
ORGANIZATION_CODE,
CATEGORY_SET_NAME,
CATEGORY_NAME,
SET_PROCESS_ID,
PROCESS_FLAG,
TRANSACTION_TYPE)
VALUES
(TCor2005LE,
'V1',
'Inventory',
'COMPONENT.PAPER',
40001,
1,
'CREATE' )

3. Launch the Import Catalog Items concurrent program. Parameters are the same as those in the
Import Items concurrent program.
Back to Summary

Item Revision Information


Interface Table Name
Key/Important Columns:
ITEM_NUMBER

MTL_ITEM_REVISIONS_INTERFACE
Item Number.
Alternatively, specify INVENTORY_ITEM_ID.

ORGANIZATION_CODE
REVISION
REVISION_LABEL
IMPLEMENTATION_DATE
EFFECTIVITY_DATE

Organization Code.
Alternate Column: ORGANIZATION_ID
Revision code
Revision label
Revision Implementation date
Revision Effective date

Example 4-1: Creating an Item Revision


1. Insert a record into the Items Interface.
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
(
'CreItemRevision,
'B'
,
'B'
,
SYSDATE
,
SYSDATE
,
1,204,241,
'CREATE'
);

2. Launch the Import Items concurrent program.


Back to Summary

Item People Information


Interface Table Name
Key/Important Columns:
ITEM_NUMBER
ORGANIZATION_CODE
TRANSACTION_TYPE
GRANTEE_PARTY_ID
GRANTEE_TYPE
GRANTEE_NAME
START_DATE
END_DATE
INTERNAL_ROLE_NAME
INTERNAL_ROLE_ID
IMPLEMENTATION_DATE

EGO_ITEM_PEOPLE_INTF
Item Number.
Alternatively, specify INVENTORY_ITEM_ID.
Organization Code.
Alternatively, specify ORGANIZATION_ID.
Grantee ID derived from ego_people_v.
Grantee Type.
Grantee Name.
Assignment start date.
Assignment end date.
Name of the role to associate.
Derived from ego_roles_v.
Revision implementation date.

EFFECTIVITY_DATE

Revision effective date.

Example 4-1: Creating an Item People Association


1. Insert a record into the Items Interface.
INSERT
INTO EGO_ITEM_PEOPLE_INTF
(
ITEM_NUMBER
,
GRANTEE_PARTY_ID
GRANTEE_TYPE,
INTERNAL_ROLE_ID ,
DISPLAY_ROLE_NAME,
START_DATE ,
PROCESS_STATUS
,
ORGANIZATION_ID ,
ORGANIZATION_CODE ,
DATA_SET_ID ,
TRANSACTION_TYPE
)
VALUES
(
'Test_Item_Poeple',
6530
,
INTERNAL,
1010439
,
'Item Author',
SYSDATE
,
1, 204,'V1', 245,
'CREATE'
);

2. Launch the Import Items concurrent program.


Back to Summary

Related Items Information


Insert the item details of items to import into the MTL_RELATED_ITEMS_INTERFACE
(Items) table.

1. Navigate to the Import Related Items window.

Back to Summary

Item Cross References Information


1. Insert the item details of items to import into the MTL_CROSS_REFERENCES_INTERFACE (Items)
table.

2. Navigate to the Import Item Cross References window.

Interface Table Name


Key/Important Columns:
INVENTORY_ITEM_ID
ORGANIZATION_CODE
TRANSACTION_TYPE
CROSS_REFERENCE_TYPE

CROSS_REFERENCE
DESCRIPTION
ORG_INDEPENDENT_FLAG
START_DATE
END_DATE
UOM_CODE
EPC_Gtin_Serial

MTL_CROSS_REFERENCES_INTERFACE
Inventory Item ID
Organization Code.
Alternatively, specify ORGANIZATION_ID.
CREATE/ UPDATE/ DELETE
Cross Reference Type. Valid values are:
ChargeMaster
Customer
EAM
EBS CR type
GTIN
Golden Tax
OPSM INTEGRATED
Sanity Cross ref
Substitute
Vendor
Cross Reference Name
GTIN Number in case of a GTIN cross reference. +

Revision implementation date.


Revision effective date.
Unit of Measure used for a GTIN cross reference.
GTIN Serial number - Used in the case of a GTIN cross reference+

Example 4-1: Creating an Item Association Cross Reference


1. Insert a record into the Cross References Interface.
INSERT
INTO MTL_CROSS_REFERENCES_INTERFACE
(
SET_PROCESS_ID
,
INVENTORY_ITEM_ID ,
CROSS_REFERENCE_TYPE,
CROSS_REFERENCE ,
ORGANIZATION_ID ,
PROCESS_FLAG
,
TRANSACTION_TYPE ,
DESCRIPTION
,
ORG_INDEPENDENT_FLAG
)
VALUES
(
9911,820115,
'CUSTOMER'
,
'TestThroughIOI',
204,1,
'CREATE'
,
'TestThroughIOI',
'Y'
)

2. Launch the Import Cross References concurrent program (Navigation: Inventory > Items >
Import > Import Item Cross References), specifying the Process Set as the set_process_id given
in the INSERT statement.

Back to Summary

Customer Item Cross Reference Information


1. Insert the item details to import into the following tables:
MTL_CI_INTERFACE (Customer Items)
MTL_CI_XREFS_INTERFACE (Customer Items Cross References)
2. Navigate to the Import Customer Items window.

3. Navigate to the Import Customer Item Cross References window.

Back to Summary

Customer Item Interface


Interface Table Name
Key/Important Columns:
CUSTOMER_ID
CUSTOMER_ITEM_NUMBER
ITEM_DEFINITION_LEVEL
TRANSACTION_TYPE
COMMODITY_CODE
LOCK_FLAG

MTL_CI_ INTERFACE
Customer ID
Customer Item Number
Valid values are 1, 2, and 3.
CREATE/ UPDATE/ DELETE
Commodity Code
Valid values include Y and N.

Customer Item Cross Reference Interface


Interface Table Name
MTL_CI_XREFS_INTERFACE
Key/Important Columns:
CUSTOMER_ID
CUSTOMER_ITEM_NUMBER
MASTER_ORGANIZATION_ID
ITEM_DEFINITION_LEVEL
TRANSACTION_TYPE
INACTIVE_FLAG
PREFERENCE_NUMBER

Customer ID
Customer Item Number
Organization Id
Valid values are 1, 2, and 3.
CREATE/ UPDATE/ DELETE
Valid values are 1 for Yes and 2 for No.
Rank

Example 4-1: Creating a Customer Item


1. Insert a record into the Customer Items Interface.
INSERT
INTO MTL_CI_INTERFACE
(
PROCESS_FLAG
,
PROCESS_MODE
,
TRANSACTION_TYPE ,
CUSTOMER_NUMBER
,

ITEM_DEFINITION_LEVEL,
CUSTOMER_ITEM_NUMBER,
COMMODITY_CODE
,
LOCK_FLAG
,
LAST_UPDATED_BY
,
LAST_UPDATE_DATE ,
CREATED_BY
,
CREATION_DATE
,
INACTIVE_FLAG
)
VALUES
(
1
,
1
,
'Create'
,
1290
,
1
,
TestCustItem,
'Components' ,
1
,
1068
,
SYSDATE
,
1068
,
SYSDATE
,
'2'
);

2. Launch the Import Customer Items concurrent program (Navigation: Inventory > Items > Import
> Import Customer Items).
3. Insert a record into the Customer Items Interface.
INSERT
INTO MTL_CI_XREFS_INTERFACE
(
PROCESS_FLAG
,
PROCESS_MODE
,
LOCK_FLAG
,
LAST_UPDATE_DATE
,
LAST_UPDATED_BY
,
CREATION_DATE
,
CREATED_BY
,
TRANSACTION_TYPE
,
CUSTOMER_ID
,
CUSTOMER_ITEM_NUMBER ,
ITEM_DEFINITION_LEVEL ,
INVENTORY_ITEM_SEGMENT1,
MASTER_ORGANIZATION_ID,
PREFERENCE_NUMBER
,
INACTIVE_FLAG
)
VALUES
(
1,1 ,
'Y'
,
SYSDATE
,
1
,
SYSDATE
,
1
,
'Create'
,

1290
,
'TestCustItem' ,
1
,
'Jan23_Test_Item3,
204,1,
'2'
);

4. Launch the Import Customer Item Cross References concurrent program (Navigation: Inventory
> Items > Import > Import Customer Item Cross References).
Back to Summary

Using Public APIs for Items


Process Items Interface
API Name
Available Method
p_Item_Tbl

EGO_ITEM_ PUB
Process_Items
PLSQL collection of EGO_Item_PUB.Item_Tbl_Type records.
User can pass collection of records to create items.

Example 1-1: Create an Item


set serverout on;
declare
l_items
Ego_Item_Pub.Item_Tbl_Type ;
x_items
Ego_Item_Pub.Item_Tbl_Type;
l_return_status VARCHAR2(10);
l_msg_count
NUMBER;
l_msg_data
VARCHAR2(240);
l_msg_data1
VARCHAR2(1000);
l_x
INTEGER;
begin
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);
l_items(1).Item_Number := 'Jan23_Test_Item1';
l_items(1).Description
:= 'Jan23_Test_Item without ICC';
l_items(1).Organization_Id
:= '204';
l_items(1).Transaction_Type
:= 'CREATE';
l_items(2).Item_Number := 'Jan23_Test_Item2';
l_items(2).Description
:= 'Jan23_Test_Item With ICC';
l_items(2).Item_Catalog_Group_Id := 91027;
l_items(2).Organization_Id
:= '204';
l_items(2).Transaction_Type
:= 'CREATE';

EGO_ITEM_PUB.Process_Items (
p_api_version => 1.0, p_init_msg_list => 'T',
p_commit => 'F',
p_Item_Tbl => l_items,
x_Item_Tbl => x_items
, x_return_status
=> l_return_status
, x_msg_count
=> l_msg_count
);
dbms_output.put_line('Return status : ' || l_return_status);
if (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
if (fnd_msg_pub.count_msg > 0) then
for i in 1..fnd_msg_pub.count_msg loop
fnd_msg_pub.get(p_msg_index => i,
p_data => l_msg_data,
p_encoded => 'F',
p_msg_index_out => l_x
);
l_msg_data1 := l_msg_data1 ||' '|| l_msg_data;
end loop;
dbms_output.put_line('Error msg : ' || l_msg_data1);
end if;
end if;
end;

There are two other versions of the Process_Items API. Using the following versions, you can create or
update a single item.
1) Create or update an item by passing only the most important and/or commonly used item
attributes.
2) Create or update an item by passing the full parameter list.
Example 1-2: Create an Item
DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(100);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item ( p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'CREATE'
, p_Organization_Id =>'204'
, p_Item_Number => 'Jan23_Test_Item3'
, p_Description => 'Jan23_Test_Item3'
, p_long_description => 'Jan23_Test_Item3'
, p_template_id => fnd_api.g_miss_num
, x_Inventory_Item_Id => inv_item_id
, x_Organization_Id => org_id
, p_revision_code => NULL
, x_return_status =>status

, x_msg_count =>msgcnt
, x_msg_data=>msgdata);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_Inventory_Item_Id '|| inv_item_id);
dbms_output.put_line('x_Organization_Id ' || org_id);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Example 1-3: Applying a Template to an Item


DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(100);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item (p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'UPDATE'
, p_Organization_Id =>'204'
, p_Item_Number => 'Jan23_Test_Item3'
, p_Description => 'Jan23_Test_Item3'
, p_long_description => 'Jan23_Test_Item3'
, p_template_id => 121 -- Passing the template id that needs to be applied
, x_Inventory_Item_Id => inv_item_id
, x_Organization_Id => org_id
, p_revision_code => NULL
, x_return_status =>status
, x_msg_count =>msgcnt
, x_msg_data=>msgdata);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_Inventory_Item_Id ' || inv_item_id);
dbms_output.put_line('x_Organization_Id ' || org_id);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_count ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT

LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Example 1-4: Assigning an Item to an Organization


DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(100);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item ( p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'CREATE'
, p_Organization_Id =>'207'
, p_Item_Number => 'Jan23_Test_Item3'
, p_Description => 'Jan23_Test_Item3'
, p_long_description => 'Jan23_Test_Item3'
, p_template_id => 121
, x_Inventory_Item_Id => inv_item_id
, x_Organization_Id => org_id
, p_revision_code => NULL
, x_return_status =>status
, x_msg_count =>msgcnt
, x_msg_data=>msgdata);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_Inventory_Item_Id ' || inv_item_id);
dbms_output.put_line('x_Organization_Id ' || org_id);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_count ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Example 1-5: Updating an Items Status


DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(500);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item (p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'UPDATE'
, p_Organization_Id =>'204'
, p_inventory_item_id => 765046
, p_Item_Number => 'Jan23_Test_Item1'
, p_Inventory_Item_Status_Code => 'Design' Item Status
, x_Inventory_Item_Id => inv_item_id
, x_Organization_Id => org_id
, x_return_status => status
, x_msg_count =>msgcnt );
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Example 1-6: Creating a Later Effective Item Revision While Creating an Item
DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(500);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item (p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'CREATE'

, p_Organization_Id =>'204'
, p_Item_Number => 'Apr19_Test_Item1'
, p_description => 'Apr19_Test_Item1'
, p_Inventory_Item_Status_Code => 'Design'
, p_revision_code => 'B'
, p_revision_label => 'B'
, p_effectivity_date => sysdate+10
, x_Inventory_Item_Id => inv_item_id
, x_Organization_Id => org_id
, x_return_status => status
, x_msg_count =>msgcnt
, x_msg_data => msgdata );
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Back to Summary

Creating an Item Revision


API Name
Available Method
p_transaction_type
p_inventory_item_id
p_item_number
p_organization_id
p_revision
p_revision_label
p_revision_reason
p_effectivity_date
p_api_version
p_commit
p_init_msg_list

EGO_ITEM_ PUB
Process_Item_Revision
Valid values are G_TTYPE_CREATE,
G_TTYPE_UPDATE
Inventory Item ID derived from MTL_SYSTEMS_ITEMS_B.
Concatenated segments of an item.
Organization ID.
Revision Code
Revision Label
Revision Reason
Revision Effectivity Date
A decimal number indicating revisions to the API.
A flag indicating whether to commit work at the end of API processing. Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 2-1: Creating an Item Revision


DECLARE
inv_item_id NUMBER;
org_id
NUMBER;
status
VARCHAR2(50);
msgcnt
NUMBER;
msgdata VARCHAR2(100);
sm
VARCHAR2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize( user_id=> 1006535,resp_id=> 24089,resp_appl_id => 431);
EGO_ITEM_PUB.process_item_Revision (p_api_version => 1.0
, p_init_msg_list => 'T'
, p_commit => 'F'
, p_Transaction_Type =>'CREATE'
, p_Organization_Id =>'204'
, p_Item_Number => 'Jan23_Test_Item3'
, p_revision => 'B'
, p_revision_label => 'B'
, p_effectivity_Date => SYSDATE
, x_return_status =>status
, x_msg_count =>msgcnt
, x_msg_data=>msgdata);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_count ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity Id:' ||l_error_table(i).entity_id);
dbms_output.put_line('Index:' ||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:' ||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;

Useful Metalink Notes about the Item Public API.


Note ID
Description
729513.1 How to use APIs
605487.1 How to load user defined item attributes via the PROCESS_USER_ATTRS_DATA API
728350.1 How to load Inventory Items using EGO_ITEM_PUB.PROCESS_ITEMS API
729246.1 How to Create or Update Role Grants on Items using the
EGO_ITEM_PUB.PROCESS_ITEM_ROLE API
728917.1 How to assign Inventory Items to Categories using EGO_ITEM_PUB.PROCESS_ITEM_CAT
_ASSIGNMENT API
728361.1 How to Assign Items to Inventory Organizations using
EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG API
728358.1 How to Retrieve User Defined Attributes for Items using EGO_USER_ATTRS_DATA_PUB.GET

729241.1
728364.1

_USER_ATTRS _DATA API


How to Load User Defined Attributes for Items using
EGO_ITEM_PUB.PROCESS_USER_ATTRS_FOR_ITEM API
How to Assign Multiple Items to Inventory Organizations using
EGO_ITEM_PUB.PROCESS_ITEM_ORG_ASSIGNMENTS API
Back to Summary

Adding Roles
API Name
Available Method
p_transaction_type
p_inventory_item_id
p_item_number
p_organization_id
p_role_name
p_role_id
p_instance_type
p_party_type
p_party_name
p_party_id
p_start_date
p_end_date
p_api_version
p_commit
p_init_msg_list

EGO_ITEM_ PUB
Process_Item_Role
Valid values are G_TTYPE_CREATE,
G_TTYPE_UPDATE, and G_TTYPE_DELETE
Inventory Item ID derived from MTL_SYSTEMS_ITEMS_B
Concatenated segments of an item.
Organization ID.
Name of the role to associate.
Derived from EGO_ROLES_V.
Valid values are G_INSTANCE_TYPE_INSTANCE
and G_INSTANCE_TYPE_SET.
Grantee Type
Grantee Name
Grantee ID derived from EGO_PEOPLE_V.
Assignment start date.
Assignment end date.
A decimal number indicating revisions to the API.
A flag indicating whether to commit work at the end of API processing. Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 3-1: Adding Roles to an Item


Query to get the Role ID:
SELECT role_id
FROM ego_roles_v
WHERE role_display_name LIKE 'Item Author'; -- Role to be granted
Query to get the Party ID:
SELECT person_id PARTY_ID, person_name PARTY_NAME
FROM ego_people_v
WHERE user_name = 'MFG'; -- User Name
declare
inv_item_id number;
org_id number;
status varchar2(50);
msgcnt number;
msgdata varchar2(500);
sm varchar2(2000);
guid RAW(200);
l_instance_type
VARCHAR2(200) := EGO_ITEM_PUB.G_INSTANCE_TYPE_INSTANCE;
l_Error_Table Error_Handler.Error_Tbl_Type;
begin

fnd_global.apps_initialize( user_id=> 1006535,resp_id=>


24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item_Role (
p_api_version => 1.0,
p_init_msg_list => 'T',
p_commit => 'F',
p_Transaction_Type =>'CREATE',
p_organization_id =>'204',
p_inventory_item_id => 765048 ,
p_Item_Number => 'Jan23_Test_Item3',
p_role_id => 1010439, -- Role Id
p_Role_Name => 'Item Author', -- Role Name
p_party_name => 'Jonathan Smith', -- Grantee Name
p_party_id => 6530 , -- Grantee ID
p_instance_type => l_instance_type,
p_start_date => SYSDATE ,
x_grant_guid => guid,
x_return_status => status,
x_msg_count =>msgcnt,
x_msg_data => msgdata
);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity
Id:'||l_error_table(i).entity_id);
dbms_output.put_line('Index:'||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:'||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
exception
when others then
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;
Back to Summary

Associating Categories to an Item


API Name
Available Method
p_transaction_type
p_inventory_item_id
p_item_number
p_organization_id
p_category_id
p_category_set_id

EGO_ITEM_ PUB
Process_Item_Cat_Assignment
Valid values are G_TTYPE_CREATE,
G_TTYPE_UPDATE, and G_TTYPE_DELETE.
Inventory Item ID derived from MTL_SYSTEMS_ITEMS_B.
Concatenated segments of an item.
Organization ID.
Catalog/Category ID to assign/remove.
The Catalog/Category passed in P_CATEGORY_ID belongs to this Category

p_old_category_id
p_api_version
p_commit
p_init_msg_list

Set/Catalog Category ID.


Old category ID to unassign.
A decimal number indicating revisions to the API.
A flag indicating whether to commit work at the end of API processing. Specify
Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 4-1: Associating Categories to an Item


declare
inv_item_id number;
org_id number;
status varchar2(50);
msgcnt number;
msgdata varchar2(500);
sm varchar2(2000);
errcode NUMBER;
l_Error_Table Error_Handler.Error_Tbl_Type;
begin
fnd_global.apps_initialize( user_id=> 1006535,resp_id=>
24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_Item_Cat_Assignment (
p_api_version => 1.0,
p_init_msg_list => 'T',
p_commit => 'F',
p_transaction_type =>'CREATE',
p_category_id => 83, -- Category ID that needs to be associated
p_category_set_id => 1,
p_organization_id =>'204',
p_inventory_item_id => 765048 ,
x_return_status => status,
x_errorcode => errcode,
x_msg_count =>msgcnt,
x_msg_data => msgdata
);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity
Id:'||l_error_table(i).entity_id);
dbms_output.put_line('Index:'||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:'||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
exception
when others then
sm:=sqlerrm;

dbms_output.put_line('error :' || sm);


END;
Back to Summary

Updating Item Descriptive Elements


API Name
Available Method
p_inventory_item_id
p_item_number
p_item_desc_element_table
p_api_version
p_commit_flag
p_init_msg_list

EGO_ITEM_ PUB
Process_item_descr_elements
Inventory Item ID derived from MTL_SYSTEMS_ITEMS_B.
Concatenated segments of an item.
INV_ITEM_CATALOG_ELEM_PUB.ITEM_DESC_ELEMENT_TABLE Type
A decimal number indicating revisions to the API.
A flag indicating whether to commit work at the end of API processing.
Specify Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 5-1: Updating Item Descriptive Elements


DECLARE
l_items_Descr INV_ITEM_CATALOG_ELEM_PUB.ITEM_DESC_ELEMENT_TABLE ;
l_generated_descr VARCHAR2(1000)
;
l_return_status VARCHAR2(10);
l_msg_count
NUMBER;
l_msg_data
VARCHAR2(240);
l_msg_data1
VARCHAR2(1000);
l_x
INTEGER;
BEGIN
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);
l_items_Descr(1).ELEMENT_NAME := 'TestExtract'; -- Descriptive element Name
l_items_Descr(1).ELEMENT_VALUE
:= 'Updated through API';
l_items_Descr(1).DESCRIPTION_DEFAULT
:= 'N';

l_items_Descr(2).ELEMENT_NAME := 'ExtractName';
l_items_Descr(2).ELEMENT_VALUE
:= 'Jan23ExtractName';
l_items_Descr(2).DESCRIPTION_DEFAULT := 'Y';

EGO_ITEM_PUB.Process_item_descr_Elements (
p_api_version => 1.0,
p_init_msg_list => 'T',
p_commit_flag => 'F',
p_validation_level => 100 ,
p_inventory_item_id => 765047 ,
p_item_number => 'Jan23_Test_Item2',
p_item_desc_element_table => l_items_Descr,
x_generated_descr => l_generated_descr ,
x_return_status
=> l_return_status,
x_msg_count
=> l_msg_count ,
x_msg_data
=> l_msg_data

);
dbms_output.put_line('Return status : ' || l_return_status);
dbms_output.put_line('Generated Description : ' || l_generated_descr);
if (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
if (fnd_msg_pub.count_msg > 0) then
for i in 1..fnd_msg_pub.count_msg loop
fnd_msg_pub.get(p_msg_index => i,
p_data => l_msg_data,
p_encoded => 'F',
p_msg_index_out => l_x
);
l_msg_data1 := l_msg_data1 ||' '|| l_msg_data;
end loop;
dbms_output.put_line('Error msg : ' || l_msg_data1);
end if;
end if;
END;
Back to Summary

Promoting/Demoting the Life Cycle Phase of an Item


API Name
Available Method
p_inventory_item_id
p_item_number
p_organization_id
p_organization_code
p_revision_id
p_revision
p_status
p_transaction_type

p_lifecycle_id
p_phase_id
p_effective_date
p_api_version
p_commit_flag
p_init_msg_list

EGO_ITEM_ PUB
Process_item_phase_and_status.
Inventory Item ID derived from MTL_SYSTEMS_ITEMS_B.
Concatenated segments of an item.
Organization ID
Alternatively, specify the organization code also.
Revision ID.
Revision code.
The new status of the item.
Valid values include:
G_TTYPE_UPDATE and G_TTYPE_DELETE to modify an existing pending
change.
G_TTYPE_PROMOTE and G_TTYPE_DEMOTE to change the phase of an
item/item revision.
G_TTYPE_CHANGE_STATUS to change the item status.
G_TTYPE_CHANGE_PHASE to change to the lifecycle phase p_phase_id. Only
lifecycle phase promotions are allowed.
Life cycle ID.
Primary key of the new item phase.
Date on or after which to implement the phase/status change.
A decimal number indicating revisions to the API.
A flag indicating whether to commit work at the end of API processing. Specify
Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 6-1: Updating Item Life Cycle Phase/Status


declare
inv_item_id number;
org_id number;
status varchar2(50);

msgcnt number;
msgdata varchar2(500);
sm varchar2(2000);
l_Error_Table Error_Handler.Error_Tbl_Type;
begin
fnd_global.apps_initialize( user_id=> 1006535,resp_id=>
24089,resp_appl_id => 431);
EGO_ITEM_PUB.Process_item_phase_and_status(
p_api_version => 1.0,
p_init_msg_list => 'T',
p_commit => 'F',
p_Transaction_Type =>'PROMOTE',
p_Organization_Id =>'204',
p_inventory_item_id => 766040 ,
p_Item_Number => 'Jan25ICC_Item',
x_return_status => status,
x_msg_count =>msgcnt ,
x_msg_data => msgdata
);
dbms_output.put_line('x_return_status ' || status);
dbms_output.put_line('x_msg_count ' || msgcnt);
dbms_output.put_line('x_msg_data ' || msgdata);
Error_Handler.Get_Message_List( x_message_list => l_error_table );
dbms_output.put_line('Fresh');
FOR i IN 1..l_error_table.COUNT
LOOP
dbms_output.put_line('Entity
Id:'||l_error_table(i).entity_id);
dbms_output.put_line('Index:'||l_error_table(i).entity_index);
dbms_output.put_line('Mesg:'||l_error_table(i).message_text);
dbms_output.put_line('---------------------------------------');
END LOOP;
exception
when others then
sm:=sqlerrm;
dbms_output.put_line('error :' || sm);
END;
Back to Summary

Updating UDA Values for an Item


API Name
Available Method
p_inventory_item_id
p_organization_id
p_attributes_row_table
p_attributes_data_table
p_commit
p_api_version

EGO_ITEM_ PUB
Process_User_Attrs_For_Item
Inventory Item Id derived from MTL_SYSTEMS_ITEMS_B
Organization Id.
EGO_USER_ATTR_ROW_TABLE
EGO_USER_ATTR_DATA_TABLE
A flag indicating whether to commit work at the end of API processing. Y or
N
A decimal number indicating revisions to the API.

Example 7-1: Updating Single Row UDAs Associated to an Item


DECLARE
l_user_attr_data_table EGO_USER_ATTR_DATA_TABLE ;
l_user_attr_row_table EGO_USER_ATTR_ROW_TABLE ;
l_attr_group_type VARCHAR2(40):= 'EGO_ITEMMGMT_GROUP';
l_attr_group1_name VARCHAR2(30):= 'TstUDAADPISR';
l_item_name VARCHAR2(40);
x_failed_row_id_list VARCHAR2(10000);
x_errorcode NUMBER;
l_inventory_item_id NUMBER;
l_attr_group_id number;
l_failed_row_id_list
VARCHAR2(255);
l_return_status
VARCHAR2(10);
l_errorcode
NUMBER;
l_msg_count
NUMBER;
l_msg_data
VARCHAR2(255);
x_message_list
Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

SELECT attr_group_id INTO l_attr_group_id


FROM ego_attr_groups_v
WHERE attr_group_name = l_attr_group1_name;
dbms_output.put_line('Attribute Group ID: '||l_attr_group_id);
/*Create a row objects (if any of the Attr Groups were associated at
the Rev level, then pass the appropriate Revision ID as DATA_LEVEL_1)*/
l_user_attr_row_table := EGO_USER_ATTR_ROW_TABLE (
EGO_USER_ATTR_ROW_OBJ
(1345 --ROW_IDENTIFIER
,l_attr_group_id --ATTR_GROUP_ID
,431
,l_attr_group_type
,l_attr_group1_name
,'ITEM_LEVEL' --DATA_LEVEL
,null --DATA_LEVEL_1 (i.e., Revision ID)
,null --DATA_LEVEL_2
,null --DATA_LEVEL_3
,null --DATA_LEVEL_4
,null --DATA_LEVEL_5
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE
)
);
/*Create a data object for each Attr value to process in each row.*/
l_user_attr_data_table := EGO_USER_ATTR_DATA_TABLE(
EGO_USER_ATTR_DATA_OBJ(
1345 --ROW_IDENTIFIER
,'TstUDAAPISRAttr' --ATTR_NAME
,null --ATTR_VALUE_STR
,null --ATTR_VALUE_NUM (in the base UOM, 'FT')
,null --ATTR_VALUE_DATE
,'Updating through API' --ATTR_DISP_VALUE

,null --ATTR_UNIT_OF_MEASURE (display this value in 'CM ')


,null --USER_ROW_IDENTIFIER
),
EGO_USER_ATTR_DATA_OBJ(
1345 --ROW_IDENTIFIER
,'TstUDAAPISRAttr1' --ATTR_NAME
,null --ATTR_VALUE_STR
,null --ATTR_VALUE_NUM (in the base UOM, 'FT')
,null --ATTR_VALUE_DATE
,100 --ATTR_DISP_VALUE
,null --ATTR_UNIT_OF_MEASURE (display this value in 'CM ')
,null --USER_ROW_IDENTIFIER
)
);
EGO_ITEM_PUB.Process_User_Attrs_For_Item
(
p_api_version => 1.0
,p_inventory_item_id => 1225042
,p_organization_id => 204
,p_attributes_row_table => l_user_attr_row_table
,p_attributes_data_table => l_user_attr_data_table
,p_debug_level => 3
,p_commit => FND_API.G_TRUE
,x_failed_row_id_list => x_failed_row_id_list
,x_return_status => l_return_status
,x_errorcode => l_errorcode
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
);

DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
DBMS_OUTPUT.PUT_LINE('x_msg_count: '||l_msg_count);
DBMS_OUTPUT.PUT_LINE('Return message: '||l_msg_data);

IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN


DBMS_OUTPUT.PUT_LINE('Error Messages :');
Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=========================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('========================================');
END;

Example 7-2: Updating Multi Row UDAs Associated to an Item


DECLARE

l_user_attr_data_table EGO_USER_ATTR_DATA_TABLE ;
l_user_attr_row_table EGO_USER_ATTR_ROW_TABLE ;
l_attr_group_type VARCHAR2(40):= 'EGO_ITEMMGMT_GROUP';
l_attr_group1_name VARCHAR2(30):= 'TstUDAAPIMR';
l_item_name VARCHAR2(40);
x_failed_row_id_list VARCHAR2(10000);
x_errorcode NUMBER;
l_inventory_item_id NUMBER;
l_attr_group_id number;
l_failed_row_id_list
VARCHAR2(255);
l_return_status
VARCHAR2(10);
l_errorcode
NUMBER;
l_msg_count
NUMBER;
l_msg_data
VARCHAR2(255);
x_message_list
Error_Handler.Error_Tbl_Type;
BEGIN
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

SELECT attr_group_id INTO l_attr_group_id


FROM ego_attr_groups_v
WHERE attr_group_name = l_attr_group1_name;
dbms_output.put_line('Attribute Group ID: '||l_attr_group_id);
/*Create a row objects (if any of the Attr Groups were associated at
the Rev level, then pass the appropriate Revision ID as DATA_LEVEL_1)*/
l_user_attr_row_table := EGO_USER_ATTR_ROW_TABLE (
EGO_USER_ATTR_ROW_OBJ
(134 --ROW_IDENTIFIER
,l_attr_group_id --ATTR_GROUP_ID
,431
,l_attr_group_type
,l_attr_group1_name
,'ITEM_LEVEL' --DATA_LEVEL
,null --DATA_LEVEL_1 (i.e., Revision ID)
,null --DATA_LEVEL_2
,null --DATA_LEVEL_3
,null --DATA_LEVEL_4
,null --DATA_LEVEL_5
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE
),
EGO_USER_ATTR_ROW_OBJ
(135 --ROW_IDENTIFIER
,l_attr_group_id --ATTR_GROUP_ID
,431
,l_attr_group_type
,l_attr_group1_name
,'ITEM_LEVEL' --DATA_LEVEL
,null --DATA_LEVEL_1 (i.e., Revision ID)
,null --DATA_LEVEL_2
,null --DATA_LEVEL_3
,null --DATA_LEVEL_4
,null --DATA_LEVEL_5
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE

)
);
/*Create a data object for each Attr value to process in each row.*/
l_user_attr_data_table := EGO_USER_ATTR_DATA_TABLE(
EGO_USER_ATTR_DATA_OBJ(
134 --ROW_IDENTIFIER
,'TstUDAAPIMRAttr' --ATTR_NAME
,null --ATTR_VALUE_STR
,null --ATTR_VALUE_NUM (in the base UOM, 'FT')
,null --ATTR_VALUE_DATE
,'Row1 Updated through API' --ATTR_DISP_VALUE
,null --ATTR_UNIT_OF_MEASURE (display this value in 'CM ')
,1--USER_ROW_IDENTIFIER
),
EGO_USER_ATTR_DATA_OBJ(
135 --ROW_IDENTIFIER
,'TstUDAAPIMRAttr' --ATTR_NAME
,null --ATTR_VALUE_STR
,null --ATTR_VALUE_NUM (in the base UOM, 'FT')
,null --ATTR_VALUE_DATE
,'Row2 Updated through API' --ATTR_DISP_VALUE
,null --ATTR_UNIT_OF_MEASURE (display this value in 'CM ')
,2 --USER_ROW_IDENTIFIER
)
);
EGO_ITEM_PUB.Process_User_Attrs_For_Item
(
p_api_version => 1.0
,p_inventory_item_id => 1225042
,p_organization_id => 204
,p_attributes_row_table => l_user_attr_row_table
,p_attributes_data_table => l_user_attr_data_table
,p_debug_level => 3
,p_commit => FND_API.G_TRUE
,x_failed_row_id_list => x_failed_row_id_list
,x_return_status => l_return_status
,x_errorcode => l_errorcode
,x_msg_count => l_msg_count
,x_msg_data => l_msg_data
);

DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
DBMS_OUTPUT.PUT_LINE('x_msg_count: '||l_msg_count);
DBMS_OUTPUT.PUT_LINE('Return message: '||l_msg_data);

IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN


DBMS_OUTPUT.PUT_LINE('Error Messages :');
Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=========================================');

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('========================================');
END;
Back to Summary

Back to Summary

Item Associations: Cross References


API Name
Available Method
p_XRef_Tbl
P_COMMIT
p_init_msg_list

MTL_CROSS_REFERENCES_PUB
Process_XRef
MTL_CROSS_REFERENCES_PUB.XRef_Tbl_Type
A flag indicating whether to commit work at the end of API processing.
Specify Y or N.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 9-1: Creating Item Cross References


declare
l_api_version NUMBER := 1.0;
l_init_msg_list VARCHAR2(2) := FND_API.G_TRUE;
l_commit VARCHAR2(2) := FND_API.G_TRUE;
l_XRef_tbl MTL_CROSS_REFERENCES_PUB.XRef_Tbl_Type;
x_message_list Error_Handler.Error_Tbl_Type;
x_return_status VARCHAR2(2);
x_msg_count NUMBER := 0;
begin
fnd_global.apps_initialize( user_id=> 1006535,resp_id=>
24089,resp_appl_id => 431);

l_XRef_tbl(1).Transaction_Type:='CREATE';
l_XRef_tbl(1).Cross_Reference_Type:='Customer';
l_XRef_tbl(1).Inventory_Item_Id:=820116;
l_XRef_tbl(1).Cross_Reference:= 'Test API';
l_XRef_tbl(1).Description := 'TestAPI';
l_XRef_tbl(1).Org_Independent_Flag:='Y';

MTL_CROSS_REFERENCES_PUB.Process_XRef(
p_api_version => l_api_version
, p_init_msg_list => l_init_msg_list
, p_commit => l_commit
, p_XRef_Tbl => l_XRef_tbl
, x_return_status => x_return_status
, x_msg_count => x_msg_count
, x_message_list => x_message_list );

IF x_return_status = FND_API.g_RET_STS_ERROR then


--Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||x_message_list.COUNT);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||'. Err Rec No :
'||x_message_list(i).entity_index||' Table Name :
'||x_message_list(i).table_name);
DBMS_OUTPUT.PUT_LINE('Err Message: '||x_message_list(i).message_text);
END LOOP;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('in others exception');
END ;

Using Import From Excel for Items


Oracle Product Hub enables users to import items into the system using a Microsoft Excel spreadsheet.
Default import formats are provided to import the following item related data:
- Items
- Item Revisions
- Item People
- Item Categories
- Item Organization Assignment
- Manufacturer Part Numbers
In order to update UDAs for an item, you must define an import format that includes the UDA s for the
item catalog category of the item. You can also include multi-row UDAs also in the import format. After
loading new item information or updating existing item information in the spreadsheet, upload the data.
Select upload parameters that enable you to:
Create/update items.
Optionally create a change order for the new or changed items.
Optionally create items through New Item Requests.
Back to Summary

Importing Items Using Excel


1. In the Applications tree menu, select the Import from Excel link.
2. On the Import page, select the Items object and click Continue.

3. On the Import: Item page, select an item catalog category and then click Go. The item catalog
category determines which import formats are available for use. Click Import.

4. A Download window displays processing messages. Click Close when the transfer is complete.
The Excel spreadsheet also opens.

5. In the Oracle Web ADI window, click Upload.

6. After the upload process completes, parameters for the concurrent program EGO Spreadsheet
Java Concurrent Program appear. Specify the appropriate parameters for your scenario, then

click Upload. A message appears with the Concurrent Request number. Make a note of this
number. You can use it later to access the view log for the concurrent request. Click Close when
the process messages complete.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Oracle recommends that you review the concurrent process view log to ensure that the
upload process completed successfully.
8. On the View Concurrent Requests page, click the Details icon.

9. On the Request Details page, click View Log.


10. From the View Log, paste the URL string into a web browser to view any errors. If no errors
appear, the upload was successful.
Back to Summary

Example 1-1: Updating Item UDA with Change Order.


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Items object and click Continue.

3. On the Import: Item page, select an item catalog category and then click Go. The item catalog
category determines which import formats are available for use. Click Import.

4. A download window presents processing messages. Click Close when the transfer is complete.
The Excel spreadsheet opens. Update the appropriate cell values.

5. In the Upload Parameters window, set the parameters as needed and then click Upload.

6. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of

7.
8.
9.
10.

this number so you can use it later to access the view log for the concurrent request. Click Close
when the process messages complete.
On the Request Details page, click View Log.
From the View Log, paste the URL string into a web browser to view any errors. If no errors
appear, the upload was successful.
View the change order created in the Change Management tab of the items Overview page.
Once the change order is implemented, the item attributes are updated.
Back to Summary

Example 1-2: Updating Item Multi Row UDA.


1. Create an import format for an ICC that includes the UDA you intend to update.
2. In the Applications tree menu, click the Import from Excel link.
3. On the Import page, select the Items object and click Continue.

4. On the Import: Item page, select an item catalog category and then click Go. The item catalog
category determines which import formats are available for use. Click on Import.

5. A Download window displays processing messages. Click Close when the transfer is complete.
The Excel spreadsheet opens. Update the values you want to change.
NOTE: To add a new row, use transaction type UPDATE and enter the required values.
To update an existing UDA row, pass the unique key attribute value to identify the row and
enter modified values for other attributes.

6. In the Oracle Web ADI window, click Upload.

7. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request at a later time. Click Close
when the process messages complete.
8. On the Request Details page, click View Log.
9. From the view log, paste the URL string in a web browser to view any errors. If no errors appear,
the upload was successful.
Back to Summary

Importing GTIN Cross References from Excel


You can define GTIN cross references for an item using the Import From Excel feature.
1. Create an import format for an ICC that includes the GTIN Name and GTIN Number fields.
2. Select the object type Items.
3. Select this ICC and import format, specify the values to change, and upload the items in the
spreadsheet.
The steps for this process are the same as for Import Items.

Importing Supplier and Supplier Site Associations from Excel


1. Create an import format for an ICC that includes the Supplier Name, Supplier Site, and Supplier
Site Organization Status fields.
2. Select the object type Items.
3. Select the appropriate ICC and import format, enter the appropriate values and upload the
items.
The steps for this process are the same as for Import Items.
Back to Summary

Importing Item Revisions from Excel


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Item Revisions object and click Continue.

3. On the Import: Item Revision page, select an item catalog category and then click Go. The item
catalog category determines which import formats are available for use. Click Import.

4. A Download window displays processing messages. Click Close when the transfer is complete.
The Excel spreadsheet opens.

5. In the Oracle Web ADI window, click Upload.

6. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
8. On the View Concurrent Requests page, click the Details icon.
9. On the Request Details page, click View Log.
10. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Importing Item People from Excel


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Item People object and click Continue.

3. On the Import: Item People Assignment page, Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. Select the Transaction Type, Role and Grantee Type from lists of
values. Optionally, specify any other field values and then click Upload.

5. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note
of this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

6. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
7. On the View Concurrent Requests page, click the Details icon.
8. On the Request Details page, click View Log.
9. From the View Log, paste the URL string into a web browser to view any errors. If no errors
appear, the upload successfully completed.
Back to Summary

Importing Item Category Associations from Excel


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Item Categories object and click Continue.

3. On the Import: Item Catalog Categories Assignment page, Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. Enter the required values and click Upload.

5. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

6. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
7. On the View Concurrent Requests page, click the Details icon.
8. On the Request Details page, click View Log.
9. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Import Item Organization Associations from Excel


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Item Organization Assignment object and click Continue.

3. On the Import: Item page Organization Assignment page, Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. Enter the required values and click Upload.

5. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

6. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
7. On the View Concurrent Requests page, click the Details icon.
8. On the Request Details page, click View Log.
9. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.
Back to Summary

Import Manufacturer Part Number Associations from Excel


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Item Organization Assignment object and click Continue.

3. On the Import: Manufacturer Part Number Association page, Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. Select the Transaction Type, Manufacturer, First Article Status,
and Approval Status from the lists of values. Enter other required values and then click Upload.

5. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note
of this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

6. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completes
successfully.
7. On the View Concurrent Requests page, click the Details icon.
8. On the Request Details page, click View Log.
9. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Using the Import WorkBench for Items


The Import Workbench brings product data from disparate source systems into a master product
information repository. The Import Workbench identifies and resolves duplicates and errors and, at the
same time, enriches existing data with external information. This process creates a blended record,
known as the single source of truth.
The following steps describe the Import Workbench process:
1. Extract and Load. Use one of the following three options to extract and load:
Build a custom program that extracts data from the source system and automatically
uploads the data into the interface tables.
Upload data to the interface tables using Microsoft Office Excel.
Upload data directly to the interface tables using APIs.
NOTE: If you choose to upload data directly to the interface tables, then you must call the data load
complete public API as the last step when uploading data.
2. Match
Identify and resolve duplicates.
Exclude unwanted data.
3. Import
Import and create a single source of truth blended record in the product information
repository.
Optionally, enforce the product change approval process when importing data.
Before using the Import Workbench to import and update product data, you must set up the following:
- Source System.
- Match Rules - to match the imported data to existing data.
NOTE: For more information about creating source systems, refer to Defining Source Systems, Oracle
Product Information Management Implementation Guide Part No. E13109-08.
For more information about creating match rules, refer to Creating Match Rules, Oracle Product
Information Management Implementation Guide Part No. E13109-08.
For more information about creating batches, refer to Creating Batches, Oracle Product Information
Management User Guide Part No. E13109-08
Back to Summary

Creating an Item Batch


1. In the Applications tree menu, click the Import Workbench link.

2. Click Create Batch. Select the Source System, Batch Type and the Batch Name.

3. Review the Data Load Options and make changes if necessary.

4. Review the Import Options and make changes if necessary.

5. Receive confirmation when the batch is created successfully.

Back to Summary

Importing Items using the Batch


1. Search for the newly created batch. Select it, then click Add to Batch.

2. Select the object type.

3. In the Add to Batch: Download Import Format page, select an Item Catalog Category if you want
to select from import formats defined for a certain ICC. Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. In contrast to the Import from Excel functionality, the
downloaded spreadsheet contains two additional columns:
Source System Reference
Source System Description
These 2 columns are used to run the match rules configured for the source system selected
while creating the batch. If the source system item matches an Oracle Product Hub item name,
then the system confirms the match and creates a source system cross reference.

5. Enter the required values and click Upload.

6. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completes
successfully.
8. On the View Concurrent Requests page, click the Details icon.
9. On the Request Details page, click View Log.
10. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Viewing the Item Batch Summary Details


1. Search for the batch and click the Batch Summary icon for the batch.

2. The Summary page shows details such as the number of items imported, unimported items, and
the change orders created.

3. Select Update from the Actions field in the Batch Results table to check the list of imported
items and the match status.

Back to Summary

Using Web Services for Items


You can publish item related data to other consuming systems. Publishing to different systems enables
you to centrally define products in Oracle Product Hub and maintain a common product data model
across an enterprise with multiple systems.
Publish item information by invoking item specific web services provided by Oracle Product Hub.
Web Service Details:
Method: getItemDetails - This web service method provides an interface to extract the information
about the item and/or its hierarchy based on input.
There are three modes to invoke the web services.
1. Batch Mode - Retrieves the details of the item(s) published as part of a batch from the Oracle
Product Hub Publication user interface.

2. Single Item Mode

Use to pass item identifiers for a single item to the getItemDetails method.
Use the basic input identifiers (InventoryItemId or InventoryItemName) and

(OrganizationId or OrganizationCode) and (RevisionId or Revision or RevisionDate) in


this mode.
3. List of Items Mode
Apart from the single item mode, this passes a list of item identifiers directly as input to
the getItemDetails method.
Optionally provides any number of item identifiers for invoking the services.
Prerequisites
Before publishing any data, you must set up Oracle Data Integrator Artifacts and Web Services for Oracle
Product Information Management. For release 12.1 set up instructions, refer to My Oracle Support ID
888696.1.

Items: Web Services Batch Mode


NOTE: For more information about the Web Services used during publishing and controlling the output
payload, see: Oracle Product Information Management Web Services Overview, Oracle Product
Information Management Implementation Guide. Part No. E13108-08.

1. Search for an Item using Simple Search/Advanced Search.


2. Go to Item Overview page and select Publish from the Actions field. Click Go.

3. In the Item Publish page, enter the Batch Name and Structure Details to publish a bill of material
(BOM) along with the item details.

4. In the Item Publish Page, Enter the Workspace Name and select the systems to which you want
to publish by clicking Add Another Row. After selecting these systems, click Finish.

5. In the Publish History page, track the status of the batch.

6. Select the Batch ID to view the details of the batch created.

Back to Summary

Items: Web Service List Mode


In List mode, the call is made to the getItemDetails method by passing the input parameters.
For a complete list of input parameters, output payload details and controlling the output payload, see:
Web Services Overview for Publishing, Oracle Product Information Management Implementation Guide,
Part No. E13108-08.
Sample Request Payload:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://xmlns.oracle.com/apps/ego/item/service">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-6142207" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-

200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>plmmgr</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile1.0#PasswordText">welcome</wsse:Password>
<wsse:Nonce>Geyc9SOdz1iu5SNUVAuizA==</wsse:Nonce>
<wsu:Created>2012-01-18T07:24:20.781Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:ItemQueryIn>
<itemQueryParameters>
<InventoryItemId>1158045</InventoryItemId>
<InventoryItemName>
<Segment1></Segment1>
<Segment2></Segment2>
<Segment3></Segment3>
<Segment4></Segment4>
<Segment5></Segment5>
<Segment6></Segment6>
<Segment7></Segment7>
<Segment8></Segment8>
<Segment9></Segment9>
<Segment10></Segment10>
<Segment11></Segment11>
<Segment12></Segment12>
<Segment13></Segment13>
<Segment14></Segment14>
<Segment15></Segment15>
<Segment16></Segment16>
<Segment17></Segment17>
<Segment18></Segment18>
<Segment19></Segment19>
<Segment20></Segment20>
</InventoryItemName>
<OrganizationId>204</OrganizationId>
<OrganizationCode></OrganizationCode>
<RevisionId>1553462</RevisionId>
<Revision></Revision>
<RevisionDate></RevisionDate>
<StructureName></StructureName>
<BomExploderParameters>
<LevelsToExplode></LevelsToExplode>
<ExplodeOption></ExplodeOption>
<ExplodeStandard></ExplodeStandard>
</BomExploderParameters>
<PublishEntities>
<OperationalAttributeGroups></OperationalAttributeGroups>
<UserDefinedAttributeGroups></UserDefinedAttributeGroups>
<ItemRevision></ItemRevision>
<PublishOperationalAttributeGroups>
<ItemCatalog></ItemCatalog>
<InventoryCharacteristics></InventoryCharacteristics>
<PhysicalCharacteristics></PhysicalCharacteristics>
<BillsOfMaterialCharacteristics></BillsOfMaterialCharacteristics>
<WorkInProcessCharacteristics></WorkInProcessCharacteristics>
<CostingCharacteristics></CostingCharacteristics>
<ProcessingLeadTimeCharacteristics></ProcessingLeadTimeCharacteristics>
<PlanningCharacteristics></PlanningCharacteristics>
<PurchasingCharacteristics></PurchasingCharacteristics>
<ReceivingCharacteristics></ReceivingCharacteristics>

<OrderManagementCharacteristics></OrderManagementCharacteristics>
<InvoicingCharacteristics></InvoicingCharacteristics>
<WebOptionsCharacteristics></WebOptionsCharacteristics>
<ServiceCharacteristics></ServiceCharacteristics>
<AssetCharacteristics></AssetCharacteristics>
<ProcessMfgCharacteristics></ProcessMfgCharacteristics>
</PublishOperationalAttributeGroups>
<!--Zero or more repetitions:-->
<ListOfPublishUserDefinedAttributeGroups>
<AttributeGroupId></AttributeGroupId>
<AttributeGroupName></AttributeGroupName>
</ListOfPublishUserDefinedAttributeGroups>
<TransactionAttributes></TransactionAttributes>
<!--Zero or more repetitions:-->
<ListOfPublishTransactionAttributes>
<AttributeId></AttributeId>
<AttributeName></AttributeName>
</ListOfPublishTransactionAttributes>
<RelatedItems></RelatedItems>
<CustomerItems></CustomerItems>
<ManufacturerPartNumbers></ManufacturerPartNumbers>
<GTINCrossReferences></GTINCrossReferences>
<AlternateCategoryAssignments></AlternateCategoryAssignments>
<SupplierAssignments></SupplierAssignments>
<ReturnPayload></ReturnPayload>
<!--Zero or more repetitions:-->
<ListOfLanguages>
<LanguageCode>US</LanguageCode>
<LanguageName></LanguageName>
</ListOfLanguages>
</PublishEntities>
<BatchId></BatchId>
<!--Zero or more repetitions:-->
<ItemsList>
<InventoryItemId></InventoryItemId>
<InventoryItemName>
<Segment1></Segment1>
<Segment2></Segment2>
<Segment3></Segment3>
<Segment4></Segment4>
<Segment5></Segment5>
<Segment6></Segment6>
<Segment7></Segment7>
<Segment8></Segment8>
<Segment9></Segment9>
<Segment10></Segment10>
<Segment11></Segment11>
<Segment12></Segment12>
<Segment13></Segment13>
<Segment14></Segment14>
<Segment15></Segment15>
<Segment16></Segment16>
<Segment17></Segment17>
<Segment18></Segment18>
<Segment19></Segment19>
<Segment20></Segment20>
</InventoryItemName>
<OrganizationId></OrganizationId>
<OrganizationCode></OrganizationCode>
<RevisionId></RevisionId>
<Revision></Revision>

</ItemsList>
</itemQueryParameters>
<FndSecurity>
<RESPONSIBILITY_NAME>EGO_DEVELOPMENT_MANAGER</RESPONSIBILITY_NAME>
<RESPONSIBILITY_APPL_NAME>EGO</RESPONSIBILITY_APPL_NAME>
<SECURITY_GROUP_NAME>STANDARD</SECURITY_GROUP_NAME>
<NLS_LANGUAGE>AMERICAN</NLS_LANGUAGE>
</FndSecurity>
</ser:ItemQueryIn>
</soapenv:Body>
</soapenv:Envelope>

Sample Response Payload:


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns5:ItemQueryOut xmlns:ns2="http://xmlns.oracle.com/apps/ego/item/service/out"
xmlns:ns3="http://xmlns.oracle.com/apps/ego/item/service/in" xmlns:ns4="http://xmlns.oracle.com/apps/bom/structure/service/in"
xmlns:ns5="http://xmlns.oracle.com/apps/ego/item/service" xmlns:ns6="http://xmlns.oracle.com/apps/bom/structure/service/out">
<listOfItems>
<Item>
<MainCharacteristics>
<InventoryItemId>1158045</InventoryItemId>
<ConcatenatedSegments>Jan10Item</ConcatenatedSegments>
<Segment1>Jan10Item</Segment1>
<Description>Jan10Item</Description>
<OrganizationId>204</OrganizationId>
<OrganizationCode>V1</OrganizationCode>
<MasterOrganizationId>204</MasterOrganizationId>
<OperatingUnitName>Vision Operations</OperatingUnitName>
<OperatingUnitId>204</OperatingUnitId>
<CreationDate>2012-01-10</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateDate>2012-01-10</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<LastUpdateLogin>41691227</LastUpdateLogin>
<PrimaryUomCode>Ea</PrimaryUomCode>
<PrimaryUnitOfMeasure>Each</PrimaryUnitOfMeasure>
<TrackingQuantityInd>P</TrackingQuantityInd>
<OntPricingQtySource>P</OntPricingQtySource>
<DualUomDeviationHigh>0</DualUomDeviationHigh>
<DualUomDeviationLow>0</DualUomDeviationLow>
<DualUomControl>1</DualUomControl>
<AllowedUnitsLookupCode>3</AllowedUnitsLookupCode>
<InventoryItemStatusCode>Active</InventoryItemStatusCode>
<LongDescription>Jan10Item</LongDescription>
<ObjectVersionNumber>1</ObjectVersionNumber>
<SummaryFlag>N</SummaryFlag>
<EnabledFlag>Y</EnabledFlag>
<GdsnOutboundEnabledFlag>N</GdsnOutboundEnabledFlag>
<RevisionId>1553462</RevisionId>
<Revision>A</Revision>
<Language>US</Language>
<MainCharTransalation>
<Language>US</Language>
<Description>Jan10Item</Description>
<LongDescription>Jan10Item</LongDescription>
<OperatingUnitName>Vision Operations</OperatingUnitName>
</MainCharTransalation>
</MainCharacteristics>
<ItemCatalog>
<ItemCatalogGroupId>103025</ItemCatalogGroupId>

</ItemCatalog>
<InventoryCharacteristics>
<InventoryItemFlag>N</InventoryItemFlag>
<StockEnabledFlag>N</StockEnabledFlag>
<MtlTransactionsEnabledFlag>N</MtlTransactionsEnabledFlag>
<RevisionQtyControlCode>1</RevisionQtyControlCode>
<ReservableType>1</ReservableType>
<CheckShortagesFlag>N</CheckShortagesFlag>
<ShelfLifeCode>1</ShelfLifeCode>
<ShelfLifeDays>0</ShelfLifeDays>
<CycleCountEnabledFlag>N</CycleCountEnabledFlag>
<LotControlCode>1</LotControlCode>
<SerialNumberControlCode>1</SerialNumberControlCode>
<GradeControlFlag>N</GradeControlFlag>
<LocationControlCode>1</LocationControlCode>
<RestrictSubinventoriesCode>2</RestrictSubinventoriesCode>
<RestrictLocatorsCode>2</RestrictLocatorsCode>
<LotStatusEnabled>N</LotStatusEnabled>
<SerialStatusEnabled>N</SerialStatusEnabled>
<ChildLotFlag>N</ChildLotFlag>
<ChildLotValidationFlag>N</ChildLotValidationFlag>
<CopyLotAttributeFlag>N</CopyLotAttributeFlag>
<LotSplitEnabled>N</LotSplitEnabled>
<LotMergeEnabled>N</LotMergeEnabled>
<LotTranslateEnabled>N</LotTranslateEnabled>
<LotDivisibleFlag>N</LotDivisibleFlag>
<BulkPickedFlag>N</BulkPickedFlag>
</InventoryCharacteristics>
<PhysicalCharacteristics>
<ContainerItemFlag>N</ContainerItemFlag>
<VehicleItemFlag>N</VehicleItemFlag>
<CollateralFlag>N</CollateralFlag>
<EventFlag>N</EventFlag>
<EquipmentType>2</EquipmentType>
<ElectronicFlag>N</ElectronicFlag>
<DownloadableFlag>N</DownloadableFlag>
<IndivisibleFlag>N</IndivisibleFlag>
</PhysicalCharacteristics>
<BillsOfMaterialCharacteristics>
<BomEnabledFlag>Y</BomEnabledFlag>
<BomItemType>4</BomItemType>
<EngItemFlag>N</EngItemFlag>
<AutoCreatedConfigFlag>N</AutoCreatedConfigFlag>
<EffectivityControl>1</EffectivityControl>
</BillsOfMaterialCharacteristics>
<WorkInProcessCharacteristics>
<BuildInWipFlag>N</BuildInWipFlag>
<WipSupplyType>1</WipSupplyType>
</WorkInProcessCharacteristics>
<CostingCharacteristics>
<CostingEnabledFlag>N</CostingEnabledFlag>
<InventoryAssetFlag>N</InventoryAssetFlag>
<CostOfSalesAccount>12951</CostOfSalesAccount>
</CostingCharacteristics>
<ProcessingLeadTimeCharacteristics>
<PostprocessingLeadTime>0</PostprocessingLeadTime>
<LeadTimeLotSize>1</LeadTimeLotSize>
</ProcessingLeadTimeCharacteristics>
<PlanningCharacteristics>
<InventoryPlanningCode>6</InventoryPlanningCode>
<PlanningMakeBuyCode>2</PlanningMakeBuyCode>

<MrpSafetyStockCode>1</MrpSafetyStockCode>
<ConsignedFlag>2</ConsignedFlag>
<AsnAutoexpireFlag>2</AsnAutoexpireFlag>
<VmiForecastType>1</VmiForecastType>
<MrpPlanningCode>6</MrpPlanningCode>
<CreateSupplyFlag>Y</CreateSupplyFlag>
<ExcludeFromBudgetFlag>2</ExcludeFromBudgetFlag>
<CriticalComponentFlag>2</CriticalComponentFlag>
<RepetitivePlanningFlag>N</RepetitivePlanningFlag>
<AcceptableRateIncrease>0</AcceptableRateIncrease>
<AcceptableRateDecrease>0</AcceptableRateDecrease>
<PlanningTimeFenceCode>4</PlanningTimeFenceCode>
<PlanningTimeFenceDays>1</PlanningTimeFenceDays>
<ContinousTransfer>3</ContinousTransfer>
<Convergence>3</Convergence>
<Divergence>3</Divergence>
<DrpPlannedFlag>2</DrpPlannedFlag>
<RepairProgram>3</RepairProgram>
<PrepositionPoint>N</PrepositionPoint>
</PlanningCharacteristics>
<PurchasingCharacteristics>
<PurchasingItemFlag>N</PurchasingItemFlag>
<PurchasingEnabledFlag>N</PurchasingEnabledFlag>
<MustUseApprovedVendorFlag>N</MustUseApprovedVendorFlag>
<AllowItemDescUpdateFlag>Y</AllowItemDescUpdateFlag>
<OutsourcedAssembly>2</OutsourcedAssembly>
<OutsideOperationFlag>N</OutsideOperationFlag>
<RfqRequiredFlag>N</RfqRequiredFlag>
<TaxableFlag>N</TaxableFlag>
<ReceiptRequiredFlag>Y</ReceiptRequiredFlag>
<ExpenseAccount>13185</ExpenseAccount>
</PurchasingCharacteristics>
<ReceivingCharacteristics/>
<OrderManagementCharacteristics>
<CustomerOrderFlag>N</CustomerOrderFlag>
<CustomerOrderEnabledFlag>N</CustomerOrderEnabledFlag>
<ShippableItemFlag>N</ShippableItemFlag>
<InternalOrderFlag>N</InternalOrderFlag>
<InternalOrderEnabledFlag>N</InternalOrderEnabledFlag>
<SoTransactionsFlag>N</SoTransactionsFlag>
<PickComponentsFlag>N</PickComponentsFlag>
<ReplenishToOrderFlag>N</ReplenishToOrderFlag>
<ShipModelCompleteFlag>N</ShipModelCompleteFlag>
<AtpFlag>N</AtpFlag>
<AtpComponentsFlag>N</AtpComponentsFlag>
<DefaultSoSourceType>INTERNAL</DefaultSoSourceType>
<ReturnableFlag>N</ReturnableFlag>
<ReturnInspectionRequirement>2</ReturnInspectionRequirement>
</OrderManagementCharacteristics>
<InvoicingCharacteristics>
<InvoiceableItemFlag>N</InvoiceableItemFlag>
<InvoiceEnabledFlag>N</InvoiceEnabledFlag>
<SalesAccount>12879</SalesAccount>
</InvoicingCharacteristics>
<WebOptionsCharacteristics>
<WebStatus>UNPUBLISHED</WebStatus>
</WebOptionsCharacteristics>
<ServiceCharacteristics>
<ServiceItemFlag>N</ServiceItemFlag>
<ServiceableProductFlag>N</ServiceableProductFlag>
<ServBillingEnabledFlag>N</ServBillingEnabledFlag>

<ServiceableComponentFlag>N</ServiceableComponentFlag>
<PreventiveMaintenanceFlag>N</PreventiveMaintenanceFlag>
<ProrateServiceFlag>N</ProrateServiceFlag>
<VendorWarrantyFlag>N</VendorWarrantyFlag>
</ServiceCharacteristics>
<AssetCharacteristics/>
<ProcessMfgCharacteristics>
<ProcessQualityEnabledFlag>N</ProcessQualityEnabledFlag>
<ProcessCostingEnabledFlag>N</ProcessCostingEnabledFlag>
<RecipeEnabledFlag>Y</RecipeEnabledFlag>
<HazardousMaterialFlag>N</HazardousMaterialFlag>
<ProcessExecutionEnabledFlag>N</ProcessExecutionEnabledFlag>
</ProcessMfgCharacteristics>
<Organization>
<OrganizationId>204</OrganizationId>
<OrganizationCode>V1</OrganizationCode>
<OrganizationName>Vision Operations</OrganizationName>
<MasterOrganizationId>204</MasterOrganizationId>
<OperatingUnitName>Vision Operations</OperatingUnitName>
<OperatingUnitId>204</OperatingUnitId>
<OrganizationTranslation>
<Language>US</Language>
<OrganizationName>Vision Operations</OrganizationName>
<OperatingUnitName>Vision Operations</OperatingUnitName>
</OrganizationTranslation>
<OrganizationAttributeGroup>
<AttributegroupId>2</AttributegroupId>
<AttributeGroupName>ItemDetailDesc</AttributeGroupName>
<ExtensionId>94832</ExtensionId>
<DataLevelName>Item Organization</DataLevelName>
<ItemUDA>
<Name>DescriptionSource</Name>
<CharValue>D</CharValue>
<DisplayValue>Long Description</DisplayValue>
</ItemUDA>
<ItemUDA>
<Name>DisplayMode</Name>
<CharValue>AsText</CharValue>
<DisplayValue>As Text</DisplayValue>
</ItemUDA>
<ItemUDA>
<Name>Sequence</Name>
<NumberValue>10</NumberValue>
</ItemUDA>
<ItemUDA>
<Name>AttachedFile</Name>
</ItemUDA>
<ItemUDA>
<Name>TranslatableLabel</Name>
<TranslatedCharValue>Long Description</TranslatedCharValue>
<UdaTranslation>
<Language>US</Language>
<Value>Long Description</Value>
</UdaTranslation>
</ItemUDA>
</OrganizationAttributeGroup>
</Organization>
<ItemRevision>
<RevisionId>1553462</RevisionId>
<Revision>A</Revision>
<RevisionLabel>A</RevisionLabel>

<ImplementationDate>2012-01-10</ImplementationDate>
<ObjectVersionNumber>1</ObjectVersionNumber>
<LastUpdateDate>2012-01-10</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<CreationDate>2012-01-10</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateLogin>41691227</LastUpdateLogin>
<EffectivityDate>2012-01-10</EffectivityDate>
</ItemRevision>
</Item>
<Status/>
</listOfItems>
</ns5:ItemQueryOut>
</S:Body>
</S:Envelope>
Back to Summary

Using Microsoft Excel to Export Items


You can export existing item information in Oracle Product Hub to Excel. To export structures, you must
have the proper version of Microsoft Excel installed and display formats defined appropriately. Oracle
Product Hub by default provides the System display format which displays item related information such
as Item Number, Item Revision, Description, Long Description, Lifecycle, Lifecycle phase and Item Status.
Oracle Product Hub enables the exporting of operational attributes, item revisions, UDAs, and supplier
information associated to an item, but you must define the display formats accordingly.
NOTE: For details regarding creation of display formats for structures, see: Managing Display Formats,
Oracle Product Information Management Implementation Guide, Part No. E13108-08.
After finding the items to export using Simple Search, Advanced Search, or Favorite Items, you can
export them directly from the Search Results page. When you use Simple Search and Favorite items, you
must export the selected items using the System display format. When you use Advanced Search, you
can specify an ICC and a user defined display format to use during export.
Back to Summary

Exporting Items to Excel


1. Search for an item using Simple Search/Advanced Search/Favorite Items and select Export All
Items in the results page.

2. On the Select Settings page, select the version of Excel to use and click Next. A download
window displays processing messages. Click Close when the transfer completes. The Excel
spreadsheet opens.

NOTE: Export All Items exports all of the items in the Search Results page.

Importing and Exporting Roles


The matrix below is a summary of available import/export methods for each entity.
Entity

User Interface

FNDLOAD

Roles and Privilege Setup


Role Mapping Setup
Role and Privileges Association

iSetup

Direction data travels when using each method:


ii Inbound: None
Outbound: None
Inbound/Outbound: FNDLOAD, iSetup
Back to Summary

Using FNDLOAD for Roles


Roles and Privilege Setup and Association Information
File name
Location
Entities
Key

afsload.lct
$FND_TOP/patch/115/import
Roles (MENU)
Privileges (FUNCTION)
Menu name (MENU_NAME)
Function Name (FUNCTION_NAME)

Downloading Roles and Privileges


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Menu defined in the system.
FNDLOAD
<username>/<password>@<SID> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/afsload.lct xxego_menu_name.ldt MENU
MENU_NAME="<abc>%"
Uploading Roles and Privileges
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Menu and Functions from xxego_menu_name.ldt.
FNDLOAD
<username>/<password>@<SID> 0 Y UPLOAD
$FND_TOP/patch/115/import/afsload.lct xxego_menu_name.ldt

Back to Summary

Roles Mappings Setup Information


File name
Location
Entities

Key

egorolemap.lct

$EGO_TOP/patch/115/import/
Role Mappings (ROLE_MAPPING)
ROLE_MAPPING

Uploading Role Mappings


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Role Mappings from xxego_role_mappings.ldt.
FNDLOAD
<username>/<password>@<SID> 0 Y UPLOAD
$EGO_TOP/patch/115/import/egorolemap.lct xxego_role_mappings.ldt

Back to Summary

Using iSetup for Roles


Roles and Privileges Set Up and Association Information
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select General Foundation from the Templates table and click Continue.

6. Deselect all entities and select only General Foundation > Menus.

7. Optionally, specify the filter condition. Structure Name and the Organization ID are available for
filter conditions.

8.

Specify a name for the selection set and click Apply to save the changes.

Extracting data
1. Search for the selection set created in the previous step. Select the selection set and click
Extract.

2. Specify an extract name and click Continue.

3. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.

4. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Download the extract zip file.

Loading data
5. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.
6. Specify the load name and target instance and then click Next.
7. Select the As soon as possible Schedule option and then click Finish. Alternatively, schedule
the load for a future date and time.
8. Navigate to Migrations > Load and search for the load name. Verify the load status.

Back to Summary

Importing and Exporting Structure Type Information


The matrix below is a summary of available import/export methods for each entity.
Entity

User Interface

Structure Names
Structure Name Asssociation

FNDLOAD

iSetup

Inbound: None
Outbound: Noe
Inbound/Outbound: FNDLOAD, iSetup
Oracle Product Hub does not currently provide any means of extracting or importing the following
subentites of a structure type since these subentities typically have relatively few instances and do not
change frequently.

Structure Type
Structure Attribute Group
Component Attribute Group
Structure Attribute Group Association
Component Attribute Group Association
Structure Page
Component Page
Display Format
Import Format
Search Criteria
Attachment Category Association
Back to Summary

Using FNDLOAD for Structure Type Information


Structure Names and Structure Name Association
File name
Location
Entities
Key

bomalt.lct
$BOM_TOP/patch/115/import
Alternate Designators (BOM_ALTERNATE_DESIGNATORS)
Alternate Designator name (ALTERNATE_DESIGNATOR_CODE)
Organization ID (ORGANIZATION_ID)

Downloading a Structure Name (AlternateDesignator)


1. Log on to the application server and initialize the application environment variable.
2. Run the following command to download the Structure Name Feb8SN1 defined in the
system.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y DOWNLOAD
$BOM_TOP/patch/115/import/bomalt.lct bomalt.ldt
BOM_ALTERNATE_DESIGNATORS ALTERNATE_DESIGNATOR_CODE=Feb8SN1
ORGANIZATION_ID=204
NOTE: If you do not specify the ALTERNATE_DESIGNATOR_CODE parameter, then this
command downloads all Structure Names defined in the system.
Uploading a Structure Name (AlternateDesginator)
1. Log on to the application server and initialize the application environment variable.
2. Run the following command to upload the Structure Name Feb8SN1 from
xxbom_stru_name.ldt.
FNDLOAD apps/<apps_pwd>@<sid> 0 Y UPLOAD
$BOM_TOP/patch/115/import/bomalt.lct xxbom_stru_name.ldt

Back to Summary

Using iSetup for Structure Type Information


iSetup offers functionality to migrate Alternate Designators. Specify a filter condition for extracting the
specific structure name. iSetup supports creating and updating the structure names.
Structure Names Information
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.

4. Click Create in the Selection Sets page.


5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Deselect all entities and select only Bills Of Material > Alternate Designators.

7. Optionally, specify the filter condition. Structure Name and Organization ID are available for
filter conditions.

8.

Specify a name for the selection set and click Apply to save the changes.

Extracting data
9. Search for the selection set created in the previous step. Select the selection set and click
Extract.

10. Specify an extract name and click Continue.

11. Select the As soon as possible Schedule option click Finish. Alternatively, schedule the extract
for a future date and time.

12. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.

Loading data
13. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.
14. Specify the load name and target instance and click Next.
15. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
16. Navigate to Migrations > Load and search for the load name. Verify the load status.

Back to Summary

Importing and Exporting Structures


The matrix below is a summary of available import/export methods for each entity.

User Interface

Entity

Structure
Components
Item Structure:
Component
Level UDA
Structure
Reference
Designators
Structure
Substitute
Components

iSetup

Interface

Web
Service

Import from excel

Export to excel

Pl/sql
API(Public)

Direction data travels when using each method:


Inbound: Interface, Public APIs, Import from Excel
Outbound: Web Service, Export to Excel
Inbound/Outbound: iSetup
Structure Attachments are the only structure subentity without any import/export methods available.
Change Structure Attachments as needed using the user interface.
The following structure subentities have Public APIs available:

Item Structure: Component Exclusion


Item Structure: Component Level UDA override
Item Structure: Value Set Exclusion
Back to Summary

Using iSetup for Structures


iSetup can migrate structure information from source instances to target instances. iSetup supports
migration of structure information such as structure components, reference designators, and substitute
components along with creating and updating structures.
Creating a Selection Set
1. Log in to Oracle Applications.
2. Select the iSetup responsibility.
3. Navigate to Migrations > Selection Sets.
4. Click Create in the Selection Sets page.
5. Select Discrete Mfg. and Distribution from the Templates table and click Continue.

6. Deselect all entities and select only Bill of Material > Bill of Materials.
NOTE: Use this template to extract the structure components, reference designators and
substitute components along with the structure header information.

7. Optionally, specify the filter condition. Assembly Item Name and the Inventory Organization
Code are available for filter conditions.

8.

Specify a name for the selection set and click Apply to save the changes.

Extracting data
9. Search for the selection set created in the previous step. Select the selection set and click
Extract.

10. Specify an extract name and click Continue.

11. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
extract for a future date and time.

12. Navigate to Migrations > Extracts and search for the extract name. Confirm the status of the
request as Completed (Normal). Optionally, download the extract zip file.

Loading data
13. Navigate to Migrations > Extracts and search for the extract name. Select the extract and click
Load.
14. Specify the load name and target Instance and then click Next.
15. Select the As soon as possible Schedule option and click Finish. Alternatively, schedule the
load for a future date and time.
16. Navigate to Migrations > Load and search for the load name. Verify the load status.

Back to Summary

Using Public APIs for Structures


Use the public API provided with Oracle Product Hub to process structure header and component
information. The public API enables you to create and update the following entities:
- Structures
- Structure Components
- Component Reference Designators
- Component Level UDA
- Substitute Components
Valid transaction types include CREATE, UPDATE, DELETE or SYNC.

Process BOM Information


API Name
Available Method
p_bom_header_rec
p_bom_revision_tbl
p_bom_component_tbl
p_bom_ref_designator_tbl
p_bom_sub_component_tbl
p_bom_comp_ops_tbl
p_bo_identifier
p_api_version_number
p_init_msg_list

BOM_BO_ PUB
Process_bom
PLSQL Collection of Bom_Bo_Pub.Bom_Head_Rec_Type
Bom_Bo_Pub.Bom_Revision_Tbl_Type
Bom_Bo_Pub.Bom_Comps_Tbl_Type
Bom_Bo_Pub.Bom_Ref_Designator_Tbl_type
Bom_Bo_Pub.Bom_Sub_Component_Tbl_Type
Bom_Bo_Pub.Bom_Comp_Ops_Tbl_Type
Business Object Identifier. Possible values include BOM and ECO.
A decimal number indicating revisions to the API.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 1-1: Creating a Primary Bill


DECLARE
-- API input variables
l_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
-- API output variables
x_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_message_list
Error_Handler.Error_Tbl_Type;
l_error_table
l_output_dir

Error_Handler.Error_Tbl_Type;
VARCHAR2(500) := '/usr/tmp/visus25';

l_debug_filename

VARCHAR2(60) := 'su_debug_07_16.dbg';

l_return_status
VARCHAR2(1) := NULL;
l_msg_count
NUMBER
:= 0;
l_cnt
NUMBER
:= 1;

BEGIN

-- intiialize applications information


fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- initialize BOM header


l_bom_header_rec.assembly_item_name := 'feb6TestItem';
l_bom_header_rec.organization_code := 'V1';
l_bom_header_rec.assembly_type
:= 1;
l_bom_header_rec.transaction_type := 'CREATE';
l_bom_header_rec.return_status
:= NULL;
l_bom_header_rec.assembly_comment := 'Primary Bill';

-- initialize error stack for logging errors


Error_Handler.initialize;
-- call API to create / update bill
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Calling Bom_Bo_Pub.process_bom API');
BOM_BO_PUB.process_bom (p_bo_identifier
=> 'BOM',
p_api_version_number
=> 1.0,
p_init_msg_list
=> TRUE,
p_bom_header_rec
=> l_bom_header_rec,
p_bom_revision_tbl
=> l_bom_revision_tbl,
p_bom_component_tbl
=> l_bom_component_tbl,
p_bom_ref_designator_tbl
=> l_bom_ref_designator_tbl,
p_bom_sub_component_tbl
=> l_bom_sub_component_tbl,
x_bom_header_rec
=> x_bom_header_rec,
x_bom_revision_tbl
=> x_bom_revision_tbl,
x_bom_component_tbl
=> x_bom_component_tbl,
x_bom_ref_designator_tbl
=> x_bom_ref_designator_tbl,
x_bom_sub_component_tbl
=> x_bom_sub_component_tbl,
x_return_status
=> l_return_status,
x_msg_count
=> l_msg_count
-- p_debug
=> 'Y', -- Use these 3 parameters for debugging
-- p_output_dir
=> l_output_dir,
-- p_debug_filename
=> l_debug_filename
);
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN

dbms_output.put_line('x_msg_count:' || l_msg_count);
Error_Handler.GET_MESSAGE_LIST(x_message_list => l_error_table);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||l_error_table.COUNT);
FOR i IN 1..l_error_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).entity_index||':'||l_error_table(i).table_name);
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=======================================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('=======================================================');
RAISE;
END;

Example 1-2: Creating Components in a Primary Bill


DECLARE
-- API input variables
l_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
-- API output variables
x_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_message_list
Error_Handler.Error_Tbl_Type;
l_error_table
Error_Handler.Error_Tbl_Type;
l_output_dir
VARCHAR2(500) := '/usr/tmp/visus25';
l_debug_filename
VARCHAR2(60) := 'su_debug_07_16.dbg';
l_return_status
VARCHAR2(1) := NULL;
l_msg_count
NUMBER
:= 0;
l_cnt
NUMBER
:= 1;

BEGIN

-- intiialize applications information


fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- initialize BOM header

l_bom_header_rec.assembly_item_name := 'feb6TestItem';
l_bom_header_rec.organization_code := 'V1';
l_bom_header_rec.assembly_type
:= 1;
l_bom_header_rec.transaction_type := 'CREATE';
l_bom_header_rec.return_status
:= NULL;
l_bom_header_rec.assembly_comment := 'AlternateBill';
l_bom_header_rec.Structure_Type_Name := 'Feb8ST' ;
l_bom_header_rec.Alternate_Bom_Code := 'Feb8SN1' ;
l_cnt := 1;
-- initialize BOM components
-- component 1
l_bom_component_tbl (l_cnt).organization_code := 'V1';
l_bom_component_tbl (l_cnt).assembly_item_name := 'feb6TestItem';
l_bom_component_tbl (l_cnt).start_effective_date := sysdate; -- to_date('16-JUL-2010 19:30:39','DD-MON-YY
-- HH24:MI:SS'); -- should match timestamp for UPDATE
l_bom_component_tbl (l_cnt).component_item_name := 'Jan2ICCItem';
l_bom_component_tbl (l_cnt).alternate_bom_code := NULL;
l_bom_component_tbl (l_cnt).comments := 'Created from BOM API';
l_bom_component_tbl (l_cnt).item_sequence_number := '10';
l_bom_component_tbl (l_cnt).operation_sequence_number := '10';
l_bom_component_tbl (l_cnt).transaction_type := 'CREATE';
l_bom_component_tbl (l_cnt).quantity_per_assembly := 2;
l_bom_component_tbl (l_cnt).return_status := NULL;
-- component 2
l_cnt := l_cnt + 1;
l_bom_component_tbl (l_cnt).organization_code := 'V1';
l_bom_component_tbl (l_cnt).assembly_item_name := 'feb6TestItem';
l_bom_component_tbl (l_cnt).start_effective_date := SYSDATE;
l_bom_component_tbl (l_cnt).component_item_name := 'Jan2ICCItem2';
l_bom_component_tbl (l_cnt).alternate_bom_code := NULL;
l_bom_component_tbl (l_cnt).comments := 'Created from BOM API';
l_bom_component_tbl (l_cnt).item_sequence_number := '20';
l_bom_component_tbl (l_cnt).operation_sequence_number := '10';
l_bom_component_tbl (l_cnt).transaction_type := 'CREATE';
l_bom_component_tbl (l_cnt).quantity_per_assembly := 5;
l_bom_component_tbl (l_cnt).return_status := NULL;

-- initialize error stack for logging errors


Error_Handler.initialize;
-- call API to create / update bill
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Calling Bom_Bo_Pub.process_bom API');
BOM_BO_PUB.process_bom (p_bo_identifier
=> 'BOM',
p_api_version_number
=> 1.0,
p_init_msg_list
=> TRUE,
p_bom_header_rec
=> l_bom_header_rec,
p_bom_revision_tbl
=> l_bom_revision_tbl,
p_bom_component_tbl
=> l_bom_component_tbl,
p_bom_ref_designator_tbl
=> l_bom_ref_designator_tbl,
p_bom_sub_component_tbl
=> l_bom_sub_component_tbl,
x_bom_header_rec
=> x_bom_header_rec,
x_bom_revision_tbl
=> x_bom_revision_tbl,
x_bom_component_tbl
=> x_bom_component_tbl,
x_bom_ref_designator_tbl
=> x_bom_ref_designator_tbl,
x_bom_sub_component_tbl
=> x_bom_sub_component_tbl,
x_return_status
=> l_return_status,

-- p_debug

x_msg_count
=> l_msg_count
=> 'Y', -- Use these 3 parameters for debugging
-- p_output_dir
=> l_output_dir,
-- p_debug_filename
=> l_debug_filename
);

DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
dbms_output.put_line('x_msg_count:' || l_msg_count);
Error_Handler.GET_MESSAGE_LIST(x_message_list => l_error_table);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||l_error_table.COUNT);
FOR i IN 1..l_error_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).entity_index||':'||l_error_table(i).table_name);
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=======================================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('=======================================================');
RAISE;
END;

Example 1-3: Creating an Alternate Bill with Components


DECLARE
-- API input variables
l_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
-- API output variables
x_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_message_list
Error_Handler.Error_Tbl_Type;
l_error_table
Error_Handler.Error_Tbl_Type;
l_output_dir
VARCHAR2(500) := '/usr/tmp/visus25';
l_debug_filename
VARCHAR2(60) := 'su_debug_07_16.dbg';
l_return_status
VARCHAR2(1) := NULL;
l_msg_count
NUMBER
:= 0;
l_cnt
NUMBER
:= 1;

BEGIN

-- intiialize applications information


fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- initialize BOM header


l_bom_header_rec.assembly_item_name := 'Feb14Item1';
l_bom_header_rec.organization_code := 'V1';
l_bom_header_rec.assembly_type
:= 1;
l_bom_header_rec.transaction_type := 'CREATE';
l_bom_header_rec.return_status
:= NULL;
l_bom_header_rec.assembly_comment := 'AlternateBill';
l_bom_header_rec.Structure_Type_Name := 'Feb14ST' ;
l_bom_header_rec.Alternate_Bom_Code := 'Feb14SN' ;
l_bom_header_rec.Enable_Attrs_Update := 'Y';
l_cnt := 1;
-- initialize BOM components
-- component 1
l_bom_component_tbl (l_cnt).organization_code := 'V1';
l_bom_component_tbl (l_cnt).assembly_item_name := 'Feb14Item1';
l_bom_component_tbl (l_cnt).start_effective_date := SYSDATE; -- to_date('16-JUL-2010 19:30:39','DD-MON-YY
-- HH24:MI:SS');
-- should match timestamp for UPDATE
l_bom_component_tbl (l_cnt).component_item_name := 'Feb14Item2';
l_bom_component_tbl (l_cnt).alternate_bom_code := 'Feb14SN';
l_bom_component_tbl (l_cnt).comments := 'Created from BOM API';
l_bom_component_tbl (l_cnt).item_sequence_number := '40';
l_bom_component_tbl (l_cnt).operation_sequence_number := '1';
l_bom_component_tbl (l_cnt).transaction_type := 'CREATE';
l_bom_component_tbl (l_cnt).quantity_per_assembly := 2;
l_bom_component_tbl (l_cnt).return_status := NULL;

-- initialize error stack for logging errors


Error_Handler.initialize;
-- call API to create / update bill
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Calling Bom_Bo_Pub.process_bom API');
BOM_BO_PUB.process_bom (p_bo_identifier
=> 'BOM',
p_api_version_number
=> 1.0,
p_init_msg_list
=> TRUE,
p_bom_header_rec
=> l_bom_header_rec,
p_bom_revision_tbl
=> l_bom_revision_tbl,
p_bom_component_tbl
=> l_bom_component_tbl,
p_bom_ref_designator_tbl
=> l_bom_ref_designator_tbl,
p_bom_sub_component_tbl
=> l_bom_sub_component_tbl,
x_bom_header_rec
=> x_bom_header_rec,
x_bom_revision_tbl
=> x_bom_revision_tbl,
x_bom_component_tbl
=> x_bom_component_tbl,
x_bom_ref_designator_tbl
=> x_bom_ref_designator_tbl,

-- p_debug

x_bom_sub_component_tbl
=> x_bom_sub_component_tbl,
x_return_status
=> l_return_status,
x_msg_count
=> l_msg_count
=> 'Y', -- Use these 3 parameters for debugging
-- p_output_dir
=> l_output_dir,
-- p_debug_filename
=> l_debug_filename
);

DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
dbms_output.put_line('x_msg_count:' || l_msg_count);
Error_Handler.GET_MESSAGE_LIST(x_message_list => l_error_table);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||l_error_table.COUNT);
FOR i IN 1..l_error_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).entity_index||':'||l_error_table(i).table_name);
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=======================================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('=======================================================');
RAISE;
END;

Example 1-4: Creating a Component Reference Designator


DECLARE
-- API input variables
l_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
-- API output variables
x_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_message_list
Error_Handler.Error_Tbl_Type;
l_error_table
Error_Handler.Error_Tbl_Type;
l_output_dir
VARCHAR2(500) := '/usr/tmp/visus25';
l_debug_filename
VARCHAR2(60) := 'su_debug_07_16.dbg';
l_return_status
VARCHAR2(1) := NULL;
l_msg_count
NUMBER
:= 0;
l_cnt
NUMBER
:= 1;

BEGIN

-- intiialize applications information


fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- initialize BOM header


l_bom_header_rec.assembly_item_name := 'Feb14Item1';
l_bom_header_rec.organization_code := 'V1';
--l_bom_header_rec.assembly_type
:= 1;
l_bom_header_rec.transaction_type := 'UPDATE';
l_bom_header_rec.alternate_bom_code := 'Feb14SN';
-- l_bom_header_rec.return_status
:= NULL;
--l_bom_header_rec.assembly_comment := 'Primary Bill';
l_cnt := 1;
-- initialize BOM components
-- component 1
l_bom_ref_designator_tbl (l_cnt).organization_code := 'V1';
l_bom_ref_designator_tbl (l_cnt).assembly_item_name:= 'Feb14Item1';
l_bom_ref_designator_tbl (l_cnt).start_effective_date := To_Date('13-02-2012 23:09:43', 'DD-MM-YYYY HH24:MI:SS');
-- should match timestamp for UPDATE
l_bom_ref_designator_tbl (l_cnt).component_item_name := 'Feb14Item2';
l_bom_ref_designator_tbl (l_cnt).alternate_bom_code := 'Feb14SN';
l_bom_ref_designator_tbl (l_cnt).operation_sequence_number := '1';
l_bom_ref_designator_tbl (l_cnt).transaction_type := 'CREATE';
l_bom_ref_designator_tbl (l_cnt).Reference_Designator_Name := 'Ref2';
l_bom_ref_designator_tbl (l_cnt).Ref_Designator_Comment := 'Created from BOM API';
l_bom_ref_designator_tbl (l_cnt).return_status := NULL;
-- initialize error stack for logging errors
Error_Handler.initialize;
-- call API to create / update bill
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Calling Bom_Bo_Pub.process_bom API');
BOM_BO_PUB.process_bom (p_bo_identifier
=> 'BOM',
p_api_version_number
=> 1.0,
p_init_msg_list
=> TRUE,
p_bom_header_rec
=> l_bom_header_rec,
p_bom_revision_tbl
=> l_bom_revision_tbl,
p_bom_component_tbl
=> l_bom_component_tbl,
p_bom_ref_designator_tbl
=> l_bom_ref_designator_tbl,
p_bom_sub_component_tbl
=> l_bom_sub_component_tbl,
x_bom_header_rec
=> x_bom_header_rec,
x_bom_revision_tbl
=> x_bom_revision_tbl,
x_bom_component_tbl
=> x_bom_component_tbl,
x_bom_ref_designator_tbl
=> x_bom_ref_designator_tbl,
x_bom_sub_component_tbl
=> x_bom_sub_component_tbl,
x_return_status
=> l_return_status,
x_msg_count
=> l_msg_count

-- p_debug

=> 'Y', -- Use these 3 parameters for debugging


-- p_output_dir
=> l_output_dir,
-- p_debug_filename
=> l_debug_filename
);

DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
dbms_output.put_line('x_msg_count:' || l_msg_count);
Error_Handler.GET_MESSAGE_LIST(x_message_list => l_error_table);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||l_error_table.COUNT);
FOR i IN 1..l_error_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).entity_index||':'||l_error_table(i).table_name);
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=======================================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('=======================================================');
RAISE;
END;

Example 1-5: Creating a Substitute Component


DECLARE
-- API input variables
l_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
-- API output variables
x_bom_header_rec
Bom_Bo_Pub.bom_head_rec_type
:= Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl
Bom_Bo_Pub.bom_revision_tbl_type
:= Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl
Bom_Bo_Pub.bom_comps_tbl_type
:= Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl
Bom_Bo_Pub.bom_ref_designator_tbl_type
:= Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl
Bom_Bo_Pub.bom_sub_component_tbl_type
:=
Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_message_list
Error_Handler.Error_Tbl_Type;
l_error_table
Error_Handler.Error_Tbl_Type;
l_output_dir
VARCHAR2(500) := '/usr/tmp/visus25';
l_debug_filename
VARCHAR2(60) := 'su_debug_07_16.dbg';
l_return_status
VARCHAR2(1) := NULL;
l_msg_count
NUMBER
:= 0;
l_cnt
NUMBER
:= 1;

BEGIN

-- intiialize applications information


fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- initialize BOM header


l_bom_header_rec.assembly_item_name := 'Feb14Item1';
l_bom_header_rec.organization_code := 'V1';
--l_bom_header_rec.assembly_type
:= 1;
l_bom_header_rec.transaction_type := 'UPDATE';
l_bom_header_rec.alternate_bom_code := 'Feb14SN';
-- l_bom_header_rec.return_status
:= NULL;
--l_bom_header_rec.assembly_comment := 'Primary Bill';
l_cnt := 1;
-- initialize BOM components

l_bom_sub_component_tbl (l_cnt).organization_code := 'V1';


l_bom_sub_component_tbl (l_cnt).Assembly_Item_Name := 'Feb14Item1';
l_bom_sub_component_tbl (l_cnt).start_effective_date := To_Date('13-02-2012 23:09:43', 'DD-MM-YYYY HH24:MI:SS');
l_bom_sub_component_tbl (l_cnt).Component_Item_Name := 'Feb14Item2';
l_bom_sub_component_tbl (l_cnt).Substitute_Component_Name := 'Feb14Item4';
l_bom_sub_component_tbl (l_cnt).alternate_bom_code := 'Feb14SN';
l_bom_sub_component_tbl (l_cnt).operation_sequence_number := '1';
l_bom_sub_component_tbl (l_cnt).transaction_type := 'CREATE';
l_bom_sub_component_tbl (l_cnt).Substitute_Item_Quantity := 6;
l_bom_sub_component_tbl (l_cnt).return_status := NULL;

-- initialize error stack for logging errors


Error_Handler.initialize;
-- call API to create / update bill
DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Calling Bom_Bo_Pub.process_bom API');
BOM_BO_PUB.process_bom (p_bo_identifier
=> 'BOM',
p_api_version_number
=> 1.0,
p_init_msg_list
=> TRUE,
p_bom_header_rec
=> l_bom_header_rec,
p_bom_revision_tbl
=> l_bom_revision_tbl,
p_bom_component_tbl
=> l_bom_component_tbl,
p_bom_ref_designator_tbl
=> l_bom_ref_designator_tbl,
p_bom_sub_component_tbl
=> l_bom_sub_component_tbl,
x_bom_header_rec
=> x_bom_header_rec,
x_bom_revision_tbl
=> x_bom_revision_tbl,
x_bom_component_tbl
=> x_bom_component_tbl,
x_bom_ref_designator_tbl
=> x_bom_ref_designator_tbl,
x_bom_sub_component_tbl
=> x_bom_sub_component_tbl,
x_return_status
=> l_return_status,
x_msg_count
=> l_msg_count

-- p_debug

=> 'Y', -- Use these 3 parameters for debugging


-- p_output_dir
=> l_output_dir,
-- p_debug_filename
=> l_debug_filename
);

DBMS_OUTPUT.PUT_LINE('=======================================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||l_return_status);
IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
dbms_output.put_line('x_msg_count:' || l_msg_count);
Error_Handler.GET_MESSAGE_LIST(x_message_list => l_error_table);
DBMS_OUTPUT.PUT_LINE('Error Message Count :'||l_error_table.COUNT);
FOR i IN 1..l_error_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).entity_index||':'||l_error_table(i).table_name);
DBMS_OUTPUT.PUT_LINE(to_char(i)||':'||l_error_table(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=======================================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('=======================================================');
RAISE;
END;

Back to Summary

Process UDA Information


API Name
Available Method
p_object_name
p_attributes_row_table
p_attributes_data_table
p_pk_column_name_value_pairs
p_class_code_name_value_pairs
p_entity_id
p_entity_index
p_entity_code
p_commit
p_api_version
p_init_fnd_msg_list

EGO_USER_ATTRS_DATA_PUB
Process_User_Attrs_Data
Name of the object to which this data applies. 'BOM_STRUCTURE' in this case.
EGO_USER_ATTR_ROW_TABLE type
EGO_USER_ATTR_DATA_TABLE type
EGO_USER_ATTRS_DATA_PUB. EGO_COL_NAME_VALUE_PAIR_OBJ Type
EGO_USER_ATTRS_DATA_PUB. EGO_COL_NAME_VALUE_PAIR_ARRAY Type
Used in error reporting.

Indicates whether to commit work for all attribute group rows that are
processed successfully. Valid values are Y and N.
A decimal number indicating revisions to the API.
A flag indicating whether to initialize the FND_MSG_PUB package's message
stack.

Example 1.1 Updating Structure Level UDA Values


DECLARE
-- Parameters

p_BILL_SEQUENCE_ID NUMBER := 79268; -- Derived from BOM_STRUCTURES_B;


p_attr_grp_name VARCHAR2(100) := 'Feb14SAG';
p_structure_ID
VARCHAR2(100) := 1125; -- Derived from BOM_STRUCTURES_B. Structure_type_id
l_attr_name
Varchar2(100) := 'Feb14SAGAttr';
l_attr_value
Varchar2(100) := 'Updated through API';
l_rowcnt
NUMBER
:= 1 ;
-- Other variables
l_api_version
NUMBER := 1;
l_object_name
VARCHAR2(20) := 'BOM_STRUCTURE';
l_attributes_row_table
EGO_USER_ATTR_ROW_TABLE := EGO_USER_ATTR_ROW_TABLE();
l_attributes_data_table
EGO_USER_ATTR_DATA_TABLE := EGO_USER_ATTR_DATA_TABLE();
l_pk_column_name_value_pairs
EGO_COL_NAME_VALUE_PAIR_ARRAY :=
EGO_COL_NAME_VALUE_PAIR_ARRAY();
l_class_code_name_value_pairs
EGO_COL_NAME_VALUE_PAIR_ARRAY :=
EGO_COL_NAME_VALUE_PAIR_ARRAY();
l_user_privileges_on_object EGO_VARCHAR_TBL_TYPE := NULL;
l_entity_id
NUMBER := NULL;
l_entity_index
NUMBER := NULL;
l_entity_code
VARCHAR2(1) := NULL;
l_debug_level
NUMBER := 3;
l_init_error_handler VARCHAR2(1) := FND_API.G_TRUE;
l_write_to_concurrent_log
VARCHAR2(1) := FND_API.G_TRUE;
l_init_fnd_msg_list
VARCHAR2(1) := FND_API.G_TRUE;
l_log_errors
VARCHAR2(1) := FND_API.G_TRUE;
l_add_errors_to_fnd_stack
VARCHAR2(1) := FND_API.G_FALSE;
l_commit
VARCHAR2(1) := FND_API.G_FALSE; -- Do NOT set to TRUE, Verify the data and then
COMMIT
x_failed_row_id_list VARCHAR2(255);
x_return_status
VARCHAR2(10);
x_errorcode
NUMBER;
x_msg_count
NUMBER;
x_msg_data
VARCHAR2(255);
x_message_list
Error_Handler.Error_Tbl_Type;
l_inventory_item_id
l_organization_id
l_attr_group_id

NUMBER := 0;
NUMBER := 0;
EGO_ATTR_GROUPS_V.ATTR_GROUP_ID%TYPE := 0;

BEGIN
-- intiialize applications information
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431 -- resp appl id
);

-- Get the Attribute Group Identifiers


SELECT attr_group_id INTO l_attr_group_id
FROM ego_attr_groups_v
WHERE attr_group_name = p_attr_grp_name;
dbms_output.put_line('Attribute Group ID: '||l_attr_group_id);
dbms_output.put_line('Set PK Value Pair - Start');
l_pk_column_name_value_pairs.EXTEND(1);
l_pk_column_name_value_pairs(1) := EGO_COL_NAME_VALUE_PAIR_OBJ('BILL_SEQUENCE_ID',
to_char(p_BILL_SEQUENCE_ID));
dbms_output.put_line('Set PK Value Pair - Done');

dbms_output.put_line('Set PK Value Pair for BOM Type - Start');


-- select * from BOM_STRUCTURE_TYPES_B where structure_type_name like 'JBP%'; >> 6125
l_class_code_name_value_pairs.EXTEND(1);
l_class_code_name_value_pairs(1) := EGO_COL_NAME_VALUE_PAIR_OBJ('STRUCTURE_TYPE_ID',
to_char(p_structure_id));
dbms_output.put_line('Set PK Value Pair for BOM Type- Done');
dbms_output.put_line('Initialize object - Start');
-- Add in the attribute groups here, multirow attribute groups should have the same attr_group_id
-- transaction_type can be CREATE | UPDATE | SYNC
l_attributes_row_table :=
EGO_USER_ATTR_ROW_TABLE
(EGO_USER_ATTR_ROW_OBJ
(9999
-- ROW_IDENTIFIER
,l_attr_group_id
-- ATTR_GROUP_ID from EGO_ATTR_GROUPS_V
,NULL
-- ATTR_GROUP_APP_ID
,NULL
-- ATTR_GROUP_TYPE
,NULL
-- ATTR_GROUP_NAME
,NULL
-- NDATA_LEVEL
,NULL
-- DATA_LEVEL_1
(Required if attribute groups are at revision level)
,NULL
-- DATA_LEVEL_2
,NULL
-- DATA_LEVEL_3
,NULL
-- DATA_LEVEL_4
,NULL
-- DATA_LEVEL_5
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE
-- TRANSACTION_TYPE
));
dbms_output.put_line('Initialize object - Done');
dbms_output.put_line('Initialize object2 - Start');
l_attributes_data_table.EXTEND;
l_attributes_data_table(1) :=
EGO_USER_ATTR_DATA_OBJ
(9999
-- ROW_IDENTIFIER from above
,l_attr_name
-- ATTR_NAME
,NULL
-- ATTR_VALUE_STR
,NULL
-- ATTR_VALUE_NUM
,NULL
-- ATTR_VALUE_DATE
,l_attr_value
-- ATTR_DISP_VALUE
,NULL
-- ATTR_UNIT_OF_MEASURE
,l_rowcnt
-- USER_ROW_IDENTIFIER
);
dbms_output.put_line('Initialize object2 - Done');
-- call API to load Items
DBMS_OUTPUT.PUT_LINE('===========================================');
DBMS_OUTPUT.PUT_LINE('Calling EGO_USER_ATTRS_DATA_PUB.PROCESS_USER_ATTRS_DATA API');
dbms_output.put_line('Process attribute - Start');
EGO_USER_ATTRS_DATA_PUB.PROCESS_USER_ATTRS_DATA (
l_api_version
, l_object_name
, l_attributes_row_table
, l_attributes_data_table
, l_pk_column_name_value_pairs

, l_class_code_name_value_pairs
, l_user_privileges_on_object
, l_entity_id
, l_entity_index
, l_entity_code
, l_debug_level
, l_init_error_handler
, l_write_to_concurrent_log
, l_init_fnd_msg_list
, l_log_errors
, l_add_errors_to_fnd_stack
, l_commit
, x_failed_row_id_list
, x_return_status
, x_errorcode
, x_msg_count
, x_msg_data
);
dbms_output.put_line('Process attribute - Done');
DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||x_return_status);
IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
DBMS_OUTPUT.PUT_LINE('Error Messages :');
Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=========================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('========================================');
END;

Example1-2: Updating Component Level UDA Values


set serveroutput on format wraped;
DECLARE
-- Parameters
p_BILL_SEQUENCE_ID NUMBER := 79268; -- Derived from BOM_STRUCTURES_B
p_COMP_SEQUENCE_ID NUMBER := 79271; -- Derived from BOM_COMPONENTS_B
p_attr_grp_name VARCHAR2(100) := 'Feb14CAG';
p_structure_ID
VARCHAR2(100) := 1125; -- Derived from BOM_STRUCTURES_B(Structure_type_id)
l_attr_name
Varchar2(100) := 'Feb14CAGAttr';
l_attr_value
Varchar2(100) := 'Updated through API';
l_rowcnt
NUMBER
:= 1;
-- Required for setting data level
l_data_level
Varchar2(100) := 'COMPONENTS_LEVEL'; -- Data level from EGO_DATA_LEVEL_B
l_attr_application_id NUMBER := -1;
l_attr_group_type
Varchar2(100) := NULL;

-- Variables for API Parameters


l_api_version
NUMBER := 1;
l_object_name
VARCHAR2(20) := 'BOM_COMPONENTS';
l_attributes_row_table
EGO_USER_ATTR_ROW_TABLE := EGO_USER_ATTR_ROW_TABLE();
l_attributes_data_table
EGO_USER_ATTR_DATA_TABLE := EGO_USER_ATTR_DATA_TABLE();
l_pk_column_name_value_pairs
EGO_COL_NAME_VALUE_PAIR_ARRAY :=
EGO_COL_NAME_VALUE_PAIR_ARRAY();
l_class_code_name_value_pairs
EGO_COL_NAME_VALUE_PAIR_ARRAY :=
EGO_COL_NAME_VALUE_PAIR_ARRAY();
l_user_privileges_on_object EGO_VARCHAR_TBL_TYPE := NULL;
l_entity_id
NUMBER := NULL;
l_entity_index
NUMBER := NULL;
l_entity_code
VARCHAR2(1) := NULL;
l_debug_level
NUMBER := 3;
l_init_error_handler VARCHAR2(1) := FND_API.G_TRUE;
l_write_to_concurrent_log
VARCHAR2(1) := FND_API.G_TRUE;
l_init_fnd_msg_list
VARCHAR2(1) := FND_API.G_TRUE;
l_log_errors
VARCHAR2(1) := FND_API.G_TRUE;
l_add_errors_to_fnd_stack
VARCHAR2(1) := FND_API.G_FALSE;
l_commit
VARCHAR2(1) := FND_API.G_FALSE; -- Do NOT set to TRUE, Verify the data and then
COMMIT x_failed_row_id_list VARCHAR2(255);
x_return_status
VARCHAR2(10);
x_errorcode
NUMBER;
x_msg_count
NUMBER;
x_msg_data
VARCHAR2(255);
x_message_list
Error_Handler.Error_Tbl_Type;
l_inventory_item_id
l_organization_id
l_item_catalog_group_id
l_attr_group_id

NUMBER := 0;
NUMBER := 0;
NUMBER := 0;
EGO_ATTR_GROUPS_V.ATTR_GROUP_ID%TYPE := 0;

BEGIN
-- intiialize applications information
fnd_global.apps_initialize(1006535, -- user id
24089, -- resp id
431
-- resp appl id
);

-- Get the Attribute Group Identifiers


SELECT attr_group_id, application_id, attr_group_type
INTO l_attr_group_id, l_attr_application_id, l_attr_group_type
FROM ego_attr_groups_v
WHERE attr_group_name = p_attr_grp_name;
dbms_output.put_line('Attribute Group ID: '||l_attr_group_id);
dbms_output.put_line('Set PK Value Pair - Start');
l_pk_column_name_value_pairs.EXTEND(2);
l_pk_column_name_value_pairs(1) := EGO_COL_NAME_VALUE_PAIR_OBJ('COMPONENT_SEQUENCE_ID',
to_char(p_COMP_SEQUENCE_ID));
l_pk_column_name_value_pairs(2) := EGO_COL_NAME_VALUE_PAIR_OBJ('BILL_SEQUENCE_ID',
to_char(p_BILL_SEQUENCE_ID));
dbms_output.put_line('Set PK Value Pair - Done');
dbms_output.put_line('Set PK Value Pair for BOM Type - Start');
-- select * from BOM_STRUCTURE_TYPES_B where structure_type_name like 'JBP%'; >> 6125

l_class_code_name_value_pairs.EXTEND(1);
l_class_code_name_value_pairs(1) := EGO_COL_NAME_VALUE_PAIR_OBJ('STRUCTURE_TYPE_ID',
to_char(p_structure_id));
dbms_output.put_line('Set PK Value Pair for BOM Type- Done');
dbms_output.put_line('Initialize object - Start');
-- Add in the attribute groups here, multirow attribute groups should have the same attr_group_id
-- transaction_type can be CREATE | UPDATE | SYNC
l_attributes_row_table :=
EGO_USER_ATTR_ROW_TABLE
(EGO_USER_ATTR_ROW_OBJ
(9999
-- ROW_IDENTIFIER
,l_attr_group_id
-- ATTR_GROUP_ID from EGO_ATTR_GROUPS_V
,l_attr_application_id
-- ATTR_GROUP_APP_ID: 702 (Would expect auto found from id, but required
on
--Components to get Data Level)
,l_attr_group_type -- ATTR_GROUP_TYPE: 'BOM_COMPONENTMGMT_GROUP' (Would expect auto found from id, -- but
required on Components to get Data Level)
,NULL
-- ATTR_GROUP_NAME
,l_data_level
-- DATA_LEVEL: 'COMPONENTS_LEVEL' - Required for Component
,NULL
-- DATA_LEVEL_1
(Required if attribute groups are at revision level)
,NULL
-- DATA_LEVEL_2
,NULL
-- DATA_LEVEL_3
,NULL
-- DATA_LEVEL_4
,NULL
-- DATA_LEVEL_5
,EGO_USER_ATTRS_DATA_PVT.G_SYNC_MODE
-- TRANSACTION_TYPE
));
dbms_output.put_line('Initialize object - Done');
dbms_output.put_line('Initialize object2 - Start');
l_attributes_data_table.EXTEND;
l_attributes_data_table(1) :=
EGO_USER_ATTR_DATA_OBJ
(9999
-- ROW_IDENTIFIER from above
,l_attr_name
-- ATTR_NAME
,NULL
-- ATTR_VALUE_STR
,NULL
-- ATTR_VALUE_NUM
,NULL
-- ATTR_VALUE_DATE
,l_attr_value
-- ATTR_DISP_VALUE
,NULL
-- ATTR_UNIT_OF_MEASURE
,l_rowcnt
-- USER_ROW_IDENTIFIER
);
dbms_output.put_line('Initialize object2 - Done');
-- call API to load Items
DBMS_OUTPUT.PUT_LINE('===========================================');
DBMS_OUTPUT.PUT_LINE('Calling EGO_USER_ATTRS_DATA_PUB.PROCESS_USER_ATTRS_DATA API');
dbms_output.put_line('Process attribute - Start');
EGO_USER_ATTRS_DATA_PUB.PROCESS_USER_ATTRS_DATA (
l_api_version
, l_object_name
, l_attributes_row_table
, l_attributes_data_table
, l_pk_column_name_value_pairs
, l_class_code_name_value_pairs

, l_user_privileges_on_object
, l_entity_id
, l_entity_index
, l_entity_code
, l_debug_level
, l_init_error_handler
, l_write_to_concurrent_log
, l_init_fnd_msg_list
, l_log_errors
, l_add_errors_to_fnd_stack
, l_commit
, x_failed_row_id_list
, x_return_status
, x_errorcode
, x_msg_count
, x_msg_data
);
dbms_output.put_line('Process attribute - Done');
DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||x_return_status);
IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
DBMS_OUTPUT.PUT_LINE('Error Messages :');
Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=========================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('========================================');
END;

Back to Summary

Using an Interface for Structures


Use the Item Open Interface (IOI) to:
1.
2.
3.
4.

Create structures.
Add components to structures.
Add substitute components.
Add reference designators to components.

Importing Structures
1. Insert the details of the structures to import into the following tables:
a. BOM_BILL_OF_MTLS_INTERFACE (Structures)
b. BOM_INVENTORY_COMPS_INTERFACE (Structure Components)

c. BOM_SUB_COMPS_INTERFACE (Substitute Components)


d. BOM_REF_DESGS_INTERFACE (Reference Designators)
2. Navigate to Batch Import > Import Structure.
3. Enter Bill and Routing Interface in the Name field. The Parameters window opens.

4. Indicate whether to run the interface for all organizations in the item interface table.

5.
6.
7.

8.

If you choose No, the interface runs only for the current organization and interface table rows
for other organizations are ignored.
Indicate whether to process routing information. If you choose Yes, the interface imports
records from the routing interface tables.
Indicate whether to process structure information. If you choose Yes, the interface imports
records from the structure interface tables.
Indicate whether to delete successfully processed structures from the structure interface tables.
Choose No to leave all rows for successfully processed structures in the structure interface
tables.
Choose OK to close the Parameters window, and then click Submit.

Back to Summary

Structure Header Information


The following table describes only the minimal and important columns in BOM_BILL_OF_MTLS
_INTERFACE required to create an item in a master organization. The semantics of the remaining
operation attributes columns can be found at eTRM.
Interface Table Name
Key/Important Columns:
ASSEMBLY_ITEM_ID
ORGANIZATION_ID
ASSEMBLY_TYPE

ALTERNATE_BOM_DESIGNATOR
COMMON_ASSEMBLY_ITEM_ID
COMMON_BILL_SEQUENCE_ID

COMMON_ORGANIZATION_ID
TRANSACTION_TYPE

BOM_BILL_OF_MTLS_INTERFACE
Base Item Number.
Alternate Column : ITEM_NUMBER
Organization ID.
Alternate Column : ORGANIZATION_CODE
Valid values are:
1 Manufacturing
2 - Engineering
Alternate Designator Name, if creating an alternate BOM.
Item ID for the common base item.
Bill sequence ID for the common structure.
Alternate Column : COMMON_ITEM_ID, COMMON_ORGANIZATION_ID,
ALTERNATE_BOM_DESIGNATOR.
Alternatively, pass the COMMON_ORG_CODE.
CREATE/UPDATE/DELETE

Example 1-1: Creating a Structure


1. Insert a row into BOM_BILL_OF_MTLS_INTERFACE.
INSERT
INTO bom_bill_of_mtls_interface
(
ORGANIZATION_CODE
,
ITEM_NUMBER
,
Assembly_type
,
transaction_type
,
ALTERNATE_BOM_DESIGNATOR,

Process_flag
)
VALUES
(
'V1'
,
'Feb14Item1',
1
,
'Create' ,
Feb14SN1,
1
);

2. Commit the transaction.


3. Launch the Bill and Routing Interface concurrent program.

Back to Summary

Structure Component Information


Interface Table Name
Key/Important Columns:
ASSEMBLY_ITEM_ID
ORGANIZATION_ID
ALTERNATE_BOM_DESIGNATOR
COMPONENT_ITEM_ID
COMPONENT_QUANTITY
OPERATION_SEQ_NUM
EFFECTIVITY_DATE
TRANSACTION_TYPE

BOM_INVENTORY_COMPS_INTERFACE
Base Item Number.
Alternate Column : ASSEMBLY_ITEM_NUMBER.
Organization ID.
Alternate Column: ORGANIZATION_CODE.
Alternate Designator Name, If creating an alternate BOM.
Component Item Number. Alternate Column: COMPONENT_ITEM_NUMBER.
Component Quantity.
Operation Sequence.
Component Effectivity Date.
CREATE/UPDATE/DELETE.

Example 1-1: Creating a Structure Component


1. Insert a row into BOM_INVENTORY_COMPS_INTERFACE.
INSERT
INTO BOM_INVENTORY_COMPS_INTERFACE
(
COMPONENT_ITEM_NUMBER ,
ALTERNATE_BOM_DESIGNATOR,
ASSEMBLY_ITEM_NUMBER ,
ORGANIZATION_CODE
,
OPERATION_SEQ_NUM
,
EFFECTIVITY_DATE
,
TRANSACTION_TYPE
,
PROCESS_FLAG
,
BATCH_ID
)
VALUES
(
'Feb14Item2',

Feb14SN1,
'Feb14Item1',
'V1'
,
1
,
SYSDATE ,
'Create' ,
1
,
99
);

2. Commit the transaction.


3. Launch the Bill and Routing Interface concurrent program.

Back to Summary

Structure Components UDA Information


Interface Table Name
Key/Important Columns:
ITEM_NUMBER
ORGANIZATION_ID
ASSEMBLY_ITEM_NUMBER
COMPONENT_SEQUENCE_ID

BOM_CMP_USR_ATTR_INTERFACE

ATTR_GROUP_INT_NAME
ATTR_INT_NAME
ATTR_VALUE_STR
BATCH_ID
DATA_SET_ID
TRANSACTION_ID

Component Attribute Group Name.


Attribute Internal Name.
Attribute Value.
Batch ID for the batch created through Import Workbench.
Same as batch ID.
MTL_SYSTEM_ITEMS_INTERFACE_S.NEXTVAL

TRANSACTION_TYPE

CREATE/UPDATE/DELETE

Component Item Number.


Organization ID.
Assembly Item Number.
Component Sequence ID.

Example 1-1: Creating a Structure Component


1. Navigate to the Import Workbench and create a Structure batch. Select the Structure
Type and the Structure Name and make a note of the Batch ID.
2. Enter component information.

SELECT MTL_SYSTEM_ITEMS_INTERFACE_S.NEXTVAL
FROM dual;
INSERT INTO BOM_INVENTORY_COMPS_INTERFACE
(
BATCH_ID
,
PROCESS_FLAG ,
TRANSACTION_TYPE ,
ORGANIZATION_ID ,
ORGANIZATION_CODE,
COMPONENT_ITEM_NUMBER,
ASSEMBLY_ITEM_NUMBER ,
OPERATION_SEQ_NUM ,

COMPONENT_QUANTITY ,
ASSEMBLY_TYPE
,
EFFECTIVITY_DATE ,
TRANSACTION_ID
)
VALUES
(
10008831,
1
,
'SYNC' ,
204 ,
'V1' ,
Oct19Child,
'Oct19Parent',
1,1, 2 ,
SYSDATE,
255799
);

3. Insert the component UDA information.


INSERT INTO bom_cmp_usr_attr_interface
(
data_set_id
,
process_status
,
transaction_type ,
organization_code ,
organization_id
,
item_number
,
structure_type_id ,
row_identifier
,
attr_group_type
,
attr_group_int_name ,
attr_int_name
,
attr_disp_value
,
creation_date
,
created_by
,
last_update_date ,
last_updated_by
,
last_update_login ,
batch_id
,
bill_sequence_id ,
component_sequence_id,
assembly_item_number ,
attr_value_str
,
data_level_id
,
transaction_id --component_item_id
)
VALUES
(
10007620
, --batch_id
1
, --process status
'SYNC'
, --transaction type
'V1'
, --org code
204
, --org id

'Oct19Child'
, --component item number
3125
, --structure type id
2
, --row identifier
'BOM_COMPONENTMGMT_GROUP', --attribute group type
'EBD_COMP_ATTR_GROUP' , --give the attribute group internal name
'EBS_COMP_ATTR_1'
, --give the attribute internal name
'abc'
, --attribute display value
SYSDATE
,
NULL
,
SYSDATE
,
NULL
,
NULL
,
10007620
, --batch id
NULL
,
NULL
,
'OCt19Parent'
, --give the parent/assembly item number
'abc'
,
70201
,
309677
--404932 --component item id
);

4. Commit the data.


5. Finalize the Upload.
DECLARE
err VARCHAR2(1000);
ret VARCHAR2(1);
--p_batch_id NUMBER;
--x_error_message VARCHAR2(1000);
--x_return_code VARCHAR2(1);
BEGIN
apps.FND_GLOBAL.APPS_INITIALIZE(1006535,24089,431);
apps.bom_import_pub.Data_Upload_Complete(10007620,err,ret );
Dbms_Output.put_line(err);
Dbms_Output.put_line(ret);
COMMIT;
END;

6. Navigate to the Import Workbench and import the batch.

Back to Summary

Component Reference Designator Information


Interface Table Name
Key/Important Columns:
ASSEMBLY_ITEM_ID

BOM_REF_DESGS_INTERFACE
Base Item Number.

ORGANIZATION_ID
ALTERNATE_BOM_DESIGNATOR
COMPONENT_ITEM_ID
OPERATION_SEQ_NUM
EFFECTIVITY_DATE
COMPONENT_REFERENCE_DESIGNATOR
TRANSACTION_TYPE

Alternate Column : ASSEMBLY_ITEM_NUMBER


Organization ID.
Alternate Column : ORGANIZATION_CODE
Alternate Designator Name, if creating an alternate BOM.
Component Item Number. Alternate Column:
COMPONENT_ITEM_NUMBER
Operation Sequence
Component Effectivity Date
Reference Designator
CREATE/UPDATE/DELETE

Example 1-1: Creating a Component Reference Designator


1. Insert a row into BOM_REF_DESGS_INTERFACE.
INSERT
INTO BOM_REF_DESGS_INTERFACE
(
COMPONENT_REFERENCE_DESIGNATOR,
ALTERNATE_BOM_DESIGNATOR
,
ORGANIZATION_CODE
,
COMPONENT_ITEM_NUMBER
,
OPERATION_SEQ_NUM
,
EFFECTIVITY_DATE
,
PROCESS_FLAG
,
ASSEMBLY_ITEM_NUMBER
,
TRANSACTION_TYPE
,
BATCH_ID
)
VALUES
(
'Ref1'
,
'Feb14SN1'
,
'V1'
,
'Feb14Item2'
,
1
,
To_Date('14-02-2012 01:25:37', 'DD-MM-YYYY HH24:MI:SS') ,
1
,
'Feb14Item1'
,
'CREATE'
,
993
);

2. Commit the transaction.


3. Launch the Bill and Routing Interface concurrent program.

Back to Summary

Substitute Component Information


Interface Table Name

BOM_SUB_COMPS_INTERFACE

Key/Important Columns:
ASSEMBLY_ITEM_ID
ORGANIZATION_ID
ALTERNATE_BOM_DESIGNATOR
COMPONENT_ITEM_ID
OPERATION_SEQ_NUM
EFFECTIVITY_DATE
SUBSTITUTE_COMPONENT_ID
SUBSTITUTE_ITEM_QUANTITY
TRANSACTION_TYPE

Base Item Number.


Alternate Column : ASSEMBLY_ITEM_NUMBER
Organization ID.
Alternate Column : ORGANIZATION_CODE
Alternate Designator Name, if creating an alternate BOM.
Component Item Number.
Alternate Column: COMPONENT_ITEM_NUMBER
Operation Sequence
Component Effectivity Date
Substitute Component Item ID.
Alternate Column: SUBSTITUTE_COMP_NUMBER
Substitute Item Quantity
CREATE/UPDATE/DELETE

Example 1-1: Creating a Substitute Component


1. Insert a row into BOM_SUB_COMPS_INTERFACE.
INSERT
INTO bom_sub_comps_interface
(
SUBSTITUTE_ITEM_QUANTITY,
ALTERNATE_BOM_DESIGNATOR,
ORGANIZATION_CODE
,
COMPONENT_ITEM_NUMBER ,
OPERATION_SEQ_NUM
,
EFFECTIVITY_DATE
,
PROCESS_FLAG
,
SUBSTITUTE_COMP_NUMBER ,
ASSEMBLY_ITEM_NUMBER ,
TRANSACTION_TYPE
,
batch_id
)
VALUES
(
6
,
'Feb14SN1'
,
'V1'
,
'Feb14Item2'
,
1
,
To_Date('14-02-2012 01:25:37', 'DD-MM-YYYY HH24:MI:SS') ,
1
,
'Feb14Item4'
,
'Feb14Item1'
,
'CREATE'
,
992
);

2. Commit the transaction.


3. Launch the Bill and Routing Interface concurrent program.

Back to Summary

Importing Structures From Excel


You can import structures into Oracle Product Hub using a Microsoft Excel spreadsheet. The default
spreadsheet provides the following columns to import structures and structure component-related data:
- Effectivity
- Component Information
- Component Details
- Comments
- Shipping
- Lifecycle Status
- Change Order
- Long Description
- Material Control
- Order Management
- Reference Designator
Define a new import format if the seeded import formats do not meet your needs.
Creating Structures with Components
1. In the Applications tree menu, click the Import from Excel link.
2. In the Import page, select the Structures object and click Continue.

3. On the Add to Batch: Import Structure page, select a Structure Type, Structure Name, and the
Component Information Import Format. Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. Enter the data.
NOTE: The Structure Type and Structure Name selected previously default into the downloaded
Excel spreadsheet and you can not change them in the spreadsheet at this point in the process.
The downloaded spreadsheet is divided into two parts:
Header Section - Fill in the details of the topmost assembly here.
Enter values in the following columns:
- Item Name: Enter the name of the parent assembly.

Organization Name: Enter the organization name, for example, Vision Operations.
Structure Name: Defaults to the one selected
Item Revision: Enter the item revision, ex. A-A
Structure Type: Defaults to the structure type selected on the Add to Batch: Import
Structure page.
Engineering: Yes for Engineering Type Structure, No for Manufacturing Type Structure.
Effectivity Control: Select Date or Revision.

Detail Section - The contents in the detail section depend upon the import format chosen. Fill in
the necessary component information.

5. In the Oracle Web ADI window, click Upload.

6. After the upload process completes, the EGO Spreadsheet Java Concurrent Program concurrent
program begins and a message appears with the Concurrent Request number. Make a note of
this number, so you can access the view log for the concurrent request later. Click Close when
the process messages complete. The EGO program launches another concurrent program,
Structure Bulkload.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
8. On the View Concurrent Requests page, click the Details icon.

9. On the Request Details page, click View Log.


10. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Creating Component Reference Designators


1. In the Applications tree menu, click the Import from Excel link.
2. On the Import page, select the Structures object and click Continue.

3. On the Add to Batch: Import Structure page, select a Structure Type, Structure Name and the
Reference Designator Import Format. Click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens.

5. In the Oracle Web ADI window, click Upload.


6. After the upload process completes, a concurrent program EGO Spreadsheet Java Concurrent
Program launches and a message appears with the Concurrent Request number. Make a note of
this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete. The EGO program launches another concurrent program,
Structure Bulkload.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completes
successfully.
8. On the View Concurrent Requests page, click the Details icon.
9. On the Request Details page, click View Log.
10. From the view log, paste the URL string into a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Structures: Import From Excel: Updating Component level UDA.


1. Create an import format for a structure type with component level user defined attributes.
2. Select the Structures object type.
3. Select your newly created import format, enter the column values that you want to update, and
then upload the components.
The steps for updating component level UDAs are the same as the steps for Structures: Import
From Excel: Creating Structures with Components.

Using the Import Workbench to Import Structures


The Import Workbench brings product data from disparate source systems into a master product
information repository. The benefits of using Import Workbench include:
- Consolidating product information from heterogeneous systems.
- Improving data quality by identifying duplicate records.
- Enforcing product change control across all product information.
- Importing data and synchronizing multiple systems.
- Securely accessing and searching your information repository.
Creating a Batch
1. In the Applications tree menu, click the Import Workbench link.

2. Click Create Batch. Select the Source System and Batch Type and then enter the Batch Name.

3. Review the Data Load Options and make changes, if necessary. These options default from the
Source System definition.
4. Review the Import Options and make changes, if necessary.
Enter values in the Structure Type, Structure Name, Effectivity Control Type, Effectivity and
Structure Contains fields and then click Apply.

5. Confirm successful creation of the batch.

Back to Summary

Importing Structures using the Batch


1. Search for the newly created batch. Select the batch and click Add to Batch.

2. Select the Object type.

3. In Add to batch: Download Import Format page, select an import format and click Import.

4. A Download window displays processing messages. Click Close when the transfer completes.
The Excel spreadsheet opens. In contrast to the Import from Excel default spreadsheet, the
default spreadsheet for the Import Workbench contains three additional columns:
Source System Reference the component item code in the Source System.
Source System Description the component item description in the Source System.
Parent Source System Reference the item code for the immediate parent assembly of
the component.
The above three columns are used to run the Match Rules configured for the Source System
selected while creating the batch. If the source system item matches a PIMDH item name, the
system confirms the match. Import Workbench runs the match rules and, if a match is found,
creates a cross reference to the source system item.

5. Enter the required values and then click Upload.

6. After the upload process completes, a concurrent program, EGO Spreadsheet Java Concurrent
Program, launches and a message appears with the Concurrent Request number. Make a note
of this number so you can access the view log for the concurrent request later. Click Close when
the process messages complete.

7. Return to the Applications tree menu and click the View Concurrent Requests link.
Note: Review the concurrent process view log to ensure that the upload process completed
successfully.
8. On the View Concurrent Requests page, click the Details icon.
9. On the Request Details page, click View Log.
10. From the View Log, paste the URL string in a web browser to view any errors. If no errors
appear, the upload completed successfully.

Back to Summary

Viewing the Batch Summary Details


1. Search for the batch. Click the Batch Summary icon for the batch.

2. The Summary page displays details such as the number of items imported and Unimported as
well as the change orders created.

3. Click Update in the Actions field within the Batch Results table to verify the list of imported
items and their match statuses.

4. Click Structure Details in the Actions field within the Batch Results page to view the Structure
Details.

Back to Summary

Using Web Services for Structures


Oracle Product Hub enables users to publish structure related data to other consuming systems.
Publishing to different systems enables users to centrally define products in Oracle Product Hub and
maintain a common product data model across an enterprise with multiple systems.
Users can publish structure information by invoking item-specific web services provided by Oracle
Product Hub.
Web Service Details:
Method: getStructureDetails - This Web Service method provides an interface to extract the information
about the item's structure based on input. The payload only contains the details about the structure and
its components. The payload does not contain item definition information for the components.
Use one of the following modes to invoke the web services:
1. Batch Mode - Retrieves the details of the structure payload for the items defined in a specific
batch published from the Oracle Product Hub Publication user interface. Creates the publication
batch with the list of items and the structure name using the Oracle Product Hub Publication
user interface.
2. Single Item Mode
Use this web service to retrieve the structure payload for a given item without creating
a publication batch. Provide the single item information directly in the input payload to
retrieve the structure details.
Use the basic input identifiers (InventoryItemId or InventoryItemName) and
(OrganizationId or OrganizationCode) and (RevisionId or Revision or RevisionDate) in
this mode.
3. List of Items Mode
Separate from the single item mode, this passes a list of item identifiers directly as input
to the getStructureDetails method.
Optionally provides any number of item identifiers for invoking the services.
Back to Summary

Structures: Web Services Batch Mode


Prerequisites

Before publishing any data, you must set up Oracle Data Integrator Artifacts and Web Services for Oracle
Product Information Management. For set up instructions, refer to My Oracle Support ID 888696.1.
NOTE: For more information about the web services used during publishing and controlling the output
payload, see: Oracle Product Information Management Web Services Overview, Oracle Product
Information Management Implementation Guide, Part No. E13108-08.

1. Search for an item using Simple Search/Advanced Search.


2. Go to the Item Overview page and select Publish from the Actions field. Click Go.

3. In the Item Publish Page, Enter the Batch Name and Structure Details if you want to publish the
BOM along with the item details.
Enter the following required structure related details:
- Structure Name - Structure to publish for the selected items.
NOTE: The list includes all available structure names defined in the system irrespective of the
items selected. The selected structure is relevant to only those items that have this structure
defined.
- Structure Explosion Date - Effective date of the structure. Determines which revision of the item
is selected and the components effective for the item revision selected.
- Number of Levels to Publish - Number of structure levels to publish. The default value is 60,
which is the maximum number of levels supported.
- Explode Standard BOM - Explodes the standard BOM if selected.

1. In the Item Publish Page, Enter the Workspace Name and select the systems to which you want
to publish by clicking Add Another Row. Click Finish.

2. In the Publish History page, track the status of the batch.

3. Click the Batch ID to view the details of the batch created.

Back to Summary

Structures:Web Service List Mode


In List mode, the call is made to the getStructureDetails method by passing the input parameters.
For a complete list of input parameters and output payload details, see: Web Services Overview for
Publishing and Controlling the Output Payload, Oracle Product Information Management
Implementation Guide, Part No. E13108-08.
Sample Request Payload:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://service.item.ego.apps.oracle/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-6142207" xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>plmmgr</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-tokenprofile-1.0#PasswordText">welcome</wsse:Password>
<wsse:Nonce>Geyc9SOdz1iu5SNUVAuizA==</wsse:Nonce>
<wsu:Created>2012-01-18T07:24:20.781Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ser:getStructureDetails>
<!--Optional:-->
<arg0>
<structureQueryParameters>
<InventoryItemId>833372</InventoryItemId>

<InventoryItemName>
<Segment1></Segment1>
<Segment2></Segment2>
<Segment3></Segment3>
<Segment4></Segment4>
<Segment5></Segment5>
<Segment6></Segment6>
<Segment7></Segment7>
<Segment8></Segment8>
<Segment9></Segment9>
<Segment10></Segment10>
<Segment11></Segment11>
<Segment12></Segment12>
<Segment13></Segment13>
<Segment14></Segment14>
<Segment15></Segment15>
</InventoryItemName>
<OrganizationId>204</OrganizationId>
<OrganizationCode></OrganizationCode>
<RevisionId></RevisionId>
<Revision>A</Revision>
<RevisionDate></RevisionDate>
<StructureName>Primary</StructureName>
<!--Zero or more repetitions:-->
<ListOfLanguageInformation>
<LanguageCode>US</LanguageCode>
<LanguageName></LanguageName>
</ListOfLanguageInformation>
<BomExploderParameters>
<LevelsToExplode>1</LevelsToExplode>
<ExplodeOption>1</ExplodeOption>
<ExplodeStandard>Y</ExplodeStandard>
</BomExploderParameters>
<PublishEntities>
<StructureRevision></StructureRevision>
<StructureHeaderAttributeGroups></StructureHeaderAttributeGroups>
<StructureComponents></StructureComponents>
<ListOfStrAttrGrpType>
<!--Zero or more repetitions:-->
<PublishStructureHeaderAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishStructureHeaderAttributeGroup>
</ListOfStrAttrGrpType>
<PublishStructureComponents>
<StructureReferenceDesignators></StructureReferenceDesignators>
<StructureSubstituteComponents></StructureSubstituteComponents>
<ComponentAttributeGroups></ComponentAttributeGroups>
<ListOfPublishComponentAttributeGroups>
<!--Zero or more repetitions:-->
<PublishComponentAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishComponentAttributeGroup>
</ListOfPublishComponentAttributeGroups>
<ComponentExclusions></ComponentExclusions>
<ComponentUDAOverrides></ComponentUDAOverrides>
<ValueSetExclusions></ValueSetExclusions>
</PublishStructureComponents>
<ReturnPayload></ReturnPayload>
</PublishEntities>

<BatchStructureQueryParameters>
<BatchId></BatchId>
<Configurability>
<!--Zero or more repetitions:-->
<ListOfLanguageInformation>
<LanguageCode></LanguageCode>
<LanguageName></LanguageName>
</ListOfLanguageInformation>
<BomExploderParameters>
<LevelsToExplode></LevelsToExplode>
<ExplodeOption></ExplodeOption>
<ExplodeStandard></ExplodeStandard>
</BomExploderParameters>
<PublishEntities>
<StructureRevision></StructureRevision>
<StructureHeaderAttributeGroups></StructureHeaderAttributeGroups>
<StructureComponents></StructureComponents>
<ListOfStrAttrGrpType>
<!--Zero or more repetitions:-->
<PublishStructureHeaderAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishStructureHeaderAttributeGroup>
</ListOfStrAttrGrpType>
<PublishStructureComponents>
<StructureReferenceDesignators></StructureReferenceDesignators>
<StructureSubstituteComponents></StructureSubstituteComponents>
<ComponentAttributeGroups></ComponentAttributeGroups>
<ListOfPublishComponentAttributeGroups>
<!--Zero or more repetitions:-->
<PublishComponentAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishComponentAttributeGroup>
</ListOfPublishComponentAttributeGroups>
<ComponentExclusions></ComponentExclusions>
<ComponentUDAOverrides></ComponentUDAOverrides>
<ValueSetExclusions></ValueSetExclusions>
</PublishStructureComponents>
<ReturnPayload></ReturnPayload>
</PublishEntities>
</Configurability>
</BatchStructureQueryParameters>
<ParametersForListOfItems>
<Configurability>
<!--Zero or more repetitions:-->
<ListOfLanguageInformation>
<LanguageCode></LanguageCode>
<LanguageName></LanguageName>
</ListOfLanguageInformation>
<BomExploderParameters>
<LevelsToExplode></LevelsToExplode>
<ExplodeOption></ExplodeOption>
<ExplodeStandard></ExplodeStandard>
</BomExploderParameters>
<PublishEntities>
<StructureRevision></StructureRevision>
<StructureHeaderAttributeGroups></StructureHeaderAttributeGroups>
<StructureComponents></StructureComponents>
<ListOfStrAttrGrpType>
<!--Zero or more repetitions:-->

<PublishStructureHeaderAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishStructureHeaderAttributeGroup>
</ListOfStrAttrGrpType>
<PublishStructureComponents>
<StructureReferenceDesignators></StructureReferenceDesignators>
<StructureSubstituteComponents></StructureSubstituteComponents>
<ComponentAttributeGroups></ComponentAttributeGroups>
<ListOfPublishComponentAttributeGroups>
<!--Zero or more repetitions:-->
<PublishComponentAttributeGroup>
<AttributegroupId></AttributegroupId>
<AttributeGroupName></AttributeGroupName>
</PublishComponentAttributeGroup>
</ListOfPublishComponentAttributeGroups>
<ComponentExclusions></ComponentExclusions>
<ComponentUDAOverrides></ComponentUDAOverrides>
<ValueSetExclusions></ValueSetExclusions>
</PublishStructureComponents>
<ReturnPayload></ReturnPayload>
</PublishEntities>
</Configurability>
<!--Zero or more repetitions:-->
<ListOfItemStructureQueryParams>
<InventoryItemId></InventoryItemId>
<InventoryItemName>
<Segment1></Segment1>
<Segment2></Segment2>
<Segment3></Segment3>
<Segment4></Segment4>
<Segment5></Segment5>
<Segment6></Segment6>
<Segment7></Segment7>
<Segment8></Segment8>
<Segment9></Segment9>
<Segment10></Segment10>
<Segment11></Segment11>
<Segment12></Segment12>
<Segment13></Segment13>
<Segment14></Segment14>
<Segment15></Segment15>
</InventoryItemName>
<OrganizationId></OrganizationId>
<OrganizationCode></OrganizationCode>
<RevisionId></RevisionId>
<Revision></Revision>
<RevisionDate></RevisionDate>
<StructureName></StructureName>
</ListOfItemStructureQueryParams>
</ParametersForListOfItems>
</structureQueryParameters>
<FndSecurity>
<RESPONSIBILITY_NAME>EGO_DEVELOPMENT_MANAGER</RESPONSIBILITY_NAME>
<RESPONSIBILITY_APPL_NAME>EGO</RESPONSIBILITY_APPL_NAME>
<SECURITY_GROUP_NAME>STANDARD</SECURITY_GROUP_NAME>
<NLS_LANGUAGE>US</NLS_LANGUAGE>
</FndSecurity>
</arg0>
</ser:getStructureDetails>

</soapenv:Body>
</soapenv:Envelope>

Sample Response Payload:


<ns0:listOfStructureHeaders xmlns:ns0="http://xmlns.oracle.com/apps/bom/structure/service/out">
<StructureHeader>
<AssemblyItemId>833370</AssemblyItemId>
<AssemblyItemName>Feb15Item3</AssemblyItemName>
<Segment1/>
<Segment2/>
<Segment3/>
<Segment4/>
<Segment5/>
<Segment6/>
<Segment7/>
<Segment8/>
<Segment9/>
<Segment10/>
<Segment11/>
<Segment12/>
<Segment13/>
<Segment14/>
<Segment15/>
<Segment16/>
<Segment17/>
<Segment18/>
<Segment19/>
<Segment20/>
<CommonAssemblyItemId/>
<CommonAssemblyItemName/>
<OrganizationId>204</OrganizationId>
<OrganizationCode/>
<SpecificAssemblyComment/>
<AssemblyType>2</AssemblyType>
<AlternateBomDesignator/>
<CommonBillSequenceId>210169</CommonBillSequenceId>
<BillSequenceId>210169</BillSequenceId>
<CommonOrganizationId/>
<CommonOrganizationCode>V1</CommonOrganizationCode>
<OperatingUnitId>204</OperatingUnitId>
<PendingFromEcn/>
<NextExplodeDate/>
<ProjectId/>
<TaskId/>
<OriginalSystemReference/>
<StructureTypeId>7126</StructureTypeId>
<ImplementationDate>2012-02-16</ImplementationDate>
<ObjName/>
<EffectivityControl>1</EffectivityControl>
<IsPreferred>N</IsPreferred>
<SourceBillSequenceId>210169</SourceBillSequenceId>
<LastUpdateDate>2012-02-16</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<CreationDate>2012-02-16</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateLogin>40601046</LastUpdateLogin>
<AttributeCategory/>
<Attribute1/>
<Attribute2/>
<Attribute3/>

<Attribute4/>
<Attribute5/>
<Attribute6/>
<Attribute7/>
<Attribute8/>
<Attribute9/>
<Attribute10/>
<Attribute11/>
<Attribute12/>
<Attribute13/>
<Attribute14/>
<Attribute15/>
<Pk1Value>833370</Pk1Value>
<Pk2Value>204</Pk2Value>
<Pk3Value>1174073</Pk3Value>
<Pk4Value/>
<Pk5Value/>
<Language>US</Language>
<PlanLevel>1</PlanLevel>
<StructureRevision>
<RevisionId>1174073</RevisionId>
<Revision>A</Revision>
<RevisionLabel>A</RevisionLabel>
<RevisionReason/>
<ChangeNotice/>
<EcnInitiationDate/>
<ImplementationDate>2012-02-16</ImplementationDate>
<ImplementedSerialNumber/>
<Description/>
<LifecycleId/>
<CurrentPhaseId/>
<ObjectVersionNumber>6</ObjectVersionNumber>
<LastUpdateDate>2012-02-16</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<CreationDate>2012-02-16</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateLogin>40601225</LastUpdateLogin>
<EffectivityDate>2012-02-16</EffectivityDate>
<RevisedItemSequenceId/>
<AttributeCategory/>
<Attribute1/>
<Attribute2/>
<Attribute3/>
<Attribute4/>
<Attribute5/>
<Attribute6/>
<Attribute7/>
<Attribute8/>
<Attribute9/>
<Attribute10/>
<Attribute11/>
<Attribute12/>
<Attribute13/>
<Attribute14/>
<Attribute15/>
<RevisionDescription>
<LanguageCode>US</LanguageCode>
<Description/>
</RevisionDescription>
</StructureRevision>
<ContextInfo/>

</StructureHeader>
<StructureHeader>
<AssemblyItemId>833372</AssemblyItemId>
<AssemblyItemName>Feb15BaseItem</AssemblyItemName>
<Segment1/>
<Segment2/>
<Segment3/>
<Segment4/>
<Segment5/>
<Segment6/>
<Segment7/>
<Segment8/>
<Segment9/>
<Segment10/>
<Segment11/>
<Segment12/>
<Segment13/>
<Segment14/>
<Segment15/>
<Segment16/>
<Segment17/>
<Segment18/>
<Segment19/>
<Segment20/>
<CommonAssemblyItemId/>
<CommonAssemblyItemName/>
<OrganizationId>204</OrganizationId>
<OrganizationCode/>
<SpecificAssemblyComment/>
<AssemblyType>2</AssemblyType>
<AlternateBomDesignator/>
<CommonBillSequenceId>210171</CommonBillSequenceId>
<BillSequenceId>210171</BillSequenceId>
<CommonOrganizationId/>
<CommonOrganizationCode>V1</CommonOrganizationCode>
<OperatingUnitId>204</OperatingUnitId>
<PendingFromEcn/>
<NextExplodeDate/>
<ProjectId/>
<TaskId/>
<OriginalSystemReference/>
<StructureTypeId>7126</StructureTypeId>
<ImplementationDate>2012-02-16</ImplementationDate>
<ObjName/>
<EffectivityControl>1</EffectivityControl>
<IsPreferred>N</IsPreferred>
<SourceBillSequenceId>210171</SourceBillSequenceId>
<LastUpdateDate>2012-02-16</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<CreationDate>2012-02-16</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateLogin>40601231</LastUpdateLogin>
<AttributeCategory/>
<Attribute1/>
<Attribute2/>
<Attribute3/>
<Attribute4/>
<Attribute5/>
<Attribute6/>
<Attribute7/>
<Attribute8/>

<Attribute9/>
<Attribute10/>
<Attribute11/>
<Attribute12/>
<Attribute13/>
<Attribute14/>
<Attribute15/>
<Pk1Value>833372</Pk1Value>
<Pk2Value>204</Pk2Value>
<Pk3Value>1174081</Pk3Value>
<Pk4Value/>
<Pk5Value/>
<Language>US</Language>
<PlanLevel>0</PlanLevel>
<StructureRevision>
<RevisionId>1174081</RevisionId>
<Revision>A</Revision>
<RevisionLabel>A</RevisionLabel>
<RevisionReason/>
<ChangeNotice/>
<EcnInitiationDate/>
<ImplementationDate>2012-02-16</ImplementationDate>
<ImplementedSerialNumber/>
<Description/>
<LifecycleId/>
<CurrentPhaseId/>
<ObjectVersionNumber>2</ObjectVersionNumber>
<LastUpdateDate>2012-02-16</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<CreationDate>2012-02-16</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateLogin>40601225</LastUpdateLogin>
<EffectivityDate>2012-02-16</EffectivityDate>
<RevisedItemSequenceId/>
<AttributeCategory/>
<Attribute1/>
<Attribute2/>
<Attribute3/>
<Attribute4/>
<Attribute5/>
<Attribute6/>
<Attribute7/>
<Attribute8/>
<Attribute9/>
<Attribute10/>
<Attribute11/>
<Attribute12/>
<Attribute13/>
<Attribute14/>
<Attribute15/>
<RevisionDescription>
<LanguageCode>US</LanguageCode>
<Description/>
</RevisionDescription>
</StructureRevision>
<StructureComponent>
<AssemblyItemId>833372</AssemblyItemId>
<OrganizationId>204</OrganizationId>
<CommonComponentSequenceId/>
<ComponentSequenceId>210176</ComponentSequenceId>
<OperationSeqNum>1</OperationSeqNum>

<ComponentItemId>833370</ComponentItemId>
<ComponentCode>0000000000833372</ComponentCode>
<ComponentItemName>Feb15Item3</ComponentItemName>
<Segment1>Feb15Item3</Segment1>
<Segment2/>
<Segment3/>
<Segment4/>
<Segment5/>
<Segment6/>
<Segment7/>
<Segment8/>
<Segment9/>
<Segment10/>
<Segment11/>
<Segment12/>
<Segment13/>
<Segment14/>
<Segment15/>
<Segment16/>
<Segment17/>
<Segment18/>
<Segment19/>
<Segment20/>
<Description>Feb15Item3</Description>
<ItemSequenceNumber>10</ItemSequenceNumber>
<PrimaryUomCode>Ea</PrimaryUomCode>
<PrimaryUnitOfMeasure>Each</PrimaryUnitOfMeasure>
<BasisType/>
<ComponentQuantity>1</ComponentQuantity>
<AutoRequestMaterial>Y</AutoRequestMaterial>
<CurrentFuturePastFlag>C</CurrentFuturePastFlag>
<EffectivityDate>2012-02-16</EffectivityDate>
<DisableDate/>
<ImplementationDate>2012-02-16</ImplementationDate>
<ChangeNotice/>
<PlanningFactor>100</PlanningFactor>
<ComponentYieldFactor>1</ComponentYieldFactor>
<EnforceIntRequirements>0</EnforceIntRequirements>
<IncludeInCostRollup/>
<BomItemType>4</BomItemType>
<WipSupplyType>1</WipSupplyType>
<SupplySubinventory/>
<SupplyLocatorId/>
<CheckAtp>2</CheckAtp>
<Optional>2</Optional>
<MutuallyExclusiveOptions>2</MutuallyExclusiveOptions>
<LowQuantity/>
<HighQuantity/>
<SoBasis>2</SoBasis>
<ShippingAllowed/>
<IncludeOnShipDocs>2</IncludeOnShipDocs>
<RequiredToShip>2</RequiredToShip>
<RequiredForRevenue>2</RequiredForRevenue>
<TopItemId>833372</TopItemId>
<TopBillSequenceId>210171</TopBillSequenceId>
<ParentBomItemType>4</ParentBomItemType>
<ExplosionType/>
<PlanLevel>1</PlanLevel>
<ExtendedQuantity>1</ExtendedQuantity>
<SortOrder>00000010000001</SortOrder>
<CompBillSeqId>210169</CompBillSeqId>

<CompCommonBillSeqId>210169</CompCommonBillSeqId>
<ParentSortOrder>0000001</ParentSortOrder>
<CompSourceBillSeqId>210169</CompSourceBillSeqId>
<SourceBillSequenceId>210171</SourceBillSequenceId>
<EcoForProduction/>
<OptionalOnModel/>
<IncludeOnBillDocs/>
<BaseItemId/>
<AtpComponentsFlag/>
<AtpFlag/>
<PickComponentsFlag/>
<ReplenishToOrderFlag/>
<ShippableItemFlag/>
<CustomerOrderFlag/>
<InternalOrderFlag/>
<CustomerOrderEnabledFlag/>
<InternalOrderEnabledFlag/>
<SoTransactionsFlag/>
<LoopFlag>2</LoopFlag>
<ItemNum>10</ItemNum>
<RexplodeFlag>0</RexplodeFlag>
<SuggestedVendorName/>
<VendorId/>
<UnitPrice/>
<CreationDate>2012-02-16</CreationDate>
<CreatedBy>1006535</CreatedBy>
<LastUpdateDate>2012-02-16</LastUpdateDate>
<LastUpdatedBy>1006535</LastUpdatedBy>
<Context/>
<Attribute1/>
<Attribute2/>
<Attribute3/>
<Attribute4/>
<Attribute5/>
<Attribute6/>
<Attribute7/>
<Attribute8/>
<Attribute9/>
<Attribute10/>
<Attribute11/>
<Attribute12/>
<Attribute13/>
<Attribute14/>
<Attribute15/>
<QuantityRelated>2</QuantityRelated>
<FromEndItemRevId/>
<ToEndItemRevId/>
<RevisionId>1174073</RevisionId>
<Revision>A</Revision>
</StructureComponent>
<ContextInfo/>
</StructureHeader>
<Status/>
</ns0:listOfStructureHeaders>

Back to Summary

Using Export to Excel for Structures


Oracle Product Hub enables you to export existing structures in the system to Excel. To export
structures, verify that you have the proper version of Microsoft Excel installed and display formats
defined appropriately. By default, the following display formats are available:
-

Component Information
Component Details
Comments
Effectivity
Change Order
Lifecycle Status
Material Control
Shipping
Long Description
Item Detail
Cad Component to Item Mapping
Order Management
Manufacturing Details
System
Reference Designator

NOTE: For details regarding the creation of display formats for structures, see: Defining Display Formats
and Search Criteria for Structures, Oracle Product Information Management Implementation Guide, Part
No. E13108-08.
Structure Header and Component Information
3. Search for an assembly item and navigate to the Configurations tab.

4. Click on the First Level Components link. Select Export to Excel from the Actions field and then
click Go.

5. Enter the number of levels of the product structure to export. The default value is 60. This is the
maximum number of levels you can enter. Click Continue.

6. On the Select Settings page, select the version of Excel that you are using and click Next. A
download window displays processing messages. Click Close when the transfer completes. The
Excel spreadsheet opens.

7. Modify the values as needed and upload the data.

Appendix A Useful Resources


Title

Type

Document

Tips about FNDLOAD

FNDLOAD

Metalink Note: 735338.1

Generic Loader

FNDLOAD

Oracle E-Business Suite System Administrator's Guide Configuration


http://docs.oracle.com/cd/E18727_01/doc.121/e12893/T174296T206863.htm

Oracle iSetup 12.1.3 User Guide

iSetup

http://docs.oracle.com/cd/E18727_01/doc.121/e12899/toc.htm

Oracle Blog: Ten Ways of Using iSetup to


Streamline E-Business Suite Implementations

iSetup

https://blogs.oracle.com/stevenChan/entry/ten_ways_of_using_isetup_to_st

Oracle Web Applications Desktop Integrator


Implementation and Administration Guide

Importing
from
Excel

http://docs.oracle.com/cd/E18727_01/doc.121/e12902/toc.htm

Useful Metalink Notes about the Item Open Interface


Note ID
268968.1
115557.1
429924.1
103869.1
458544.1
1208945.1

Description
Understanding Item Import and Debugging Problems with Item Import
How to Use Item Open Interface (IOI) to Import Item Category Assignments
Troubleshooting Guide for INV_IOI_MASTER_CHILD Errors in Item Import
Item Attribute vs Template Attributes Using IOI
Inventory Item Open Interface SR Template
Optimizing Item Import Performance in Oracle Product Hub/Inventory

Useful Metalink Notes about the Item Public API


Note ID
729513.1
605487.1
728350.1
729246.1
728917.1
728361.1
728358.1

Description
How to use APIs
How to load user defined item attributes via PROCESS_USER_ATTRS_DATA API
How to load Inventory Items using EGO_ITEM_PUB.PROCESS_ITEMS API
How to Create or Update Role Grants on Items using the
EGO_ITEM_PUB.PROCESS_ITEM_ROLE API
How to assign Inventory Items to Categories using EGO_ITEM_PUB.PROCESS_ITEM_CAT
_ASSIGNMENT API
How to Assign Items to Inventory Organizations using
EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG API
How to Retrieve User Defined Attributes for Item using EGO_USER_ATTRS_DATA_PUB.GET

729241.1
728364.1

_USER_ATTRS _DATA API


How to Load User Defined Attributes for Items using
EGO_ITEM_PUB.PROCESS_USER_ATTRS_FOR_ITEM API
How to Assign Multiple Items to Inventory Organizations using
EGO_ITEM_PUB.PROCESS_ITEM_ORG_ASSIGNMENTS API

APPENDIX B A CASE STUDY


NOTE: The below case study is a sample application of APIs, interfaces and other resources mentioned
in this white paper. Users should use this as reference but not as complete solution. Oracle is not
responsible for any data corruption introduced by the sample scripts in this case study. Customers
should test all of the test cases before using this solution in their environment. Do not log Bugs/SR's
related to this solution.
Use Case:
This case study synchronizes data related to an ICC (Item Catalog Category) and its hierarchy (complete
hierarchy) from a source system to a destination system.This includes setup data such as attribute
groups and value sets. In addition, it includes items, item UDAs, item structures and component UDAs.
NOTE: Both the source and destination systems must have a similar patch level and similar setup
scenarios.
The source code used in this case study is provided in the SYNC_SAMPLE_SOLUTION.zip file.
This process assumes that generic setup scenarios for Organizations, Profiles, etc. are defined prior to
the migration process. This process only synchronizes those entities discussed in the list below. All other
entities must be defined either manually or by using another process.
List of entities to synchronize:
1) Value sets associated with the attribute groups linked to the ICC and its hierarchy.
2) Attribute groups associated with the ICC and its hierarchy.
3) The ICC and its hierarchy.
4) Item page association and attribute group association with the ICC and its hierarchy.
5) Items, item revisions and item UDAs associated with the ICC and its hierarchy.
6) Structure headers and components for items that belong to the ICC.
7) Component UDAs associated with the items that belong to the ICC and its hierarchy.
NOTE: The process used in this case study extracts the data based on the ICC and its hierarchy. The ICC
is the key parameter used to derive the values.

Value Set Sync


a. Download the sample lct file "egoefval_sample.lct".
b. Open the egoefval_sample.lct file in a text editor and replace the ":CATALOG_GROUP"
variable (in the DOWNLOAD VALUE_SET Select statement only) with the actual ICC
name.
c. Run the following command in the source enviroment to extract the value set data into
the ldt file ( example_vs.ldt).
FNDLOAD <username>/<pwd>@<source env> 0 Y DOWNLOAD egoefval_sample.lct
Example_VS.ldt VALUE_SET

d. Check the logs. If any errors exist, then correct the data and re-run the download
process.
e. Copy the extracted file to the destination environment.
f.

Run the following command to upload the data into the destination environment.

FNDLOAD <username>/<pwd>@<source env> 0 Y UPLOAD egoefval_sample.lct


Example_VS.ldt

g. Check the logs. If any errors exist, then correct the data and re-run the upload process.

Attribute Group Sync


a. Download the sample lct file "egoefag_sample.lct".
b. Open the egoefag_sample.lct file in an editor and replace the ":CATALOG_GROUP"
variable (in only the DOWNLOAD ATTRIBUTE_GROUP Select statement) with the actual
ICC name.
c. Run the following command in the source environment to extract the value set data into
the ldt ( example_ag.ldt).
FNDLOAD <username>/<pwd>@<source env> 0 Y DOWNLOAD
egoefag_sample.lct Example_AG.ldt ATTRIBUTE_GROUP

d. Check the logs. If any errors exist, then correct the data and re-run the download
process.
e. Copy the extracted file to the destination environment.
f.

Run the following command to upload the data into the destination environment.

FNDLOAD <username>/<pwd>@<source env> 0 Y UPLOAD


egoefag_sample.lct Example_AG.ldt

g. Check the logs. If any errors exist, then correct the data and re-run the upload process.

Syncing the ICC and its Hierarchy


a. Download the sample lct file "egocatgrp_sample.lct".
b. Run the following command in the source environment to extract the value set data into
the ldt ( example_icc.ldt).
FNDLOAD <username>/<pwd>@<source env> 0 Y DOWNLOAD
egocatgrp_sample.lct Example_ICC.ldt ITEM_CATALOG_GROUP
CATALOG_GROUP='<catalog group name>'

c. Check the logs. If any errors exist, then correct the data and re-run the download
process.
d. Copy the extracted file to the destination environment.
e. Run the following command to upload the data into the destination environment.
FNDLOAD <username>/<pwd>@<source env> 0 Y UPLOAD
egocatgrp_sample.lct Example_ICC.ldt

NOTE: Run the above command multiple times depending on the number of levels in
the ICC hierarchy.
For example, for the following hierarchy:
Parent ICC
Child ICC
Sub Child ICC
Run the above command three times.
f.

Check the logs. If any errors exist, then correct the data and re-run the upload process.

NOTE: The ICC ldt file also contains item page association and attribute group association data.

Items, Item Revisions and Item UDAs Associated with the ICC and its Hierarchy
To synchronize items, item revisions and item UDAs perform the following steps:
a. Log in to the source environment.
b. Create a database link from the source to the destination environment.
c. Download the "EGO_SYNC_ICC_ITEM_SAMPLE_PROC.pls" script.
d. Open the script in a text editor and replace "p_dblink_name" with the database link
name created in a previous step.
e. Compile the script in the source environment.
f.

Execute the script using the ICC name and Data Set ID parameters.

g. The script extracts data from the source environment and inserts data into destination
environment interface tables using the corresponding Data Set ID.
h. Log in to the Destination environment.
i.

Run the Import Catalog Items (ICI) concurrent program. Enter the Process Set value
similar to the parameter "Data Set ID" value used in step (f).

j.

If the ICI concurrent program completes with an error, then check the logs and make
any necessary changes.

Structure Headers and Components for Items belonging to the ICC and its
Hierarchy
Before synchronizing the structure header and components, verify completion of the following tasks.
i.

All items included in structures have been created and assigned to the appropriate
organizations in the hierarchy.

ii.

Related structure type metadata is defined (structure types, structure names,


component UDAs).

a) Log in to the source environment.


b) Download the "Migrate_Structure_Data.pls" script.
c) Compile the script in the source environment.
d) Create a structure import batch in the target environment. Note the batch ID.
e) Create a database link from the source to the destination environment. (You can reuse the same
database link created when synchronizing items).

f)

Run the following sample script to migrate the structure data. In the script, specify either the
assembly item number list or the ICC list. Do not specify both assembly items and ICCs. In addition,
specify the batch ID, organization code, db link name, structure name and structure type in the
migrate_structure_data() parameter list.

DECLARE
l_assembly_item_numbers DBMS_SQL.varchar2s;
l_item_catalog_groups DBMS_SQL.varchar2s;
l_user_id
NUMBER := -1;
l_resp_id
NUMBER := -1;
l_application_id NUMBER := -1;
err
VARCHAR2(1000);
ret
VARCHAR2(1);
BEGIN
l_assembly_item_numbers(1) := 'JA_Str_Mig_NonICC1_Item1';
l_assembly_item_numbers(2) := 'JA_Str_Mig_NonICC1_Item2';
l_item_catalog_groups(1)
:= 'ADSL Modem';
MIGRATE_STRUCTURE_DATA_PKG.migrate_structure_data(batch_id => 1111, org_code =>
'V1', db_link => 'MZ0YD213', assembly_item_numbers => l_assembly_item_numbers,
item_catalog_groups => l_item_catalog_groups, structure_name => 'JA_STR1',
--null for Primary
structure_type => 'JA_STR_TYPE' );
-- Get user_id
SELECT user_id
INTO l_user_id
FROM fnd_user@MM0YD213
WHERE user_name = 'PLMMGR';
-- Get application_id and responsibility_id
SELECT application_id,
responsibility_id
INTO l_application_id,
l_resp_id
FROM fnd_responsibility@MM0YD213
WHERE responsibility_key = 'EGO_DEVELOPMENT_MANAGER';
-- Finalize the import batch
FND_GLOBAL.APPS_INITIALIZE@MZ0YD213(l_user_id, l_resp_id, l_application_id);
bom_import_pub.Data_Upload_Complete@MZ0YD213(10007723,err,ret );
IF(ret <> 'S' OR err IS NOT NULL) THEN
DBMS_OUTPUT.PUT_LINE(err);
END IF;
END;

g) Execute the updated script to transfer the structure data into the target system interface tables.

h) Log in to the destination environment.


i)

Open the import workbench, search for the import batch created previously. Click Update and then
select 'Import Batch' from the Actions field. Click Go to execute the Import Catalog Items (ICI)
concurrent program.

j)

If the concurrent program completes with any errors, then check the logs and make necessary
changes.

Component UDAs Associated with the Items Belonging to the ICC and its
Hierarchy
Before synchronizing component UDA values, complete the following tasks.
i.

Create all items associated to structures and assign the items to the appropriate
organizations.

ii.

Define all related structure type metadata (structure types, structure names,
component UDAs).

iii.

Define all structure headers and components.

a) Create a structure import batch in the target environment. Note the batch ID.
b) Reuse the script used to import structure header and component data. Update this script with the
new batch ID.
c) Execute the updated script to transfer the structure data into the target system interface tables.
d) Log in to the destination environment.
e) Open the import workbench and search for the structure import batch created previously. Click
Update, select 'Import Batch' in the Actions field, and then click Go to execute the Import Catalog
Items (ICI) concurrent program.
f)

If the concurrent program completes with any errors then check the logs and make any necessary
changes.

You might also like