18 Supplier Performance

This section describes the common functionality and configurations available for Supplier Performance.

Implementation Overview

This section provides an implementation overview.

Functionality

The Supplier Performance module is an application designed to monitor the relationship and performance of a Supplier.

The application was designed for Retailer users only and provides:

  • Automatic calculation of major KPIs
  • Maintain and record questionnaires for non-automatic KPIs

Configuration

This section describes Supplier Performance 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 18-1 Supplier Performance Batch Schedule Overview


Supplier Performance Batch Schedule Overview

Other Implementation Considerations

This section contains Supplier Performance implementation considerations.

Specific Batch Configuration

This section describes specific batch configurations.

On Time Delivery

This batch will compare a Shipment Estimated Arrival Date (or PO Not after date if no Estimated Arrival Date exists) with the first receipt date of an ASN.

  • Job: ORCV_SPPF_ON_TIME_DLV_JOB
  • Frequency: Nightly
  • Dependency: None
  • Inter Scheduler Dependency: MFCS.SQLSTAGE_JOB

Batch configuration table: ORCV_BATCH_CONFIG

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_ON_TIME_DLV_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
Quantity Compliance

This batch will compare the Shipment Expected Quantity vs Received Quantity.

  • Job: ORCV_SPPF_QTY_COMP_JOB
  • Frequency: Nightly
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch configuration table: ORCV_BATCH_CONFIG

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_QTY_COMP_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
Invoice Compliance

This batch will calculate the number of Merchandise Invoices with discrepancies vs the total amount of Merchandise Invoices from the Supplier.

  • Job: ORCV_SPPF_INVC_COMP_JOB
  • Frequency: Nightly
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch configuration table: ORCV_SPPF_INVC_COMP_JOB

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_INVC_COMP_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
Return Percentage

This batch will calculate the % of RTVs vs the total PO intake on the last SCORE_AVG_DAYS at the time the refresh is performed.

  • Job: ORCV_SPPF_RETURN_PCT_JOB
  • Frequency: Nightly
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch configuration table: ORCV_BATCH_CONFIG

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_RETURN_PCT_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
Defect Percentage

This batch will calculate the % of Defects vs the total PO intake on the last SCORE_AVG_DAYS at the time the refresh is performed.

  • Job: ORCV_SPPF_DEFECT_PCT_JOB
  • Frequency: Nightly
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch configuration table: ORCV_BATCH_CONFIG

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_DEFECT_PCT_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
Overall Compliance

This batch will calculate the score for each Supplier of each metric along with an overall score of the last days based on SCORE_AVG_DAYS System Parameter.

  • Job: ORCV_SPPF_OVERALL_COMP_JOB
  • Frequency: Nightly
  • Dependency: ORCV_SPPF_ON_TIME_DLV_JOB, ORCV_SPPF_QTY_COMP_JOB, ORCV_SPPF_INVC_COMP_JOB, ORCV_SPPF_RETURN_PCT_JOB, ORCV_SPPF_DEFECT_PCT_JOB
  • Inter Scheduler Dependency: None

Batch configuration table: ORCV_BATCH_CONFIG

COLUMN NAME DEFAULT VALUES
PROGRAM_NAME ORCV_SPPF_OVERALL_COMP_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
Materialized Views

This application requires some results to be materialized in tables using the Materialized View Framework described in the Supply Chain Hub Frameworks section, below is the list for this application. Materialized views used in Supplier Performance are listed in this section.

ORCV_MV_SPPF_SUP_T_ORD

Returns all Total count, value and last creation date of completed Orders with status C and Total count, value and last creation date of open Orders status A, by supplier. Value currency is on MFCS system configuration options reference currency. Used by the Supplier Performance homepage.

Pre-Dependencies: ORCV_SPPF_OVERALL_COMP_JOB

Post-Dependencies: ORCV_MV_SPPF_SUP_ORDERS_JOB

Frequency: Ad-hoc, Nightly

ORCV_MV_SPPF_SUP_ORDERS

Returns the order number, status, supplier, currency code, received and not after date, total value, quantity ordered and received for all supplier orders. Used on Supplier Performance page.

Pre-Dependencies: ORCV_MV_SPPF_SUP_T_ORD_JOB

Post-Dependencies: None

Frequency: Ad-hod, Nightly

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_CODE_HEAD and ORCV_CODE_DETAIL tables.

CODE TYPE CODE TYPE DESCRIPTION
SPCL Supplier Performance Classification, to be used on the dashboard screen.
SPMT Supplier Performance Metrics, to be used on the dashboard screen.
SPRT Supplier Performance Ratings.

Templates

Supplier Performance uses a spreadsheet download and upload process, developed as part of the Retail Supply Chain Hub 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 SPPF Questionnaire

Table 18-1 Template key: ORCV_SPPF_QUESTN

ACTION TYPE ROLE NAME
Download Blank ORCV_SPPF_APP_JOB
Upload ORCV_SPPF_SCORE_EDIT_JOB

Table 18-2 Worksheet Questionnaire - SPPF_QUESTN_HEADER

ACTION MANDATORY CELLS / FIELDS NOTES
Create

Template Name

Template ID

Create new questionnaire template.

Template ID is a placeholder ID while creating the questionnaire template to be referenced by the Questionnaire Detail sheet.

Update Template ID Update an existing questionnaire template.
Delete Template ID Delete an existing questionnaire template.

Table 18-3 Worksheet Questionnaire Detail - SPPF_QUESTN_DETAIL

ACTION MANDATORY CELLS / FIELDS NOTES
Create

Template ID

Mandatory Indicator

Criteria ID

Criteria Text

Create new questionnaire template criteria.

When creating new criteria the Criteria ID is mandatory, to be used as placeholder ID and the template ID needs to keep the reference ID to the header sheet.

Update

Template ID

Criteria Text

Mandatory Indicator

Update existing template criteria.
Delete

Template ID

Criteria Text

Delete criteria detail from existing questionnaire template.
Template SPPF Questionnaire Reply

Table 18-4 Template key: ORCV_SPPF_QUESTN_REPLY

ACTION TYPE ROLE NAME
Download ORCV_SPPF_APP_JOB
Upload ORCV_SPPF_SCORE_EDIT_JOB

Table 18-5 Worksheet Questionnaire Reply - SPPF_QUESTN_REPLY

ACTION MANDATORY CELLS / FIELDS NOTES
Create

Criteria ID

Criteria Text

Mandatory Indicator

Supplier

Creates a new questionnaire reply for the supplier.

An upload file can only have the reply for a single supplier.

Operations

This section describes Supplier Performance Operations.

Batch by Module

This section describes batches by module.

On Time Delivery

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/ontimedelivery/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_ON_TIME_DLV_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_ON_TIME_DLV

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_ON_TIME_DLV_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_ON_TIME_DLV

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_ON_TIME_DLV_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_ON_TIME_DLV_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_ON_TIME_DLV_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
Quantity Compliance

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/quantitycompliance/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_QTY_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_QTY_COMP

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_QTY_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_QTY_COMP

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_QTY_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_QTY_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_QTY_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
Invoice Compliance

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/invoicecompliance/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_INVC_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_INVC_COMP

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_INVC_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_INVC_COMP

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_INVC_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_INVC_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_INVC_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
Return Percentage

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/returnpercentage/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_RETURN_PCT_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_RETURN_PCT

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_RETURN_PCT_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_RETURN_PCT

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_RETURN_PCT_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_RETURN_PCT_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_RETURN_PCT_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
Defect Percentage

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/defectpercentage/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_DEFECT_PCT",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_RETURN_PCT

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_DEFECT_PCT",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_RETURN_PCT

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_DEFECT_PCT

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_DEFECT_PCT",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_DEFECT_PCT

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
Overall Compliance

Authentication Method: OAuth2

BaseURL: https://<BASE_URL>/ords/mfcs/orcv/merch/supplierperformance/defectpercentage/batch/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_SPPF_OVERALL_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_SUPP_SCORE_HIST

ORCV_SPPF_SUPP_SCORE

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_OVERALL_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SPPF_SUPP_SCORE_HIST

ORCV_SPPF_SUPP_SCORE

log GET

URL query parameters:

/log?jobName=ORCV_SPPF_OVERALL_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_SPPF_OVERALL_COMP_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_SPPF_OVERALL_COMP_JOB

&executionId=<EXEC_ID>&logDate=YYYY-DD-MM

N/A

Materialized Views Refresh Details

This section describes the Materialized Views Refresh Details.

ORCV_MV_SPPF_SUP_T_ORD
COLUMN DESCRIPTION VALUE
Result Synonym Name of the synonym pointing to the result table. ORCV_MV_SPPF_SUP_T_ORD
Result Table A Name of _A result table. ORCV_SPPF_SUP_T_ORD_A_R
Result Table B Name of _B result table. ORCV_SPPF_SUP_T_ORD_B_R
Source View The View contains business logic to be used to populate the result table. ORCV_V_SPPF_SUP_T_ORD_R
Driving View This field contains the view to distribute the refresh process. ORCV_V_SPPF_SUP_T_ORD_RC
Pre-Processor Name of the pre-process procedure if applicable.

ORCV_COMMON_MV_REFRESH.

COMMON_PRE_PROCESSOR

Check Function Name of the check function to validate if there is a need to refresh or if there are any batch dependencies. NULL
Preserve Data Flag to decide if the data needs to be preserved until the next run cycle. Y
Restart Indicator Flag to indicate if to allow restart batch processor or not. N
Max Concurrent Threads This field contains the max_concurrent_threads that created the record. 4
Filter Fields Column name of the view to be used for threading. SUPPLIER
ORCV_MV_SPPF_SUP_ORDERS
COLUMN DESCRIPTION VALUE
Result Synonym Name of the synonym pointing to the result table. ORCV_MV_SPPF_SUP_ORDERS
Result Table A Name of _A result table. ORCV_SPPF_SUP_ORDERS_A_R
Result Table B Name of _B result table. ORCV_SPPF_SUP_ORDERS_B_R
Source View The View contains business logic to be used to populate the result table. ORCV_V_SPPF_SUP_ORDERS_R
Driving View This field contains the view to distribute the refresh process. ORCV_V_SPPF_SUP_ORDERS_RC
Pre-Processor Name of the pre-process procedure if applicable.

ORCV_COMMON_MV_REFRESH.

COMMON_PRE_PROCESSOR

Check Function Name of the check function to validate if there is a need to refresh or if there are any batch dependencies. NULL
Preserve Data Flag to decide if the data needs to be preserved until the next run cycle. Y
Restart Indicator Flag to indicate if to allow restart batch processor or not. N
Max Concurrent Threads This field contains the max_concurrent_threads that created the record. 4
Filter Fields Column name of the view to be used for threading. ORDER_NUMBER