20 Deals Management
The Deals Management module is an application available in Supply Chain Hub. This chapter describes the implementation considerations and the operation details for this application.
Implementation Overview
Deals Management gives the possibility to create and maintain Deals and publish the Deals to MFCS before the start date.
Status Workflow
Figure 20-1 Deals Management Status Workflow

Deals Management follows a workflow path, and the status can change depending on:
- The user permissions
- The current status of the Deal
Deal Status
- Draft – Draft status is the initial status of a Deal and the prior status to being submitted. When the deal is submitted, the status is automatically updated to New. If the user rejects a Deal in Draft status, then new status is Rejected.
- Awaiting Retailer Approval – Awaiting Retailer Approval status is the prior status to being approved. If a Retailer user has approval permission and approve a Deal in Draft status the new status is Awaiting Retailer Approval (after running validations). If any user rejects the Deal, the new status is Rejected.
- Awaiting Supplier Approval – Awaiting Approved status is the new Deal status after the Deal has been approved by a Retailer user. While a Deal is in Awaiting Approval status it can be edited by a Supplier and Retailer users and the status goes back to New status, can be approved by a Supplier user, with approval permission, and the new status is Awaiting Processing or rejected and the new status is Rejected.
- Rejected – The Rejected status is for Deals that were either created (Draft status), submitted (New status) or approved by a Retailer user (Awaiting Approval status) previously and a user rejected them. Deal in Reject status can be updated and submitted again by a Retailer user and changes to New status. If a Retailer user approves a rejected Deal the new status is Awaiting Approval.
- Awaiting Processing – Awaiting Processing status is the new Deal status after the Deal has been approved by a Supplier user when the Deal is in Awaiting Approval status. While a Deal is in Awaiting Processing status it can be processed by the Publish Batch Process or canceled.
- Canceled – Canceled status is the new Deal status after the Deal has been canceled when the Deal is in Awaiting Processing status. After the Deal is in Canceled status no more actions can be applied to the Deal.
- Processing – This status is used while the Deal is being interfaced with MFCS, once the Deal is successfully processed by MFCS the status will change to either Approved or Pending MFCS (if the deal in MFCS is in Worksheet or Submitted).
- Active – This status represents when the Deal is Active in MFCS. The deal will be displayed with Active Status for Approved Deals between the Start and End Date of the Deal.
- Closed – The deal will move to this status once it has reached the End Date and is Closed by MFCS.
- Pending MFCS – This status is used when a Deal was interfaced to MFCS but is not Approved. This could be due to validations failing in MFCS, but the Deal has still been created, or if the Supplier Configuration in MFCS is set to always interface the Deals to a non Approved Status. In this Status users are expected to go to MFCS to finish the approval workflow process.
- Error – This status is used to indicate if issues were found while interfacing the deal to MFCS and should contact support to check.
Configuration
This section describes Deals Management configurations.
POM Configuration
Batch scheduler details with all batches, dependencies and frequencies can be downloaded following the steps in the Supply Chain Hub Frameworks section.
Other Cloud Services Configuration
This section describes implementation details that must be reviewed from Oracle Retail Merchandising System perspective.
Deal ids used in Deals Management module should not overlap with Deal ids created through other modes in MFCS such as Induction, Rest Services or MFCS UI.
System Options
The following MFCS System Option are being used in Deals Management.
TABLE | PARAMETER | DESCRIPTION |
---|---|---|
FUNCTIONAL_CONFIG_OPTIONS | ORG_UNIT_IND | This parameter will be used to determine which locations will be available for Deals creation. |
PROCUREMENT_UNIT_OPTIONS | DEAL_LEAD_DAYS | Number of days from today until deals can be integrated from Deals Management to MFCS. |
The following MFCS System Options need to be reviewed to ensure Deals integration works properly.
TABLE | PARAMETER | DESCRIPTION |
---|---|---|
FUNCTIONAL_CONFIG_OPTIONS | DEAL_IND | This column controls whether deals will be used within the system. It needs to be 'Y'. |
PROCUREMENT_UNIT_OPTIONS | CALC_NEGATIVE_INCOME | This field will determine whether income will be calculated or not when the income of the entire period is negative in deals. Recommendation is 'Y'. |
PROCUREMENT_UNIT_OPTIONS | CREDIT_MEMO_LEVEL | This indicator decides at what level the credit/debit memos will be posted to MFCS. Recommendation is 'D' Deal level. |
PROCUREMENT_UNIT_OPTIONS | DEAL_LEAD_DAYS | Number of days from today until deals can become active. For example, if this number is 2, deals can have a start date no earlier than 2 days from today's date. Recommendation at least 1. |
PURGE_CONFIG_OPTIONS | DEAL_HISTORY_MONTHS | Indicates the number of months that closed deals will be retained in RMS. Recommended to be reviewed with Deals Management purge configurations. |
Other Implementation Considerations
This section describes Deals Management implementation consideration.
Custom Validations
The module performs validations by implementing Custom Validation Groups of the Custom Validations Framework described in the Supply Chain Hub Frameworks section. The groups are listed below.
SPDM_DEAL_DRAFT
Triggered when user creates or saves a Deal.
All validation functions for this Custom Validation Group are available in ORCV_SPDM_CVAL_DEAL package.
FUNCTION | VALIDATION | SEQ NO |
---|---|---|
VALIDATE_SUPPLIER | Validate if It’s a valid supplier. | 1 |
VALIDATE_DEPARTMENT | Validate if it’s a valid department. | 2 |
VALIDATE_START_DATE | Validate if deal start date is valid. | 3 |
VALIDATE_END_DATE | Validate if deal end date is valid. | 4 |
VALIDATE_BILLING_TYPE | Validate if billing type is valid against system parameter SUPPORTED_BILLING_TYPE. | 5 |
VALIDATE_BILLBACK_METHOD | Validate if bill-back method is valid against code type DLBM. | 6 |
VALIDATE_PURCHASE_SALES_BASED | Validate if purchase-sales indicator is valid against code type DMBO. | 7 |
VALIDATE_BASED_ON | Validate if based on value is valid against code type DMBO. | 8 |
VALIDATE_REPORTING_LEVEL | Validate if reporting level is valid against code type DMRL. | 9 |
VALIDATE_MULTIPLE_THRSHLD_IND | Validate if multiple threshold indicator is valid for the billing type. | 10 |
VALIDATE_DEFAULT_CONTRIBUTION | Validate default contribution type against code type DMCT. | 11 |
VALIDATE_DEFAULT_DISCOUNT | Validate default contribution type against code type DMDI. | 12 |
VALIDATE_STATUS | Validate if deal current status is valid to be Saved. | 13 |
VALIDATE_ITEM_LOCATIONS | Validate if all items belong to the supplier of the deal and if the locations are valid. | 14 |
VALIDATE_ITEM_LOCATIONS_EXCEP | Validate if Items Locations Exceptions are valid. | 15 |
VALIDATE_PROMOTIONS | If is a VFP deal validate if there are promotions associated. | 16 |
VALIDATE_THRESHOLDS | Validate threshold values are valid. | 17 |
SPDM_DEAL_SUBMIT
Triggered when user submits a Deal for approval.
All validation functions for this Custom Validation Group are available in ORCV_SPDM_CVAL_DEAL package.
FUNCTION | VALIDATION | SEQ NO |
---|---|---|
VALIDATE_STATUS | Validate if deal current status is valid to be submitted | 1 |
VALIDATE_ITEM_LOCATIONS | Validate if all items belong to the supplier of the deal and if the locations are valid. | 2 |
VALIDATE_ITEM_LOCATIONS_EXCEP | Validate if Items Locations Exceptions are valid are valid to be submitted, | 3 |
VALIDATE_PROMOTIONS | If is a VFP deal validate if there are promotions associated. | 4 |
VALIDATE_THRESHOLDS | Validate threshold values are valid. | 5 |
VALIDATE_START_DATE | Validate Deal start date. | 6 |
VALIDATE_END_DATE | Validate Deal end data | 7 |
SPDM_DEAL_APPROVE
Triggered when user approves a Deal.
All validation functions for this Custom Validation Group are available in ORCV_SPDM_CVAL_DEAL package.
FUNCTION | VALIDATION | SEQ NO |
---|---|---|
VALIDATE_SUPPLIER | Validate if It’s a valid supplier. | 1 |
VALIDATE_DEPARTMENT | Validate if it’s a valid department. | 2 |
VALIDATE_START_DATE | Validate if deal start date is valid. | 3 |
VALIDATE_END_DATE | Validate if deal end date is valid. | 4 |
VALIDATE_BILLING_TYPE | Validate if billing type is valid against system parameter SUPPORTED_BILLING_TYPE. | 5 |
VALIDATE_BILLBACK_METHOD | Validate if bill-back method is valid against code type DLBM. | 6 |
VALIDATE_PURCHASE_SALES_BASED | Validate if purchase-sales indicator is valid against code type DMBO. | 7 |
VALIDATE_BASED_ON | Validate if based on value is valid against code type DMBO. | 8 |
VALIDATE_REPORTING_LEVEL | Validate if reporting level is valid against code type DMRL. | 9 |
VALIDATE_MULTIPLE_THRSHLD_IND | Validate if multiple threshold indicator is valid for the billing type. | 10 |
VALIDATE_DEFAULT_CONTRIBUTION | Validate default contribution type against code type DMCT. | 11 |
VALIDATE_DEFAULT_DISCOUNT | Validate default contribution type against code type DMDI. | 12 |
VALIDATE_STATUS | Validate if deal current status is valid to be Saved. | 13 |
VALIDATE_ITEM_LOCATIONS_EXCEP | Validate if all items belong to the supplier of the deal and if the locations are valid. | 14 |
VALIDATE_ITEM_LOCATIONS | Validate if Items Locations Exceptions are valid. | 15 |
VALIDATE_PROMOTIONS | If is a VFP deal validate if there are promotions associated. | 16 |
VALIDATE_THRESHOLDS | Validate threshold values are valid. | 17 |
Specific Batch Configuration
This section describes specific batch configurations.
Publish Deal Batch
Publish Deals Batch publishes Deals in status “Awaiting Processing” to Integration API when the VDATE is between start date - INT_DAYS_BEFORE_START and start date.
If the Deal is of type VFP the batch will check if Promotions are required to be created before the deal and will publish to the Integration API the Promotions. Only after Promotions are successfully create in MFCS/RPCS it will publish the Deal.
The Bill Back Deals use BILL_BACK_PERIOD defined at Supplier configuration level when publishing the Deals to MFCS.
- Job: ORCV_SPDM_PUB_DEAL_JOB
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
Batch default configuration (ORCV_BATCH_CONFIG):
COLUMN NAME | DEFAULT VALUES |
---|---|
PROGRAM_NAME | ORCV_SPDM_PUB_DEAL_JOB |
MAX_CHUNK_SIZE | 1000 |
MAX_CONCURRENT_THREADS | 4 |
RETRY_LOCK_ATTEMPTS | 3 |
RETRY_WAIT_TIME | 3 |
RETRY_MAX_ATTEMPTS_COUNT | 3 |
RETRY_ORDERED | N |
RETRY_IND | N |
Codes
Certain operations require codes to define the options available. Below you can find the list of code types available. The codes are defined in tables ORCV_CODE_HEAD and ORCV_CODE_DETAIL.
CODE TYPE | CODE TYPE DESCRIPTION |
---|---|
DMBO | Threshold Based On |
DMBP | Bill Back Period |
DMCT | Contribution Types |
DMDI | Discount Type |
DMEL | SPDM error level. To be used in the error screen. |
DMES | SPDM error source. To be used in the error screen. |
DMIR | Add Item List - Retailer |
DMIS | Add Item List - Supplier |
DMLI | Item Types |
DMLL | Location Types |
DMLR | Add Location - Retailer |
DMLS | Add Location - Supplier |
DMLT | Threshold Limit Types |
DMRC | Reason Codes |
DMRL | Deal Reporting Level |
DMSR | Add Location for VFP deals - Retailer |
DMSS | Add Location for VFP deals - Supplier |
DMST | Deal status |
Templates
Deals Management uses a spreadsheet download and upload process, developed as part of the Retail Supply Chain Frameworks, for creation, maintenance, and extraction of data. To support these processes there are some templates which must be configured, and several configurations should be reviewed as part of the implementation.
Template Deal
Template key: SPDM_DEAL
The required permissions per action for this template are the following:
Table 20-1 Template key: SPDM_DEAL
ACTION TYPE | ROLE NAME |
---|---|
Download | ORCV_SPDM_DEAL_APPR_JOB |
Download | ORCV_SPDM_DEAL_EDIT_JOB |
Download | ORCV_SPDM_DEAL_VIEW_JOB |
Download Blank | ORCV_SPDM_APP_JOB |
Upload | ORCV_SPDM_DEAL_APPR_JOB |
Upload | ORCV_SPDM_DEAL_EDIT_JOB |
Table 20-2 Worksheet Deal
ACTION | MANDATORY CELLS / FIELDS | NOTES |
---|---|---|
Create | Deal, Supplier, Start Date, End Date, Billing Type, Bill Back Method | Creates a new Deal with status Draft/New depending on Status column. |
Modify | Deal, Supplier, Start Date, End Date, Billing Type, Bill Back Method |
Modifies an existing Deal on Status Draft/New. If the user type is Retailer and the Status Deal is “Awaiting Approval” the Deal returns to “New” Status. |
Submit | Deal | Submit Deal, it means that Deal Status goes to “Submitted” Status. |
Approve | Deal |
Approve the Deal. If the user type is Retailer the Deal Status goes to “Awaiting Approval”. If the user type is Supplier the Deal Status goes to “Awaiting Processing”. |
Reject | Deal | Rejects the Deal. |
Cancel | Deal | Cancels the Deal. |
Table 20-3 Worksheet Item Location
ACTION | MANDATORY CELLS / FIELDS | NOTES |
---|---|---|
Create | Deal, Item type, Department | Creates a new itemloc for the department. |
Create | Deal, Item type, Department, Class | Creates a new itemloc for the Class. |
Create | Deal, Item type, Department, Class, Subclass | Creates a new itemloc for the Subclass. |
Create | Deal, Item type, Department, Class, Subclass, Item | Creates a new itemloc for the Item. |
Create | Deal, Item type, Department, Class, Subclass VPN | Creates a new itemloc for the corresponding VPN item. |
Create | Deal, Location type, Item list | Creates a new itemloc for the Item List. |
Create | Deal, Location type, Location | Creates a new itemloc for the Location. |
Create | Deal, Location type, Location list | Creates a new itemloc for the Location List. |
Create | Deal, Location type, Price zone | Creates a new itemloc for the Price Zone. |
Delete | Deal, Item Loc id | Deletes the itemloc. |
Table 20-4 Worksheet Exclusions
ACTION | MANDATORY CELLS / FIELDS | NOTES |
---|---|---|
Create | Deal, Item Loc id | Creates a new exclusion. |
Create | Department | Creates a new exclusion for the Department. |
Create | Department, Class | Creates a new exclusion for the Class. |
Create | Department, Class, Subclass | Creates a new exclusion for the Subclass. |
Create |
Location Type Location |
Creates a new exclusion for the Location. |
Delete | Deal, Item Loc id, Department | Deletes the Department exclusion. |
Delete | Deal, Item Loc id, Department, Class | Deletes the Class exclusion. |
Delete | Deal, Item Loc id, Department, Class, Subclass | Deletes the Subclass exclusion. |
Delete | Deal, Item Loc id, Department, Class, Subclass, Item | Deletes the Item exclusion. |
Delete | Location Type, Location | Deletes the Location exclusion. |
Table 20-5 Worksheet Promotions
ACTION | MANDATORY CELLS / FIELDS | NOTES |
---|---|---|
Create | Deal, Promotion id, Offer id | Creates a new promotion. |
Delete | Deal, Promotion id, Offer id | Deletes an existing promotion. |
Table 20-6 Worksheet Thresholds
ACTION | MANDATORY CELLS / FIELDS | NOTES |
---|---|---|
Create | Deal, Lower Limit, Upper Limit, Value | Creates a new threshold. |
Delete | Deal, Lower Limit, Upper Limit | Deletes an existing threshold. |
Codes
Certain operations require codes to define the options available at system level. Below you can find the list of code types available.
The codes are defined in the ORCV_S9T_CODE_HEAD and ORCV_S9T_CODE_DETAIL tables.
CODE TYPE | CODE TYPE DESCRIPTION |
---|---|
DMHA | Deals Management - Header Action |
DMLI | Deals Management - Item Type |
DMLL | Deals Management - Location Type |
DMST | Deals Management - Status |
References
Deals Management also uses the Queries module to enable communication between retailer and supplier users, details about Queries are available in the Supply Chain Hub Frameworks section.
Operations
This section describes Deals Management operations.
Integration by Module
Figure 20-4 Deals Management Integration by Module

STEP | DESCRIPTION |
---|---|
0 | RSCH Data Access of MFCS data |
1 | Promotion Java Service gets Promotions to be integrated to RPCS. |
2 | Promotion Java Service publishes Promotions to RPCS via Rest. |
3 | Deals Edidu Java Service gets Deals to be integrated to MFCS. |
4 | Deals Edidu Java Service sends produced files to Integration File Transfer. |
5 | Integration File Transfer publishes files to MFCS File Transfer Services (FTS) or MFCS shared folder (depending on configuration). |
6 | Deals Management calls Upload Download Java Service to transform files, depending on the request details, Upload Download Java Service might need to callback to Deals Management to get more details. |
7 | Event Alert Java Service checks if there are alerts to be triggered. |
Batch by Module
This section describes batches by module.
Publish Deal Batch
Authentication Method: OAuth2
BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/dealsmanagement/publish/deal/<URL_PATH>
URL PATH | REQUEST METHOD | REQUEST BODY | AFFECTED TABLES |
---|---|---|---|
start | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": "", "jobName": "ORCV_SPDM_PUB_DEAL_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS ORCV_SPDM_DEAL_HEAD ORCV_SPDM_DEAL_PROMO ORCV_DEAL_INT_ERR_SVC ORCV_DEAL_INT_HEAD_SVC ORCV_DEAL_INT_DETAIL_SVC ORCV_DEAL_IL_ITEM_SVC ORCV_DEAL_INT_COMP_PRM_SVC ORCV_DEAL_INT_THRESHOLD_SVC ORCV_PRICE_INT_ERR_SVC ORCV_PRICE_INT_PRM_HEAD_SVC ORCV_PRICE_INT_PRM_OF_SVC ORCV_PRICE_INT_PRM_OFR_SVC ORCV_PRICE_INT_PRM_OFR_ITM_SVC ORCV_PRICE_INT_PRM_OFLOC_SVC |
restart | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": <EXEC_ID>, "jobName": "ORCV_SPDM_PUB_DEAL_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS ORCV_SPDM_DEAL_HEAD ORCV_SPDM_DEAL_PROMO ORCV_DEAL_INT_ERR_SVC ORCV_DEAL_INT_HEAD_SVC ORCV_DEAL_INT_DETAIL_SVC ORCV_DEAL_IL_ITEM_SVC ORCV_DEAL_INT_COMP_PRM_SVC ORCV_DEAL_INT_THRESHOLD_SVC ORCV_PRICE_INT_ERR_SVC ORCV_PRICE_INT_PRM_HEAD_SVC ORCV_PRICE_INT_PRM_OF_SVC ORCV_PRICE_INT_PRM_OFR_SVC ORCV_PRICE_INT_PRM_OFR_ITM_SVC ORCV_PRICE_INT_PRM_OFLOC_SVC |
log | GET |
URL query parameters: /log?jobName=ORCV_SPDM_PUB_DEAL_JOB &executionId=<EXEC_ID>&logDate=YYYY-DD-MM |
N/A |
kill | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": <EXEC_ID>, "jobName": "ORCV_SPDM_PUB_DEAL_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS |
status | GET |
URL query parameters: /status?jobName=ORCV_SPDM_PUB_DEAL_JOB &executionId=<EXEC_ID>&logDate=YYYY-DD-MM |
N/A |