C_ODI_PARAM Initialization

The first table requiring updates is C_ODI_PARAM because your system calendar is populated using the ODI programs. This table is displayed as C_ODI_PARAM_VW on the Manage System Configurations screen in the Control & Tactical Center. The following settings must be updated prior to using the platform. These settings are required even if your project only includes Planning implementations. Changes to these settings are tracked using the audit table C_DML_AUDIT_LOG.

Table 2-3 C_ODI_PARAM Initial Settings

Scenario Name Param Name Configuration Guidance

SIL_DAYDIMENSION

START_DT

Start date for generating the Gregorian calendar (this is different from the fiscal calendar). Set 12+ months before the start of the planned fiscal calendar to provide adequate space for adjustments to the fiscal calendar starting period.

Do not set START_DT to be in the middle of a fiscal year that is in your calendar file. If you pick a START_DT that is later than the earliest period in your file, then the START_DT must fall on day 1 of a fiscal year, or the data will be incorrect when loaded.

Example: If your first Fiscal start date is in February 2020, then it would be fine to start the Gregorian calendar on 20190101. Starting from the first day of a year ensures there are no incomplete months in the Gregorian calendar. Note that START_DT is well before the start of the Fiscal Calendar.

If you are loading the calendar directly from Merchandising, refer to section Using RDE for Calendar Setup (Gen 2 Architecture).

SIL_DAYDIMENSION

END_DT

End date for generating the Gregorian calendar (this is different from the fiscal calendar), non-inclusive. Set 6-12 months beyond the expected end of the fiscal calendar to ensure the final year of that calendar does not extend beyond the available dates. The END_DT will be automatically updated based on subsequent loads of CALENDAR.csv to ensure the END_DT is never earlier than the last date in the file.

Example: If your Fiscal end period is currently January 2025, then you could set the Gregorian END_DT to 20260101. This will end the system calendar on 20251231 (December 31, 2025), because the END_DT itself is not used. Ending on the last day of a year ensures there are no incomplete months in the calendar.

SIL_DAYDIMENSION

WEEK_START_DT_VAL

Starting day of the week for both Gregorian and Fiscal calendars (1 = Sunday, 2 = Monday). The default calendar setup uses a Sunday-to-Saturday week.

GLOBAL

START_OF_YEAR_MONTH

The name of the Gregorian month associated with the first fiscal period in your business calendar. For example, if your fiscal year starts 06-FEB-22 then set this to FEBRUARY. This will be used to display month names in RI reporting on the fiscal calendar.

Default = JANUARY

GLOBAL

RI_OPTIONALLY_ENCLOSED_BY

Note: This parameter is deprecated in the new RAP architecture and was replaced by CTX file parameters.

Set a character to use for wrapping text strings in data files, such as a quotation mark ("), to allow column delimiters to occur within the strings without causing any failures in the load process.

The recommended value is "

GLOBAL

CURRENCY_CODE

Set the default currency code used when loading CSV-based fact data files if none are provided on the files themselves. Defaults to ‘USD’.

GLOBAL

HIST_ZIP_FILE

Change the default name for the ZIP file package used by the history file load process.

Default=RAP_DATA_HIST.zip

GLOBAL

LANGUAGE_CODE

Default language code used by the system to load data.

Do not change unless your source systems are using a non-English primary language in their database and datasets.

Default=EN

GLOBAL

RI_PART_DDL_CNT_LIMIT

The maximum number of partitions to create during the initial setup run. The average initial setup of the calendar may need 50k-150k partitions.

The recommended value is 500000 (meaning max 500k partitions)

GLOBAL

RI_INV_HIST_DAYS

The number of days to retain a zero-balance record on inventory positions. Excessive retention of zero balances can cause batch performance issues due to high data volumes. But dropping the records too soon may be detrimental to your business reporting or analytical processes if you make use of zero-balance information.

Default=91 days.

GLOBAL

RA_INV_WAC_IND

Controls the RDE inventory cost calculation. When set to Y, it will use Weighted Average Cost (WAC) as the item cost for all items. When set to N, it will dynamically load Merchandising valuation methods set per department or item and apply them, choosing from average cost, unit cost, or retail-based cost.

GLOBAL

RA_INV_TAX_IND

Controls the RDE retail calculation and removal of tax amounts from retail valuation of stock on hand and on-order amounts. When set to N, only simple VAT (SVAT) calculations are supported and taxes are included in the values. When set to Y, the system dynamically loads Merchandising global tax and VAT information and applies it by item/location to remove taxes.

GLOBAL

RA_SLS_TAX_IND

Controls the RDE retail calculation and removal of tax amounts from retail valuation of sales amounts. When set to N, it is generally VAT-inclusive on the Retail amounts (but not profit amounts, which never include VAT). When set to Y, the system dynamically loads Merchandising VAT information and applies it by item/location to remove VAT taxes from all sales retail and discount amounts.

GLOBAL

RI_CLOSED_PO_HIST_DAYS

The number of days to retain closed purchase orders on the daily positional snapshots. Closed purchase orders may be important for reporting or analytical processes, but typically are not needed as they do not impact your open on-order calculations.

Default=30 days. 

GLOBAL

RI_GEN_PROD_RECLASS_IND

Set to Y to enable AIF foundation loads to automatically generate item-level reclass records from your hierarchy data. From version 24 onwards, this is the default method to handle reclasses. Requires that the product file in the nightly batch include any reclass changes so the system can detect when an item moves between hierarchy positions even if no other change occurred. Default = Y.

GLOBAL

RI_INT_ORG_DS_MANDATORY_IND

Set to Y to require input data on the Organization hierarchy interface for the batch to run. This will prevent the batch from executing if the data files were not uploaded properly for a given day or the file was missing from the upload.

GLOBAL

RI_PROD_DS_MANDATORY_IND

Set to Y to require input data on the Product hierarchy interface for the batch to run. This will prevent the batch from executing if the data files were not uploaded properly for a given day or the file was missing from the upload.

GLOBAL

RI_LAST_MKDN_HIST_IND

Set to Y to enable the Price fact columns for LPO (LST_MKDN_RTL_AMT_LCL, LST_MKDN_DT, LST_PROMO_RTL_AMT_LCL, LST_PROMO_DT) to be populated during history loads. This will impact performance of the loads and is disabled by default.

GLOBAL

RI_ITEM_REUSE_IND

Enable or disable the ability to re-use item numbers over time to represent entirely new items. Also enables retention of existing items for a number of days, so that if an item drops and reappears quickly, it is not considered a new item and will continue to use the existing records. Set to Y to enable. If this is not enabled, items that are dropped from the product interface are immediately closed and deactivated and cannot be re-opened.

Default = N

GLOBAL

RI_ITEM_REUSE_AFTER_DAYS

The number of days between when an item is deleted and when it’s allowed to appear as a new item having the same ID. This will trigger the old version of the item to be archived in the data warehouse using an alternate key, so the new version of the item is treated as completely new. For example, setting this to 5 days means that an item can be dropped/deleted and after 5 days, when the same items comes again it will be treated as a brand new item. If the item re-appears in the data before 5 days has passed, it will be treated as the same item as before and the existing item data remains active.

Default = 0

GLOBAL

PDS_PROD_INCLUDE_ITEM_ID

Control whether item identifiers are included in the PDS product labels or not. When set to a value of N, only the product descriptions are included in the labels. When changed to a value of Y, the item IDs are concatenated in front of the descriptions on W_PDS_PRODUCT_D.

GLOBAL

PDS_EXPORT_DAILY_ONORD

Determines whether the EOW_DATE used in Purchase Order export data is allowed to contain non-end-of-week (EOW) dates, or if the system must convert it to a week-ending date in all cases. When set to a value of Y, daily dates are allowed in the EOW_DATE field on an export (if there is a daily date in the OTB_EOW_DATE column of ORDER_HEAD.csv). When set to a value of N, it means the system automatically converts the input dates from ORDER_HEAD.csv to week-ending dates only.

SIL_RETAILINVPOSITIONFACT

INV_FULL_LOAD_IND

Control the Inventory Position fact load behavior. When set to N it uses the incremental update behavior where it requires just the changes to inventory to be posted, including zeros. When set to Y, it assumes full nightly snapshots are being loaded and automatically zeroes out all inventory positions not sent for that load. Default = N.

SIL_RETAILPOONORDERFACT

PO_FULL_LOAD_IND

Control the Purchase Order fact load behavior. When set to N it uses the incremental update behavior where it requires just the changes to POs the be posted, including zeros. When set to Y, it assumes full nightly snapshots are being loaded and automatically zeroes out all POs not sent for that load. Default = N.

SIL_RETAIL_COHEADDIMENSION

RI_MIS_COHEAD_REQ_IND

Seed missing customer order (CO) head IDs from sales fact to CO Dimension. If you are providing customer order IDs on your sales history load, make sure to set this to Y.

SIL_RETAILCOLINEDIMENSION

RI_MIS_COLINE_REQ_IND

Seed missing customer order (CO) line IDs from sales fact to CO Dimension. If you are providing customer order line IDs on your sales history load, make sure to set this to Y.

SIL_EMPLOYEEDIMENSION

RI_MIS_CASHIER_REQ_IND

Seed missing Cashier IDs from sales fact to Employee dimension. If you are providing employee IDs on your sales history load, make sure to set this to Y.

SIL_RETAILCUSTOMERDIMENSION

RI_MIS_CUSTOMER_REQ_IND

Seed missing customer IDs from sales fact to Customer dimension. If you are providing customer IDs on your sales history load, make sure to set this to Y.

SIL_RETAILPROMODIMENSION

RI_MIS_PROMO_REQ_IND

Seed missing promotions from the sales promo fact to the Promotion dimension. If you are providing promotion IDs on your sales history load and not providing a Promotion file, make sure to set this to Y.

The following key decisions must be made during this initial configuration phase and the proper flags updated in C_ODI_PARAM:

  • Item Number Re-Use – If you expect the same item numbers to be re-used over time to represent new items, then you must update RI_ITEM_REUSE_IND to Y and RI_ITEM_REUSE_AF TER_DAYS to a value >=1. Even if you are not sure how item re-use will occur, it’s better to enable these initially and change them later as needed.

  • Tax Handling – Both for historical and ongoing data, you must decide how tax will be handled in fact data (will tax amounts be included or excluded in retail values, what kind of tax calculations may be applied when extracting history data, and so on). You may or may not need any configurations updated depending on your RDE usage.

  •  Full vs Incremental Positional Loads – In nightly batches, the core positional fact loads (Purchase Orders and Inventory Positions) support two methods of loading data: full snapshots and incremental updates. You must decide which of these methods you will use and set INV_FULL_LOAD_IND and PO_FULL_LOAD_IND accordingly. Incremental updates are preferred, as they result in lower data volumes and faster nightly batch performance; but not all source systems support incremental extracts.

If you are using RDE to integrate with Merchandising, pay special attention to the global tax and WAC configurations, as these control complex calculations that will change how your data comes into RAP. These options should not be changed once you enable the integrations because of the impact to the daily data. For example, a large European retailer with presence in multiple VAT countries may want the following options:

  • RA_INV_WAC_IND = N - This will dynamically calculate inventory cost using all three Merchandising cost methods instead of just using WAC

  • RA_INV_TAX_IND = Y - This will enable the removal of tax amounts from retail values so inventory and PO reporting is VAT-exclusive

  • RA_SLS_TAX_IND = Y - This will enable the removal of tax amounts from retail values so sales reporting is VAT-exclusive

Retail Insights contains many additional configurations in the C_ODI_PARAM table that are not necessary for platform initialization, but may be needed for your project. This includes Merchandise Financial Planning and IPOCS-Demand Forecasting configurations for specifying custom planning levels to be used in the integration between MFP/IPO and RI (when RI will be used for reporting). The default parameters align with MFP/IPO default plan outputs, but if you are customizing them to use a different base intersection, then you must also update those values in C_ODI_PARAM. Refer to the Retail Insights Implementation Guide for complete details on Planning Configurations.