SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 54355: Duplicate ATTR_PROD_DM.PROD_HIER_SK values exist across partitions in the analytical product hierarchy

DetailsCodeDownloadsHotfixAboutRate It

When you run one of the SAS® Merchandise Intelligence Revenue Optimization Suite products and you use an analytical product hierarchy, duplicate ATTR_PROD_DM.PROD_HIER_SK values can be generated incorrectly across partitions below the partition level. The specific products include SAS® Markdown Optimization, SAS® Promotion Optimization, SAS® Regular Price Optimization, and SAS® Retail Forecasting.

In most environments, there are no indications that this issue has occurred. However, in an environment where uncovered geo/prods exist (geo/prods that do not belong to a model group), the following error might be displayed. This error is displayed in one of the di_mc_mg_coverage_unit child logs when the %tkmi_job_ro est_start_service task runs.

ERROR: ERROR: ERROR: ORACLE execute error: ORA-00001: unique constraint (DI_DM.SYS_C0041913) violated. With the occurrence of the above ERROR, the error limit of 1 set by the ERRLIMIT= option has been reached. ROLLBACK has been issued(Any Rows processed after the last COMMIT are lost). Total rows processed: xx Rows failed : x ERROR: ROLLBACK issued due to errors for data set DI_T_DBC.COVERAGE_OUTPUT.DATA.

In order to determine whether this issue has occurred in your environments(s), run the check_attr_prod.sas program found on the Downloads tab. The check_attr_prod.sas program must be run in a SAS session where the SAS® Merchandise Intelligence libraries are allocated. There is one macro variable that must be customized and set to the location of your partition subdirectories. When the program runs, it places a message in the log stating whether duplicates across partitions were found. If duplicates are found, then a report of the duplicates is generated. If your environment contains duplicates, then contact SAS Technical Support to obtain a script to correct your data.

The workaround for this issue is to run the %tkmi_job_ro attr_hier_job task single-threaded. Running single-threaded prevents duplicate ATTR_PROD_DM.PROD_HIER_SK values from being generated in different partitions. The recommendation is to perform the following steps to run the %tkmi_job_ro attr_hier_job task:

  1. Preserve the current value of the NUM_PARALLEL_EXECUTIONS global setting.
  2. Set the value of the NUM_PARALLEL_EXECUTIONS global setting to 1 (to force single threading).
  3. Run the %tkmi_job_ro attr_hier_job task.
  4. Restore the value of the NUM_PARALLEL_EXECUTIONS global setting.

The Full Code tab contains sample code that you can use to perform the steps above.

Note: If you rebuild the analytical product hierarchy in the SAS® Merchandise Solutions Configuration Workbench, then you must manually set the NUM_PARALLEL_EXECUTIONS global setting to 1. Change the global setting in the Global Settings Editor BEFORE you rebuild the analytical product hierarchy in order to ensure single-threading. Reset the NUM_PARALLEL_EXECUTIONS global setting afterward.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Regular Price OptimizationMicrosoft® Windows® for x645.2_M25.49.3 TS1M19.4 TS1M1
Linux for x645.2_M25.49.3 TS1M19.4 TS1M1
SAS SystemSAS Promotion OptimizationMicrosoft® Windows® for x645.2_M25.49.3 TS1M19.4 TS1M1
Linux for x645.2_M25.49.3 TS1M19.4 TS1M1
SAS SystemSAS Markdown OptimizationLinux for x645.2_M25.49.3 TS1M19.4 TS1M1
Microsoft® Windows® for x645.2_M25.49.3 TS1M19.4 TS1M1
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.