This appendix discusses the following scenarios for synchronizing items from Oracle Product Hub to Oracle E-Business Suite when item versions are different:
ASCII Code of the Item Version is Higher in Oracle Product Hub
ASCII Code of the Default Item Version is Higher in Oracle E-Business
In this scenario, the API used by Product Master Data Management pre-built integrations has a wrapper on the base API used to create items in E-Business Suite.
To compare effective date of incoming item messages, wrapper API uses this logic:
If the effective date on the incoming item message is less than the current system datetime, it updates the item message date to system datetime plus 2 seconds.
If, when you synchronize an item from Oracle Product Hub to E-Business Suite for the first time, the item version number is set higher than the default version for items in E-Business Suite, then the E-Business Suite API first creates a default version of the items and then creates a version synchronized from Oracle Product Hub.
Product Master Data Management pre-built integrations API uses current system datetime as effective date for the default version and then creates the next version of item with the effective date on the item from original system datetime plus 2 seconds set by wrapper API. Effective datetime for the default version of the item must be less than the effective datetime of versions of the item created in E-Business Suite.
There are two possible assumptions concerning the default version of the item:
The processing time for the item is less than 2 seconds. See Table D-1.
The processing time for the item is more than 2 seconds. See Table D-2.
Table D-1 When Assumption 1 Applies
Oracle Product Hub | E-Business Suite | Comments |
---|---|---|
Item version = 1 Effective datetime=04/15/11 10:00:00 |
Default version set = 0 System datetime = 04/15/11 10:00:10 |
Assumes item synchronization takes 10 seconds. |
- |
Item version = 1 Effective datetime= 04/15/11 10:00:12 |
Wrapper API sets effective date time to system datetime +2 seconds as the effective datetime is less than system datetime. |
- |
Item version = 1 Effective start date=04/15/11 10:00:12 Effective end date=04/15/11 10:00:12 |
Base API creates the default version first. Assumption 1 applies. |
- |
Item version = 1 Effective start date=04/15/11 10:00:12 Effective end date = |
Base API creates next version of the item. Note: Start date of item version 1 is higher than the start date of default item version 0. |
Table D-2 When Assumption 2 Applies
Oracle Product Hub | E-Business Suite | Comments |
---|---|---|
Item version = 1 Effective datetime=04/15/11 10:00:00 |
Default version set = 0 System datetime = 04/15/11 10:00:10 |
Assumes item synchronization from takes 10 seconds. |
- |
Item version = 1 Effective datetime=04/15/11 10:00:12 |
Wrapper API sets effective date time to system datetime +2 seconds as the effective datetime is less than system datetime. |
- |
Item version = 1 Effective start date=04/15/11 10:01:10 Effective end date = |
Base API creates the default version first. Assumption 2 applies as processing of default version takes +2 seconds. |
- |
Item version = 1 Effective start date=04/15/11 10:01:10 Effective end date = |
Base API tries to create next version of the item, effective start date of version 1 is less than the default version, item creation fails. |
If your system takes more than 2 seconds to process and create the default version of the item, you must update the value based on their individual requirements.
For example, to update the time interval to 60 seconds, follow these steps:
Back up the Inveipitb.pls file from your E-Business Suit instance.
Open the Inveipitb.pls file, and then search for the following:
IF (l_item.main_obj_type.effectivity_date IS NULL OR l_item.main_obj_type.effectivity_date = fnd_api.g_miss_date OR l_item.main_obj_type.effectivity_date <= sysdate) THEN
l_item.main_obj_type.effectivity_date := sysdate+(2/(60*60*24));
END IF;
Replace with this code snippet (changes in bold):
IF (l_item.main_obj_type.effectivity_date IS NULL OR
l_item.main_obj_type.effectivity_date = fnd_api.g_miss_date OR
l_item.main_obj_type.effectivity_date <= sysdate) THEN
l_item.main_obj_type.effectivity_date := sysdate+(60/(60*60*24));
END IF;
Save the changes, and then recompile the Inveipitb.pls file.
This scenario is not supported by Oracle.