Sei sulla pagina 1di 8

BUG 24301381 - W_PRODUCT_D.

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:

1) Navigate to the SDE_ORA_ProductMultipleCategories folder in the respective mapping folder.

2) Right click on SDE_ORA_ProductMultipleCategories.W_PROD_CAT_DHS_SQ_MTL_CATEGORIES and click


Duplicate Selection to create a copy of the interface as shown below.
3) Open the Copy_Of_ SDE_ORA_ProductMultipleCategories.W_PROD_CAT_DHS_SQ_MTL_CATEGORIES interface
and rename it to SDE_ORA_ProductMultipleCategories.W_PROD_CAT_DHS_SQ_MTL_CATEGORIES_NO_ITEM
make the following changes in the different sections:

Joins:

Left Datastore: MTL_CATEGORIES

Right Datastore: MTL_ITEM_CATEGORIES

Join Expression: MTL_CATEGORIES_B.CATEGORY_ID=MTL_ITEM_CATEGORIES.CATEGORY_ID

Join Type: Left Outer Join

Ordered: (Check the Check box)

Filters:

Following the filter conditions:

Filter Datastore: MTL_ITEM_CATEGORIES

Filter Expression:

MTL_ITEM_CATEGORIES.CATEGORY_SET_ID IS NULL

Filter Datstore: MTL_CATEGORIES_B

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:

Change the mapping for CATEGORY_SET_ID column to #PROD_CAT_SET_ID1.

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.

Add another dataset called PROD_CAT_SET_ID2 and choose operator as UNION.

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:

Left Datastore: MTL_CATEGORIES

Right Datastore: MTL_ITEM_CATEGORIES

Join Expression: MTL_CATEGORIES_B.CATEGORY_ID=MTL_ITEM_CATEGORIES.CATEGORY_ID

Join Type: Left Outer Join

Ordered: (Check the Check box)

Filters:

Following the filter conditions:

Filter Datastore: MTL_ITEM_CATEGORIES

Filter Expression:
MTL_ITEM_CATEGORIES.CATEGORY_SET_ID IS NULL

Filter Datstore: MTL_CATEGORIES_B

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:

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.

7. Save and close the interface.


8. Navigate to the main interface SDE_ORA_ProductMultipleCategories.W_PROD_CAT_DHS

9) Under the Quick Edit tab, click on to Select Datsets-> Manage Datasets:

Add a new dataset called Non_Inventory as shown below:

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:

12) Click Save and close the interface.

13) Regenerate the scenario

14) Perform a full load for these tables.

Potrebbero piacerti anche