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 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.

Integration High Level

Figure 20-2 Deals Management Integration High Level


Deals Management Integration High Level

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.

Schedule Overview

Figure 20-3 Deals Management Batch Schedule Overview


Deals Management Batch Schedule Overview

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.

Batches

The MFCS deals upload job, DEALUPLD_JOB, should be configured to execute with high frequency to assure that Deals are integrated into MFCS frequently.

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
SPDM_DEAL_REJECT

Triggered when user rejects a Deal.

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
SPDM_DEAL_CANCEL

Triggered when user cancels a Deal.

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

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


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