UG 24301381 - W - PRODUCT - D.PROD - CAT1 - WID Populated With 0s For Non Inventory Items
UG 24301381 - W - PRODUCT - D.PROD - CAT1 - WID Populated With 0s For Non Inventory Items
UG 24301381 - W - PRODUCT - D.PROD - CAT1 - WID Populated With 0s For Non Inventory Items
PROD_CAT1_WID Populated
with 0s for Non Inventory Items
Issue Description: In the customer set up, in EBS users are creating purchase orders without items and it is a
business need and EBS has facility to create purchase orders based on categories as well. It looks like the customer
data has Categories that do not have an item assigned to them. We have a filter in W_PROD_CAT_DHS extract on
Category Set ID and we also need it to form the Integration Id i.e. CategorySetId~CategoryId. This is why we need
the join to MTL_ITEM_CATEGORIES.
Solutions Summary:
To capture such records where categories that do not have an item assigned to them, we will need to create an
additional temporary interface and get those records from MTL_CATEGORIES_B for which the associated
CATEGORY_SET_ID in MTL_ITEM_CATEGORIES is NULL. These records should then by cross-joined with
#PROD_CAT_SET_ID1#PROD_CAT_SET_ID10 parameters to form the integration id at the
CategorySetId~CategoryId level.
The fix requires the following code changes to be done in ODI in the customer implementation:
Joins:
Filters:
Filter Expression:
MTL_ITEM_CATEGORIES.CATEGORY_SET_ID IS NULL
Filter Expression:
RUN_FULL_INCREMENTAL('#IS_INCREMENTAL',1=1,
RUN_REPLICATED_TRANSACTIONAL('#IS_SDS_DEPLOYED',(MTL_CATEGORIES_B.LAST_UPDATE_DATE>TO_DATE_V
AR('#LAST_EXTRACT_DATE')
OR
MTL_ITEM_CATEGORIES.LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')),(MTL_CATEGORI
ES_B.CDC$_SRC_LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')
OR MTL_ITEM_CATEGORIES.CDC$_SRC_LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')) ) )
Click Apply and Ok.
Mappings:
4) Navigate to the top of the interface to Select Dataset as shown below and select Manage Datasets:
Rename the Default Dataset to PROD_CAT_SET_ID1.
Please add here as many datasets as there are PROD_CAT_SET_ID parameters configured out of
PROD_CAT_SET_ID1 PROD_CAT_SET_ID10. We have shown here for two PROD_CAT_SET_IDs. The solution can
be extended accordingly.
5) Navigate to the PROD_CAT_SET_ID2 dataset and add the source tables as shown below:
6) Under the Quick Edit tab, make the following changes to the PROD_CAT_SET_ID2 dataset:
Joins:
Filters:
Filter Expression:
MTL_ITEM_CATEGORIES.CATEGORY_SET_ID IS NULL
Filter Expression:
RUN_FULL_INCREMENTAL('#IS_INCREMENTAL',1=1,
RUN_REPLICATED_TRANSACTIONAL('#IS_SDS_DEPLOYED',(MTL_CATEGORIES_B.LAST_UPDATE_DATE>TO_DATE_V
AR('#LAST_EXTRACT_DATE')
OR
MTL_ITEM_CATEGORIES.LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')),(MTL_CATEGORI
ES_B.CDC$_SRC_LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')
OR MTL_ITEM_CATEGORIES.CDC$_SRC_LAST_UPDATE_DATE>TO_DATE_VAR('#LAST_EXTRACT_DATE')) ) )
Mappings:
Map all the columns to the same value as in PROD_CAT_SET_ID1 Dataset except CATEGORY_SET_ID column. The
value for this column should be # PROD_CAT_SET_ID2.
9) Under the Quick Edit tab, click on to Select Datsets-> Manage Datasets:
10) Navigate to new Non_Inventory Dataset and add the newly created temporary interface as the source
Navigate and select the temporary interface
SDE_ORA_ProductMultipleCategories.W_PROD_CAT_DHS_SQ_MTL_CATEGORIES_NO_ITEM as shown below
11) Map all the columns in Mappings section with the same value as that in the Default dataset: