Replenishment
The following services are included in this functional area:
Inventory Request Upload Service
The following services are included in this functional area:
Create Inventory Requests
Business Overview
Merchandising receives requests for inventory using this service, which allows for items to be ordered by the store and fulfilled through Merchandising. Unlike store order replenishment, Merchandising fulfills inventory requests from the store regardless of replenishment review cycles, delivery dates, and any other factors that may restrict a request from being fulfilled.
For item/store combinations that are on the Store Order type of replenishment in Merchandising, orders will be placed using this service and then the replenishment process builds the recommended order quantity (ROQ) based on the store's requests. Requests that will not be reviewed prior to the date requested by the store are fulfilled through a one-off process (through this service) that creates warehouse transfers and/or purchase orders to fulfill the requested quantities.
For item/location combinations that are currently using other methods of replenishment in Merchandising, the store requested quantities will be added on top of the calculated recommended order quantities to increase the overall replenishment. It can also be used for item/store combinations not on replenishment in Merchandising. In these cases, the one-off process described above will be used to create purchase orders or transfers, utilizing attributes defined for the item/location.
Other validation notes:
-
Order quantities will be rounded using the store order multiple when an order is created for a warehouse or rounded to the case size if ordering from the supplier.
-
Up charges will always be applied to a transfer, if they are defined for the items with locations matching the transfer.
-
Merchandising will validate that all items belong to the same department when department level ordering (supplier) or department level transfers (warehouse) are being used.
-
The store must be open for ordering.
Availability During Nightly Batch Cycle
This service will not be available when batches affecting either inventory or cost are in-progress.
Input Payload Details
Table 5-936 Create - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of inventory request details. |
Table 5-937 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
requestId |
Yes |
Number (10) |
Used to build an error record when necessary. |
store |
Yes |
Number (10) |
The store ID which is requesting the item. The store must exist as a valid stockholding store in Merchandising. |
requestType |
Yes |
String (2) |
Defines the request type. Valid values are: Store order (SO) or Inventory Request (IR). If the request type is SO or blank, then replenishment method should be store order. If the request type is IR, delivery slot should be provided. |
details |
Yes |
Collection of Object |
References a collection of items on the inventory request. |
Table 5-938 Details - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Unique alphanumeric value that identifies the item to be requested. The item must be approved, orderable, and inventoried item; it must also be ranged to the location in the inventory request and must be active at that location. |
quantity |
Yes |
Number (12,4) |
This is the quantity being requested in standard UOM. |
unitOfPurchase |
Yes |
String (6) |
Unit of purchase must either be eaches (EA), case (CA), or pallet (PA). |
needDate |
Yes |
date |
This is the date that the store needs the item by. |
deliverySlotId |
No |
String (15) |
Specifies when the store requested quantity is needed at the store. Valid delivery slots are in the DELIVERY_SLOT table. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"requestId": 693933,
"store": 6000,
"requestType": "SO",
"details": [
{
"item": "100100076",
"quantity": 3,
"unitOfPurchase": "EA",
"needDate": "2001-12-31",
"deliverySlotId": null
}
]
}
]
}
Response Code: 400 (Error)
In case of error, the following standard error response will be returned. The element validationErrors
will be present when input payload or input parameters do not match the schema definition for this service.
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
]
}
Replenishment Scheduled Update Upload Service
This section describes the Replenishment Schedule service.
Business Overview
The primary role of these services is to create, modify, and delete scheduled replenishments and send them to Merchandising.
Create Scheduled Replenishment Updates
This section describes the Create Replenishment Schedule service.
Business Overview
This service creates scheduled replenishments by calling the SVCPROV_REPL package to load input data to the staging tables and then calling the core replenishment package to validate and insert data to the Merchandising tables.
Input Parameters
Table 5-939 ReplSchedCreModRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
schRplDesc |
String |
scheduledActiveDate |
Date |
replAction |
String |
item |
String |
diff1 |
String |
diff2 |
String |
diff3 |
String |
diff4 |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
autoRangeInd |
String |
activateDate |
Date |
deactivateDate |
Date |
presStock |
BigDecimal |
demoStock |
BigDecimal |
stockCat |
String |
replOrderCtrl |
String |
sourcingWh |
BigDecimal |
supplier |
BigDecimal |
originCountryId |
String |
pickupLeadTime |
BigDecimal |
whLeadTime |
BigDecimal |
replMethodInd |
String |
replMethod |
String |
optimizeInd |
String |
minStock |
BigDecimal |
maxStock |
BigDecimal |
incrPct |
BigDecimal |
minSupplyDays |
BigDecimal |
maxSupplyDays |
BigDecimal |
timeSupplyHorizon |
BigDecimal |
addLeadTimeInd |
String |
invSellingDays |
BigDecimal |
serviceLevelType |
String |
serviceLevel |
BigDecimal |
serviceLevelFloatingStd |
String |
lostSalesFactor |
BigDecimal |
terminalStockQty |
BigDecimal |
seasonId |
BigDecimal |
phaseId |
BigDecimal |
rejectStoreOrdInd |
String |
multRunsPerDayInd |
String |
tsfZeroSohInd |
String |
nonScalingInd |
String |
maxScaleValue |
BigDecimal |
sizeProfileInd |
String |
reviewCycle |
String |
updateDaysInd |
String |
mondayInd |
String |
tuesdayInd |
String |
wednesdayInd |
String |
thursdayInd |
String |
fridayInd |
String |
saturdayInd |
String |
sundayInd |
String |
primaryPackNo |
String |
defaultPackInd |
String |
removePackInd |
String |
mraUpdate |
String |
mraRestore |
String |
includeAdditionalDemand |
String |
storeUserAccess |
String |
storeToleranceType |
String |
storeToleranceLimit |
BigDecimal |
JSON Structure:
[
{"replAttrId": null,
"schRplDesc": null,
"scheduledActiveDate": "yyyy-MM-dd",
"replAction": null,
"item": null,
"diff1": null,
"diff2": null,
"diff3": null,
"diff4": null,
"dept": null,
"class1": null,
"subclass": null,
"loc": null,
"locType": null,
"autoRangeInd": null,
"activateDate": "yyyy-MM-dd",
"deactivateDate": "yyyy-MM-dd",
"presStock": null,
"demoStock": null,
"stockCat": null,
"replOrderCtrl": null,
"sourcingWh": null,
"supplier": null,
"originCountryId": null,
"pickupLeadTime": null,
"whLeadTime": null,
"replMethodInd": null,
"replMethod": null,
"optimizeInd":null,
"minStock": null,
"maxStock": null,
"incrPct": null,
"minSupplyDays": null,
"maxSupplyDays": null,
"timeSupplyHorizon": null,
"addLeadTimeInd": null,
"invSellingDays": null,
"serviceLevelType": null,
"serviceLevel": null,
"serviceLevelFloatingStd": null,
"lostSalesFactor": null,
"terminalStockQty": null,
"seasonId": null,
"phaseId": null,
"rejectStoreOrdInd": null,
"multRunsPerDayInd": null,
"tsfZeroSohInd": null,
"nonScalingInd": null,
"maxScaleValue": null,
"sizeProfileInd": null,
"reviewCycle": null,
"updateDaysInd": null,
"mondayInd": null,
"tuesdayInd": null,
"wednesdayInd": null,
"thursdayInd": null,
"fridayInd": null,
"saturdayInd": null,
"sundayInd": null,
"primaryPackNo": null,
"defaultPackInd": null,
"removePackInd": null,
"mraUpdate": null,
"mraRestore": null,
"includeAdditionalDemand": null,
"storeUserAccess": null,
"storeToleranceType": null,
"storeToleranceLimit": null}]
Output
Table 5-940 ReplStatusRDO
Parameter Name | Data Type |
---|---|
statusMsg |
String |
failReplTable |
List<ReplFailRDO> |
Table 5-941 ReplFailRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
item |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
effectiveDate |
Long |
errorMsg |
String |
The output will contain the status of the request including validation errors, if any.
JSON Structure: { "statusMsg": null, "failReplTable": [ { "replAttrId": null, "item": null, "dept": null, "class1": null, "subclass": null, "loc": null, "locType": null, "effectiveDate": null, "errorMsg": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
REPL_ATTR_UPDATE_HEAD |
Yes |
Yes |
No |
No |
REPL_ATTR_UPDATE_ITEM |
Yes |
Yes |
No |
No |
REPL_ATTR_UPDATE_LOC |
Yes |
Yes |
No |
No |
SVC_PROCESS_TRACKER |
Yes |
Yes |
Yes |
No |
CORESVC_REPL_ERR |
No |
Yes |
No |
No |
SVC_REPL_ATTR_UPDATE |
Yes |
Yes |
No |
Yes |
REPL_ITEM_LOC |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Manage Additional Demand in Replenishment Order Quantity (ROQ)
Business Overview
This service allows external systems to send the additional demand for the following replenishment methods: Time Supply, Time Supply - Issues, Time Supply - Seasonal, Dynamic, Dynamic - Issues, Dynamic - Seasonal. If the item/Location has additional demand enabled for these forecast based replenishment methods, then the forecasted demand will be augmented based on the additional demand at the location and the replenishment order quantity (ROQ) generated will be based on the overall demand.
This management service supports both create and update actions. After all field validations are completed successfully, the additional demand record in the message will be inserted, if the demand record does not exist for the given item/location/date or, if the additional demand exists, the additional demand quantity and unit of measure (UOM) fields will be updated. If the message contains zero in the additional demand quantity field for an existing record, the service will delete this record from the Merchandising table.
Input Payload Details
Table 5-942 Manage - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
collectionSize |
Yes |
Number (4) |
Number of items in the collection. |
items |
Yes |
Collection of Object |
References a collection of additional demand quantities. |
Table 5-943 Items - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
Yes |
String (25) |
Contains the Item for which additional demand needs to get added in ROQ. |
locationType |
Yes |
String (1) |
This indicates the type for the location. Valid values are S - Store and W - Warehouse. |
location |
Yes |
Number (10) |
Contains the location corresponding to the forecast information for the item. |
demandDate |
Yes |
date |
Contains the date for additional demand. |
additionalDemandQuantity |
Yes |
Number (12,4) |
This field contains the additional demand for the given item/location/date combination. |
additionalDemandUom |
No |
String (4) |
Indicates the unit of measure in which the additional demand is uploaded by the external system. When storing the additional demand in the database table, the additional demand is converted into item’s standard UOM. |
Table 5-944 ManageError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
No |
String (25) |
Contains the Item for which additional demand needs to get added in ROQ. |
locationType |
No |
String (1) |
This indicates the type for the location. Valid values are S - Store and W - Warehouse. |
location |
No |
Number (10) |
Contains the location corresponding to the forecast information for the item. |
demandDate |
No |
date |
Contains the date for additional demand. |
additionalDemandQuantity |
No |
Number (12,4) |
This field contains the additional demand for the given item/location/date combination. |
additionalDemandUom |
No |
String (4) |
Indicates the unit of measure in which the additional demand is uploaded by the external system. When storing the additional demand in the database table, the additional demand is converted into item’s standard UOM. |
errors |
No |
Array of String |
Holds the errors of the record. |
Sample Input Message
{
"collectionSize": 1,
"items": [
{
"item": "101450060",
"locationType": "S",
"location": 1131,
"demandDate": "2001-12-31",
"additionalDemandQuantity": 60,
"additionalDemandUom": "EA"
}
]
}
Response Code: 400 (Error)
In case of an error, the following standard error response is returned. The element validationErrors
is
present when input payload or input parameters do not follow the schema definition for this service. The element businessError
is present if the payload passes schema validation but an exception is caught while processing the business logic.
Table 5-945 ManageError - Object. See list of elements for detail
Element Name | Required | Data Type | Description |
---|---|---|---|
item |
No |
String (25) |
Contains the Item for which additional demand needs to get added in ROQ. |
locationType |
No |
String (1) |
This indicates the type for the location. Valid values are S - Store and W - Warehouse. |
location |
No |
Number (10) |
Contains the location corresponding to the forecast information for the item. |
demandDate |
No |
date |
Contains the date for additional demand. |
additionalDemandQuantity |
No |
Number (12,4) |
This field contains the additional demand for the given item/location/date combination. |
additionalDemandUom |
No |
String (4) |
Indicates the unit of measure in which the additional demand is uploaded by the external system. When storing the additional demand in the database table, the additional demand is converted into item’s standard UOM. |
errors |
No |
Array of String |
Holds the errors of the record. |
Sample Error Message
{
"status": "ERROR",
"message": "Error found in validation of input payload",
"validationErrors": [
{
"error": "must be one of Y, N",
"field": "createRecord.arg0.approveInd",
"inputValue": "X"
}
],
"businessError": [
{
"item": "101450060",
"locationType": "S",
"location": 1131,
"demandDate": "2001-12-31",
"additionalDemandQuantity": 60,
"additionalDemandUom": "EA",
"errors": [
"String"
]
}
]
}
Delete Scheduled Replenishment Updates
This section describes the Delete Replenishment Schedule service.
Business Overview
This service deletes scheduled replenishments by calling the SVCPROV_REPL package to load input to the staging tables and then calling the core replenishment package to validate and delete data from the Merchandising tables.
Input Parameters
Table 5-946 ReplSchedDelRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
item |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
JSON Structure:
[
{
"replAttrId": null,
"item": null,
"dept": null,
"class1": null,
"subclass": null,
"loc": null,
"locType": null
}
]
Output
Table 5-947 ReplStatusRDO
Parameter Name | Data Type |
---|---|
statusMsg |
String |
failReplTable |
List<ReplFailRDO> |
The output will contain the status of the request including validation errors, if any.
Table 5-948 ReplFailRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
item |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
effectiveDate |
Long |
errorMsg |
String |
JSON Structure: { "statusMsg": null, "failReplTable": [ { "replAttrId": null, "item": null, "dept": null, "class1": null, "subclass": null, "loc": null, "locType": null, "effectiveDate": null, "errorMsg": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
REPL_ATTR_UPDATE_HEAD |
Yes |
Yes |
No |
Yes |
REPL_ATTR_UPDATE_ITEM |
Yes |
Yes |
No |
Yes |
REPL_ATTR_UPDATE_LOC |
Yes |
Yes |
No |
Yes |
SVC_PROCESS_TRACKER |
Yes |
Yes |
Yes |
No |
CORESVC_REPL_ERR |
No |
Yes |
No |
No |
SVC_REPL_ATTR_UPDATE |
Yes |
Yes |
No |
Yes |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |
Update Scheduled Replenishment Updates
This section describes the Modify Replenishment service.
Business Overview
This service modifies scheduled replenishments by calling the SVCPROV_REPL package to load input to the staging tables and then calling the core replenishment package to validate and process data to the Merchandising tables.
Input Parameters
Table 5-949 ReplSchedCreModRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
schRplDesc |
String |
scheduledActiveDate |
Date |
replAction |
String |
item |
String |
diff1 |
String |
diff2 |
String |
diff3 |
String |
diff4 |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
autoRangeInd |
String |
activateDate |
Date |
deactivateDate |
Date |
presStock |
BigDecimal |
demoStock |
BigDecimal |
stockCat |
String |
replOrderCtrl |
String |
sourcingWh |
BigDecimal |
supplier |
BigDecimal |
originCountryId |
String |
pickupLeadTime |
BigDecimal |
whLeadTime |
BigDecimal |
replMethodInd |
String |
replMethod |
String |
optimizeInd |
String |
minStock |
BigDecimal |
maxStock |
BigDecimal |
incrPct |
BigDecimal |
minSupplyDays |
BigDecimal |
maxSupplyDays |
BigDecimal |
timeSupplyHorizon |
BigDecimal |
addLeadTimeInd |
String |
invSellingDays |
BigDecimal |
serviceLevelType |
String |
serviceLevel |
BigDecimal |
serviceLevelFloatingStd |
String |
lostSalesFactor |
BigDecimal |
terminalStockQty |
BigDecimal |
seasonId |
BigDecimal |
phaseId |
BigDecimal |
rejectStoreOrdInd |
String |
multRunsPerDayInd |
String |
tsfZeroSohInd |
String |
nonScalingInd |
String |
maxScaleValue |
BigDecimal |
sizeProfileInd |
String |
reviewCycle |
String |
updateDaysInd |
String |
mondayInd |
String |
tuesdayInd |
String |
wednesdayInd |
String |
thursdayInd |
String |
fridayInd |
String |
saturdayInd |
String |
sundayInd |
String |
primaryPackNo |
String |
defaultPackInd |
String |
removePackInd |
String |
mraUpdate |
String |
mraRestore |
String |
includeAdditionalDemand |
String |
storeUserAccess |
String |
storeToleranceType |
String |
storeToleranceLimit |
BigDecimal |
JSON Structure:
[
{
"replAttrId": null,
"schRplDesc": null,
"scheduledActiveDate": "yyyy-MM-dd",
"replAction": null,
"item": null,
"diff1": null,
"diff2": null,
"diff3": null,
"diff4": null,
"dept": null,
"class1": null,
"subclass": null,
"loc": null,
"locType": null,
"autoRangeInd": null,
"activateDate": "yyyy-MM-dd",
"deactivateDate": "yyyy-MM-dd",
"presStock": null,
"demoStock": null,
"stockCat": null,
"replOrderCtrl": null,
"sourcingWh": null,
"supplier": null,
"originCountryId": null,
"pickupLeadTime": null,
"whLeadTime": null,
"replMethodInd": null,
"replMethod": null,
"optimizeInd":null,
"minStock": null,
"maxStock": null,
"incrPct": null,
"minSupplyDays": null,
"maxSupplyDays": null,
"timeSupplyHorizon": null,
"addLeadTimeInd": null,
"invSellingDays": null,
"serviceLevelType": null,
"serviceLevel": null,
"serviceLevelFloatingStd": null,
"lostSalesFactor": null,
"terminalStockQty": null,
"seasonId": null,
"phaseId": null,
"rejectStoreOrdInd": null,
"multRunsPerDayInd": null,
"tsfZeroSohInd": null,
"nonScalingInd": null,
"maxScaleValue": null,
"sizeProfileInd": null,
"reviewCycle": null,
"updateDaysInd": null,
"mondayInd": null,
"tuesdayInd": null,
"wednesdayInd": null,
"thursdayInd": null,
"fridayInd": null,
"saturdayInd": null,
"sundayInd": null,
"primaryPackNo": null,
"defaultPackInd": null,
"removePackInd": null,
"mraUpdate": null,
"mraRestore": null
"storeUserAccess": null,
"storeToleranceType": null,
"storeToleranceLimit": null}]
Output
Table 5-950 ReplStatusRDO
Parameter Name | Data Type |
---|---|
statusMsg |
String |
failReplTable |
List<ReplFailRDO> |
Table 5-951 ReplFailRDO
Parameter Name | Data Type |
---|---|
replAttrId |
BigDecimal |
item |
String |
dept |
BigDecimal |
class1 |
BigDecimal |
subclass |
BigDecimal |
loc |
BigDecimal |
locType |
String |
effectiveDate |
Long |
errorMsg |
String |
The output will contain the status of the request including validation errors, if any.
JSON Structure: { "statusMsg": null, "failReplTable": [ { "replAttrId": null, "item": null, "dept": null, "class1": null, "subclass": null, "loc": null, "locType": null, "effectiveDate": null, "errorMsg": null, "links": [], "hyperMediaContent": { "linkRDO": [] } } ], "links": [], "hyperMediaContent": { "linkRDO": [] } }
Table Impact
TABLE | SELECT | INSERT | UPDATE | DELETE |
---|---|---|---|---|
REPL_ATTR_UPDATE_HEAD |
Yes |
Yes |
No |
No |
REPL_ATTR_UPDATE_ITEM |
Yes |
Yes |
No |
No |
REPL_ATTR_UPDATE_LOC |
Yes |
Yes |
No |
No |
SVC_PROCESS_TRACKER |
Yes |
Yes |
Yes |
No |
CORESVC_REPL_ERR |
No |
Yes |
No |
No |
SVC_REPL_ATTR_UPDATE |
Yes |
Yes |
No |
Yes |
REPL_ITEM_LOC |
Yes |
No |
No |
No |
ITEM_MASTER |
Yes |
No |
No |
No |
ITEM_SUPP_COUNTRY |
Yes |
No |
No |
No |
ITEM_LOC |
Yes |
No |
No |
No |
SYSTEM_OPTIONS |
Yes |
No |
No |
No |
V_STORE |
Yes |
No |
No |
No |
V_WH |
Yes |
No |
No |
No |
JOB_AUDIT_LOGS |
No |
Yes |
No |
No |
JOB_AUDIT_PAYLOAD |
No |
Yes |
No |
No |