11 Replenishment

Replenishment is a complex business process that monitors stock levels and creates transactions to ensure that stores and warehouses have optimal stock levels.

Merchandising supports a number of replenishment methods, which are associated with each item/location being replenished. Each replenishment method uses a specific calculation to determine the correct stock orders to create. Depending on the locations, inventory in the supply chain, and other factors, these stock orders can be either purchase orders sent to a supplier, transfers of inventory from a warehouse to store, or both, such as in the case of a cross-docked order.

The main purpose of this chapter is to describe the batch processes involved in replenishment. For additional information about the parameters and different replenishment methods, see the Merchandising Documentation Library (Doc ID: 1585843.1).

Replenishment Sub Processes

Replenishment can be divided into four major sub-processes:

Replenishment Sub Processes

Manage Replenishment Attributes

Manage Replenishment Attributes Process Flow

Replenishment attributes are set up for item/locations, or higher levels, using the Merchandising UI or uploaded from an external system using one of the supported integration methods. Attribute updates managed at levels higher than item/location or that are scheduled for future updates require backend processing to help manage the updates. Additionally, for some methods or configurations, there is other supporting data that requires batch processes to periodically refresh data, including that for size profiles and maximums for Floating Point replenishment.

Calculate Recommended Order Quantities

Calculate Recommended Order Quantities

The next section of replenishment programs are focused around generating recommended order quantities (ROQs). Many user and batch processes combine to calculate ROQ. Item/location combinations follow different paths to calculate ROQ depending on whether they are replenished from a warehouse or from a supplier.

If using the Investment Buy feature in Merchandising, then there are two other programs that are relevant for ROQ calculation:

Build Orders and Transfers

Build Orders and Transfers

This section of programs create purchase orders and transfers based on the calculated ROQs.

Additional batch processes that may apply for this section of batches, depending on your implementation:

Cleanup Replenishment Data

The programs in this section are used to clean up temporary tables used in the above programs, or to remove historical attribute and result information.

There is also an option of running a background process for some of the above cleanup jobs, as an alternative to running during the batch schedule. The background job options are:

Approve Replenishment Orders (rplapprv)

Module Name

rplapprv.pc

Description

Approve Replenishment Orders

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS300

Wrapper Script

rmswrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This program looks at all replenishment, vendor and contract orders created during the nightly batch run to determine if they can be approved. These orders are compared with any vendor minimums that may exist. Orders that do not meet the vendor minimums are either deleted or placed in worksheet status. A flag, held at the supplier inventory management level, determines what action is taken on orders that fail minimums. Vendor generated orders are not subject to these minimum checks.

Vendor minimums can be held at the order, item, or location level. Order and location level minimums are held on the supplier inventory management table. There is a flag that determines if they are applied at the order level or at the location level. Vendor minimums at the item level are held on the item/supplier/country table.

When an order fails the minimums, and the flag is set to 'N', a failure at any level causes the order to be placed in worksheet status. When the flag is 'Y', a failure at the location level causes the offending location to be deleted; a failure at the item level causes the problematic item to be deleted; and a failure at the order level caused the entire order to be deleted.

For any orders that fail vendor minimums when the flag is set to 'Y', a record is written to the supplier minimum failures table for reporting purposes. This table is purged during the pre-processing of this batch program.

After order records are updated, any applicable deals, brackets and allowances are applied to the orders by subsequent processes. Open to buy is then updated for any orders built in approved status. If any orders are contract orders, the contract amounts are updated as well to reflect any order record deletions.

If any orders are Franchise POs, the associated Franchise Orders are also approved if they pass the credit check. If they fail the credit check, both Franchise POs and orders will remain in Worksheet.

An order may not pass vendor minimum checks assuming that the vendor minimum checks are performed for a physical warehouse. If the vendor minimum is not met for a physical location, all the virtual warehouses on the order within the physical warehouse will need to be removed along with associated allocations.

The pre-processing function for this batch program on prepost truncates the supplier minimum failures table.

Restart/Recovery

The logical unit of work is order number. Records will be committed to the database when commit max counter defined in the restart control table is reached.

Design Assumptions

N/A

Build Replenishment Orders (rplbld)

Module Name

rplbld.pc

Description

Build Replenishment Orders

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS314

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This batch program builds Merchandising orders from recommended order quantities (ROQ) generated by the replenishment extract and investment buy calculation processes. The apply type A, C & D contracts to orders created by replenishment batch associates contracts with the ROQs created by the ROQ calculation and distribution for item/locations replenished from supplier program. These ROQs are placed on a temporary table by the replenishment extract and investment buy calculation processes. All records on the temporary tables are processed by this batch each night. These temporary table records are placed into logical groups, and a Merchandising order is created for each logical group.

In order to be placed in the same order group, the item/location ROQs from the temporary tables must share a common supplier, have the same order_status ('W'orksheet or 'A'pproved), and be on the same contract (or not be associated with a contract). Depending on flags on the order inventory management table, two other criteria can be used for splitting order groups. First, if the inventory management level is set to 'D'ept, only items in a single department are allowed in an ordering group. Secondly, the single location indicator can be set to 'Y'es. If this is the case, only one location is allowed per ordering group. Finally, an item may only exist in an ordering group with a single origin country. When an item/location ROQ temporary table record is encountered with a different origin country than the one it exists with in the current ordering group, it is placed in a different ordering group.

To assist the recalculation and order scaling processes of replenishment ROQs, the replenishment results record, associated with the order temporary table record being processed, is updated with the order number and allocation number that the order temporary table record was placed with. Investment Buy results is also updated with the order number.

If the location to be replenished is a Franchise location and the replenishment Order Control is Semi-Automatic or Automatic, Franchise POs will be created per Costing Location/Location. Associated Franchise Orders will also be created.

Restart/Recovery

The logical unit of work is supplier, contract number, and order status. Records will be committed to the database when commit max counter defined in the restart control table is reached.

Design Assumptions

N/A

Calculate Net Inventory (replroq.ksh)

Module Name

replroq.ksh

Description

Calculate Net Inventory

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ksh

Catalog ID

RMS308

Wrapper Script

rmswrap_shell.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This module performs the bulk of the logic to process and persist the replenishment data into replenishment net inventory temp table. (The information on this table is extracted by the reqext batch program.)

The wrapper script does the following things:

  • Insert records into the staging table and determines the thread id of each record.

  • Retrieves the max concurrent thread from to determine the maximum number of concurrent process the wrapper should run at a time.

  • Moves the records from a staging table to a temporary table and will calculate the net inventory position and determine the ROQ of items which are on replenishment.

The pre-processing function of this batch program in prepost truncates the records from the replenishment net inventory temp tables, and builds replenishment distribution temp and replenishment allocation in temp tables.

Restart/Recovery

The program processes all items on the replenishment day table for the current day. If the program fails, the program can be restarted and it will process the remaining records on replenishment ROQ table.

Design Assumptions

N/A

Calculate ROQ for Profitable Investment Buys (ibcalc)

Module Name

ibcalc.pc

Description

Calculate ROQ for Profitable Investment Buys

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS249

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The batch program is the calculation engine for investment buy processing. It identifies investment buy (IB) opportunities and calculates recommended order quantities (ROQs) that will meet the target return-on-investment (ROI)

This module will calculate forward buy opportunities using:

  • Carrying costs

  • Ordering parameters

  • Deals – future and expiring

  • Cost changes – future

  • Forecasts

  • Inventory levels

  • Target ROI (return on investment)

The deals and cost change components will be contained on the future cost table. This table will hold a record for each future date that has a costing event (for example, a cost change, deal activation/deactivation). This process utilizes the default costing bracket and default deal thresholds in the calculations.

The pre-processing for this batch in the prepost program sets the status of investment buy from 'W' (worksheet) to 'U' (unprocessed).

Restart/Recovery

The logical unit of work is item and location combination.

Design Assumptions

N/A

Determines Eligible Investment Buy Opportunities (ibexpl)

Module Name

ibexpl.pc

Description

Determines Eligible Investment Buy Opportunities

Functional Area

Investment Buy

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS250

Wrapper Script

rmswrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The batch program pre-qualifies investment buy (IB) eligible wh/dept and IB eligible supp/dept/locs.

The warehouse/department table holds IB parameters at the warehouse or at the warehouse/department level. If there are IB parameters defined at the warehouse/department level, they are used. If there are no IB parameters defined at the warehouse/department level, the IB parameters at the warehouse level are used. If IB parameters are not defined at either level, then system level IB parameters are used. The first part of this program sends IB parameters to the warehouse/department level no matter what level they are held at in the database. The results are written to the warehouse/department explode table.

Next the warehouse/department explode table is combined with supplier inventory management data to get the final list of all eligible supplier/department/locations. The supplier inventory management data determines whether or not a given sup/dept/loc combo is IB eligible. The main problem is that this table can store information at different levels depending upon the supplier's inventory management level. Valid options for this level are:

The main problem is that this table can store information at different levels depending upon the supplier's inventory management level.

Valid options for this level are:

  • Supplier (S)

  • Supplier/department (D)

  • Supplier/location (L)

  • Supplier/department/location (A)

If the record is not found at the defined level, it needs to look up the hierarchy as shown below, up to the highest level (supplier). If no record exists as the supplier level, it is not IB eligible.

  • Supplier

  • Supplier/department -> Supplier

  • Supplier/location -> Supplier

  • Supplier/department/location -> Supplier/department ' Supplier

The second part of this program explodes the supplier inventory management data down to the supplier/department/location level by filling in the implied rows. The exploded supplier inventory management information is only done for IB eligible warehouse/department combinations from the warehouse/department explode table. The results are placed on the SIM explode table.

Restart/Recovery

N/A

Design Assumptions

N/A

Multithreading Wrapper for reqext (batch_reqext.ksh)

Module Name

batch_reqext.ksh

Description

Multithreading Wrapper for reqext

Functional Area

Replenishment

Module Type

Admin

Module Technology

ksh

Catalog ID

RMS192

Wrapper Script

N/A

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The purpose of this module is to run the reqext batch program multithreaded.

prepost reqext pre - create the transfer header records for unique combination of Warehouse and Store, stock category, and department.

prepost reqext post – update transfer status to Approved.

Restart/Recovery

N/A - this script only serves as a wrapper for the batch process reqext.pc.

Design Assumptions

N/A

Purge Aged Buyer Worksheet Results (buyer_wksht_purge_job)

Module Name

buyer_wksht_purge_job

Description

Purge Aged Buyer Worksheet Results

Functional Area

Replenishment

Module Type

Admin - Ad hoc

Module Technology

Background Processing

Catalog ID

N/A

Wrapper Script

b8dwrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This background job is composed of two steps processing. It will have a threading assignment and a business logic processing.

Thread assignment program will filter eligible records from buyer worksheet manual results table based on its purge criteria from system parameter settings. The Replenishment Result Purging Cycle parameter will determine those unneeded records that are older than predetermined number of days from its creation date. These records are chunked and Thread ID is assigned for each. They will be stored temporarily in a staging table.

The Business logic program will process all records from the staging table. Using bulk processing, this program will delete old records from buyer worksheet manual table. It will free up and clean the staging table afterwards. There is a STOP ON NEXT feature in bulk processing (through a loop) where Administrators can stop this batch with a flip of this indicator.

Restart/Recovery

N/A

Key Tables Affected

Table 11-1 Key Tables Affected

Table Select Insert Update Delete

SYSTEM_OPTIONS

Yes

No

No

No

RMS_BATCH_STATUS

Yes

No

No

No

B8D_PROCESS_CONFIG

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

B8D_BUYER_WKSHT_PURGE_STG

Yes

Yes

No

Yes

BUYER_WKSHT_MANUAL

No

No

No

Yes

Design Assumptions

N/A

Purge Aged Investment Buy Results (investment_buy_purge_job)

Module Name

investment_buy_purge_job

Description

Purge Aged Investment Buy Results

Functional Area

Replenishment

Module Type

Admin - Ad hoc

Module Technology

Background Processing

Catalog ID

N/A

Wrapper Script

b8dwrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This background job is composed of two steps processing. It will have a threading assignment and a business logic processing.

Thread assignment program will filter eligible records from investment buy results table based on its purge criteria from system parameter settings. The Replenishment Result Purging Cycle parameter will determine those unneeded records that are older than predetermined number of days from its creation date. These records are chunked and Thread ID is assigned for each. They will be stored temporarily in a staging table.

The Business logic program will process all records from the staging table. Using bulk processing, this program will delete old records from investment buy results table. It will free up and clean the staging table afterwards. There is a STOP ON NEXT feature in bulk processing (through a loop) where Administrators can stop this batch with a flip of this indicator.

Restart/Recovery

N/A

Key Tables Affected

Table 11-2 Key Tables Affected

Table Select Insert Update Delete

SYSTEM_OPTIONS

Yes

No

No

No

RMS_BATCH_STATUS

Yes

No

No

No

B8D_PROCESS_CONFIG

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

B8D_INVESTMENT_BUY_PURGE_STG

Yes

Yes

No

Yes

IB_RESULTS

No

No

No

Yes

Design Assumptions

N/A

Purge Aged Replenishment Results (replenishment_purge_job)

Module Name

replenishment_purge_job

Description

Purge Aged Replenishment Results

Functional Area

Replenishment

Module Type

Admin - Ad hoc

Module Technology

Background Processing

Catalog ID

N/A

Wrapper Script

b8dwrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The replenishment extraction programs write a number of records to Replenishment Results. This table holds information that is relevant to replenishment processes. Over time, records on this table become unneeded and must be cleared out.

This background job is composed of one step processing only. It will retain the business logic processing from the original batch program algorithm.

The Business logic program will invoke a call to a new program specific for handling historical tables such as replenishment results table that are considered partitioned tables. PARTITION_SQL.PURGE_INTERVAL_PARTITION is called passing the target table name "REPL_RESULTS" and will execute the proper deletion/purging of records from target table by exercising table partitioning handling such as Dropping Interval Partition (same as truncate or delete from table).

The purge program considered the system parameter setting, Replenishment Results Purging Cycle to determine those records that are older than a predetermined number of days.

Restart/Recovery

N/A

Key Tables Affected

Table 11-3 Key Tables Affected

Table Select Insert Update Delete

SYSTEM_OPTIONS

Yes

No

No

No

PERIOD

Yes

No

No

No

RMS_BATCH_STATUS

Yes

No

No

No

ALL_TAB_PARTITIONS

Yes

No

No‘

No

ALL_PART_TABLES

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

REPL_RESULTS

No

No

No

Yes

Design Assumptions

N/A

Purge Aged Replenishment Results (rplprg)

Module Name

rplprg.pc

Description

Purge Aged Replenishment Results

Functional Area

Replenishment

Module Type

Admin

Module Technology

ProC

Catalog ID

RMS316

Wrapper Script

rmswrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The replenishment extraction programs write a number of records to replenishment results. Store orders populate the store orders table. The investment buy process writes records to IB results and the Buyer Worksheet Form populates buyer worksheet manual table. These tables hold information that is relevant to replenishment processes. Over time, records on these tables become unneeded and must be cleared out. The replenishment purge program goes through these tables and clears out those records that are older than a predetermined number of days. The purging cycles (number of days) are maintained as a system parameter.

Restart/Recovery

Because this program performs only deletes, there is no need for restart/recovery or multithreading, and there is no driving cursor. However, this program still needs an entry on restart control to determine the number of records to be deleted between commits.

Design Assumptions

N/A

Purge Aged Store Orders Results (store_orders_purge_job)

Module Name

store_orders_purge_job

Description

Purge Aged Store Orders Results

Functional Area

Replenishment

Module Type

Admin - Ad hoc

Module Technology

Background Processing

Catalog ID

N/A

Wrapper Script

b8dwrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This background job is composed of two steps processing. It will have a threading assignment and a business logic processing.

Thread assignment will filter eligible records from store orders results table based on its purge criteria from system parameter settings. The Replenishment Result Purging Cycle parameter will determine those unneeded records that are older than predetermined number of days from its creation date. These records are chunked and Thread ID is assigned for each. They will be stored temporarily in a staging table.

The Business logic program will process all records from the staging table. Using bulk processing, this program will delete old records from store orders results table. It will free up and clean the staging table afterwards. There is a STOP ON NEXT feature in bulk processing (through a loop) where Administrators can stop this batch with a flip of this indicator.

Restart/Recovery

N/A

Key Tables Affected

Table 11-4 Key Tables Affected

Table Select Insert Update Delete

SYSTEM_OPTIONS

Yes

No

No

No

RMS_BATCH_STATUS

Yes

No

No

No

B8D_PROCESS_CONFIG

Yes

No

No

No

JOB_AUDIT_LOGS

No

Yes

No

No

B8D_STORE_ORDERS_PURGE_STG

Yes

Yes

No

Yes

STORE_ORDERS

No

No

No

Yes

Design Assumptions

N/A

Purge Replenishment Attribute History (rplathistprg)

Module Name

rplathistprg.pc

Description

Purge Replenishment Attribute History

Functional Area

Replenishment

Module Type

Admin

Module Technology

ProC

Catalog ID

RMS312

Wrapper Script

rmswrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The batch will purge data from the replenishment attributes update history table if it's older than the defined number of retention weeks as specified in the system parameters.

Restart/Recovery

N/A

Design Assumptions

N/A

Purge Replenishment Results History by Month (rplprg_month)

Module Name

rplprg_month.pc

Description

Purge Replenishment Results History by Month

Functional Area

Replenishment

Module Type

Admin

Module Technology

ProC

Catalog ID

RMS317

Wrapper Script

rmswrap.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The replenishment extraction programs write a number of records to replenishment results. Store orders populate the store orders table. The investment buy process writes records to IB results and the Buyer Worksheet Form populates buyer worksheet manual table. These tables hold information that is relevant to replenishment processes. Over time, records on these tables become unneeded and must be cleared out.

The monthly replenishment purge program goes through these tables and clears out those records that are older than a predetermined number of days defined as a system parameter. The eways ewInvAdjustToRMS, ewReceiptToRMS need to be shutdown when this program is run.

Restart/Recovery

Because this program performs only deletes, there is no need for restart/recovery or multithreading, and there is no driving cursor. However, this program still needs an entry on restart control to determine the number of records to be deleted between commits.

Design Assumptions

N/A

Purge Scheduled Replenishment Induction Staging Tables (repl_indctn_purge.ksh)

Module Name

repl_indctn_purge.ksh

Description

Purge scheduled replenishment induction staging tables

Functional Area

Inventory Management

Module Type

Admin

Module Technology

Shell Script

Catalog ID

N/A

Wrapper Script

N/A

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The purpose of this module is to remove old scheduled replenishment records from the staging tables. Records that are candidates for deletion are:

  • Processes that have successfully been processed or processed with warnings that have been uploaded to Merchandising or downloaded to S9T

  • Processes in error status where all other related records containing the process ID have been processed successfully

  • Processes that are past the data retention days (that is, the action date is earlier than the retention date)

Restart/Recovery

Restart ability will be implied, because the records that are selected from the cursor will be deleted before the commit.

Design Assumptions

N/A

Recalculate Maximum Levels for Floating Point Replenishment (repladj)

Module Name

repladj.pc

Description

Recalculate Maximum Levels for Floating Point Replenishment

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS307

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This batch module recalculates the maximum stock levels for all item-location combinations with replenishment method of 'F' (floating point). The floating model stock method will dynamically calculate an order-up-to-level. The calculated order-up-to-level is used to update the item/location replenishment table.

The maximum model stock (used for calculating order-up-to-level) is derived using the sales history of various periods of time in order to accommodate seasonality as well as trend. The sales history is obtained from the item/location history table.

Restart/Recovery

The module has restart/recovery based on item/ location. Records will be committed to the database when maximum commit counter defined in the restart control table is reached.

Design Assumptions

N/A

ROQ Calculation and Distribution for Item/Locs Replenished from WH (reqext)

Module Name

reqext.pc

Description

ROQ Calculation and Distribution for Item/Locations Replenished from Warehouse

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS310

Runtime Parameters

rmswrap_shell.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This module performs the automatic replenishment of items from warehouses to stores. It runs through every item-store combination set to be reviewed on the current day, and calculates the quantity of the item, known as the recommended order quantity (ROQ) that needs to be transferred to the store (if any). In addition, it distributes this ROQ over any applicable alternate items associated with the item.

Once the transfer quantity of an item has been calculated, transfers are created and records are written to the replenishment results tablebased on the replenishment order control indicator. For franchise stores, separate transfers are created based on the need date and will be linked back to a Franchise Order through the Franchise Order Number field.

This batch will also insert records into the respective tables for supporting the localization feature. This will be applicable only if localizations are enabled.

The pre-processing function of this batch in prepost will create transfer header records for unique combinations of warehouse and store, stock category and department.

The post-processing function of this batch will update the transfer status to Approved.

Restart/Recovery

The logical unit of work is an item/source warehouse. Restart/recovery is achieved implicitly because item/location replenishment records that have been processed are updated with a last review date and only records that have not been reviewed today will be picked up by the driving cursor again. Records will be committed to the database when the maximum commit counter defined in the restart control table is reached. During the night run the batch processed only those store order records with delivery slot. The review dates are not updated during day run. During night all the records are processed irrespective of the delivery slots.

Design Assumptions

N/A

ROQ Calculation and Distribution for Item/Locs Replenished from Supplier (rplext.ksh)

Module Name

rplext.ksh

Description

ROQ Calculation and Distribution for Item/Locs Replenished from Supplier

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

KSH

Catalog ID

RMS315

Wrapper Script

rmswrap_shell.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

Vendor Replenishment Extraction, which uses bulk processing logic, is the driving program for the replenishment process. It cycles through every item-location combination that is ready to be reviewed on the current day, and calculates the quantity of the item that needs to be ordered to the location. The program then writes these temporary order line items to the temporary order table and replenishment results. The temporary order table is later reviewed by the batch in its evaluation of orders against contract types A, C, D, whereas replenishment results is processed by build replenishment orders.

The wrapper script does the following things:

  • Calls the function will insert records into the replenishment ROQ table and determines the thread id of each record.

  • Retrieves the max concurrent thread from configuration table to determine the maximum number of concurrent processes the wrapper should run at a time.

  • For each thread, call the function that will move the records from the replenishment ROQ table to the replenishment ROQ global temporary table and the processed records will be inserted to the temporary order and replenishment results tables.

The pre-processing function for this program in the prepost batch truncates records form the temporary order table and the missed order table.

The post-processing function for this program truncates the replenishment distro temp and replenishment allocation in temp table.

Restart/Recovery

If the program fails, the program can be restarted and it will process the remaining records on replenishment table.

Locking Strategy

STORE_ORDER table records are locked while calculating ROQ.

Performance Considerations

The values on RMS_PLSQL_BATCH_CONFIG can be change to alter the behavior of the chunking and threading process.

MAX_CHUNK_SIZE - determines the maximum number of rows that should be processed for a given thread. Currently, this is set to 10000.

MAX_CONCURRENT_THREAD - determines the maximum number of parallel threads for a given run. Currently, this is set to 32.

Design Assumptions

N/A

Split Replenishment Orders Among Suppliers (supsplit)

Module Name

supsplit.pc

Description

Split Replenishment Orders Among Suppliers

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS370

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This program splits replenishment orders among different suppliers based on the supplier distribution ratio setup for an item/location on replenishment. It applies to Direct to Store, Crossdock replenishments and warehouse stocked replenishments where a purchase order will be created from a supplier.

Restart/Recovery

The logical unit of work for this program is set at item level. Records will be committed to the database when commit max counter defined in the restart control table is reached.

Design Assumptions

N/A

Sync Replenishment Franchise Orders (repl_wf_order_sync.ksh)

Module Name

repl_wh_order_sync.ksh

Description

Sync Replenishment Franchise Orders

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ksh

Catalog ID

RMS306

Wrapper Script

rmswrap_shell.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This module will serve as the wrapper for a package function which will check the crossdock orders created during replenishment and create franchise order records for any allocations where the destination location is a franchise store.

Restart/Recovery

N/A

Design Assumptions

N/A

Truck Splitting Optimization for Replenishment (rplsplit)

Module Name

rplsplit.pc

Description

Truck Splitting Optimization for Replenishment

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS318

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The purpose of this program is to select all the orders eligible for truck splitting, which are created by the replenishment programs. The orders that are eligible will be sent into the truck splitting logic and the resulting orders will be created.

The orders, which will be eligible for splitting, are as follows:

  • The order must have been created today by replenishment with the order approve indicator set to Yes.

  • The order must not have been already split.

  • The order must be a single location order and the location must be a warehouse.

  • The order must not have any allocations associated.

Orders will only be split if they meet criteria for splitting as defined in the supplier inventory management parameters.

Restart/Recovery

The logical unit of work for this program is set at order level. Records will be committed to the database when commit max counter defined in the restart control table is reached.

Design Assumptions

N/A

Update Replenishment Calculation Attributes (rplatupd)

Module Name

rplatupd.pc

Description

Update Replenishment Calculation Attributes

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS313

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The batch module reads replenishment attributes from the replenishment attribute item and location tables and processes the item location relationships to determine what replenishment attributes for what locations have to be updated. Replenishment attributes for each item/location are recorded in a separate table. Review cycle information is kept on another table, and the rejected records are written to the mass change rejections table for later reporting.

The pre-processing function of this batch program on prepost truncates records in the mass change rejections table.

The post-processing function of this batch program on prepost locks and deletes records form the various replenishment attributes tables.

Restart/Recovery

The logical unit of work is replenishment attribute id, item, and location. Records will be committed to the database when commit max counter defined in the restart control table is reached.

Design Assumptions

N/A

Update Replenishment Calculation Attributes by Item/Locrilmaint)

Module Name

rilmaint.pc

Description

Update Replenishment Calculation Attributes by Item/Location

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS311

Wrapper Script

rmswrap_multi.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This module transfers the replenishment attributes from the item/location replenishment updates table to the item/location replenishment table. Item/location replenishment updates is populated when certain attributes impacting replenishment are modified. These attributes are located across the entire system and are monitored for changes by a series of triggers and modules. Once a change is logged in the item/location replenishment updates table, this program will note the type of change and will update item/location replenishment table appropriately.

Restart/Recovery

The logical unit of work for this batch program is item, change type and location. Records are committed to the database once the maximum commit counter defined in the restart control table is reached.

Design Assumptions

N/A

Update Replenishment Order Taxes (batch_rplapprvgtax.ksh)

Module Name

batch_rplapprvgtax.ksh

Description

Update Replenishment Order Taxes

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ksh

Catalog ID

RMS194

Wrapper Script

N/A

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

This script calls a function to enable parallel execution via multiple thread calls compute taxes for approved replenishment orders. Computed taxes are inserted/updated into the order tax breakup table.

This batch should be run only for Global Tax (GTAX) configuration.

Restart/Recovery

The logical unit of work is a set of purchase orders. Purchase order numbers in the replenishment approval GTAX queue table are assigned a thread number given the number of slots.

The same table drives the restart and recovery as well. Purchase orders in a thread that successfully complete execution are deleted from replenishment approval GTAX queue. Any restart after a fatal error will include the failed purchase order numbers when assigning new threads.

Design Assumptions

This program should only be run in Global Tax (GTAX) installations.

Update Replenishment Size Profile (replsizeprofile)

Module Name

replsizeprofile.pc

Description

Update Replenishment Size Profile

Functional Area

Replenishment

Module Type

Business Processing

Module Technology

ProC

Catalog ID

RMS309

Wrapper Script

batch_replsizeprofile.ksh

Schedule

Oracle Retail Merchandising Batch Schedule

Design Overview

The batch module will do a total synchronization update of the Merchandising size profile table with data from the Allocation size profile table if the Allocation product is installed. It will also do a complete refresh of the size profile materialized view used by the replenishment attributes update batch and the replenishment attributes screen when size curves are applied to the items being replenished.

Restart/Recovery

N/A

Design Assumptions

N/A