15 Inventory Planning Optimization

This chapter describes the Inventory Planning Optimization (IPO).

Overview

Inventory Planning Optimization (IPO) determines the optimal time-phased replenishment plan which consists of the replenishment policies, that is the reorder point (RP) and receive up-to level (RUTL), and the recommended purchase order (PO), transfer and allocations at item/location/day level for the configurable planning horizon. The optimal plan is generated using simulation and optimization methods and considers inputs like supply chain network, replenishment attributes and business rules. Moreover, the optimization engine uses machine learning methods and simulation-based optimization to calculate the trade-offs between the service level and the inventory cost for different replenishment policies. The trade-off analysis is leveraged to generate the optimal replenishment policies for achieving a desired target service level. In addition to the replenishment plan, IPO-IO recommends optimal rebalancing transfers between stores to increase sell-through and to avoid markdowns. This type of recommendation can be turned off when not applicable (for example, for grocery categories).

The data-driven replenishment policies/allocations, PO/transfers/allocations, and rebalancing transfers can be pushed to Oracle Retail Merchandising Foundation Cloud Service (MFCS) to execute purchase orders, transfers, and allocations. Optionally, the retailer can choose to send only the replenishment policies to MFCS and have the final order quantity and PO/transfers/allocations be calculated and generated in MFCS. If the retailer has a different system for order execution and does not use MFCS, they can configure IPO for export to the external application. See IPO Integration with External Application (non-MFCS Integration).

IPO leverages historical sales, inventory positions, replenishment attributes such as lead time and review schedule, business requirements such as store priorities for shortfall reconciliation, and the demand forecast to generate the optimal time-phased replenishment plan. The demand forecast that is generated by the forecast engine within AI Foundation considers different factors such as price effect, holidays, and promotions, and variation across customer segments.

Inventory Planning Optimization Runs

Types of Runs

IPO supports two kinds of runs: user runs and batch runs. By default, the batch runs are scheduled for daily execution. User runs are typically created by the user to do what-if analysis and/or to override the recommendations generated by the latest batch run. IPO runs generate recommendations at the item-location level. The items that are included in a run can be selected by specifying one, a multiple, or all of the nodes at a higher merchandise level, such as department. This level is configurable. Similarly, the locations that are to be included in a run can be selected by specifying one, a multiple, or all of the nodes at a higher location level, such as area. This level is configurable.

Each run will generate one or multiple type of recommendations depending on the type of analysis that are selected when creating the run from UI. For batch runs, the type of analysis is controlled by the following configurations in RSE_CONFIG.

IO_BATCH_RUN_TIME_PHASED_FLG: Y/N flag that indicates whether time phased simulation is performed as part of batch run. The default value is Y.

IO_BATCH_RUN_INV_REBAL_FLG: Y/N flag that indicates whether inventory rebalancing analysis is performed as part of batch run. The default value is N.

IO_TIME_PHASED_OPT_PO_TSF_FLG: Y/N flag to indicate whether the time phased optimization should generate the PO/Tsf recommendations. Default value is Y. (When the value is N, only the replenishment policies is generated.)

Time-Phased Planning

Time-phased planning is the main type of analysis that must run as part of the batch, so the replenishment policies and PO/transfers are generated daily. If the implementation scope is to generate replenishment policies only, set IO_TIME_PHASED_OPT_PO_TSF_FLG to N.

Inventory Rebalancing

Inventory rebalancing can be enabled in as part of the batch if it’s relevant (for example for fashion retailers) and if there is a need to generate rebalancing recommendations daily. Alternatively, the rebalancing runs can be done as-hoc from UI when needed.

Trade-Off Analysis

The trade-off analysis is not a kind of process that needs to be run daily because the changes in sales patterns, replenishment rules and supply chain network are not that frequent. Therefore, the optimal trade-off curves are typically recommended to be updated quarterly or when there is a major change in one of the factors mentioned above.

Note:

It is strongly recommended not to enable the trade-off analysis for the batch runs. This can make the batch runtime long since the trade-off analysis performs extensive data processing and large-scale simulation.

Inventory Planning Optimization UI Workflow

The IPO UI workflow consists of the following screens for reviewing orders and inventory plans:
  • Order Overview: Provides a view of alerts that are generated based on low stock, shortage, and overstock alerts that are set up in Alerts Management within Rules & Strategies. It also provides a calendar view of different type of recommended orders.
  • Orders: Provides a separate view for each type of recommendations: Purchase Order, Transfer, and Allocation.
  • Inventory Plan: Provides a time-phased view of different inventory plan metrics and alerts. Also, allows the user to change strategy and perform what-if analysis.
  • Replenishment Policies: Provides a view for replenishment policies and all metrics that are used for calculating the policies.
  • Rebalancing Transfers: Provides a grid view and a map view for recommended rebalancing transfers.
  • Inventory Dashboard: Provides a view of all items that can be manually allocated. The user can create, submit, and review the manual allocations within this dashboard.
  • Forecast Review: Provides a read-only view of the forecast at SKU/location level.
  • Manage recommendations:
    • Replenishment: Provides a calendar view of different recommendations and a separate view for each type of recommendations: Replenishment Policy, Rebalancing Transfers, PO and Transfers.

    • Allocation: Provides a view of initial and cross-dock allocations and details of each allocation.

    • Inventory Plan: Provides a time-phased view of different inventory plan metrics and alerts. Also, allows user to change strategy and perform what-if analysis.

    • Run Overview: Provides a summary of inputs and outputs of batch and ad-hoc runs. The user can create a run, copy a run, open a run, or delete a run. When the user clicks a successful run, it is opened in a new tab with three sub-tabs to show replenishment policies, rebalancing transfers, and orders, as well as two sub-tabs to show the summary of inputs of the run and summary of rules. For a failed run, only the input and rule summary sub-tabs are displayed. To create a run, the user must specify the run scope and strategy. As part of the run scope, the user specifies the areas and departments for the run and the type of analysis to be performed. As part of run strategy, the user can specify the business rules.

    • Create Run: The user can create ad-hoc runs and specify the run scope and the strategy that will be used to determine the business rules for the run.

The following sections explain the main implementation tasks that involve configuring the following:

  • The roles and permissions assigned to users.

  • The loading of retailer data.

  • The configuration parameters.

  • The business rules that determine constraints that the application takes into account during the optimization process.

Security

IPO supports both data-based and user role-based filtering or security. Data filtering informs the application regarding which merchandise and locations can be accessed by a particular user (for example, the user "tom" can only access locations within the US). The user role restricts or allows which UI actions can be performed by a particular user.

Data Filtering

Data filtering can be specified (and integrated wherever applicable) in a similar fashion as discussed in the Manage Data Filtering chapter of the Oracle Retail Merchandising Suite Administration Guide (https://docs.oracle.com/cd/E79623_01/rms/pdf/192000/merchcs-admin.pdf). When a customer does not have Oracle Retail Merchandising Service, then the following interfaces can be leveraged to specify the user groups and users:

  • RAF_FILTER_GROUP_MERCH
  • RAF_FILTER_GROUP_ORG
  • RAF_SEC_GROUP
  • RAF_SEC_USER_GROUP

User Roles

User roles are used to set up application user accounts through Oracle Identity Management (OIM). See the Oracle Retail AI Foundation Cloud Services Administration Guide for details. The following roles are required.

  • ADMINISTRATOR_JOB in order to access the Control & Tactical Center

  • INVENTORY_ANALYST_JOB in order to access the IPO application.

  • CHATBOT_VIEW_JOB in order to enable real time bot conversations.
  • DATA_ADMINISTRATOR_JOB in order to access the Manage Data Upload under the Control & Tactical Center to upload some of the IPO required data using the UI (as an alternative to batch jobs for file-based data load).

In addition to above roles, verify the following:

  • Access to Innovation Workbench and/or Data Visualizer: This is necessary in order to query or visualize the data and verify that the data loaded matches the desired expectations.

  • Access to POM to execute ad-hoc and batch jobs: The POM UI URL is something like <host>/POMJetUI. If the user cannot access the POM UI, contact the administrator to obtain the relevant access/user roles.

Data Input Requirements

This section provides information about setting up the data that the IPO application uses, including guidelines regarding the expectations for the data element requested and where it is used. Information about these files can be found in Oracle Retail Insights Cloud Service Suite/Oracle Retail Analytics and Planning Cloud Services Data Interface.

Most of the AI Foundation Cloud Services (AIF) data is pushed in two-step process. Any additional IPO-specific data is directly pushed into the AIF.

  1. First, data is loaded, using CSV and W_ interfaces and jobs in the AIF DATA standalone schedule in POM. Then, RADM_REFRESH_JOB must be run to refresh the table statistics before any AIFApps job is run (though REFRESH_RADM_JOB is automatically executed as part of most ad hoc processes in AIF Data).

  2. Second, appropriate AIF applications jobs are used to push data into AIF applications. At the time of implementation, the user will only use ADHOC jobs, not any batch jobs. Batch jobs (described in "POM Jobs") are necessary to put the system on a batch schedule.

Note that some of the jobs require relevant configuration parameters to be specified with client-specific values. If incorrect configuration values are used, a job may run without errors, but will not produce the desired data in the target tables. If the client or implementation team wants to view the progress of the job or any errors in order to file an SR, then AIF provides database logging in a table called RSE_LOG_MSG. In addition, analytic logs generated by the programs that run optimization can be found in RSE_ANALYTIC_LOG_MSG. More details are provided in the Troubleshooting section in this chapter.

RAP Foundation Data

These interfaces provide the foundation data for the AI Foundation Cloud Services. First, the user must execute and verify that all the RAP foundation data has been loaded.

For IPO, the following data is required.

Location Hierarchy

Here is an example of a location hierarchy: CHAIN ' COUNTRY ' REGION ' DISTRICT ' STORE. The run's scope level must match a node in the location hierarchy. For example, you can specify the run scope at the Area level and include one, multiple, or all areas in the run. Batch runs by default include all values of the scope level (for example, all areas). Note that the E-com channel can be defined as part of the location hierarchy. Relevant interfaces are: W_INT_ORG_ATTR_D and W_INT_ORG_DH, W_INT_ORG_D. These are all loaded using the ORGANIZATION.csv file.

Merchandise Hierarchy

An example of merchandise hierarchy is as follows: CHAIN 'COMPANY/BANNER 'DIVISION ' DEPARTMENT 'CLASS ' SUBCLASS ' STYLE 'COLOR ' SIZE (SKU). There can be up to nine levels in the merchandise hierarchy. When IPO-IO is used for fashion apparel, it is expected that Style and Color will be provided through the relevant interfaces.

The STYLE, COLOR and SIZE SKUs are expected to be provided in the W_PRODUCT_D interface, while the levels between CHAIN and Subclass are provided using the W_PROD_CAT_DH interface. In addition, there must be consistency among the levels provided when using an extended hierarchy. W_PRODUCT_ATTR_D, is used to indicate the relationship between Style, Style/Color, and Style/Color/Size for an extended hierarchy. All of these tables will be populated when providing a PRODUCT.csv file as a foundation file input. If the retailer wants to use an extended merchandise hierarchy, then the retailer must populate this interface.

Here are the specific fields:

  • PRODUCT_ATTR13_NAME = PROD_NUM for the Style (for example, 0000190086820900)
  • PRODUCT_ATTR14_NAME = PROD_NUM for the Style/Color (for example, 190086834203)
  • PRODUCT_ATTR15_NAME = PROD_NUM for the Style/Color/Size (for example, 1975699). The value of PROD_NUMs is the same as the value in the W_PRODUCT_DS.PROD_NUM interface.

Calendar Hierarchy

This is one of the core hierarchies. A retailer can specify the calendar depending on that retailer's business requirements (for example, fiscal calendar). The relevant interface for this is W_MCAL_PERIOD_D, loaded using the CALENDAR.csv file.

Customer Segments Hierarchy

The AIF forecast engine in IPO supports demand forecasting at the customer segment level. This is leveraged by the optimization algorithm to recommend customer-aware rebalancing transfers. To use this functionality, the retailer must load customer segments. The relevant interfaces to supply this data are: W_RTL_CUSTSEG_DS and W_RTL_CUST_CUSTSEG_DS. Even when the retailer is not planning to load or use customer segments, a dummy record is required. The AIF ad hoc jobs will create a dummy record when the source data is not provided, and it is not required for the client or implementer to provide these interfaces if they are not going to use them.

Product Attributes

Product attributes are not required for IPO, but they are useful for the demand forecasting, and can be used for demand forecasting of new items. They can also be used for setting up business rules. Product attributes must use W_RTL_ITEM_GRP1_DS since it can support any number of attributes.

If the retailer wishes to load STYLE or COLOR as product attributes, then the W_RTL_ITEM_GRP1_DS interface is used to provide style and color attributes for the different products, using a value in PROD_GRP_TYPE of either STYLE or COLOR. The actual values for the Styles and Colors are provided in columns FLEX_ATTRIB_2_CHAR and FLEX_ATTRIB_4_CHAR using values that represent the ID for the Style (for example, 1234), and a description for the Style (for example, Loose Fit). The columns FLEX_ATTRIB_3_CHAR and FLEX_ATTRIB_10_CHAR contain the appropriate designation for STYLE or COLOR.

Product Images

The Images URL can be provided through the W_RTL_PRODUCT_IMAGE_DS.dat interface. This interface has a column called PRODUCT_IMAGE_ADDR that contains the full URL to an image of the product. This URL must be in the following format: http[s]://servername[:port]/ location/filename.extension

For example:

  • PRODUCT_IMAGE_NAME = imagename.png
  • PRODUCT_IMAGE_ADDR = http://hostname/url/imagename.png
  • PRODUCT_IMAGE_DESC= Short description of the image

For IPO, the following data is required:

  • Sales. It is recommended to load at least 24 months of historical data to obtain a good signal in the model training and a reliable parameter estimation for the demand forecasting.

  • Inventory. (INVENTORY.csv). For the time-phased planning, it is sufficient to have the latest inventory position (i.e., quantity of on-hand, on-order, in-transit, etc. for the latest day). For trade-off analysis, it is recommended to provide historical inventory which will be used for lost sales correction before performing simulation. If not provided, the trade-off analysis will be performed on the sales time series. While this is not ideal, for most categories the final trade-off curves are not too sensitive to the lost sales correction when the KPIs are measured at aggregate level.

  • Price and Cost (PRICE.csv). This data is required for calculating some of the KPIs that are shown in IPO-IO screens. Moreover, price data must be provided for forecasting fashion items that are considered short life cycle.

  • Supplier (SUPPLIER.csv) and supplier item (PRODUCT.csv supplier columns). This data is required for all type of runs and analysis in IPO- IO.
  • Promotions (PROMOTION.csv). This is an optional data for IPO-IO. It is used in showing the promotion flag at item/location/day level in some of the UI charts. Moreover, promotions must be provided for forecasting fashion items that are considered short life cycle; otherwise, the forecast will not reflect the promotion effects.

  • Review schedule. This data is required for all type of runs and analysis in IPO-IO. It can be provided using W_RTL_REPL_DAY_DS.dat or REPL_REV_INT.csv. The latter is more flexible and allows for defining data at the parent level.
  • Replenishment attributes. This data is required for all type of runs and analysis in IPO-IO. The required attributes include but not limited to primary supplier/warehouse source, lead time and replenishment method. This data can be provided either using PROD_LOC_REPL.csv, or using the n-tier interfaces mentioned below. The latter is more flexible and allows for defining multi-tier supply chain network. The data source for replenishment attributes is controlled by the global configuration IO_ENABLE_NTIER_INTER FACE_FLG which is explained in the Global Configurations section.

The following data is optional and can be provided depending on the business use cases. These are referred to as n-tier interfaces. For more details, refer to the RAP interface guide.

  • Distribution networks (REPL_DISTRO.csv)
  • Review cycles (REPL_REV_INT.csv)
  • Internal lead times (REPL_LT_INT.csv)
  • Supplier lead times (REPL_LT_SUP.csv)
  • Procurement networks (REPL_PROC.csv)
  • Internal order multiples (REPL_MULT_INT.csv)
  • Supplier order multiples (REPL_MULT_SUP.csv)
  • Rounding levels (REPL_ROUND.csv)
  • Scaling rules (W_RTL_REPL_SUP_DIM_DS.dat)

For example, if there is a need to define time-dimensioned replenishment attributes (e.g. longer lead time during holidays and shorter lead time at other times of the year), it will have to be provided using the REPL_LT_INT.csv and REPL_LT_SUP.csv. Another example is defining a warehouse-to-warehouse relationship in the supply chain network. For customers who use Merchandising Foundation CS (MFCS), it will not be possible to have a source warehouse defined for a warehouse location. If there is a need to define such a link in the supply chain network, it will have to be provided using REPL_DISTRO.csv.

Before pushing any data into the AIF, it is critical to make sure RAP foundation data is accurate and verified. Verification can be done through Data Visualizer or through the Innovation Workbench. Re-loading some of the RAP foundation data elements is non-trivial as it will require an SR to reset/truncate some of the target tables.

RSP Foundation Data (RSE_% Tables)

Once the interface configuration is complete and the RAP Foundation data has been verified, the user can push the data from RAP into AIF. As mentioned before, once database logging has been enabled, users can check for any errors and the progress of the process in RSE_LOG_MSG. Before running the RSE_MASTER_ADHOC with appropriate flags to execute the following jobs, the user must set the correct values for configuration parameters in RSE_CONFIG. This can be done using Manage System Configurations (as described in Control and Tactical Center) and then selecting RSE_CONFIG from the drop-down list.

Inventory Planning Optimization Data (IO_% Tables)

Once RSE_MASTER_ADHOC is successfully run, data can be loaded to IPO tables by running the IO_MASTER_ADHOC.

Runs in IPO-IO can be set up to run at configured levels for location and merchandise:

  • Location Level. The location level of a run's scope is configurable in RSE_CONFIG, and it is denoted as IO_LOC_HIER_FILTER_LVL. For example, a typical level is Area.
  • Merchandise Level. The merchandise level of a run's scope is configurable in RSE_CONFIG, and it is denoted as IO_PROD_HIER_FILTER_LVL. For example, a typical level is Department.

Global Configurations

Table 15-1 shows the configurations that must be provided at the time of implementation. These configurations can be modified in RSE_CONFIG table using the Manage System Configuration screen under Control & Tactical Center in the AIF dashboard.

Table 15-1 Global Configuration Parameters

APPL CODE Parameter Name Parameter Value Description

RSE

EXTENDED_HIERARCHY_SRC

Default value is NON-RMS.

Data source providing extended hierarchy data RMS/NON-RMS.

RSE

LOAD_EXTENDED_PROD_HIER

Default value is Y. If the prod-uct hierarchy data had 9 levels,

keep this value as Y. If it has 7 levels, change this value to N.

Y/N Value. This parameter is used by the product hierarchy ETL to know if the extended product hierarchy is needed.

PMO

PMO_PROD_HIER_TYPE

Default value is 3. If the product hierarchy data has 9 levels

(i.e. it has extended hierar-chy), keep this value as 3.

If it has 7 levels, change this value to 1.

The hierarchy ID to use for the product (Installation configuration).

PMO

PMO_AGGR_INVENTORY_DATA_FLG

Default value is Y.

Set this value to N if inventory data is not loaded (inventory data is not required for MFP forecasting but it is required for other applications like Lifecycle Pricing Optimization, Inventory Planning Optimization-Inventory Optimization and IPO-Demand Forecasting).

Specifies if inventory data is present and if it should be used when aggregating activities data.

RSE

PROD_HIER_SLSTXN_HIER_LEVEL_ID

Default value is 9.

This parameter identifies the hierarchy level at which sales transactions are provided (7-Style, 8-Style/color or 9 Style/color/Size). It MUST match the extended hierarchy leaf level.

IO AUTO_APPR_ALLOC_BATCH ALL Indicates whether the allocations should be auto-approved for batch runs. Valid values are ALL (approve all allocations), N (do not approve any of the allocations). PO (approve allocations off of PO and from WH stock), ASN (approve allocations off of ASN and from WH stock), PO_ASN (approve allocations off of PO and ASN and from WH stock), TSF (approve allocations off of transfers and from WH stock), ALLOC (approve allocations off of allocations and from WH stock), Default value is N.
IO AUTO_APPR_PO_BATCH ALL Indicates whether the purchase orders should be auto-approved for batch runs. Valid values are ALL (approve all POs), N (do not approve any of the POs). Default value is N.
IO AUTO_APPR_REBAL_BATCH ALL Indicates whether the rebalancing transfers should be auto-approved for batch runs. Valid values are ST-WH (approve all store-to-warehouse transfers), ST-ST (approve all store-to-warehouse and store-to-store transfers), ALL (approve all rebalancing transfers), N (do not approve any of the rebalancing transfers). Default value is N.
IO AUTO_APPR_TSF_BATCH ALL Indicates whether the transfers should be auto-approved for batch runs. Valid values are WH-ST (approve all warehouse-to-store transfers), WH-WH (approve all warehouse-to-warehouse and warehouse-to-store transfers), ALL (approve all transfers), N (do not approve any of the transfers). Default value is N.
IO IO_ALLOC_PROD_GROUP_LVL 4 Product parent hierarchy level which is used in grouping allocations into one allocation header. Default value 4.
IO IO_AUTO_APPR_NEW_PARAMS Y Indicates whether net new parameters in a batch should be auto-approved. Default to N (No).
IO IO_AUTO_APPR_THRESHOLD_PCT 0.2 The threshold percentage change of Reorder Point (RP) and Receive Up To Limit (RUTL) between batches that is acceptable for auto-approval of the parameters.
IO IO_BATCH_RUN_INV_REBAL_FLG Y Y/N flag that indicates whether inventory rebalancing analysis is performed as part of batch run.
IO IO_BATCH_RUN_PO_TNSFR_RECOMM_FLG N Y/N flag that indicates whether po transfer recommendation is performed as part of batch run.
IO IO_BATCH_RUN_TIME_PHASED_FLG Y Y/N flag that indicates whether time phased simulation is performed as part of batch run.
IO IO_BATCH_RUN_TRADEOFF_SIM_FLG N Y/N flag that indicates whether trade-off simulation is performed as part of batch run.
IO IO_CURRENT_DATE 20230516 This value will be automatically updated to latest daily inventory date by ETL process. It should not be modified manually.
IO IO_DELIV_USE_CLOSURES Y When Y, the system will validate dates against company and individual location closure tables (W_RTL_CMP_CLOSED_D, W_RTL_CMP_CLOSED_EXC_D, W_RTL_LOC_CLOSED_D) for sales, shipping and receiving.
IO IO_DELIV_USE_SCHEDULES Y When Y, the system will validate dates against standard delivery schedule and exceptions of the destination location (W_RTL_REPL_DLVRY_SCHED_D, W_RTL_REPL_DLVRY_SCH_EXC_D).
IO IO_ENABLE_NTIER_INTERFACE_FLG Y Indicates source of data to populate IO_REPL_ATTR_PROD_LOC_EXP (Y,N,X). Possible values are: Y (data loaded from RI interfaces for replenishment attributes and review schedule (typically coming from RMS). In addition, data loaded into IO_FINAL_RULE for each run from N-tier replenishment interfaces. Data in N-tier interfaces always take precedence over data loaded via PROD_LOC_REPL.CSV and W_RTL_REPL_DAY_DS.dat); N (data loaded into IO_REPL_ATTR_PROD_LOC_EXP and IO_FINAL_RULE solely from RI interfaces for replenishment attributes and review schedule); X (data loaded into IO_REPL_ATTR_PROD_LOC_EXP and IO_FINAL_RULE solely through N-tier interfaces). In all cases, any rule that is set up in Rules and Strategies will override the interfaced data.
IO IO_EXT_APP_EXP_FETCH_SIZE 5000 Fetch Size for external application export.
IO IO_EXT_APP_EXP_NOTIFY_TOKEN   Stores the authorization token used while calling the external application notify API. This token is sent in the notify API request header for authentication.
IO IO_EXT_APP_EXP_NOTIFY_URL http://localhost:3001/sample-app Stores the external application notify API endpoint URL. The system calls this URL after export temp data and window metadata are generated.
IO IO_INV_REBAL_FCST_DAYS 5 Number of days to look into future forecast for inventory rebalancing.
IO IO_INV_REBAL_HIST_SLS_WKS 52 Number of weeks to look into sales history to get average price for inventory rebalancing
IO IO_INV_REBAL_LEAD_TIME 3 Number of days added to the inventory rebalancing recommendation date to calculate expected delivery date. Default value is 3.
IO IO_LOC_HIER_PROCESSING_LVL 6 Level Identifier for the level of the Location Hierarchy at which we process Inventory. Default 6 is to process at STORE Level.
IO IO_LOC_HIER_TYPE 2 Hierarchy Type Identifier for the Location Hierarchy Type.
IO IO_MAX_AFTER_DAYS 7 Maximum Number of days after Release Date for which we will consider inventory movements (PO, Transfer, Allocation) in Net Inventory calculation. Default value 7.
IO IO_MAX_TIME_PHASED_HORIZON 180 Number of maximum allowed periods in the future for which the time phased plan is generated. Default value 180.
IO IO_MERCH_RMS_AUTH_SERVICE_TYPE OAUTH Used in determining whether to use OAuth or basic authentication for IO RMS integration.
IO IO_MERCH_RMS_CONTEXT_ROOT RmsReSTServices/services/private Context root of the RMS Restservice url.
IO IO_MERCH_RMS_HOSTNAME msp00aay.us.oracle.com URL host name to publish replenishment parameter to RMS, this should be same as CN name in the certificate.
IO IO_MERCH_RMS_HTTPS_PROXY_PORT   Https proxy port number to publish replenishment parameter to RMS.
IO IO_MERCH_RMS_HTTP_PROXY_HOSTNAME   Proxy host name to publish replenishment parameter to RMS.
IO IO_MERCH_RMS_HTTP_PROXY_PORT   Http proxy port number to publish replenishment parameter to RMS.
IO IO_MERCH_RMS_PORT   Port number to publish replenishment parameter to RMS.
IO IO_PO_PROD_GROUP_LVL_ST DEPT PO product grouping level for STORE destination type. Valid values: ALL, DEPT, CLASS, SUBCLASS. Default value DEPT.
IO IO_PO_PROD_GROUP_LVL_WH DEPT PO product grouping level for WAREHOUSE destination type. Valid values: ALL, DEPT, CLASS, SUBCLASS. Default value DEPT.
IO IO_PO_SINGLE_DEST_FLG_ST Y Single-destination PO flag for STORE destination type. Valid values: Y, N. Default value Y.
IO IO_PO_SINGLE_DEST_FLG_WH Y Single-destination PO flag for WAREHOUSE destination type. Valid values: Y, N. Default value Y.
IO IO_PRODUCT_MAX_SELECTABLE_COUNT 500 Maximum number of products selectable in the filter.
IO IO_PROD_HIER_INV_DASHBOARD_LVL 4 Level Identifier for the first level of the Product Hierarchy shown at the Inventory Dashboard UI table.
IO IO_PROD_HIER_PROCESSING_LVL 9 Level Identifier for the level of the Product Hierarchy at which we process Inventory. Default 9 is to process at SKU Level.
IO IO_PROD_HIER_TYPE 3 Hierarchy Type Identifier for the Product/Merchandise Hierarchy Type.
IO IO_PURGE_ALL_RUNS N Indicates to clean up all run data.
IO IO_PURGE_RETENTION_DAYS 30 Number of days to wait before permanently deleting run data.
IO IO_REV_SCH_AS_OPT_SCH_FLG N Y/N flag to indicate whether the review schedule rules (whether loaded from Ntier interface or created from rules & strategies) should be used as the scope of the run. If Y, prod/locs will be optimized only if run day is a review day for them. Default value is N.
IO IO_RMS_WH_REPL_ENABLE_FLG N Y/N flag that indicates whether WH replenishment is enabled in RMS. N indicates that replenishment attributes for WH locations are not coming from RMS so we internally generate the WH data that optimization needs.
IO IO_TIME_PHASED_HORIZON 28 Number of periods in the future for which the time phased plan is generated. This value should be less than IO_MAX_TIME_PHASED_HORIZON.
IO LOCATION_ATTR_NAME_1 CLMT Indicates first location attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO LOCATION_ATTR_NAME_2 FFLT Indicates second location attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO LOCATION_ATTR_NAME_3   Indicates third location attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO LOCATION_ATTR_NAME_4   Indicates fourth location attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO LOCATION_ATTR_NAME_5   Indicates fifth location attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO LOC_FILTER_END_LEVEL_ID 6 Last location level id whose corresponding filter appears in the location filter drop-downs.
IO LOC_FILTER_START_LEVEL_ID 3 First location level id whose corresponding filter appears in the location filter drop-downs.
IO MANUAL_ALLOC_ATTR_NAME_1 BRAND Indicates first product attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO MANUAL_ALLOC_ATTR_NAME_2 COLOR Indicates second product attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO MANUAL_ALLOC_ATTR_NAME_3   Indicates third product attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO MANUAL_ALLOC_ATTR_NAME_4   Indicates fourth product attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO MANUAL_ALLOC_ATTR_NAME_5   Indicates fifth product attribute name(SHORT_DB_NAME) used in allocation, purchase order and transfer details screen.
IO MERCH_FILTER_END_LEVEL_ID 7 Last merchandise level id whose corresponding filter appears in the merchandise filter drop-downs.
IO MERCH_FILTER_START_LEVEL_ID 4 First merchandise level id whose corresponding filter appears in the merchandise filter drop-downs.
IO METRIC_PANEL_SELECTION_LIMIT 30 Maximum no of metrics a user can select on metric panel.
IO N_TIER_CHAIN_AUTO_APPROVE_FLG N Y indicates that all chained allocations will be auto-approved. Default value is N. If the inbound inventory line from MFCS has Pre_Marked_Ind = TRUE, it will override this configuration and all chained allocations will be auto-approved.
IO PACK_ENABLE_FLG Y Indicates whether to show pack metrics in contextual area of order detail. Default value is N.
IO PACK_TUNE_OBJ_DFLT BALANCE Indicates pack allocation tuning objective to use if no rule is created. Default value is BALANCE.
IO ROS_CALC_LOC_PARENT_LVL 4 Rate of sales for each sku/store is calculated at this parent location level. ROS is used by the time phased process to calculate min/max based on historical ROS and the coefficients from tradeoff analysis. Default value is level 4.
IO ROS_CALC_PROD_PARENT_LVL 4 Rate of sales for each sku/store is calculated at this parent merchandise level. ROS is used by the time phased process to calculate min/max based on historical ROS and the coefficients from tradeoff analysis. Default value is level 4..
IO SIMPLE_PACK_ROUND_DFLT_THR 0.5 Indicates simple pack rounding threshold to use if no rule is created. Default value is 0.5.
IO TIME_PHASED_JOB_TIME_OUT 7200 The time out threshold for IO time phased runs. If the total runtime exceeds this value, the POM status will be set to FAILED. However, the run execution in the backend may continue. Default is 7200 sec..
IO IO_TSF_DEST_GROUP_LVL 6 Location parent hierarchy level of destinations which is used in grouping replenishment transfers into one transfer header. Default value is 6 (leaf level).
IO IO_LOAD_NTIER_TO_RULES_UI   Indicates whether to load Ntier interface data at the RI configuration level to the rules UI. Default value Y. If ntier data is provided at very low level and data volume is too high, it is strongly recommended to set this configuration to N.
Business Rules

The following table shows the rules category for IPO and whether they are optional or required for each module.

Category Sub category Generic Replenishment Initial Allocation Manual Allocation Cross docking Default (Optional)
Alerting Capacity Optional         None
Alerting Low Stock Optional         None
Alerting Overstock Optional         None
Alerting Shortage Optional         None
Allocation and Replenishment Replenishment   Required        
Allocation and Replenishment Reserve Stock Optional         0
Allocation and Replenishment Store Priority Groups Optional         Priority 1
Allocation and Replenishment Display Stock   Optional       0
Allocation and Replenishment Initial Allocation     Required      
Allocation and Replenishment Holdback Stock Optional         0
Allocation and Replenishment Simple Pack Rounding Threshold   Optional       50%
Constraints Supplier Order Multiple   Optional       1
Constraints Pack Tuning Objective   Optional       Balance
Constraints Internal Order Multiple   Optional Required Required    
Life Cycle Calendar Life Cycle Calendar     Required      
Post-processing Auto-approval   Optional Optional      
Supply Chain Network Cross-docking         Required  
Supply Chain Network Review Schedule   Required        

These rules can be set up in Manage Rules and Manage Alerts under Control & Tactical Center. In Manage Strategy, rules can be attached to the default strategy (which is used by IPO batch runs) or a custom strategy (which can be used by IPO ad-hoc runs).

Data Setup

The IPO required data can be provided via data interfaces. Many of the data elements can also be defined as a business rule. The following table shows the rules categories for IPO and whether they are optional or required for each module.

For the MFCS customer, there is a GA integration to get data from MFCS into IPO as explained in the notes column. MFCS customers can also take a hybrid approach: leverage the GA integration and at the same time use the n-tier interfaces and/or rules to fill in the gaps and achieve more flexible setup (such as, multi-tier network).

Data Mandatory Level Source (N-tier Interfaces) Alternate Source of Data Notes
Supply Chain NW Yes SKU/source/destination

W_RTL_REPL_DISTRO_IT_LC_DS (internal)

REPL_DISTRO.csv

1. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV

W_RTL_REPL_PROC_IT_LC_DS (supplier sourced)

REPL_PROC.csv

1. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV

Required only for generating purchase orders

Lead Time Yes SKU/source/destination

W_RTL_REPL_LT_INT_IT_LC_DS

REPL_LT_INT.csv

1. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV

W_RTL_REPL_LT_SUP_IT_LC_DS

REPL_LT_SUP.csv

1. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV

Required only for generating purchase orders

Review Schedule Yes SKU/destination

W_RTL_REPL_REV_INT_IT_LC_DS

REPL_REV_INT.csv

1. Rules & Strategies UI

or io_strategy_rule_stg

2. W_RTL_REPL_DAY_DS.dat

GA integrated data which is sourced from MFCS is loaded via W_RTL_REPL_DAY_DS.dat

Required for WH sourced. Required for supplier sourced only for generating purchase orders

Order Multiple Yes SKU/source/destination

W_RTL_REPL_MULT_INT_IT_LC_DS

REPL_MULT_INT.csv

1. Rules & Strategies UI or

io_strategy_rule_stg

2. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV

W_RTL_REPL_MULT_SUP_IT_LC_DS

REPL_MULT_SUP.csv

1. Rules & Strategies UI or

io_strategy_rule_stg

Required only for generating purchase orders
Replenishment Method Yes SKU/destination Rules & Strategy

1. Rules & Strategies UI or

io_strategy_rule_stg

2. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

 
Rounding Levels Optional SKU/source/destination

W_RTL_REPL_ROUND_IT_LC_DS

REPL_ROUND.csv

1. W_RTL_REPL_SUP_MGMT_DS.dat GA integrated data which is sourced from MFCS is loaded via W_RTL_REPL_SUP_MGMT_DS.dat
Display Stock Optional SKU/destination Rules & Strategy

1. Rules & Strategies UI or

io_strategy_rule_stg

2. W_INVENTORY_PRODUCT_ATTR_DS

PROD_LOC_REPL.CSV

GA integrated data which is sourced from MFCS is loaded via PROD_LOC_REPL.CSV
Cross-docking Optional SKU/Warehouse Rules & Strategy

Rules & Strategies UI or

io_strategy_rule_stg

 
Holdback Stock/Reserved Stock Optional

SKU/Warehouse /

SKU/destination

Rules & Strategy

Rules & Strategies UI or

io_strategy_rule_stg

 
Pack Rounding/Pack Tuning Obj. Optional SKU/destination Rules & Strategy

Rules & Strategies UI or

io_strategy_rule_stg

 
Auto-approve of Policies Optional. SKU/destination Rules & Strategy

Rules & Strategies UI or

io_strategy_rule_stg

Apart from the data setup mentioned above, the following requirements should be satisfies for cross-docking (XD).

Data Path Source Replenishment Mandatory Initial Allocation Mandatory Manual Allocation Mandatory
Supply Chain NW Supplier to Source WH PROD_LOC_REPL.CSV or W_RTL_REPL_DISTRO_IT_LC_DS Required Optional Optional
Source WH to XD WH W_RTL_REPL_DISTRO_IT_LC_DS Required Required Required
XD WH to Store PROD_LOC_REPL.CSV or W_RTL_REPL_DISTRO_IT_LC_DS Required Required Required
Lead Time Supplier to Source WH PROD_LOC_REPL.CSV or W_RTL_REPL_LT_SUP_IT_LC_DS Required Optional Optional
Source WH to XD WH W_RTL_REPL_LT_INT_IT_LC_DS Required Required Required
XD WH to Store PROD_LOC_REPL.CSV or W_RTL_REPL_LT_INT_IT_LC_DS Required Required Required
Review Schedule Source WH W_RTL_REPL_DAY_DS.dat or W_RTL_REPL_REV_INT_IT_LC_DS Required Optional Optional
Store W_RTL_REPL_DAY_DS.dat or W_RTL_REPL_REV_INT_IT_LC_DS Required Required Required
Order Multiple Supplier to Source WH W_RTL_REPL_DAY_DS.dat or W_RTL_REPL_MULT_INT_IT_LC_DS Optional Optional Optional
Source WH to Store W_RTL_REPL_DAY_DS.dat or W_RTL_REPL_MULT_INT_IT_LC_DS Optional Optional Required
Auto-Approval of Replenishment Policies and Orders

Auto-approval can be controlled using global configurations as well as business rules.

Global Configurations for Auto-Approval

  • IO_AUTO_APPR_THRESHOLD_PCT

    The threshold percentage change of Reorder Point (RP) and Receive Up To Level (RUTL) between two consecutive batches that is acceptable for auto-approval of the replenishment parameters.

  • IO_AUTO_APPR_NEW_PARAMS

    Indicates whether net new parameters in a batch should be auto-approved. Defaults to N (No).

  • AUTO_APPR_PO_BATCH

    Indicates whether the purchase orders should be auto-approved for batch runs. Valid values are ALL (approve all POs) and N (do not approve any of the POs). Auto-approval is done only for the orders that have an order date as first day of the planning horizon. Default value is N.

  • AUTO_APPR_TSF_BATCH

    Indicates whether the transfers should be auto-approved for batch runs. Valid values are WH-ST (approve all warehouse-to-store transfers), WH-WH (approve all warehouse-to-warehouse and warehouse-to-store transfers), ALL (approve all transfers), and N (do not approve any of the transfers). Auto-approval is done only for the transfers that have an order date as first day of the planning horizon. Default value is N.

  • AUTO_APPR_REBAL_BATCH

    Indicates whether the rebalancing transfers should be auto-approved for batch runs. Valid values are ST-WH (approve all store-to-warehouse transfers), ST-ST (approve all store-to-warehouse and store-to-store transfers), ALL (approve all rebalancing transfers), and N (do not approve any of the rebalancing transfers). Auto-approval is done only for the transfers that have an order date as first day of the planning horizon. Default value is N.

  • AUTO_APPR_ALLOC_BATCH

    Indicates whether the allocations should be auto-approved for batch runs. Valid values are ALL (approve all allocations), N (do not approve any of the allocations), PO (approve allocations off of PO and from WH stock), ASN (approve allocations off of ASN and from WH stock), PO_ASN (approve allocations off of PO and ASN and from WH stock), TSF (approve allocations off of transfers and from WH stock), and ALLOC (approve allocations off of allocations and from WH stock). As part of auto-approving allocations, the linked order (which can be another allocation, a transfer, or a PO) also gets approved. Default value is N.

  • N_TIER_CHAIN_AUTO_APPROVE_FLG

    Y indicates that all chained allocations will be auto-approved, when the user approves an allocation in the UI. Default value is N. If N, a message is shown to the user to confirm the auto-approval of all chained allocations.

Business Rules for Auto-Approval

The user can set up order approval exception rules within Rules & Strategies. This rule is under the post-processing category and allows for selecting different type of orders and specify inbound/outbound/all for disabling auto-approval using different criteria such as product and location hierarchy, and supplier.

Create Order Approval

IPO Integration with External Application (non-MFCS Integration)

This section describes the customer-facing export flow. In summary, the system generates request-specific temporary export data, notifies the configured customer endpoint when the data is ready, and allows the customer system to fetch export data in smaller windows and in parallel. The process is the same for all type of recommendations: PO, transfer, allocation, rebalancing, and replenishment policies. Note that the export process is asynchronous. Instead of returning the entire export data set in one response, IPO prepares data for a specific request and sends a notification that contains the request ID, temporary export table metadata, window information, and window fetch endpoints.

Here is the end to end sequence for one export process:

  1. User triggers export from the UI (by clicking on Approve) or by running nightly or ad-hoc batch process for export
  2. IPO validates that the external notify API is configured.
  3. IPO generates temporary export data for the received export request.
  4. IPO calculates row count, window count, window IDs, and fetch URLs for each window.
  5. IPO posts a notification payload to the configured customer endpoint.
  6. Customer reads the windows array and fetches data for each window.
  7. Customer may fetch multiple windows in parallel.
  8. For each completed window, customer calls the export status update API.
  9. IPO persists status and returns confirmation for the request/window.

Customer Notify API Contract

IPO sends a POST request to the customer-configured external endpoint when the export data is ready.

Method POST
Endpoint

Customer environment endpoint, for example http://{HOSTNAME}/external/env/endpoint

Set in IO_EXT_APP_EXP_NOTIFY_URL in rse_config.

Authorization

Customer-defined authorization token or gateway mechanism, if required.

Set in IO_EXT_APP_EXP_NOTIFY_TOKEN in rse_config.

When called After IPO creates export data and window metadata.
Required customer action Persist the payload, parse windows[].href, fetch each window, and update status after processing.

Notification Payload Example

{
  "exportNotifyRequestHeader": {
    "requestID": "00070",
    "exportType": "PO",
    "userID": "user@example.com",
    "windowCount": 33
  },
  "windows": [
    {
      "window_id": 1,
      "href": "/rase/resources/io/view/v1/getPurchaseOrderByWindow/00070/1"
    }
  ]
}
Field Description Customer use
requestID Export request identifier generated by IO. Use for correlation, fetch requests, status updates, and logs.
exportType Export type, such as PO, ALLOCATION, WH_STORE_TRANSFER, WH_WH_TRANSFER, REBALANCE, or REPLENISHMENT. Confirm that the payload matches the requested export flow.
userID User who triggered the export. Use for audit and support correlation.
windowCount Total number of export windows. Must match the number of windows the customer processes.
windows[].window_id Window sequence number. Use for status update and progress tracking.
windows[].href API endpoint for retrieving that window. Call each endpoint to fetch exported data.

Data Fetch APIs

The customer application reads the fetch endpoint from each windows[].href value in the notification payload and calls the corresponding API. For transfer export there is an additional parameter to indicate the type. Transfer types include WHST for warehouse-to-store transfers, WHWH for warehouse-to-warehouse transfers, and REBAL for rebalance transfers.

Export Domain Endpoint Pattern Example
Transfer GET /rase/resources/io/view/v1/getTransferByWindow/{transferType}/{requestId}/{windowId} GET /rase/resources/io/view/v1/getTransferByWindow/WH_ST/00065/1
Purchase Order GET /rase/resources/io/view/v1/getPurchaseOrderByWindow/{requestId}/{windowId} GET /rase/resources/io/view/v1/getPurchaseOrderByWindow/00070/1
Allocation GET /rase/resources/io/view/v1/getAllocationByWindow/{requestId}/{windowId} GET /rase/resources/io/view/v1/getAllocationByWindow/REQ123/10
Replenishment GET /rase/resources/io/view/v1/getReplenishment ByWindow/{requestId}/{windowId} GET /rase/resources/io/view/v1/getAllocationByWindow/REQ123/10

Status Update API

The customer calls the status update API after a window has been fetched and processed. This gives IPO visibility into export progress and prevents duplicate successful processing.

Method PUT
Endpoint /rase/resources/io/view/v1/export/status
Authorization Internal generic or configured service authorization
When called Once per completed window
Success response {"success": true, "message": "Status is Updated successfully.", "requestId": "12345"}

Status Update Request Example

{
  "exportStatusRequestHeader": {
    "requestID": "REQ123",
    "window_id": 10,
    "status": "S",
    "reason": "Processed successfully"
  }
}
Status Meaning When to send
S Success The customer application fetched and processed the window successfully.
F Failure The customer application could not process the window. Include a useful reason.

Customer Application Responsibilities

  • Expose an HTTP endpoint that accepts the IPO notification POST request and update IO_EXT_APP_EXP_NOTIFY_URL accordingly.
  • Read and store the complete notification payload for audit and troubleshooting.
  • Parse exportNotifyRequestHeader and the windows array.
  • Confirm that the number of windows entries matches exportNotifyRequestHeader.windowCount.
  • Call every endpoint listed in windows[].href.
  • Process or import each window of data.
  • Call the IPO status update API for each processed window.
  • Log requestID, exportType, window_id, fetch status, and status update response.

Validation Checklist

Check Expected result
Notify endpoint is running The customer endpoint is reachable before export starts.
Notification received Exactly one notification payload is received for the export request.
Header fields validated requestID, exportType, userID, tableName, windowTableName, and windowCount are present.
Window count validated windows array size equals exportNotifyRequestHeader.windowCount.
Window fetch completed Every windows[].href endpoint returns the expected exported data.
Status update completed The status update API returns success for every processed window.
Error logs reviewed No connection-refused or failed-notification errors are present for the request ID.

Common Issues

Issue Likely cause Recommended action
Notification not received Customer endpoint is not running, URL is incorrect, or network path is blocked. Start the external app, verify host/port/path, and confirm network access from IO.
Window count mismatch Customer app did not process the full windows array or payload was truncated in logs. Use the original JSON payload, not a copied partial payload, and process each windows entry.
Duplicate window fetch Status was already marked success for that window. Treat the window as already complete and avoid refetching successful windows.
Status update fails Incorrect requestID/window_id/status value or environment-specific endpoint configuration. Validate request body, authorization, and endpoint URL for the test environment.

Note:

Customers should treat the notification payload as the source of truth for request ID, export type, window count, and fetch URLs. Endpoint examples in this guide are illustrative and may vary by environment, host name, authorization, or supported export type.

IPO Integration with MFCS

When a sku-store is set up in MFCS for replenishment, if the optimization flag in MFCS is set to Y, the optimal replenishment policies for that sku-store is sent back to MFCS via Web Service integration.

Additional configuration parameters must be set to integrate IPO with MFCS. The configuration parameters that must be set for integration of replenishment policies and rebalancing transfers are listed in Table 15-2 and Table 15-3, respectively.

In addition, the MFCS username and password must be added under the credential store for Merchandise MFCS Access. You can modify these values using the UI screen for Data Management -> Manage Credential Store, as shown in Figure 15-1 and Figure 15-2. Data Management screen is available under the task menu in the main dashboard.

The export process can be done from the UI by approving recommended replenishment policies, purchase orders, transfers, and allocations. The nightly job for export pushes the auto-approved recommendations to MFCS.

Table 15-2 Configuration Parameters for Integration of Replenishment Policies with MFCS

Parameter Name Parameter Value Description

IO_MERCH_RMS_CONTEXT_ROOT

RmsReSTServices/services/private

This value must be set based on the client environment.

Context root of the RMS Restservice url.

IO_MERCH_RMS_FLG

Y

Flag to identify whether to publish replenishment parameter to RMS.

IO_MERCH_RMS_HOSTNAME

msp00aay.us.oracle.com

This value must be set based on the client environment.

URL host name to publish replenishment parameter to RMS. This must be same as CN name in the certificate.

IO_MERCH_RMS_PORT

8002

This value must be set based on the client environment.

Port number to publish replenishment parameter to RMS.

IO_MERCH_RMS_REPL_PATH

inventory/replenishment/createReplSched

Path of the Restservice e.g., inventory/replenishment/createReplSched.

IO_MERCH_RMS_VERSION

16.0

This value must be set based on the client environment.

RMS Version to use for publishing replenishment parameter to RMS (format 16.0).

IO_MERCH_RMS_AUTH_SERVICE_TYPE

OAUTH

Used in determining whether to use OAuth or basic authentication for IPO-IO RMS integration.

Table 15-3 Configuration Parameters for Integration of Rebalancing Transfers with MFCS

Parameter Name Parameter Value Description

IO_REBAL_TRANSF_MERCH_RMS_FLG

Y

Flag to identify whether to publish rebalancing transfers to RMS.

IO_REBAL_TRANSF_MERCH_RMS_HOSTNAME

msp00aay.us.oracle.com

This value must be set based on the client environment.

URL host name to publish rebalancing transfers to RMS. This must be same as CN name in the certificate.

IO_REBAL_TRANSF_RMS_PORT

443

This value must be set based on the client environment.

Port number to publish rebalancing transfers to RMS

IO_REBAL_TRANSF_RMS_SERVICE_VERSION

v1

This value must be set based on the client environment.

Transfer Management Service Version to use for publishing rebalancing transfers to RMS (format v1).

Figure 15-1 and Figure 15-2 show adding a username and password for the credential store.

Figure 15-1 Selecting the Credential Store

Description of Figure 15-1 follows
Description of "Figure 15-1 Selecting the Credential Store"

Figure 15-2 Adding the Username and Password for the Credential Store

Description of Figure 15-2 follows
Description of "Figure 15-2 Adding the Username and Password for the Credential Store"

Forecast Engine Setup for IPO

The forecast engine that generates demand forecast and feeds into the IPO consists of two modules: parameter estimation and demand forecasting. Parameter estimation uses the historical data to determine the parameters, including seasonality, price elasticity, promotion elasticity, and promotion lift (or holiday lift) values. Demand forecasting leverages the parameters estimated from historical data and in-season sales data (the base demand is re-estimated on a regular basis as part of batch process) to determine the demand and generate the forecast.

To set up the parameter estimation and forecast runs and configure various settings, you can use the Manage Forecast Configurations functionality under Strategy & Policy Management. Based on the configuration settings, parameter estimation can be executed through the UI to initially estimate the parameters and then updated at specified intervals to reflect the latest sales trends. Similarly, a weekly batch job is used to generate demand forecasts every week after the weekly data has been updated.

For details regarding setting up run types and runs and configuring parameters, refer to the Control and Tactical Center chapter in the implementation guide.

Here are the points to take into consideration when setting up forecast runs types for IPO.

  • Forecast level: data must be aggregated at the lowest level (Sku/store/week level) and the option for spreading the forecast to day level must be enabled when setting up the run type. If customer segment data is available and is desired to be used as additional dimension in the forecast, enable the option for customer segments.

  • Forecast method: if the items are fashion/short life cycle, select Causal-Short Life Cycle. If items are basic items which live for at least 16 weeks and often longer, select Causal-Long Life Cycle.

  • Forecast measure: select Total Gross Sales Units.

  • Spread Forecast to Day level: must be enabled.

  • Spread Profile Level: Spread profile can be provided through rse_fcst_spread_profile_stg.txt. If the spread profile is not available, leave the profile level selection empty. In such case, a default uniform profile will be applied for spreading forecast from week to day level.

  • Run the data aggregation in the Setup train stop.

  • Once the aggregation is complete, use Test train stop to create an ad-hoc run. Select Run estimation and base demand and enable Run forecast. Once the run is successfully complete, if desired, you can review the results using Innovation Workbench.

  • Use the Manage train stop to activate the run type and override the configurations for the run type if desired. In addition, turn on auto-approve batch runs.

  • Use Map train stop to map the run type to IPO.

  • Make sure proper POM jobs (listed in Batch and Ad-Hoc Jobs for IPO-DF Forecasting in the Control & Tactical Center chapter) are enabled so the forecast is generated via batch jobs.

Batch and Ad Hoc Jobs for IPO

The following jobs with mentioned options must be executed to load required data for IPO and forecast engine.

Table 15-4 Batch and Ad Hoc Jobs for IPO

JobName Description RmsBatch Parameters

RSE_MASTER_ADHOC_AIF_JOB The batch job is

Run RSE master script

rse_master.ksh

You can run this with parameter '-A' which will run all data loads. You can also provide parameters to load certain data only. These parameters can be found in the AIF Operations Guide. The parameters that are relevant for IPO-IO are listed below this table.

IO_MASTER_ADHOC_AIF_JOB

Run IPO-IO master script

io_master.ksh

You can run this with parameter '-A' which will run all data loads. Alternatively, you can specify specific parameters to load certain data. List of parameters are listed below this table

IO_WAREHOUSE_LOAD_START_JOBIO_WAREHOUSE_LOAD_JOBIO_WAREHOUSE_LOAD_END_JOB

Load job for warehouses

io_warehouse_load.ksh

IO_SEASON_LOAD_START_JOBIO_SEASON_LOAD_STG_JOBIO_SEASON_LOAD_COPY_JOBIO_SEASON_LOAD_STG_CNE_JOBIO_SEASON_LOAD_JOBIO_SEASON_LOAD_END_JOB

Load job for seasons

io_season_load.ksh

RSE_RULES_TO_IO_LOAD_START_JOBRSE_RULES_TO_IO_LOAD_JOBRSE_RULES_TO_IO_LOAD_END_JOB

Job to load RSE rules to IPO-IO

rse_rul_eng_io_load.ksh

IO_CREATE_BATCH_RUN_ADHOC_JOB

IPO-IO batch run creation ad hoc job

io_create_batch_run.ksh

IO_RUN_ANALYTICS_ADHOC_JOB

IPO-IO analytics run ad hoc job

io_run_analytics.ksh

IO_PUBLISH_MERCH_RMS_START_JOBIO_PUBLISH_MERCH_RMS_JOBIO_PUBLISH_REBAL_RMS_JOBIO_PUBLISH_MERCH_RMS_END_JOB

Publish job for pushing replenishment param-eters and Rebalancing transfers to RMS

io_publish_merch_RMS.kshio_publish_rebal_transfer.ksh

Parameters for running RSE_MASTER_ADHOC_AIF_JOB

Table 15-5 Parameters for running RSE_MASTER_ADHOC_AIF_JOB

Data (-<parameter>) Notes

RSE Product Hierarchy ETL (including CM Groups Hierarchy) (-p)

RSE Location Hierarchy ETL (-l)

Trade Area alternate hierarchy (-t)

RSE Calendar Hierarchy ETL (-d)

RSE Promotion Hierarchy ETL (-r)

Required if client has promotion data that they want to use in forecasting

RSE Customer Segment Hierarchy ETL (-g)

RSE Product Attributes (-P)

Location attributes (-L)

Like Location / Product data load (-K)

Required if client wants to use like location and/or like product in forecasting

Holiday load (-h)

Inventory data load (-i)

Sales transaction data (-x)

Weekly Aggregate Sales data (Load or Calc) (-w)

Aggregate Sales data processing (-a)

Price and Cost data load (-C)

UDA Load (-u)

Weekly Return transactions (-T)

Weekly Return Aggregation (-e)

Weekly Sales Return Price Consolidation (-S)

Promotion data load (-n)

Daily data load (-D)

Supplier, supplier item, daily supplier cost and supplier inventory management ETLs (-U)

w_party_org_d, w_party_attr_d, w_rtl_it_supplier_dsupplier inventory management is optional data for order scaling rules, which are sourced from w_rtl_repl_sup_mgmt_d

Seasons, phases and related items ETL (-N)

Load rules engine data to IPO-IO (-j)

Optional. It's needed for loading IPO-IO rules that are defined in Rules & Strategies into IPO-IO.

Buyer, allocation, purchase order and transfer ETLs (-H)

Optional If provided it can be used for value assessment to compare optimized history with actual history

load forecast spread profiles (-M)

Optional. Source: rse_fcst_spread_profile_stg.txtIt's needed for spreading week level forecast to day level. If not provided, a uniform profile will be applied.

Load life cycle classification data (-V)

Optional Source: rse_fcst_life_cycle_clsf_stg.txtThis allows user to classify product/locations as being short or long life cycle. By default, all product/location combinations are considered to have the life cycle classification which is indicated by DFLT_LIFE_CYCLE in RSE_CONFIG. Exceptions to DFLT_LIFE_CYCLE can be provided through rse_fcst_life_cycle_clsf_stg.txt and loaded by running this job. This information is forecast engine to apply the proper forecast method ac-cording to the life cycle of the item.

Parameters for running IO_MASTER_ADHOC_AIF_JOB

Table 15-6 Parameters for running IO_MASTER_ADHOC_AIF_JOB

Data (-<parameter>) Notes

Replenishment Attributes at Product/Location or Group level (-a)

Source: w_inventory_product_attr_d

Supply chain for Distribution Networks (-C) Source: REPL_DISTRO.csv. See the RAP Foundation Data section for more details
Review cycles (-S) Source: REPL_REV_INT.csv. See the RAP Foundation Data section for more details.
Lead times (-L) ) Source: REPL_LT_INT.csv. See the RAP Foundation Data section for more details.
Supply chain for Procurement Networks (-P) Source: REPL_PROC.csv. See the RAP Foundation Data section for more details.
Supplier Lead times (-T) Source: REPL_LT_SUP.csv. See the RAP Foundation Data section for more details.
Internal Order Multiples (-M) Source: REPL_MULT_INT.csv. See the RAP Foundation Data section for more details.
Supplier Order Multiples (-m) Source: REPL_MULT_SUP.csv. See the RAP Foundation Data section for more details.
Rounding Levels (-l) Source: REPL_ROUND.csv. See the RAP Foundation Data section for more details.
Load rules from IO table to rules engine (-I) Source: IO_STRATEGY_RULE
Load N-tier interface data to rules engine (-N) ) Source: the 8 REPL_* interfaces. See the RAP Foundation Data section for more details.
Location Priority Groups (-G) Source: io_loc_priority_grp_stg.txt