21 Supplier Penalties
The Supplier Penalties module is an application available in Supply Chain Hub. This chapter describes the implementation considerations and the operation details for this application.
Implementation Overview
Supplier Penalties gives the possibility to automate the creation of penalties that will translate into a Debit Memo/Credit Note Request, generated to the supplier.
Status Workflow
Figure 21-1 Supplier Penalties Status Workflow

Supplier Penalties follows a workflow path, and the status can change depending on:
- The user permissions
- The current status of the Penalty
Penalty Status
- New Status is a temporary status while the Penalty is being created, once submitted this Status will not be saved.
- Awaiting Retailer Approval – Awaiting Retailer Approval status is the new Penalty status after the Penalty has been created by a Retailer user or the Batch. While a Penalty is in Awaiting Approval status it can be edited by Retailer users and the status stays the same or can be approved by a Retailer user, with approval permission, and the new status is Awaiting Supplier Approval or Approved if there is no need for Supplier Approval, or rejected and the new status is Rejected.
- Awaiting Supplier Approval – Awaiting Supplier Approval status is the Penalty status after the Penalty has been approved by a Retailer user. While a Penalty is in Awaiting Supplier Approval status it can be approved by a Supplier user, with approval permission, and the new status is Approved or rejected, and the new status is Rejected by Supplier.
- Approved – The Approved status is for Penalties that were approved by a Retailer user (Awaiting Retailer Approval status) previously or approved by a Supplier user (Awaiting Supplier Approval status).
- Rejected – The Rejected status is for Penalties that were either created (Awaiting Retailer Approval status) previously and a retailer user rejected them. After the Penalty is in Rejected status no more actions can be applied to the Penalty.
- Canceled – Canceled status is the new Penalty status after the Penalty has been Rejected by Supplier when the Penalty is in Awaiting Supplier Approval status and the Retailer accepts the rejection. After the Penalty is in Canceled status no more actions can be applied to the Penalty.
- Closed – The penalty will move to this status once it been integrated in MFCS.
- Error – This status is used to indicate if issues were found while interfacing the penalty to MFCS and should contact support to check.
Configuration
This describes Supplier Penalties 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 cloud services configurations.
System Options
The following MFCS System Option are being used in Supplier Penalties.
TABLE | PARAMETER | DESCRIPTION |
---|---|---|
IM_SUPPLIER_OPTIONS | SEND_DEBIT_MEMO | This parameter will be used to determine which type of document should be generated in a penalty. |
IM_SUPPLIER_OPTIONS |
EXCL_PRFX_ON_EXTL_ SRCD_DOCS |
Indicates whether the system will include a prefix on the document identifier for externally generated documents. Before making any changes all pending integrations must be completed. |
Other Implementation Considerations
This section describes Supplier Penalties implementation considerations.
Notifications and Alerts
Supplier Penalties uses the Events Framework to inform users about events occurred in scope of Supplier Penalties with notifications and alerts. Below is the list of notifications available. The notifications are implemented via the Rule Engine Framework documented in the Supply Chain Hub Frameworks section.
Notifications
SPPY_EVENT_NEW_PENALTY
New Penalty created.
Property | Value |
---|---|
Event Name | SPPY_EVENT_NEW_PENALTY |
Event Type | ORCV_SPPY_EVENT_NEW_PENALTY |
Description | Triggered for new Penalties being created. |
Trigger | UI/Rule Engine Batch |
Target Users | The retailer and supplier users will receive a notification. |
SPPY_EVENT_REJ_PENALTY
Penalty rejected.
Property | Value |
---|---|
Event Name | SPPY_EVENT_REJ_PENALTY |
Event Type | ORCV_SPPY_EVENT_REJ_PENALTY |
Description | Triggered for Penalties being rejected. |
Trigger | UI/Rule Engine Batch |
Target Users | The retailer and supplier users will receive a notification. |
Alerts
SPPY_EVENT_PENALTIES_CHANGING
New penalties have been created or changed status.
Property | Value |
---|---|
Event Name | SPPY_EVENT_PENALTIES_CHANGING |
Event Type | ORCV_ SPPY_EVENT_PENALTIES_CHANGING |
Alert Type | |
Description | A Penalty was created or changed status. |
Trigger | UI/S9T |
Target Users | The retailer users will receive an e-mail. |
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 listed below can be used to add Custom Validations for Penalties.
Group Id | Executed When |
---|---|
SPPY_PENALTY_APPROVE | Supplier Penalties approve action. |
SPPY_PENALTY_CANCEL | Supplier Penalties cancel action. |
SPPY_PENALTY_CREATE | Supplier Penalties create action. |
SPPY_PENALTY_EDIT | Supplier Penalties edit action. |
SPPY_PENALTY_REJECT | Supplier Penalties reject action. |
Specific Batch Configuration
This section describes specific batch configurations.
Early Late Shipment Batch
The Early Late Shipment batch generates Penalties for received shipments. For all shipments that are in received status and were not yet previously processed, this batch calls the manage function of SPPY, providing the required information for the penalty creation. This batch uses the Rule Engine framework.
- Job: ORCV_RLEG_SPPY_EARLY_LATE_SHIP_JOB
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
This batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section with the following configurations.
Rule default configuration (ORCV_RLEG_RULE):
RULE KEY | RULE NAME | PROGRAM_NAME | APP ALIAS | RULE MODE |
---|---|---|---|---|
SPPY_EARLY_LATE_SHIP | Early Late Shipment | ORCV_SPPY_RLEG_EARLY_LATE_SHIP | SPPY | BATCH |
Rule default parameters (ORCV_RLEG_PARAMETERS):
PARAMETER | DESCRIPTION | VALUE 1 | VALUE 2 | VALUE 3 | VALUE 4 |
---|---|---|---|---|---|
PROCESS_AFTER_DAYS | Indicates the number of days after receive data to process. | 10 | NA | NA | NA |
REQUIRES_RETAILER_APPROVAL | Indicates if Retailer Approval is Needed. | Y | NA | NA | NA |
Batch default configuration (ORCV_BATCH_CONFIG):
COLUMN NAME | DEFAULT VALUES |
---|---|
PROGRAM_NAME | ORCV_RLEG_SPPY_EARLY_LATE_SHIP |
MAX_CHUNK_SIZE | 1 |
MAX_CONCURRENT_THREADS | 4 |
RETRY_LOCK_ATTEMPTS | 3 |
RETRY_WAIT_TIME | 3 |
RETRY_MAX_ATTEMPTS_COUNT | 3 |
RETRY_ORDERED | N |
RETRY_IND | N |
QA Defect Batch
- Job: ORCV_RLEG_SPPY_QA_DEFECT_JOB
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
This batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section with the following configurations.
Rule default configuration (ORCV_RLEG_RULE):
RULE KEY | RULE NAME | PROGRAM_NAME | APP ALIAS | RULE MODE |
---|---|---|---|---|
SPPY_QA_DEFECT | QA Defect | ORCV_SPPY_RLEG_QA_DEFECT | SPPY | BATCH |
Rule default parameters (ORCV_RLEG_PARAMETERS):
PARAMETER | DESCRIPTION | VALUE 1 | VALUE 2 | VALUE 3 | VALUE 4 |
---|---|---|---|---|---|
REQUIRES_RETAILER_APPROVAL | Indicates if Retailer Approval is Needed. | Y | NA | NA | NA |
Batch default configuration (ORCV_BATCH_CONFIG):
COLUMN NAME | DEFAULT VALUES |
---|---|
PROGRAM_NAME | ORCV_RLEG_SPPY_QA_DEFECT |
MAX_CHUNK_SIZE | 1 |
MAX_CONCURRENT_THREADS | 4 |
RETRY_LOCK_ATTEMPTS | 3 |
RETRY_WAIT_TIME | 3 |
RETRY_MAX_ATTEMPTS_COUNT | 3 |
RETRY_ORDERED | N |
RETRY_IND | N |
Cancel PO Batch
The Cancel PO batch generates Penalties for POs that have quantity canceled. For all POs that have quantity canceled and were not yet previously processed, this batch calls the manage function of SPPY, providing the required information for the penalty creation. This batch uses the Rule Engine framework.
- Job: ORCV_RLEG_SPPY_CANCEL_PO_JOB
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
This batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section with the following configurations.
Rule default configuration (ORCV_RLEG_RULE):
RULE KEY | RULE NAME | PROGRAM_NAME | APP ALIAS | RULE MODE |
---|---|---|---|---|
SPPY_CANCEL_PO | PO Cancelled | ORCV_SPPY_RLEG_CANCEL_PO | SPPY | BATCH |
Rule default parameters (ORCV_RLEG_PARAMETERS):
PARAMETER | DESCRIPTION | VALUE 1 | VALUE 2 | VALUE 3 | VALUE 4 |
---|---|---|---|---|---|
REQUIRES_RETAILER_APPROVAL | Indicates if Retailer Approval is Needed. | Y | NA | NA | NA |
CANCELLED_CODE | Cancel Code configured to generate Cancelled POs Penalties. | V | NA | NA | NA |
Batch default configuration (ORCV_BATCH_CONFIG):
COLUMN NAME | DEFAULT VALUES |
---|---|
PROGRAM_NAME | ORCV_RLEG_SPPY_CANCEL_PO |
MAX_CHUNK_SIZE | 1 |
MAX_CONCURRENT_THREADS | 4 |
RETRY_LOCK_ATTEMPTS | 3 |
RETRY_WAIT_TIME | 3 |
RETRY_MAX_ATTEMPTS_COUNT | 3 |
RETRY_ORDERED | N |
RETRY_IND | N |
Penalties Update IMCS IDs
The Penalties Update IMCS IDs updates the IMCS ids in Supplier Penalties table ORCV_SPPY_PENALTY_HEAD.
- Job: ORCV_SPPY_UPD_IMCS_ID_JOB
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
Penalties Events Changes Batch
Batch job to check if there are Penalties pending user actions and creates Alerts.
- Job: ORCV_RLEG_SPPY_EVT_CHG_PENALTY
- Frequency: Ad-hoc
- Dependency: None
- Inter Scheduler Dependency: None
Batch default configuration (ORCV_BATCH_CONFIG):
Column Name | Default Values |
---|---|
PROGRAM_NAME | ORCV_RLEG_SPPY_EVT_CHG_PENALTY |
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 | Y |
Rule Attributes
Rule Attributes are necessary to define the attributes that need to generate penalties via batch. Listed below are the dynamic grid column mapping for each rule.
Early Late Shipment Rule
(ORCV_RLEG_MAP_ATTR_HEAD):
RULE KEY | VIEW NAME | VALIDATION FUNC |
---|---|---|
SPPY_EARLY_LATE_SHIP | ORCV_V_SPPY_RLEG_EARL_LAT_SHIP | ORCV_SPPY_RLEG_RULE_ATTR_VAL.VALIDATE_RULE_ATTRIBUTES |
(ORCV_RLEG_MAP_ATTR_DETAIL):
SEQ | COLUMN ATTR | label apex | type | list vals | required | default value | max size |
---|---|---|---|---|---|---|---|
1 | NUMBER_1 | Supplier | SELECTLIST | ORCV_V_SPPY_RLEG_SUPP_TL | 0 | NULL | NULL |
2 | VARCHAR_1 | Order Context | SELECTLIST | ORCV_V_SPPY_RLEG_PO_TYPE_TL | 0 | NULL | NULL |
3 | NUMBER_2 | Penalty % | NUMBER | NULL | 1 | NULL | NULL |
4 | VARCHAR_2 | Early / Late | SELECTLIST | ORCV_V_SPPY_RLEG_EL_TYPE_TL | 1 | NULL | NULL |
5 | NUMBER_3 | Number Days | NUMBER | NULL | 1 | NULL | NULL |
QA Defect Rule
(ORCV_RLEG_MAP_ATTR_HEAD):
RULE KEY | VIEW NAME | VALIDATION FUNC |
---|---|---|
SPPY_QA_DEFECT | ORCV_V_SPPY_RLEG_QA_DEFECT | ORCV_SPPY_RLEG_RULE_ATTR_VAL.VALIDATE_RULE_ATTRIBUTES |
(ORCV_RLEG_MAP_ATTR_DETAIL):
SEQ | COLUMN ATTR | label apex | type | list vals | required | default value | max size |
---|---|---|---|---|---|---|---|
1 | NUMBER_1 | Supplier | SELECTLIST | ORCV_V_SPPY_RLEG_SUPP_TL | 0 | NULL | NULL |
2 | VARCHAR_1 | Order Context | SELECTLIST | ORCV_V_SPPY_RLEG_PO_TYPE_TL | 0 | NULL | NULL |
3 | NUMBER_2 | Penalty % | NUMBER | NULL | 1 | NULL | NULL |
4 | NUMBER_3 | Defect Threshold % | NUMBER | NULL | 1 | NULL | NULL |
Cancel PO Rule
(ORCV_RLEG_MAP_ATTR_HEAD):
RULE KEY | VIEW NAME | VALIDATION FUNC |
---|---|---|
SPPY_CANCEL_PO | ORCV_V_SPPY_RLEG_PO_CANCEL | ORCV_SPPY_RLEG_RULE_ATTR_VAL.VALIDATE_RULE_ATTRIBUTES |
(ORCV_RLEG_MAP_ATTR_DETAIL):
SEQ | COLUMN ATTR | label apex | type | list vals | required | default value | max size |
---|---|---|---|---|---|---|---|
1 | NUMBER_1 | Supplier | SELECTLIST | ORCV_V_SPPY_RLEG_SUPP_TL | 0 | NULL | NULL |
2 | VARCHAR_1 | Order Context | SELECTLIST | ORCV_V_SPPY_RLEG_PO_TYPE_TL | 0 | NULL | NULL |
3 | NUMBER_2 | Penalty % | NUMBER | NULL | 1 | NULL | NULL |
4 | NUMBER_3 | Defect Threshold % | NUMBER | NULL | 1 | NULL | NULL |
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 |
---|---|
PBOA | Penalty Based On - Automatic |
PHBO | Penalty Based On |
PHHR | Penalty Historic Reasons |
PHIL | Add Item List |
PHRS | Penalty Reason |
PHST | Penalty Status |
PRRA | Requires Retailer Approval |
PRSA | Requires Supplier Approval |
PSEL | Early Late Shipment Values |
References
Supplier Penalties 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 Supplier Penalties operations.
Integration by Module
Figure 21-4 Supplier Penalties Integration by Module

STEP | DESCRIPTION |
---|---|
0 | RSCH Data Access of MFCS data |
1 | Finance Edidu Java Services gets Finance Documents to be integrated to IMCS |
2 | Finance Edidu Java Services sends produced files to Integration File Transfer. |
3 | Integration File Transfer publishes files to IMCS File Transfer Services (FTS) or MFCS shared folder (depending on configuration). |
4 | Event Alert Java Service checks if there are alerts to be triggered. |
Batch by Module
This section describes Supplier Penalties batches.
Early Late Shipment Batch
The Early Late Shipment batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section. To execute this batch call Rule Engine Web Service with Rule Key SPPY_EARLY_LATE_SHIP.
QA Defect Batch
The QA Defect batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section. To execute this batch call Rule Engine Web Service with Rule Key SPPY_QA_DEFECT.
Cancel PO Batch
The Cancel PO batch uses the Rule Engine Framework described in the Supply Chain Hub Frameworks section. To execute this batch call Rule Engine Web Service with Rule Key SPPY_CANCEL_PO. Penalties Update IMCS IDs
Authentication Method: OAuth2
BaseURL: https://<BASE_URL/ords/mfcs/orcv/common/batch/<URL_PATH>
URL PATH | REQUEST METHOD | REQUEST BODY | AFFECTED TABLES |
---|---|---|---|
start | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": "", "jobName": "ORCV_SPPY_UPD_IMCS_ID_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS ORCV_SPPY_PENALTY_HEAD ORCV_FIN_INT_DOC_XREF |
restart | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": <EXEC_ID>, "jobName": "ORCV_SPPY_UPD_IMCS_ID_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS ORCV_SPPY_PENALTY_HEAD ORCV_FIN_INT_DOC_XREF |
log | GET |
URL query parameters: /log?jobName=ORCV_SPPY_UPD_IMCS_ID_JOB &executionId=<EXEC_ID>&logDate=YYYY-DD-MM |
N/A |
kill | POST |
{ "cycleName": "", "flowName": "", "processName": "", "async": "", "executionId": <EXEC_ID>, "jobName": "ORCV_SPPY_UPD_IMCS_ID_JOB", "agentExecutionId": "", "parameters": "" } |
ORCV_BATCH_STATUS_CONTROL ORCV_THREAD_CONTROL ORCV_BATCH_AUDIT_STATUS |
status | GET |
URL query parameters: /status?jobName= ORCV_SPPY_UPD_IMCS_ID_JOB &executionId=<EXEC_ID>&logDate=YYYY-DD-MM |
N/A |