27 Supply Chain Hub Frameworks

This section covers the Frameworks and some of the key considerations and common component details when implementing these solutions.

Getting Started

ReST Web Services Endpoints

To call ReST Web Services Endpoints in Retail Supply Chain Hub it is required to use a ReST Client that can connect over HTTP protocol. The ReST Client must be able to reach the server URL and requires authentication with the appropriate permissions granted to perform the HTTP method of GET, POST, PUT and DELETE as per service requirements.

The following details must be taken in consideration:

  • REST Server URL
    • Throughout this document you will see several references to a placeholder <BASE_URL>, when calling the service, the placeholder needs to be replaced by the REST Server URL.

  • IDCS, Access Token URL and scope to obtain Oauth 2.0 Access Token
    • More details about configuration are available in Security, Rest Services Authentication.

Configure your REST client

With the information gathered so far, you are ready to configure your client to send a REST HTTP request.

  1. Construct the request URL. The URL is built using the reference URL from the webservice you are using by substituting the <BASE_URL> placeholder by the REST server URL
  2. Choose a ReST Client and perform authentication:
    1. Using cURL to obtain Oauth Access Token:

      curl -u <client id>:<client secret> -H ‘Content-Type: application/x-www-form-urlencoded;charset=UTF-8’ –request POST https://<IDCS_BASE_URL>/oauth2/v1/token -d ‘grant_type=client_credentials&scope=rgbu:orcv:merch’

      This will return a JSON payload containing access token like below:

      {“access_token”:”<access token>”,”token_type”:”Bearer”,”expires_in”:3600}

      Include this access token in the ‘Authorization’ header of the request. If you are using cURL, use –header or –H as follows:

      {--header ‘Authorization: Bearer <access token>’}

    2. Using Postman with Oauth 2.0 authorization token. To receive an Oauth token, go to the Authorization tab and select Oauth 2.0 from the drop down. Enter the URL, Client ID, Client Secret and Scope and click Get New Access Token. Then click Proceed and Use Token in the next dialog. Then click Send to call the endpoint.

Batch Framework

This section describes the Batch Framework.

Batch Engine Components

Figure 27-1 Batch Engine Components


Batch Engine Components

Configuration

Configuration table: ORCV_BATCH_CONFIG

  • Defines:
    • What is the program batch, and each function name for the Pre, Processor, and Post Processor execution steps

    • Maximum number of threads, the maximum number of retry attempts, the maximum number of retry lock attempts, and the maximum number of retry counts

    • Defined whether a process is ordered or not

Pre Processor
  • Checks if the process ID is a retry
  • Starts audit log process for the batch program
  • If it is not a retry process, calls the PRE function associated with the program batch and sets thread control.

Note:

All process batches use the ORCV_THREAD_CONTROL table to set the weight of threads and control the retry mechanism.

Processor
  • Gets the program batch configuration
    • Max concurrent threads

    • Retry lock attempts

    • Retry wait time

  • If the process is Asynchronous:

    • Creates scheduled jobs until reaching the maximum number of concurrent threads defined in the configuration

  • Calls the Processor function associated with the program batch in the configuration table

Post Processor
  • In the case of an Asynchronous processor, it will wait for the Processor to finish
  • Checks for errors associated with the process ID
  • Invokes the Post Processor function configured for the program batch
  • Sets the process batch as finished in the batch audit log table
Retry Mechanism
  • Retrieves all process IDs with an error that have the number of retry counts not equal to the maximum number of retries in the configuration for that batch program
  • Invokes the Run function

Configuration

Table Description
ORCV_BATCH_ENGINE

This table contains the configuration settings for batch programs:

Batch program name

Pre, Processor, and Post functions

If batch status will be controllable in ORCV_BATCH_STATUS_CONTROL

ORCV_BATCH_CONFIG

This table contains batch program configuration settings:

Max threads, max retry attempts, max retry count

Retry rule implemented as FIFO

Technical Batch Recovery Actions

If there is a technical issue with a particular batch execution and the batch shows as In Progress on a New Start and does not allow a new execution, records related to the execution/process ID with issues need to be deleted from the following table to allow a new start:

  • ORCV_BATCH_STATUS_CONTROL
  • ORCV_BATCH_THREAD_CONTROL
  • ORCV_BATCH_ENGINE_THREADS

Batch Dependency Framework

Batch Framework will allow handling batches whose execution depends on others, which may be internal jobs or external.

Batch Flow Diagram

Figure 27-2 Batch Dependency Framework Design Overview


Batch Dependency Framework Design Overview

Main Database Functions

Package: ORCV_COMMON_BATCH_DEPENDENCY

  • RUN_DEPENDENCIES:
    • Function that orchestrates the steps necessary to handle the dependencies between batches

  • CHECK_DEPENDENCY
    • Checks if, for the given program name, there is an active dependency configuration to handle

    • If not, returns TRUE

  • GET_DEPENDENCY_DETAILS
    • Gets the dependencies configuration for a program name

    • If no dependency details exist, it returns FALSE

  • EXEC_DEPENDENCIES
    • Executes actions/rules defined at dependencies configuration

    • Executes/calls the validation event configured as a dependency for the program name

    • If it ends successfully, will return the time (in minutes) the batch must wait before it can start

    • It will return a time_to_wait of 0 if the batch must run immediately

  • VALIDATE_RPM
    • Used for batch jobs that need to run after RPCS/RPM jobs.

    • It checks the synonym DCV_WV_JOB_AUDIT_LOG for an entry of the job name from the configuration details to validate the dependency

  • VALIDATE_RMS_WRAPPER
    • Used for batch jobs that need to run after MFCS batches running an RMS Wrapper

    • It checks the synonym DCV_WV_JOB_AUDIT_LOG for an entry of the job name in the configuration details to validate the dependency

  • VALIDATE_ORCV_AUDIT
    • Validation function for internal batches that only need ORCV_BATCH_AUDIT_STATUS table validation

  • VALIDATE_TRUE
    • Validation function for batches that only return true. Always returns a time_to_wait of 0

  • GET_LAST_AUDIT
    • This function will return the last date time and activity status that the “child” batch was written into the table ORCV_BATCH_AUDIT_STATUS

    • The last status and date time will be returned with values only if the “child” batch has a date time higher than the logs date time of the “parent” batch:
      • Or if there are no logs for the “parent” batch
      • Or in case the “parent” batch has logs (it has been executed) at a moment right before the child is being executed.
System Parameters

Default batch configuration is based on System Parameters defined below.

Area Parameter Description Value 1 Value 2
BATCH BATCH_USER Default integration user. MFCS_RDS_CUSTOM (Schema Owner) NA
BATCH MAX_THREADS_ENGINE The default number of concurrent threads on the batch engine 240 5
BATCH TIME_INTERVAL Time interval in minutes for "AuditStatus" and "AuditLogs" validation for batch dependencies 30 NA
BATCH TOTAL_WAIT_TIME Total wait time in minutes for "AuditStatus" and "AuditLogs" validation for batch dependencies 720 NA
BATCH WAIT_PROCESS Default time in second to wait for next loop 1 NA
Batch Dependency Configuration Example

Configuration table: ORCV_BATCH_DEPENDENCY_HEAD

Column Name Description Example
PROGRAM_NAME This field contains the program name ORCV_MV_PCEG_ORDRCV_TRAN_DATA
ACTIVE This field is a flag to indicate if rule is Y - Active or N - Inactive Y

Configuration table: ORCV_BATCH_DEPENDENCY_DTL

Column Name Description Example
PROGRAM_NAME This field contains the program name ORCV_MV_PCEG_ORDRCV_TRAN_DATA
CHILD_PROGRAM_NAME This field contains the program name which the parent program is dependent on

MERCH_DUMMY_START_NIGHT_

BATCH_PROCESS

CHILD_ACTIVITY_NAME This field contains the activity name which the parent program is dependent on SALSTAGE_JOB
VALIDATION_TYPE This field contains the type of validation for the dependency. TIME or VALIDATION VALIDATION
VALIDATION_TIME This field contains the time to wait for the program name before checking again 10
VALIDATION_EVENT This field contains the time to wait for the program name before checking again

ORCV_COMMON_BATCH_DEPENDENCY.

VALIDATE_RMS_WRAPPER

POST_DATE_CHECK Value to subtract to VDATE in the validation process NULL
JOB_NAME Job name on job_audit_log table Salstage
HAS_WRAPPER Controls if the dependency job uses a wrapper. Y - Yes, N - No Y
MESSAGE_CHECK Message to check on job_audit_log table for the end of single execution batches salstage

Custom Validations Framework

The Custom Validations Framework works as a validation engine, allowing you to create or extend validation groups with multiple validation functions and then execute the validations group in bulk in an atomic or non-atomic way.

Custom validations are defined in multiple tables with prefix ORCV_CVAL and their executions are controlled by the table ORCV_CVAL_PROCESS_CONTROL. The validations result in case of errors are consolidated in the tables ORCV_CVAL_RESULTS_HEAD and ORCV_CVAL_RESULS_DETAIL.

Process Overview

Figure 27-3 Custom Validations Process Overview


Custom Validations Process Overview

Database Objects

Object Type Name Sub Object Type Sub Object Name Description
Table

ORCV_CVAL_GROUP_

HEAD

NA NA This table contains the custom validation group header information
Table

ORCV_CVAL_GROUP_

DETAIL

NA NA This table contains the functions of the validation group
Table

ORCV_CVAL_PROCESS

_CONTROL

NA NA This table contains the control of process validation
Table

ORCV_CVAL_PROCESS_

ATTRIBUTES

NA NA This table contains the attributes to the functions of the process
Table

ORCV_CVAL_RESULT_

HEAD

NA NA This table contains the attributes to the functions of the process
Table

ORCV_CVAL_RESULT_

DETAIL

NA NA This table contains the attributes to the functions of the process
Package ORCV_CVAL_ENGINE Function PRE_PROCESS Generate process id and populate process tables
Function PROCESS Process Function: Populate process tables
Function POST_PROCESS Post Process Function: Update process status and create record in Result Head Table according to parameters
Function

EXECUTE_

VALIDATION

Create process entry in ORCV_CVAL_PROCESS_CONTROL

Configuration

# Step Example
1 Create the validation functions into its module, respecting the function parameter types of the Custom Validation module ORCV_SPIM_MGMT_ITEM_VAL.VALIDATE_HEADER
2 Create a group of validations into ORCV_CVAL_GROUP_HEAD INSERT INTO ORCV_CVAL_GROUP_HEAD (GROUP_ID, GROUP_DESC, APP_ALIAS, ENTITY_ID, ATOMIC_IND) VALUES ('SPIM_ITEM_SUBMIT', 'ITEM SUBMIT VALIDATIONS', 'SPIM', 'ITEM', 'N');
3 Insert into ORCV_CVAL_GROUP_DETAIL all validations functions for the group INSERT INTO ORCV_CVAL_GROUP_DETAIL (GROUP_ID, FUNCTION, ERROR_KEY, SEQ_NO, STATUS) VALUES ('SPIM_ITEM_SUBMIT', 'ORCV_SPIM_MGMT_ITEM_VAL.VALIDATE_HEADER', 'ORCV_SPIM_ERR.ERR$SPIM_VALIDATE_HEADER', 1, 'A');

Custom Flex Attributes

Custom Flex Attribute Solution (CFAS) is a metadata-driven framework that enables setting up additional attributes on pre-enabled entities without modifying base code.

The entities enable with this framework are configured in tables with prefix ORCV_CFA.

Database Objects

This section describes the Database Objects.

Tables
Name Description
ORCV_CFA_ENTITY This table holds the Entities available on CFA.
ORCV_CFA_ENTITY_KEY This table holds the columns by CFA Entity.
ORCV_CFA_ATTRIB_GROUP_SET This table holds the attributes group set.
ORCV_CFA_ATTRIB_GROUP_SET_TL This table holds the translated description for group set.
ORCV_CFA_ATTRIB_GROUP This table holds the attributes group.
ORCV_CFA_ATTRIB_GROUP_TL This table holds the labels for groups.
ORCV_CFA_ATTRIB This table holds the attributes.
ORCV_CFA_ATTRIB_TL This table holds the attributes labels.
ORCV_CFA_GEN_VIEW_GROUP This table holds the group IDs to generate CFA views by batch ORCV_COMMON_CFA_GEN_JOB.
Packages
Name Function Description
ORCV_COMMON_CFA GEN_VIEW_GRP Generates views group according input parameters (I_entity_id, I_entity_table, I_group_set_id, I_group_id).

GEN_VIEW_GRP_

BY_GRP

Generates views group according input parameter (I_group_id). Calls GEN_VIEW_GRP with all parameters with NULL value except I_group_id.
ORCV_APEX_CFA_UI SAVE_DATA Saving data to table (staging or temporary table as defined on ORCV_CFA_ENTITY table). This function calls the functions in ORCV_APEX_CFA package.
ORCV_APEX_CFA GET_ATTRIBUTES Sets attributes table object based on GROUP_ID.
PROCESS_DATA Prepares data to be validated and saved to table (staging or temporary table as defined on ORCV_CFA_ENTITY table).
VALIDATE_DATA Validates if the data is consistent with the rules defined on ORCV_CFA_ATTRIBUTES table.
GET_SAVE_QUERY Gets one query to save data to table (staging or temporary table as defined on ORCV_CFA_ENTITY table).
ORCV_CVAL_CFA VALIDATE Function to validate CFAs data.

ORCV_COMMON_CFA_

GEN_BATCH

PRE_PROCESSOR Insert into ORCV_THREAD_CONTROL table all groups to generate view, groups must be in table ORCV_CFA_GEN_VIEW_GROUP.
PROCESSOR Function to generate the Group View calling ORCV_COMMON_CFA.GEN_VIEW_GRP_BY_GRP

Process Overview

Figure 27-4 Custom Flex Attributes Process Overview


Custom Flex Attributes Process Overview

Configuration

The following is an example of a potential CFA configuration for Event Planning:

# Step Example
1 Add Entity INSERT INTO orcv_cfa_entity (entity_id, entity_table, cfa_table, cfa_tmp_table, ext_entity_id) VALUES ('EVENT', 'PCEP_EVENT', 'ORCV_PCEP_EVENT_CFA', NULL, NULL);
2 Add Entity Key INSERT INTO orcv_cfa_entity_key (entity_id, entity_table, key_col, key_number, data_type) VALUES ('EVENT', 'PCEP_EVENT', 'EVENT_ID', 1, 'NUMBER');
3 Add Attribute Group Set INSERT INTO orcv_cfa_attrib_group_set (group_set_id, group_set_desc, entity_id, entity_table, display_seq) VALUES (ORCV_CFA_ATTRIB_GROUP_SET_SEQ.NEXTVAL, 'Group set – Event', 'EVENT', 'PCEP_EVENT', 1);
4 Add Attribute Group Set translation INSERT INTO orcv_cfa_attrib_group_set_tl (group_id, lang, group_set_desc) VALUES (ORCV_CFA_ATTRIB_GROUP_SET_SEQ.CURRVAL, 1, 'Group set desc translated');
5 Add Attribute Group INSERT INTO orcv_cfa_attrib_group (group_id, group_desc, group_set_id, group_default_id, group_view_name, display_seq) VALUES (ORCV_CFA_ATTRIB_GROUP_SEQ.NEXTVAL, 'Attrib Grupo #1 – Event', NULL, NULL, 'NB_CFA_PCEP_GROUP1',1);
6 Add Attribute Group translation INSERT INTO orcv_cfa_attrib_group_tl (group_id, lang, group_desc) VALUES (ORCV_CFA_ATTRIB_GROUP_SEQ.CURRVAL, 1, 'Group desc translated');
7 Add Attributes INSERT INTO orcv_cfa_attrib (attrib_id, attrib_desc, group_id, view_col_name, storage_col_name, display_Seq, data_type, ui_widget, code_type, default_Value, enable_ind, value_req, maximum_length, lowest_allowed_value, highest_allowed_value) VALUES (ORCV_CFA_ATTRIB_SEQ.NEXTVAL, 'Attrib event 1', ORCV_CFA_ATTRIB_GROUP_SEQ.CURRVAL, 'attr event-1', 'VARCHAR2_1', 1, 'VARCHAR2', 'TI', NULL, 'Default-1' , 'Y', 'Y', NULL, NULL, NULL);
8 Add Attributes translation INSERT INTO orcv_cfa_attrib_tl (attrib_id, lang, attrib_desc) VALUES (ORCV_CFA_ATTRIB_SEQ.CURRVAL, 1, 'Attrib event 1 translated');

The tables defined for the CFA must respect the expected structure, so the framework is able to insert records to it.

Column Type Notes
PRIMARY_KEY_1 to 5 Same as ORCV_CFA_ENTITY_KEY table definition for the key. Column names and types must match with ORCV_CFA_ENTITY_KEY configuration.
GROUP_ID NUMBER(10) This field will be populated with the GROUP_ID defined for the CFA.
VARCHAR2_1 to 10 VARCHAR2(250) 10 VARCHAR2 columns named VARCHAR2_1, VARCHAR2_2, VARCHAR2_N ... VARCHAR2_10.
NUMBER_11 to 20 NUMBER 10 NUMBER columns named NUMBER_11, NUMBER_12, NUMBER_N … NUMBER_20.
DATE_21 to 25 DATE 5 DATE columns named DATE_21, DATE_22, DATE_N … DATE_25.

After configuration and tables are created, it is required to execute the batch to generate the views required for the CFA. To do it is required to insert the new group ID to ORCV_CFA_GEN_VIEW_GROUP and execute batch ORCV_COMMON_CFA_GEN_PROCESS_ADHOC. After the CFA views are generated for the groups in ORCV_CFA_GEN_VIEW_GROUP the entries are removed.

Other implementation Considerations

This section describes implementation considerations.

Custom Validations

It is possible to execute validations by using Custom Validations framework. Those are controlled in the application to which the CFA is being added to the entity. For the Custom Validations groups where those validations are required new entries should be added with the new functions to validate the CFAs values. More details are available in the Custom Validations chapter.

Example:

# Step Example
1 Define a CFA validation for Event Planning. INSERT INTO orcv_cval_group_detail (group_id, function, error_key, seq_no, status) values ('PCEP_OFFER_WORKSHEET', 'ORCV_PCEP_CVAL_OFFER.VALIDATE_OFFER_CFA', 'ORCV_PCEP_CVAL_ERR.ERR$PCEP_OV_VLD_OCFA', 26, 'A');
CFA Group View Generator Batch

The CFA Group View Generator Batch service creates the views for CFA Groups. Those views are required to maintain CFAs data. The batch process uses the table ORCV_CFA_GEN_VIEW_GROUP to find the views that are to be generated. When new attributes are created, changed, or delete from the attributes group it is necessary recreate the view.

  • Job: ORCV_COMMON_CFA_GEN_JOB
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Figure 27-5 CFA Group View Generator Batch Overview


CFA Group View Generator Batch Overview
Configuration

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_COMMON_CFA_GEN_JOB
MAX_CHUNK_SIZE 1
MAX_CONCURRENT_THREADS 1
RETRY_LOCK_ATTEMPTS 3
RETRY_WAIT_TIME 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Operations

Frequency: Ad-hoc

Base URL: <BASE_URL>/ords/mfcs/orcv/common/<URL_PATH>

URL PATH REQUEST METHOD REQUEST BODY AFFECTED TABLES
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_COMMON_

CFA_GEN_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":" ORCV_COMMON_

CFA_GEN_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/log GET

URL query parameters:

/log?jobName=

ORCV_COMMON_CFA_GEN_JOB&

executionId=<EXEC_ID>&

logDate=YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_COMMON_

CFA_GEN_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_COMMON_

CFA_GEN_JOB &executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Rules Engine Framework

This section describes the Rules Engine Framework.

Process Overview

Rule Engine framework acts as an engine for rule execution, allows rules to be configured in either batch or function mode and execute them via a single point of entry web service.

Rules defined as batch mode are executed using the Batch Engine Framework.

The web service requests require the rule key identifier in parameter RULE_KEY in the request payload.

Database Objects

Object Type Name Sub Object Type Sub Object Name Description
Table ORCV_RLEG_RULE NA NA

This table holds the rule definition.

The column program name is a concatenation of ORCV_RLEG_ and rule key in upper case, it will represent the reference to the table ORCV_BATCH_CONFIG in case the rule mode is batch.

Table

ORCV_RLEG_

FUNCTION

NA NA This table contains the functions list associated to the rule.
Table

ORCV_RLEG_

PARAMETERS

NA NA This table contains the parameters associated to the rule.
Table ORCV_RLEG_ATTR NA NA This table contains the attributes associated to the rule.
Table

ORCV_RLEG_MAP_

ATTR_HEAD

NA NA This table contains the mapping of the columns that will be displayed in the Rule Attributes dynamic grid.
Table

ORCV_RLEG_MAP_

ATTR_DETAIL

NA NA This table contains details of the mapping of the columns that will be displayed in the Rules Attributes dynamic grid.
Package ORCV_RLEG_ORDS Function

WRP_JSON_TO_STG_

OBJECT

Deconstructs the body CLOB from the web service request and retrieves the rule key parameter.
Function BATCH_START_ORDS Calls WRP_JSON_TO_STG_OBJ and, if the rule mode is batch, calls the batch engine framework with the rule program name as the batch to be executed.
Function

BATCH_RESTART_

ORDS

Calls WRP_JSON_TO_STG_OBJ and in case the rule mode is batch calls the batch engine framework with the rule program name as the batch to be executed and the execution id to be restarted.

Configuration

# Step Example
1 Insert rule key into ORCV_RLEG_RULE INSERT INTO ORCV_RLEG_RULE (ROW_ID, RULE_KEY, RULE_NAME, APP_ALIAS, RULE_MODE, STATUS) VALUES (ORCV_RLEG_RULE_SEQ.NEXTVAL, 'SPIM_ITEM_EVT_PND', 'ORCV_RLEG_SPIM_EVENT_ITEM_JOB','SPIM','B','A');
2 Insert the mapping of the columns into ORCV_RLEG_MAP_ATTR_HEAD INSERT INTO ORCV_RLEG_MAP_ATTR_HEAD (RULE_KEY, VIEW_NAME, VALIDATION_FUNC) VALUES (‘SPPY_QA_DEFECT’, ‘ORCV_V_SPPY_RLEG_QA_DEFECT’, ‘ORCV_SPPY_RLEG_RULE_ATTR_VAL.SUPP_OR_PO_TYPE_IS_NOT_NULL’);
3 Insert details of the mapping of the columns into ORCV_RLEG_MAP_ATTR_DETAIL INSERT INTO ORCV_RLEG_MAP_ATTR_DETAIL (RULE_KEY, SEQ, COLUMN_ATTR, LABEL_VIEW, LABEL_APEX, TYPE, LIST_VALS, REQUIRED, DEFAULT_VALUE, MAX_SIZE) VALUES (‘SPPY_QA_DEFECT’, 1, ‘NUMBER_1’, ‘SUPPLIER’, ‘Supplier’, ‘SELECTLIST’, ‘ORCV_V_SPPY_RLEG_SUPP_TL’, 0, NULL, NULL);
4 Insert batch engine configuration for the rule key program name into ORCV_BATCH_ENGINE INSERT INTO ORCV_BATCH_ENGINE (PROGRAM_NAME, SEQ_NO, PRE_PROCESSOR, PROCESSOR, POST_PROCESSOR, ENABLED, PURGE_PROGRAM) VALUES ('ORCV_RLEG_SPIM_ITEM_EVT_PND', 1, 'ORCV_SPIM_EVENT_ITEM_BATCH.PRE_PROCESSOR', 'ORCV_SPIM_EVENT_ITEM_BATCH.PROCESSOR', NULL, 'Y', 'N');
5 Insert batch configuration for the rule key program name into ORCV_BATCH_CONFIG INSERT INTO ORCV_BATCH_CONFIG (PROGRAM_NAME, MODULE_HIER_ID, MAX_CHUNK_SIZE, MAX_CONCURRENT_THREADS, RETRY_LOCK_ATTEMPTS, RETRY_WAIT_TIME, RETRY_MAX_ATTEMPTS_COUNT, RETRY_ORDERED, RETRY_IND) VALUES ('ORCV_RLEG_SPIM_ITEM_EVT_PND', ORCV_COMMON_UTILS.GET_MODULE_HIER_ID(I_module_id => 'ITEMS_MANAGEMENT', I_sub_module_id_1 => 'EVENTS'), 1000, 4, 3, 3, 3, 'N', 'N');

Web Service

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ords/mfcs/orcv/ruleengine/rules/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_RLEG_JOB",

"agentExecutionId":"",

"parameters":"RULE_KEY=<RULE_KEY>"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId": <EXEC_ID>,

"jobName":"ORCV_RLEG_JOB",

"agentExecutionId":"",

"parameters":"RULE_KEY=<RULE_KEY>"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/log GET

URL query parameters:

/log?jobName=ORCV_RLEG_JOB

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

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_RLEG_JOB",

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch /status GET

URL query parameters:

/status?jobName=ORCV_RLEG_JOB

&executionId=<EXEC_ID>

N/A
ping GET Empty N/A

Profile

This section describes the Profile application.

Implementation Overview

This section provides an Implementation Overview.

Functionality

The Profile application will be used to manage existing and new users. Using this application an administrator can associate a user with a department and assign user permissions to the applications.

Retail Supply Chain Hub functional security supports a role-based, declarative model where resources are protected by roles that are assigned to users. In this manner, an application role becomes the container that grants permissions to its members to access the application tasks, screens, and functionalities within.

Roles, also referred to as Job Roles, align with the application’s functionalities. Roles are used to classifying users based on job responsibilities and actions to be performed in the application. When a user logs into the application, based on the roles assigned to the user, the system determines which roles have been granted to the user, and the system features are enabled accordingly.

The roles definition follows a hierarchy permission type definition from lower to high priority inheriting the previous definition:

  1. Access to the Application
  2. No Access to Entity
  3. View Only
  4. Edit Access
  5. Approval

For all the applications a denomination will be followed considering the application alias, the entity, and the permission type definition. For example, for Procure to Pay, the application alias is SPPP, one of the entities supported in Purchase Orders with ID ORDER, and applying the hierarchy permission type definition logic is:

  1. ORCV_SPPP_APP_JOB – user with access to the application
  2. ORCV_SPPP_ORDER_NA_JOB – the user doesn’t have access to entity Purchase Orders in Procure to Pay
  3. ORCV_SPPP_ORDER_VIEW_JOB – user can view purchase order details in Procure to Pay.
  4. ORCV_SPPP_ORDER_EDIT_JOB – user can view and edit purchase order details in Procure to Pay.
  5. ORCV_SPPP_ORDER_APPR_JOB – user can view, edit, and approve purchase orders in Procure to Pay.

Configuration

This section describes the Profile configurations.

Security

To have access to the applications it is required to assign roles to users, Profile application requires the user to be created in Supplier Evaluation with the required permissions.

The application level security is defined in table ORCV_SEC_APP_ROLES.

Column Name Description Example
USER_ID Unique identifier for the user JOHN.DOE@CUSTOMER.COM
APP_ALIAS Unique identifier for application alias. SPCH
ENTITY_ID This field contains entity ID NA
PERMISSION_TYPE This field contains the user permissions to applications APP
NOTIFICATION_IND This field contains if notifications are active: (Y)es,(N)o N
ROLE_NAME This field contains user role ORCV_SPCH_APP_JOB

Once the user is created in Supplier Evaluation with the required permissions the user will be assigned to one of the 4 Application Roles:

  • RETAILER_ADMINISTRATOR: Role name that determines user type is retailer and admin.
  • RETAILER_USER: Role name that determines user type is retailer.
  • SUPPLIER_ADMINISTRATOR: Role name that determines user type is supplier and admin.
  • SUPPLIER_USER: Role name that determines user type is supplier.

Any record that is being mastered in Supplier Evaluation is marked as read-only in the Profile application and even an administrator user type will not be able to change this information, only in Supplier Evaluation or IDCS. The access to the multiple modules in Retail Supply Chain Hub is managed in Profile.

The admin permission allows a retailer the access to Profile application in admin mode which allows the configuration of new suppliers and define the access level for each user and entity. If the user is a supplier user, then in Profile the user can define the permissions of each supplier user to their own suppliers.

Application Configuration

This section describes Application Configurations.

Application Options

Some applications require options to be configured at different levels, Global applied to the complete application and Supplier Defaults to define the default configuration of suppliers.

Those configurations can be defined in the ORCV_PRFL_CFG_APP_OPTIONS (more details can be found in the Data Model document).

Column Name Description
APP_ALIAS The App Alias of the application to be configured
ATTRIBUTE_ID Attribute identifier
ATTRIBUTE_DESC Attribute description
ATTRIBUTE_VALUE Value of the attribute
CFG_LEVEL Configuration level: (G)lobal, (S)upplier Defaults, (C)ustomers Defaults
Supplier Configurations

Configurations for Suppliers at the application level are also required and those can be defined in two tables ORCV_PRFL_CFG_APP_SUPP and ORCV_PRFL_CFG_APP_SUPP_OPTIONS, the first defines the applications configured for suppliers, and the second the details of the options for the suppliers.

Association between suppliers and applications is defined in ORCV_PRFL_CFG_APP_SUPP (more details can be found in Retail Supply Chain Hub Data Model document).

Column Name Description
SUPPLIER Supplier ID
APP_ALIAS Application Alias

Application Supplier Options are defined in ORCV_PRFL_CFG_APP_SUPP_OPTIONS (more details can be found in the Data Model document).

Column Name Description
SUPPLIER Supplier ID
APP_ALIAS Application Alias
ATTRIBUTE_ID Attribute identifier, aligned with ORCV_PRFL_CFG_APP_OPTIONS
ATTRIBUTE_VALUE Value of the attribute
POM Configuration

Batch scheduler details with all batches, dependencies and frequencies can be downloaded following the steps in MCEFIO.

Figure 27-6 Profile Batch Schedule Overview


Profile Batch Schedule Overview

Other Implementation Considerations

This section provides additional Implementation Considerations.

Specific Batch Configuration

This section describes specific batch configurations.

IDCS Synchronization Batch

Synchronizes users from IDCS to Profile configuration tables ORCV_SEC_USER and ORCV_SEC_USER_APP. It will create non existing users and inactivate the removed users from IDCS. Only users with the roles identified in the SECURITY System Parameters for parameters RETAILER_ADMIN_ROLE, RETAILER_ROLE, SUPPLIER_ADMIN_ROLE and SUPPLIER_ROLE will be considered and only one can be assigned to each individual user otherwise the batch will return an error. Existing entries identified with ORIGIN different from IDCS will not be changed by the batch.

  • Job: ORCV_PRFL_IDCS_SYNC_JOB
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_PRFL_IDCS_SYNC_JOB
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
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 Description
PRSS Profile Supplier Status
PRSU Profile Supplier Undefined
USPM User Permission
USST User Status

Operations

This section describes available operations.

Batch by Module

This section describes the batch by module.

IDCS Synchronization Batch

Authentication Method: OAuth2

BaseURL: <BASE_URL>/ords/mfcs/orcv/profile/batch/idcssync/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_PRFL_IDCS_SYNC_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SEC_USER

ORCV_SEC_USER_APP

ORCV_SEC_USER_APP_TMP

ORCV_SEC_USER_TMP

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_PRFL_IDCS_SYNC_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SEC_USER

ORCV_SEC_USER_APP

ORCV_SEC_USER_APP_TMP

ORCV_SEC_USER_TMP

log GET

URL query parameters:

/log?jobName=ORCV_PRFL_IDCS_SYNC_JOB

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

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_PRFL_IDCS_SYNC_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SEC_USER

ORCV_SEC_USER_APP

ORCV_SEC_USER_APP_TMP

ORCV_SEC_USER_TMP

status GET

URL query parameters:

/status?jobName=ORCV_PRFL_IDCS_SYNC_JOB

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

N/A
status/all GET

URL query parameters:

/status?<EXEC_IDs>

N/A
config GET Empty N/A

Configuration Management

The configuration management application is an aggregator of configuration pages links for different applications. Depending on the roles assigned to a user different application configuration links can be visible to the user.

Configuration management setup is configurable in the table ORCV_CFGM_CONFIG_LINK, and by default has the following configuration:

Column Name Example Description
LINK_ID RLEG_SPCH This field contains the key uniquely identifying each row on the table.
LINK_TITLE Rule Engine Configuration This field contains the link configuration label.
LINK_TEXT NA This field contains the link configuration description.
APP_ID 100801010 This field contains the application id of the configuration link.
APP_ALIAS RLEG This field contains the application alias.
PAGE_NO 100 This field contains the default page number of the configuration link.
ICON_IMG fa fa-server-play This field contains the icon image
PARENT_APP_ALIAS SPCH This field contains the hub alias in which this configuration link entry is displayed.

Inventory

Inventory is a module available in Retail Supply Chain Hub. This chapter describes the implementation considerations and the operation details for this application.

Functionalities

Supply Chain Hub works as the entry point to a group of applications that combines retailers and suppliers in the same portal. Depending on which applications are available in the Hub the users will be presented with a summary in the homepage and according to the user type (supplier or retailer) will have visibility on Operational News and Queries.

Operational News is a functionality that allows the retailers to share news with targeted suppliers in a central place, the retailers have permissions to create and edit them while the suppliers can only view them.

Another functionality is Queries, this functionality aims to allow the dialog between retailers and suppliers regarding a specific entity, like a Purchase Order or Shipment. This way the dialog is focused on that specific entity and makes easier the context.

Working as true Hub, Supply Chain Hub adapts to the applications that are installed in the system not only with different charts being presented in the homepage but also with a menu with access to all those applications so switching between applications keeps the context of the user in a seamless experience.

Configuration

This application has multiple configurations to support its functionalities and in the subsections below those configurations are highlighted.

POM Configuration

Batch scheduler details with all batches, dependencies and frequencies can be downloaded following the steps in MCEFIO.

Figure 27-7 Inventory POM Schedule


Inventory POM Schedule

Other Implementation Considerations

This section describes additional Implementation Considerations.

Materialized Views

This application requires some results to be materialized in tables using the Materialized View Framework described in MCEFIO and below is the list for this application.

ORCV_MV_INV_IF_TRAN_DATA

Description: Creates a snapshot of MFCS table IF_TRAN_DATA into ORCV_MV_INV_IF_TRAN_DATA.

Pre-Dependencies: MFCS.SALSTAGE_JOB

Post-Dependencies: ORCV_INV_DAILY_HIST_JOB

Frequency: Nightly

ORCV_MV_INV_ITEM_LOC_SOH

Description: Creates a snapshot of MFCS table ITEM_LOC_SOH into ORCV_MV_INV_ITEM_LOC_SOH at transactional level and levels above.

Pre-Dependencies: None

Post-Dependencies: None

Frequency: Nightly

Specific Batch Configuration

This section describes specific batch configurations.

Daily Item Loc History

Loads history table ORCV_INV_DAILY_IL_HIST with data from ORCV_MV_INV_IF_TRAN_DATA snapshot with currencies converted to the local currency aggregated by day, item, location, transaction type and disc type.

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

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_INV_DAILY_IL_HIST_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
Weekly Item Loc History

Loads history table ORCV_INV_WEEKLY_IL_HIST with data from ORCV_INV_DAILY_IL_HIST aggregated by end of weekday, item, location, transaction type and disc type.

  • Job: ORCV_INV_WEEKLY_IL_HIST_JOB
  • Frequency: Nightly
  • Dependency: ORCV_INV_DAILY_IL_HIST_JOB
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_INV_WEEKLY_IL_HIST
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

Operations

This section describes operations.

Materialized Views Refresh Details

This section describes Materialized Views Refresh Details.

ORCV_MV_INV_IF_TRAN_DATA
Column Description Value
Result Synonym Name of the synonym pointing to the result table. ORCV_INV_IF_TRAN_DATA_A_R
Result Table A Name of _A result table. ORCV_INV_IF_TRAN_DATA_B_R
Result Table B Name of _B result table. ORCV_V_INV_IF_TRAN_DATA_R
Source View The View that contains business logic to be used to populate the result table. ORCV_V_INV_IF_TRAN_DATA_RC
Driving View This field contains the view to distribute the refresh process.

ORCV_COMMON_MV_REFRESH.

COMMON_PRE_PROCESSOR

Pre-Processor Name of the pre-process procedure if applicable.

ORCV_INV_MV.

CHECK_TRAN_DATA

Check Function Name of the check function to validate if there is a need to refresh or if there are any batch dependencies. NA
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. LOCATION
ORCV_MV_INV_ITEM_LOC_SOH
Column Description Value
Result Synonym Name of the synonym pointing to the result table. ORCV_INV_ITEM_LOC_SOH_A_R
Result Table A Name of _A result table. ORCV_INV_ITEM_LOC_SOH_B_R
Result Table B Name of _B result table. ORCV_V_INV_ITEM_LOC_SOH_R
Source View The View that contains business logic to be used to populate the result table. ORCV_V_INV_ITEM_LOC_SOH_RC
Driving View This field contains the view to distribute the refresh process.

ORCV_COMMON_MV_REFRESH.

COMMON_PRE_PROCESSOR

Pre-Processor Name of the pre-process procedure if applicable. NA
Check Function Name of the check function to validate if there is a need to refresh or if there are any batch dependencies. NA
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. LOC
Batch by Module

This section describes batches by module.

Daily Item Loc History

Authentication Method: OAuth2

BaseURL: <BASE_URL>/ords/mfcs/orcv/merch/inventory/dailyilhist/URL_PATH>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": " ORCV_INV_DAILY_IL_HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_IF_TRAN_DATA_CNVCURR

ORCV_INV_DAILY_IL_HIST

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_INV_DAILY_IL_HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_IF_TRAN_DATA_CNVCURR

ORCV_INV_DAILY_IL_HIST

log GET

URL query parameters:

/log?jobName=ORCV_INV_DAILY_

IL_HIST_JOB

&executionId=<EXEC_ID>&logDate=

YYYY-MM-DD

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_INV_DAILY_IL_HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_IF_TRAN_DATA_CNVCURR

ORCV_INV_DAILY_IL_HIST

status GET

URL query parameters:

/status?jobName=ORCV_INV_DAILY_IL_

HIST_JOB&executionId=<EXEC_ID>&

logDate=YYYY-MM-DD

N/A
status/all GET

URL query parameters:

/status?<EXEC_IDs>

N/A
config GET Empty N/A
Weekly Item Loc History

Authentication Method: OAuth2

BaseURL: <BASE_URL>/ords/mfcs/orcv/merch/inventory/wklyilhist/URL_PATH>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": " ORCV_INV_WKLY_IL_

HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_WEEKLY_IL_HIST

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_INV_WKLY_IL_

HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_WEEKLY_IL_HIST

log GET

URL query parameters:

/log?jobName=ORCV_INV_WKLY_IL_

HIST_JOB

&executionId=<EXEC_ID>&logDate=

YYYY-MM-DD

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": <EXEC_ID>,

"jobName": "ORCV_INV_WKLY_IL_

HIST_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_INV_WEEKLY_IL_HIST

status GET

URL query parameters:

/status?jobName=ORCV_INV_WKLY_IL_

HIST_JOB

&executionId=<EXEC_ID>&logDate=

YYYY-MM-DD

N/A
status/all GET

URL query parameters:

/status?<EXEC_IDs>

N/A
config GET Empty N/A

Queries

This section describes the common functionality and configurations available for Queries.

Functionalities

Queries aims to allow the dialog between retailers and suppliers regarding a specific entity, like a Purchase Order or Shipments. Therefore, it is possible for multiple users to discuss topics about a particular entity in its own context.

Configuration

This application has multiple configurations to support its functionalities and, in the subsections, below, those configurations are highlighted.

Application Options

Application Options core functionality is detailed in Profile, Queries has the following Application Options defined.

The application options are defined in table ORCV_PRFL_CFG_APP_OPTIONS.

App Alias Attribute Description Default Value Configuration Level
QUERY QUERY_CUT_OFF Number of days post closure, a query is cut off from the Queries Screen 14 Global
Security

The application security is also described in Profile, the permissions defined for this application are defined below.

The security is defined in table ORCV_SEC_APP_ROLES.

App Alias Entity User Type Permission Type Role Name Role Description
QUERY NA NA APP ORCV_QUERY_APP_JOB Query Access
System Parameters

Listed below is the list of configurations at the system level that are used by this application. Those configurations include configurations specific to the module.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1 Value 2
CONFIG QUERY_EXIST_CLASS Class used in the APEX button where there are new updates to the queries for the user. t-Button--danger -
CONFIG QUERY_N_EXIST_CLASS Class used in the APEX button where there are no new updates to the queries for the user. t-Button--hot -
PURGE PURGE_DAYS Default purge Period. ORCV_QUERY_HEAD 120
QUERY AUTO_CLS_QUERY_DELAY Number of days to automatically close Queries. 7 -
Codes

Certain operations require codes to define the options available at system level. Below you can find the list of code types and the codes available, the sequence and their description.

The codes are defined in tables ORCV_CODE_HEAD and RCV_CODE_DETAIL.

Code Type Description
QMST Query Message Status
QRST Query Status Description
Batch WebServices

This section describes the list of batch jobs used by this application.

ORCV_QUERY_MAINTENANCE_JOB

Description: Query Maintenance Job closes queries without updates for a certain number of days defined in system parameter AUTO_CLS_QUERY_DELAY. This batch job is based on the Batch Framework detailed in this document.

Pre-Dependencies: None

Post-Dependencies: None

Web Services:

  • Authorization Method: OAuth 2.0
  • Frequency: Ad-hoc
  • URL: <BASE_URL>/ords/mfcs/orcv/query/maintenance/<URL_PATH>
URL Path Request Method Request Body Affected Tables
batch/start POST Empty

ORCV_QUERY_HEAD

ORCV_QUERY_DETAIL

batch/restart POST

{

"executionId": <EXEC_ID>

}

ORCV_QUERY_HEAD

ORCV_QUERY_DETAIL

batch/log GET

URL query parameters:

/log?jobName=ORCV_QUERY_MAINTENANCE_JOB

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

N/A
batch/kill POST

{

"executionId": <EXEC_ID>

}

N/A
batch/status GET

URL query parameters:

/status?jobName=ORCV_QUERY_MAINTENANCE_JOB

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

N/A
/ping GET Empty N/A

Upload and Download Framework

This section describes the common functionality, configurations, and process overview available for Upload Download Framework.

Functionalities

Upload Download Framework adds to Retail Supply Chain Hub a common core functionality to process upload and download of files that can be used by multiple modules in applications and integrations.

The framework includes the Upload Download application to have direct access to all the templates available for the user so they can download a blank template and upload a new file based on those blank templates. It is also possible to check the results of the upload where the user can validate if it was processed successfully or if any error occurred with the details of the failure. Other applications import the Upload Download application which allows the upload of files using the framework in the context of the application itself.

Note: The column SEQ_NO_MANDATORY in ORCV_S9T_WKSHT table defines which lines in the uploaded file must be processed. In case the value is defined the Upload Download Framework checks the value against SEQ_NO in ORCV_S9T_WKSHT_COLS table and if the line does not have value for the column the line is discarded and not processed. In case SEQ_NO_MANDATORY is NULL all lines are processed.

Architecture

Figure 27-8 Upload and Download Framework Architecture Overview


Upload and Download Framework

Process Overview

Figure 27-9 Upload/Download Process Overview


Process Overview Upload and Download Framework
Upload

From an upload perspective, the information being uploaded follows the defined template structure accordingly and will be processed synchronously or asynchronously based on the parameter being passed in the REST service call payload.

  • The upload can be initiated by APEX, or any external entity.

  • It can be configured for each template and file type in column AVAILABLE_FOR of table ORCV_S9T_TEMPLATE_FILE_TYPE that indicates whether it is available for APEX, ORDS, or ALL.

  • To start the upload, it will be required at least to pass:

    • The template type

    • The corresponding action type (in this case Upload)

    • The processing type: ASYNC or SYNC

    • What kind of file type: XLSX / JSON

    • And correspondent file object

  • The Java service will parse the request and check the required template format for the operation and accordingly will stage that information on the database using ORDS.
  • Depending on the operation type the return to the user can be just the process identifier, for asynchronous operations or the information if it was successful or not the upload in synchronous operation.
  • Additional to the normal upload process, this can trigger an integration that can result in a corresponding notification to the user once all the records or successfully integrated or not.

Note:

Upload Download Framework has a size limit of 20mb per compressed file and files larger than that might not be possible to process.
APEX

Considering that we do not have a continuous flow of authorization between APEX/Java/ORDS it will be required to register the request from APEX associated with a specific process on Java so that once the ORDS is invoked we can understand who the owner of this upload process is and enable data filter policy at database side.

During the request to ORDS, the process identifier will be handover to ensure that the correct database context will be injected during the upload process.

Figure 27-10 Upload and Download Framework Oracle APEX Upload Implementation Overview


Upload and Download Framework Oracle APEX Upload Implementation Overview
  1. User Login on Apex application.
  2. The user session and roles will be injected using the security framework.
  3. APEX prehook sets the database context for the user.
  4. The user specifies the template and uploads the file.
  5. The S9T process table will keep the information about the user and session.
  6. During the process, the S9T process will check the information about the process identifier that was received and will inject the context into the database.
  7. With this information the process will check what user permissions are; for example, if the user has access to supplier information or if can upload the required information.
JSON Upload

The upload in JSON follows the same process flow as the upload in XLSX from APEX UI but is only available as a ReST web service, the request payload structure is based on the template key defined on ORCV_S9T_TEMPLATE, ORCV_S9T_WKSHT, and ORCV_S9T_WKSHT_COLS tables.

For a template to be enabled for JSON upload, the template key needs to have a record in table ORCV_S9T_TEMPLATE_FILE_TYPE where file_type is JSON.

The upload with JSON implements Client Credentials security flows described on chapter ‘Oracle REST Data Services (ORDS) and Application Express (APEX)’.

Configuration requirements for request with Client Credential:

  • IDCS Application scope mapped to the appropriate S9T role from ORCV_S9T_TEMPLATE_EVENT_ROLE for the template upload action on ORCV_SEC_ROLES_SCOPES.
  • User created on IDCS with the name matching the IDCS application client ID used to request the token.
  • User configured on Profile application with the appropriate roles and security level permission for the actions that want to be performed via JSON upload.

On upload as JSON, the columns keys defined for the template key on ORCV_S9T_WKSHT_COLS are mapped on the upload payload as attributes with any underscore character removed and the next character after it in uppercase, transformed to camel case.

Download

From a download perspective, it will be possible to download a blank template in the format required or with data accordingly to data restrictions and filter criteria.

Figure 27-11 Download Flow


Download Flow
  1. User Login on Apex application.

  2. The user session and roles will be injected using the security framework.

  3. APEX prehook sets the database context for the user.

  4. The user specifies the template and uploads the file.

  5. APEX request the download through a database call and not using the UPLDLND Java API.

  6. The database will call the same PL\SQL method has exposed by ORDS.

  7. Applying data filter policy and returning the corresponding JSON.

  8. Get the credentials configured on APEX to do a call to the Java service.

  9. Invokes the Java service with the JSON output from the database call.

  10. The Java service based on JSON will do the transformation to the file type requested.

ORDS Download Processing Flow

After the Java Service sends the user information and file template, the ORDS service will try to complement this information to process the download.

The first step will be to use a function called WRP_JSON_TO_STG_OBJECT, which receives a JSON payload as the response from the Java service. This function will parse the JSON and retrieve information about the user, filter criteria, and template file.

Then, ORDS will use another function, BUILD_PROCESS_OBJ, to get more information about the template file structure such as how many worksheets and columns are part of this template.

Finally, to proceed to the action of Download, ORDS will call a generic function, PROCESS, responsible for validating the template file structure and will call another function responsible to perform the action.

Figure 27-12 ORDS Service Download Flow


ORDS Service Download Flow

Web Service

This section describes the web service.

ORDS

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ords/mfcs/orcv/upldnld/<URL_PATH>

Excel Format
URL Path Request Method Request Body
/downloadui POST

{

"fileType": "XLSX",

"downloadType": "D",

"filters": [

{

"filterValues": [

"FILTER1, FILTER2"

]

}

],

"templateKey": "TEMPLATE_KEY",

"appCode": "APP_CODE"

}

JSON Format
URL Path Request Method Request Body
/upload POST

{

"templateKey": "SPIM_ITEM_DATA",

"appCode": "SPIM",

"isAsync": "Y",

"fileType": "JSON",

"fileName": "example.json",

"file": {

"data": {

"userLang": "1",

"worksheets": [

{

"wkshtKey": "ITEM_HEADER",

"lines": [

{

"attributes": {

"action": "NEW",

"item": "1",

"itemType": "SKU",

"vpn": null,

"supplier": 6200,

"status": "A",

"vendorDesc": "TestSKULC_MultiSupps",

"itemDesc": "Example",

"inventoryInd": "Y",

"orderableInd": "Y",

"sellableInd": "Y",

"diff1": null,

"diff2": null,

"diff3": null,

"diff4": null,

"dept": 3081,

"class": 2,

"subclass": 1,

"brandName": null,

"seasonPhase": null,

"onSaleDate": null,

"offSaleDate": null,

"stockAvailable": 2,

"rrp": null,

"ref1": null,

"ref2": null,

"ref3": null,

"ref4": null,

"ref5": null

}

}

]

}

]

}

}

}

Materialized View Framework

The Materialized View Framework will allow a configurable approach to create, maintain, and refresh data on tables based on the principle of materialized views.

Process Overview

Figure 27-13 Materialized View Framework Implementation Process Overview


Materialized View Framework Implementation Process Overview

Batch Flow

This section describes the batch flow.

Run

Figure 27-14 Materialized View Run Function


Materialized View Run Function
Pre Processor

Figure 27-15 Materialized View Pre Processor Function


Materialized View Pre Processor Function
Processor

Figure 27-16 Materialized View Processor Function


Materialized View Processor Function
Post Processor

Figure 27-17 Materialized View Post Processor Function


Materialized View Post Processor Function

Refresh Materialize View Web Service

Service that starts the refresh materialized view batch.

Frequency: Ad-hoc

Request Method: POST

Refresh Materialize View
Url Path <BASE URL>/ords/mfcs/orcv/common/refreshmv/batch/start
Request Method POST
Sample Request Body

{

"jobName": "ORCV_COMMON_MV_REFRESH_JOB",

"parameters": "PROCESS_TYPE=<PROCESS_TYPE>||PROCESS_TYPE_VALUE=<RESULT_SYNONYM>"

}

Sample Success Message

{

"executionId": 181,

"status": "Submitted",

"executionInfo": "null"

}

Response Code: 200 (Success)

Parameters:

Parameter Description Mandatory
PROCESS_TYPE

Valid values are:

VIEW

MOD (Module)

CHAIN

This value indicates the definition of process type value.

Y
PROCESS_TYPE_VALUE Result Synonym from ORCV_REFRESH_MV_CONFIG by process_type Y
REFRESH

Valid values are:

F (force refresh without checking if the materialized view needs refreshing or checks for its dependency batch)

N
Database Objects
Object Type Name Sub Object Type Sub Object Name Description
Table

ORCV_REFRESH_MV_

CONFIG

NA NA Configuration of refresh process.
Table

ORCV_REFRESH_MV_

DEPENDENCY

NA NA Configuration of refresh process dependency.
Table Type

ORCV_REFRESH_MV_

CONFIG_OBJ

NA NA NA
Package

ORCV_COMMON_MV_

REFRESH

Function

COMMON_PRE_

PROCESSOR

Function that segregates in threads all records the view source.
Function VALIDATION Validate if there is a need to Refresh the Materialized View.
Function PRE_PROCESSOR Prepare all records for Processor step, organize head when MOD or CHAIN, created detail views and set level dependency.
Function PROCESSOR Apply the Rule like an example, truncated the current table A and fill table, by threads or not.
Function POST_PROCESSOR Rebuild indexes, switch synonym if process step has executed with success.
Configurations

Objects

Object Type Name Description
Table ORCV_[APP/MODULE]_A_R Table that will contain info. Used for synonym
Table ORCV_[APP/MODULE]_B_R Table that will contain info. Used for synonym.
View ORCV_V_[APP/MODULE]_R View with information to insert into A_R or B_R tables.
View ORCV_V_[APP/MODULE]_RC View used to control threads.
View ORCV_V_[APP/MODULE]_VL View used to control if there is new data.

Note:

A Synonym ORCV_MV_[APP/MODULE] for ORCV_[APP/MODULE]_A_R table will need to be created.

Purge Framework

This section describes the Purge Framework.

Overview

As part of Retail Supply Chain Hub, the mechanism for purging data from all applications is provided by a framework that can be configured with the entities, frequencies, and dependencies between them.

Out of the box, the purging framework can be configured with two different purging mechanisms implemented depending on the target table to be purged. If the table that needs to be purged is partitioned by a date type column, then a purge by date method can be used. In this scenario partitions older than the PURGE_DAYS system parameter will be dropped.

As an alternative, the approach is based on a delete view driving logic that requires a driving view configuration. This view will return the rows to be purged for each table and each thread, returning the selected column to filter the row, as FILTER_FIELDS, and the thread number that will purge the record. Both the filter column and the number of threads that can be configured in the table ORCV_PURGE_CONFIG.

Batch Flow

Figure 27-18 Purge Framework Batch Flow


Purge Framework Batch Flow

Configuration

Affected Table Purge Days
ORCV_THREAD_CONTROL 30
ORCV_LOGS 30
ORCV_BATCH_AUDIT_LOG 30
ORCV_WORKSPACE_LOGIN 2

Purge Web Service

Request Method: POST

Authorization Method: OAuth 2.0

Frequency: Nightly

URL: <BASE_URL>/ords/mfcs/orcv/merch/common/purge/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST Empty Configured purge tables
batch/restart POST

{

"executionId": <EXEC_ID>

}

Configured purge tables
batch/log GET

URL query parameters:

/log?jobName=ORCV_COMMON_PURGE_JOB&

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

N/A
batch/kill POST Empty N/A
batch/status GET

URL query parameters:

/status?jobName=ORCV_COMMON_PURGE_JOB&

executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Events Framework

The Events Framework supports the overall managing of notifications on screen and alerts between all applications.

This includes notifying the user in-app whenever an event occurs of type Notification and alerting the configured users outside of the applications, through e-mail or others for events of type Alert. An Event can originate one or multiple Notifications and/or Alerts.

The notifications and alerts are driven by a template that can be defined at the database or calling external services, for example for:

  • Alerts – For a specific alert it will be possible to configure an Oracle Business Intelligence Publisher that on request, through a ReST endpoint, return a Portable Document Format (PDF) that will be include has an attachment on the email.
  • Notifications – For a specific notification will be possible to configure a URL that once the user receives the notification on app can to a contextual launch for example to a specific entity on the screen.

Considering that the framework is configurable it will be possible to extend existing events with new notifications or even alerts.

The Events Framework has a retry mechanism that is responsible for handling the cases when there is an error creating the alert, or it was created but cannot be sent.

Process Overview

Figure 27-19 Events Process Overview


Events Process Overview
Events Process Flow

Figure 27-20 Events Process Flow


Events Process Flow

Configuration

This section describes configurations.

Configuration Tables

Configuration table: ORCV_EVENT

This table will contain events.

Column Name Description Example
EVENT_TYPE This field contains the event type uniquely identifying each row on the table ORCV_PRICE_INT_PC_EVENT
EVENT_DESC This field contains the event description Message error in RPCS integration
ALERT_ENQUEUE_EVENT This column holds the function for alert enqueue event ORCV_EVENT_ALERT_AQP.ENQUEUE
NOTIF_ENQUEUE_EVENT This column holds the function for notif enqueue event NULL
STATUS This field contains the event status A

Configuration table: ORCV_EVENT_NOTIF_CONFIG

The table contains the notifications configurations.

Column Name Description Example
EVENT_TYPE Indicates the event type. The convention to create the event type ID is to use the first number as the identifier for a given entity ORCV_PCEG_EVENT_NORMAL
NOTIF_TEMPLATE_NAME The Notification Event Template name. PCEG_EVENT_NORMAL
CONTENT_FUNCTION This field contains the name of the function that returns content notification

ORCV_PCEG_EVENT.

CREATE_CONTENT_NOTIF

QUEUE_NAME This column holds the queue name of the template ORCV_EVENT_NOTIF_AQ
NUMBER_QUEUES This column holds the number of queues 4
MAX_RETRY This field contains the max retry attempts count that was used in the process of retry NULL
WAIT_TIME_RETRY This field contains the wait time to retry attempts NULL
STATUS This field contains the status code of the event (A - Active; I - Inactive) A
DISCARD_BUSINESS_ID Indicates if the notification will discard business ID, valid values (Y, N), Defaults "N" Y

Configuration table: ORCV_EVENT_NOTIF_TEMPLATE

The table containing the notifications templates.

Column Name Description Example
NOTIF_TEMPLATE_NAME The Notification Event Template unique name. SPIM_EVENT_SUBM_NEW_ITEM
SEVERITY The severity of the template Notification (1-Critical, 2_Important, 3-Normal) 3
LAUNCHABLE Indicates if the notification URL is launchable N
APPLICATION_CODE Application where notification came from SPIM
NAME This column contains the name of the template SPIM_EVENT_SUBM_NEW_ITEM
DESC_TEMPLATE Free message text, to be associated to template New Items submitted
URL This column contains the URL associated with the notif template NULL
NOTIF_TYPE Notification type of the Notification Template NULL
NOTIF_TARGET Notification target NULL
CONTENT_ENDPOINT_ID Endpoint ID for the content NULL

Configuration table: ORCV_EVENT_NOTIF_TEMPLATE_TL

The table containing the notifications templates translations.

Column Name Description
LANG Contains a number that uniquely identifies a language
SEVERITY The severity of the template Notification (1-Critical, 2_Important, 3-Normal)
LAUNCHABLE Indicates if the notification URL is launchable
APPLICATION_CODE Application where notification came from
NAME This column contains the name of the template
DESC_TEMPLATE Free message text, to be associated to template
URL This column contains the URL associated with the notif template
NOTIF_TYPE Notification type of the Notification Template
NOTIF_TARGET Notification target
CONTENT_ENDPOINT_ID Endpoint ID for the content

Configuration table: ORCV_EVENT_ALERT_CONFIG

Table that defines the alert templates for each Event Type.

Column Name Description Example
IS_ASYNC This column holds the flag to show if the alert is asynchronous. Y
ATTRIBUTE_FUNCTION This field contains the name of the function that returns the attributes for the event.

ORCV_SPIM_EVENT_NOTIF_ALERT.

GET_EVENT_ALERT_ATTRIBUTES

ALERT_TEMPLATE_NAME This column contains the unique name of the template SPIM_EVENT_ITEMS_PENDING_ACTION
EVENT_TYPE This field contains the event type. ORCV_SPIM_EVENT_ITEMS_PENDING
STATUS This field contains the status. Valid values (A-Active, I - Inactive). A
CONTENT_FUNCTION This field contains the name of the function that return content alert.

ORCV_SPIM_EVENT_NOTIF_ALERT.

CREATE_CONTENT_ALERT_

PENDING_ACTION

QUEUE_NAME This column holds the queue name of the template. ORCV_EVENT_ALERT_AQ
NUMBER_QUEUES This column holds the number of queues. 4
MAX_RETRY This field contains the max retry attempts count that was used in the process of retry. 3
WAIT_TIME_RETRY This field contains the wait time to retry attempts. NULL

Configuration table: ORCV_EVENT_ALERT_TEMPLATE

The table containing the alerts configuration.

Column Name Description Example
ALERT_TEMPLATE_NAME This column contains the name of the template. ORCV_SPIM_EVENT_ITEMS_PENDING
ALERT_TYPE Indicates what kind of alert the context corresponds to. Valid values (EMAIL, SMS, and so on). EMAIL
FORMAT_FILE Indicates what kind of title (HTML, CSV, or TEXT). HTML
CONTENT_VALUE Content value. NULL
CONTENT_ENDPOINT_ID Content WS endpoint ID. NULL
CONTENT_WALLET_KEY Content WS endpoint wallet key. NULL
CONTENT_WALLET_MAP Content WS endpoint wallet map. NULL
TITLE_TYPE Indicates what kind of title (for example: BIP, EXTERNAL-WS ). DB_TEXT
TITLE_ENDPOINT_ID Title WS endpoint ID. NULL
TITLE_VALUE The description of the title the alert. Items Pending
TITLE_WALLET_KEY Title WS endpoint wallet key. NULL
TITLE_WALLET_MAP Title WS endpoint wallet map. NULL
SUBJECT_TYPE Indicates what kind of subject (U-rl or T-ext). DB_TEXT
SUBJECT_ENDPOINT_ID Subject WS endpoint ID. NULL
SUBJECT_VALUE The description of the subject the alert. Items Pending
SUBJECT_WALLET_KEY Subject WS endpoint wallet key. NULL
SUBJECT_WALLET_MAP Subject WS endpoint wallet map. NULL
BODY_TYPE Indicates what kind of body (U-rl or T-ext). BIP
BODY_ENDPOINT_ID Body WS endpoint ID. ORCV_BIP_REPORTS
HEADER_VALUE The description of the header the alert. NULL
BODY_VALUE The description of the body the alert.

MFCS%252FOrders%252Ford_det

%252Ford_det.xdo/run

FOOTER_VALUE The description of the footer the alert. NULL
BODY_WALLET_KEY Body WS endpoint wallet key. bipBasicClient
BODY_WALLET_MAP Body WS endpoint wallet map.

oracle.retail.apps.platform.services.bip.

security.basic

CONTENT_AUTH_TYPE Content authorization type: BASIC, IDCS. BASIC
CONTENT_AUTH_URL Content URL for non-basic authorization type. NULL
CONTENT_SCOPE Content scope for non-basic authorization type. NULL
TITLE_AUTH_TYPE Title authorization type: BASIC, IDCS. NULL
TITLE_AUTH_URL Title URL for non-basic authorization type. NULL
TITLE_SCOPE Title scope for non-basic authorization type. NULL
SUBJECT_AUTH_TYPE Subject authorization type: BASIC, IDCS. NULL
SUBJECT_AUTH_URL Subject URL for non-basic authorization type. NULL
SUBJECT_SCOPE Subject scope for non-basic authorization type. NULL
BODY_AUTH_TYPE Body authorization type: BASIC, IDCS. NULL
BODY_AUTH_URL Body URL for non-basic authorization type. NULL
BODY_SCOPE Body scope for non-basic authorization type. NULL
BODY_LIST_LIMIT Maximum body list size for sending the alert by email. If not defined the System Parameters BODY_LIST_LIMIT should be used as a default. NULL

Configuration table: ORCV_EVENT_ALERT_TEMPL_ATTACH

The table containing the alerts configuration.

Column Name Description Example
ALERT_TEMPL_ATTACH_ID Unique identifier for rows in this table. 1
ALERT_TEMPLATE_NAME This column contains the unique name of the template ORCV_SPIM_EVENT_ITEMS_PENDING
FORMAT_FILE Indicates what kind of file format; for example: CSV, PDF PDF
ATTACH_NAME This column contains the name of the attach. application/octet-stream
ATTACH_TYPE Indicates what kind of attachment type (URL or TEXT). BIP
ATTACH_MIME_TYPE Indicates what kind of MIME type. application/octet-stream
ATTACH_VALUE This column contains the attached, which could be a base64 string.

{BIP_SERVER}/xmlpserver/services

/rest/v1/reports/MFCS%252FOrders%252F

ord_det%252Ford_det.xdo/run

ATTACH_WALLET_KEY This field contains the wallet key. bipBasicClient
ATTACH_WALLET_MAP This field contains the wallet map.

oracle.retail.apps.platform.services.bip.

security.basic

ATTACH_AUTH_TYPE Content authorization type: BASIC, IDCS. BASIC
ATTACH_AUTH_URL Content URL for non-basic authorization type NULL
ATTACH_SCOPE Content scope for non-basic authorization type NULL

Configuration table: ORCV_EVENT_ALERT_BATCH_CONFIG

This table contains the batch configurations for the event_type/alert_type combination.

Column Name Description Example
EVENT_TYPE The event type identifier (Order creation, Order update, and so on). ORCV_SPIM_EVENT_ITEMS_PENDING
ALERT_TYPE Indicates what kind of Alert it is. Valid values (EMAIL, SMS, and so on). EMAIL
STATUS This field contains the status of the configuration. (A-Active, I-Inactive). A
ADHOC_IND This column indicates whether the flow is classified as an ad hoc flow. Valid values are: 'Y', 'N'. N
System Parameters

Listed below is the list of configurations at system level that are used by Events Framework.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1 Value 2
BATCH THRESHOLD_INT Default threshold limit 10 NA
CONFIG MAX_JOBS_RUNNING Maximum jobs to run in parallel to process events_notifications 16 NA
CONFIG MAX_JOBS_RUNNING Maximum jobs to run in parallel to process event_alerts 16 NA
NOTIF

APEX_NOTIF_MAX_

ROWS

Default value for the max number of rows to show in the apex list of notifications 10 NA
PURGE

NOTIF_RETENTION_

PERIOD

Default retention period in days before purging deleted notifications 60 NA
PURGE PURGE_DAYS Default purge Period ORCV_EVENT_ALERT 30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_ALERT_

ATTACH

30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_ALERT_

ERROR

30
PURGE PURGE_DAYS Default purge Period ORCV_EVENT_NOTIF 30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_NOTIF_

GRP_STATUS

30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_NOTIF_

USER_STATUS

30
PURGE PURGE_DAYS Default purge Period ORCV_EVENT_PROCESS 30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_PROCESS_

ATTRIBUTES

30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_PROCESS_

ROLE_NAME

30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_PROCESS_

TARGET_APP

30
PURGE PURGE_DAYS Default purge Period

ORCV_EVENT_PROCESS_

TARGET_ROLE

30
Codes

Certain operations require codes to define the options available at system level. Below you can find the list of code types and the codes available, the sequence and their description.

The codes are defined in tables ORCV_CODE_HEAD and RCV_CODE_DETAIL.

Code Type Description
ALET Alert Error Types
ALST Alert Status
NTST Notifications Status
NTST Notifications Status
Batch

This section describes the list of batch jobs used by this framework.

Module Program Name Max Chunk Size Max Concurrent Threads Retry Lock Attempts Retry Indicator
EVENTS ORCV_EVENT_ALERT_JOB 1000 4 3 N

Web Service

Frequency: Ad-hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/EventAlertsJavaServicesWeb/services/orcv/merch/event/integration/alerts/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_EVENT_ALERT_JOB",

"agentExecutionId":"",

"parameters":"EVENT_TYPE=<EVENT_

TYPE>"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_EVENT_PROCESS

ORCV_EVENT_ALERT

ORCV_EVENT_ALERT_ATTACH

ORCV_EVENT_NOTIF

ORCV_EVENT_ALERT_ERROR

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId": <EXEC_ID>,

"jobName":"ORCV_EVENT_ALERT_JOB",

"agentExecutionId":"",

"parameters":"EVENT_TYPE=<EVENT_

TYPE>"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_EVENT_PROCESS

ORCV_EVENT_ALERT

ORCV_EVENT_ALERT_ATTACH

ORCV_EVENT_NOTIF

ORCV_EVENT_ALERT_ERROR

batch/log GET

URL query parameters:

/log?jobName=ORCV_EVENT_ALERT_JOB&

executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_EVENT_ALERT_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_EVENT_

ALERT_JOB&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

POM (Process Orchestration and Monitoring)

Batch Schedule Download

Download Through Upload Download Application UI

Retail Supply Chain Hub has multiple batch jobs that must be scheduled in POM, to allow for the initial setup and update of the ORCV POM schedule, the Base Schedule spreadsheet can be downloaded through the Upload Download application.

Download requirements:

  • Retailer type user with access provided to POM Module application through the Profile.

For a user that fulfills the download requirements the download can be done from the Upload Download application on the Download Blank tab with the following selections:

  • Template Source: POM Module
  • Template Name: Pom Batch Schedule Template
  • File Type: XLSX
Download through Web Service

As an alternative way of downloading the ORCV schedule in POM, the following service can be invoked through ReST and provides the default spreadsheet for ORCV schedule.

Request Method: POST

Authorization Method: OAuth 2.0 with Password Credentials Token

Note: Password Credentials Token needs to be requested for a user with group ORCV_POM_APP_JOB assigned to him in IDCS or in ORCV_SEC_USER_APP.

Base URL: <BASE_URL>/ords/mfcs/orcv/upldnld/<URL_PATH>/

URL Path Request Method Request Body Response
/downloadui POST

{

"fileType": "XLSX",

"downloadType": "B",

"filters": [

{

"filterValues": [

""

]

}

],

"templateKey": "BATCH_

SCHEDULE_DATA",

"appCode": "POM"

}

Base64 encoded XLSX file, named:

BATCH_SCHEDULE_DATA.XLSX

Batch Schedule Configuration Download

Download Through Upload Download Application UI

Retail Supply Chain Hub has multiple batch jobs that must be scheduled in POM with different frequencies, to allow for the initial setup, the Schedule Configuration spreadsheet can be downloaded through the Upload Download application.

Download requirements:

  • Retailer type user with access provided to POM Module application through the Profile.

For a user that fulfills the download requirements the download can be done from the Upload Download application on the Download Blank tab with the following selections:

  • Template Source: POM Module
  • Template Name: Pom Batch Schedule Configuration Template
  • File Type: XLSX
Download through Web Service

As an alternative way of downloading the ORCV schedule in POM, the following service can be invoked through ReST and provides the default spreadsheet for ORCV schedule.

Request Method: POST

Authorization Method: OAuth 2.0 with Password Credentials Token

Note: Password Credentials Token needs to be requested for a user with group ORCV_POM_APP_JOB assigned to him in IDCS or in ORCV_SEC_USER_APP.

Base URL: <BASE_URL>/ords/mfcs/orcv/upldnld/<URL_PATH>/

URL Path Request Method Request Body Response
/downloadui POST

{

"fileType": "XLSX",

"downloadType": "B",

"filters": [

{

"filterValues": [

""

]

}

],

"templateKey": "BATCH_

SCHEDULE_CONFIG_DATA",

"appCode": "POM"

}

Base64 encoded XLSX file, named:

BATCH_SCHEDULE_CONFIG_DATA.XLSX

Callback Service

The POM callback service allows Retail Supply Chain Hub to receive notifications of external batch status, which can then be set as data dependencies to processes like the materialized view refresh or other internal batches. The main objective of this callback is to log the batch process status that can then be used to trigger dependencies, from a data replication perspective from other batches.

Web Service

This section describes the web service.

ORDS Web Service

Request Method: POST

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ords/mfcs/orcv/common/batch/pom/<URL_PATH>

URL Path Request Method Request Body Response
/auditlogcallback POST

{

"callerId": "XXX",

"correlationId": "37",

"processName": "MERCH_BATCH_PROCESS_01",

"processExecutionId": "MERCH_BATCH_PROCESS_01",

"activityName": "MERCH_BATCH_JOB",

"activityExecutionId": "123456",

"status": "COMPLETED",

"activityStatus": "ACTIVITY_COMPLETED",

"failedActivity": null

}

ORCV_BATCH_AUDIT_LOG
/ping GET Empty NA

Aggregator Framework

The Aggregator Framework (AGG) creates a common identifier based on given keys and rules. It receives the details to determine the configuration to be applied and the key values, then concatenates multiple columns and values and resulting in a return object with the identifier.

Process Overview

Figure 27-21 Aggregator Framework Process Overview


Aggregator Framework Process Overview

Database Objects

This section describes database objects.

Tables

This section describes tables.

ORCV_AGGID_CONFIG

This table contains the configuration for generation of aggregation identifiers based on table data.

Table Columns

Column Name Data Type Description
APP_ALIAS VARCHAR2 Unique number that identifies a price event. Fed by a sequence.
AGG_NAME VARCHAR2 Unique identifier for this config inside this app alias.
ENTITY_TABLE VARCHAR2 Name of the table to be used as source for the identifier creation.
ENTITY_KEY_1 VARCHAR2 Name of the column to use to filter from entity table.
ENTITY_KEY_2 VARCHAR2 Name of the column to use to filter from entity table.
ENTITY_KEY_3 VARCHAR2 Name of the column to use to filter from entity table.
ENTITY_KEY_4 VARCHAR2 Name of the column to use to filter from entity table.
ENTITY_KEY_5 VARCHAR2 Name of the column to use to filter from entity table.
AGG_DELIMITER VARCHAR2 Delimiter to use between AGG fields in the identifier created.
AGG_FIELD_1 VARCHAR2 Name of the column to use in identifier creation.
AGG_FIELD_2 VARCHAR2 Name of the column to use in identifier creation.
AGG_FIELD_3 VARCHAR2 Name of the column to use in identifier creation.
AGG_FIELD_4 VARCHAR2 Name of the column to use in identifier creation.
AGG_FIELD_5 VARCHAR2 Name of the column to use in identifier creation.
CREATE_ID VARCHAR2 This field contains the user that created the record.
CREATE_DATETIME DATE This field contains the datetime when the record is created.
LAST_UPDATE_ID VARCHAR2 This field contains the user that last updated the record.

LAST_UPDATE_

DATETIME

DATE This field contains the datetime when the record is last updated.
ACTIVE_IND VARCHAR2 This field indicates if the config is active.

Table Constraints

Table Columns Constraint
ORCV_AGGID_CONFIG APP_ALIAS, AGG_NAME APP_ALIAS, AGG_NAME must be unique.
Packages

This section describes packages.

Package ORCV_COMMON_AGGID
Function Description
VALIDATE_DATA_TYPES Validates whether the input parameters data types against the table columns data types and return all the WHERE clause conditions to use in SELECT
GET_AGG_ID

Return an aggregation identifier for a given configuration for the following parameters:

O_error_message

O_agg_id

I_entity_keys_values

GET_AGG_ID

Return an aggregation identifier for a given configuration for the following parameter:

I_entity_keys_values

GET_AGG_ID

Return an aggregation identifier for a given configuration for the following parameters:

I_app_alias

I_agg_name

I_entity_value_1_char

I_entity_value_1_number

I_entity_value_1_date

I_entity_value_2_char

I_entity_value_2_number

I_entity_value_2_date

I_entity_value_3_char

I_entity_value_3_number

I_entity_value_3_date

I_entity_value_4_char

I_entity_value_4_number

I_entity_value_4_date

I_entity_value_5_char

I_entity_value_5_number

I_entity_value_5_date

Configuration

# Step Example
1 Add the configuration to ORCV_AGGID_CONFIG

MERGE INTO orcv_aggid_config c

USING (SELECT 'SPPM' app_alias,

'SPPM_PRM' agg_name,

'ORCV_V_SPPM_PRM_AGG' entity_table,

'PRICE_EVENT_ID' entity_key_1,

NULL entity_key_2,

NULL entity_key_3,

NULL entity_key_4,

NULL entity_key_5,

'_' agg_delimiter,

'''SPPM_SUPPLIER''' agg_field_1,

'SUPPLIER' agg_field_2,

'START_DATE' agg_field_3,

'EXCLUSIVE_DISCOUNT_IND' agg_field_4,

NULL agg_field_5,

'Y' active_ind

FROM DUAL) tbl

ON (c.app_alias = tbl.app_alias AND

c.agg_name = tbl.agg_name)

WHEN NOT MATCHED THEN

INSERT (app_alias, agg_name, entity_table,

entity_key_1, entity_key_2, entity_key_3, entity_key_4, entity_key_5,

agg_delimiter,

agg_field_1, agg_field_2, agg_field_3, agg_field_4, agg_field_5,active_ind)

VALUES (tbl.app_alias, tbl.agg_name, tbl.entity_table,

tbl.entity_key_1, tbl.entity_key_2, tbl.entity_key_3 tbl.entity_key_4, tbl.entity_key_5,

tbl.agg_delimiter,

tbl.agg_field_1, tbl.agg_field_2, tbl.agg_field_3, tbl.agg_field_4, tbl.agg_field_5,

tbl.active_ind);

2 Add a call to the API with the required parameters.

ORCV_COMMON_AGGID.GET_AGG_ID(

I_app_alias => 'SPPM',

I_agg_name => 'SPPM_PRM',

I_entity_value_1_number => price_event_id);

View Join Framework

View Join is a Framework that joins multiple views or tables together in a specific order defined in its configuration as a pipelined function.

Process Overview

Figure 27-22 View Join Framework Process Overview


View Join Framework Process Overview

Database Objects

This section describes database objects.

Tables

This section describes tables.

ORCV_COMMON_VJOIN_CONFIG

This table contains the configuration for Views Join.

Table Columns

Column Name Data Type Description
APP_ALIAS VARCHAR2 This field indicates the APP Alias.
VJOIN_NAME VARCHAR2 This field indicates the View Join name.
SEQ_NO NUMBER This field indicates the view sequence number execution.
WEIGHT NUMBER This field indicates Weight for the view, higher weight means higher priority on view execution.
VIEW_NAME VARCHAR2 This field indicates the Source View Name.
CREATE_ID VARCHAR2 This field contains the user that created the record.
CREATE_DATETIME DATE This field contains the datetime when the record is created.
LAST_UPDATE_ID VARCHAR2 This field contains the datetime when the record is last updated.

LAST_UPDATE_

DATETIME

DATE This field contains the user that last updated the record.

Table Constraints

Table Columns Constraint
ORCV_COMMON_VJOIN_CONFIG APP_ALIAS, VJOIN_NAME, SEQ_NO APP_ALIAS, VJOIN_NAME, SEQ_NO must be unique.
Packages

This section describes packages.

Package ORCV_COMMON_VJOIN
Function Description
GET_COLUMNS Prepares a string with all columns names to build the final query.
GET_WHERE_CLAUSE Prepares the where clause of one column (reference/filter column) to build the final query.
GET_WHERE_CLAUSE_ALL

Prepares the WHERE clause of all columns (reference/filter columns) to build the final query.

Evokes the GET_WHERE_CLAUSE function for each reference/filter column.

GET_VIEWS

Prepares a string to obtain data from all parameterized views in the ORCV_COMMON_VJOIN_CONFIG table.

The views to be aggregated are defined in the ORCV_COMMON_VJOIN_CONFIG.VIEW_NAME column and are grouped by the ORCV_COMMON_VJOIN_CONFIG.VJOIN_NAME column.

The function ORCV_COMMON_VJOIN.GET_VIEWS will return data as a pipelined table object.

Views

All views defined in table/column ORCV_COMMON_VJOIN_CONFIG/VIEW_NAME must comply with the format below:

Column Type Description
REF_VARCHAR2_1 VARCHAR2 Varchar Column-1 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_VARCHAR2_2 VARCHAR2 Varchar Column-2 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_VARCHAR2_3 VARCHAR2 Varchar Column-3 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_VARCHAR2_4 VARCHAR2 Varchar Column-4 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_VARCHAR2_5 VARCHAR2 Varchar Column-5 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_NUMBER_6 NUMBER Number Column-6 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_NUMBER_7 NUMBER Number Column-7 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_NUMBER_8 NUMBER Number Column-8 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_NUMBER_9 NUMBER Number Column-9 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_NUMBER_10 NUMBER Number Column-10 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_DATE_11 DATE Data Column-11 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_DATE_12 DATE Data Column-12 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_DATE_13 DATE Data Column-13 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_DATE_14 DATE Data Column-14 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
REF_DATE_15 DATE Data Column-15 used to filter data when we call the ORCV_COMMON_VJOIN.GET_VIEWS function.
VARCHAR2_1 VARCHAR2 Column-1 used to store alphanumeric type column.
VARCHAR2_1 VARCHAR2 Column-2 used to store alphanumeric type column.
VARCHAR2_1 VARCHAR2 Column-3 used to store alphanumeric type column.
VARCHAR2_1 VARCHAR2 Column-4 used to store alphanumeric type column.
VARCHAR2_1 VARCHAR2 Column-5 used to store alphanumeric type column.
NUMBER_6 NUMBER Column-6 used to store numeric type column.
NUMBER_7 NUMBER Column-7 used to store numeric type column.
NUMBER_8 NUMBER Column-8 used to store numeric type column.
NUMBER_9 NUMBER Column-9 used to store numeric type column.
NUMBER_10 NUMBER Column-10 used to store numeric type column.
DATA_11 DATE Column-11 used to store date type column.
DATA_12 DATE Column-12 used to store date type column.
DATA_13 DATE Column-13 used to store date type column.
DATA_14 DATE Column-14 used to store date type column.
DATA_15 DATE Column-15 used to store date type column.

Configuration

# Step Example
1 Create a View to be joined

CREATE OR REPLACE FORCE EDITIONABLE VIEW ORCV_V_SPPF_DASH_ALERTS1 AS

WITH count_tb AS (SELECT qmf.no_days no_days,

COUNT(1) ccount

FROM orcv_v_sppf_suppliers sups,

orcv_v_sppf_quest_min_freq qmf

WHERE qmf.no_days > 0

AND NOT EXISTS (SELECT 0

FROM orcv_sppf_questn_reply_head qrh

WHERE qrh.supplier = sups.supplier

AND qrh.reply_Date >= sysdate - qmf.no_days)

SELECT NULL ref_varchar2_1,

NULL ref_varchar2_2,

NULL ref_varchar2_3,

NULL ref_varchar2_4,

NULL ref_varchar2_5,

TO_NUMBER(NULL) ref_number_6,

TO_NUMBER(NULL) ref_number_7,

TO_NUMBER(NULL) ref_number_8,

TO_NUMBER(NULL) ref_number_9,

TO_NUMBER(NULL) ref_number_10,

TO_DATE(NULL) ref_date_11,

TO_DATE(NULL) ref_date_12,

TO_DATE(NULL) ref_date_13,

TO_DATE(NULL) ref_date_14,

TO_DATE(NULL) ref_date_15,

REPLACE(REPLACE(err.error_text,

'%s1',

TO_CHAR(ctb.ccount)),

'%s2',

TO_CHAR(ctb.no_days)) varchar2_1,

(SELECT cd.code_desc

FROM orcv_v_das_code_detail_tl cd

WHERE cd.code_type = 'ISST'

AND cd.code = ac.alert_title) varchar2_2,

ac.alert_type varchar2_3,

ac.alert_icon varchar2_4,

NULL varchar2_5,

NULL number_6,

NULL number_7,

NULL number_8,

NULL number_9,

NULL number_10,

NULL date_11,

NULL date_12,

NULL date_13,

NULL date_14,

NULL date_15

FROM orcv_sppf_alert_cfg ac,

orcv_errors err,

count_tb ctb

WHERE ac.alert_id = 'DASH_SUP_NO_QST'

AND err.error_key = ac.alert_message;

2 Create another View to be joined

CREATE OR REPLACE FORCE EDITIONABLE VIEW ORCV_V_SPPF_DASH_ALERTS2 AS

WITH count_tb AS (SELECT qmf.no_days no_days,

COUNT(1) ccount

FROM orcv_v_sppf_suppliers sups,

orcv_v_sppf_quest_min_freq qmf

WHERE qmf.no_days > 0

AND NOT EXISTS (SELECT 0

FROM orcv_sppf_questn_reply_head qrh

WHERE qrh.supplier = sups.supplier

AND qrh.reply_Date >= sysdate - qmf.no_days)

SELECT NULL ref_varchar2_1,

NULL ref_varchar2_2,

NULL ref_varchar2_3,

NULL ref_varchar2_4,

NULL ref_varchar2_5,

TO_NUMBER(NULL) ref_number_6,

TO_NUMBER(NULL) ref_number_7,

TO_NUMBER(NULL) ref_number_8,

TO_NUMBER(NULL) ref_number_9,

TO_NUMBER(NULL) ref_number_10,

TO_DATE(NULL) ref_date_11,

TO_DATE(NULL) ref_date_12,

TO_DATE(NULL) ref_date_13,

TO_DATE(NULL) ref_date_14,

TO_DATE(NULL) ref_date_15,

REPLACE(REPLACE(err.error_text,

'%s1',

TO_CHAR(ctb.ccount)),

'%s2',

TO_CHAR(ctb.no_days)) varchar2_1,

(SELECT cd.code_desc

FROM orcv_v_das_code_detail_tl cd

WHERE cd.code_type = 'ISST'

AND cd.code = ac.alert_title) varchar2_2,

ac.alert_type varchar2_3,

ac.alert_icon varchar2_4,

NULL varchar2_5,

NULL number_6,

NULL number_7,

NULL number_8,

NULL number_9,

NULL number_10,

NULL date_11,

NULL date_12,

NULL date_13,

NULL date_14,

NULL date_15

FROM orcv_sppf_alert_cfg ac,

orcv_errors err,

count_tb ctb

WHERE ac.alert_id = 'DASH_SUP_NO_QST'

AND err.error_key = ac.alert_message;

3 Insert the VJOIN configuration to the configuration table

INSERT INTO ORCV_COMMON_VJOIN_CONFIG (app_alias, vjoin_name, seq_no, weight, view_name)

VALUES ('SPPF', 'DASH_ALERTS', 1, 0, 'ORCV_V_SPPF_DASH_ALERTS1');

--

INSERT INTO ORCV_COMMON_VJOIN_CONFIG (app_alias, vjoin_name, seq_no, weight, view_name)

VALUES ('SPPF', 'DASH_ALERTS', 2, 0, 'ORCV_V_SPPF_DASH_ALERTS2');

4 Call the API

SELECT varchar2_1 alert_desc,

varchar2_2 alert_title,

varchar2_3 alert_type,

varchar2_4 alert_icon,

varchar2_5 alert_action

FROM TABLE(ORCV_COMMON_VJOIN.GET_VIEWS(I_app_alias => 'SPPF', I_vjoin_name => 'HOME_ALERTS'))

Database Integration Framework

The Database Integration Framework enables common functionalities in Retail Supply Chain Hub for integration with external endpoints.

Publish

This framework has the capability to publish to external systems by enabling APIs that implement the publish mechanism.

Process Overview

This section provides a process overview.

Publish Flow

Publish allows the call of integration endpoints in synchronous mode. Those calls can be either atomic or non-atomic. Atomic is in case all the entries need to be integrated together in bulk while the non-atomic deals with each entry individually.

Figure 27-23 Database Integration Framework Publish Flow


Database Integration Framework Publish Flow
Publish Atomic

Figure 27-24 Database Integration Framework Publish Flow Atomic


Database Integration Framework Publish Flow Atomic
Publish Non Atomic

Figure 27-25 Database Integration Framework Publish Flow Non-Atomic


Database Integration Framework Publish Flow Non-Atomic
Publish Asynchronous Batch

Figure 27-26 Database Integration Framework Publish Asynchronous


Database Integration Framework Publish Asynchronous
Configuration

Publish API is available as the ORCV_INT_SERVICE.PUBLISH function that handles the generic publication process.

Publish Function

ORCV_INT_SERVICE.PUBLISH function is a generic call that handles the generic publication process and returns Boolean, true in case of success and false otherwise.

Parameter In/Out Parameter Type Description
O_error_message OUT

ORCV_LOGS.BACKTRACE

_DESC%TYPE

Error message in case of error during function call
O_service_res_tbl OUT ORCV_INT_SERVICE_RES_TBL TBL with the output of the integration process
I_service_keys_tbl IN ORCV_INT_SERVICE_TBL TBL of the keys of the entities to be integrated.
I_entity_id IN

ORCV_INT_SERVICE_ENTITY.

ENTITY_ID%TYPE

Integration Entity ID from ORV_INT_SERVICE_ENTITY
I_app_alias IN VARCHAR2 Application Alias
I_integration_type IN VARCHAR2 Type of Integration. Accepted values are SYNC, ASYNC, and BATCH.
I_is_retry IN BOOLEAN Flag indicating whether the entity should be attempt to retry if it fails
Table ORCV_INT_SERVICE_ENTITY

This table holds the publication and subscription mappings for synchronous integrations.

Column Data Type Description
Entity ID VARCHAR2(10) This field contains the integration entity.
Publication Function VARCHAR2(61) This field contains the function responsible for publishing information to the base product.
Table ORCV_INT_SERVICE_MAPPING

This table holds mapping information for synchronous integrations to fetch data from.

Column Data Type Description
Application Alias VARCHAR2(10) This field contains the app alias mapping to the entity.
Application Entity Get Data Function VARCHAR2(61) This field contains the function responsible for fetching data.
Application Status Function VARCHAR2(61) This field contains the function responsible setting application data status.
Atomic Indicator VARCHAR2(1) This field contains the indication about whether the integration process should be processed in an atomic way: ''N'' for entries to be processed individually, ''Y'' for entries to be processed in bulk.
Integration Object Type

ORCV_INT_SERVICE_OBJ is a base object type for handling the reference keys sent for integration and each Entity must be under this object following the entity specific requirements.

Field Data Type Description
SEQ_NO NUMBER(10) Sequence that can define the order of entries.
ACTION VARCHAR2(6) Action to be taken for the entry.
EXT_SOURCE VARCHAR2(50) Source of the Integration Entity.
EXT_REF_NO_1 VARCHAR2(15) External Reference Number 1
EXT_REF_NO_2 VARCHAR2(15) External Reference Number 2
EXT_REF_NO_3 VARCHAR2(15) External Reference Number 3
EXT_REF_NO_4 VARCHAR2(15) External Reference Number 4
KEY_1_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 1.
KEY_1_NUMBER NUMBER(15) Entity Number identifier 1.
KEY_1_DATE DATE Entity Date identifier 1.
KEY_2_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 2.
KEY_2_NUMBER NUMBER(15) Entity Number identifier 2.
KEY_2_DATE DATE Entity Date identifier 2.
KEY_3_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 3.
KEY_3_NUMBER NUMBER(15) Entity Number identifier 3.
KEY_3_DATE DATE Entity Date identifier 3.
KEY_4_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 4.
KEY_4_NUMBER NUMBER(15) Entity Number identifier 4.
KEY_4_DATE DATE Entity Date identifier 4.
EXT_GROUP_NO VARCHAR2(15) External Group Number
Integration Response Object Type

ORCV_INT_SERVICE_RES_OBJ is a base object for the handling the response of the integration process.

Field Data Type Description
STATUS VARCHAR2(2) Response Status Code.
MESSAGE VARCHAR2(50) Response Message Body.
EXT_SOURCE VARCHAR2(50) Source of the Integration Entity.
SEQ_NO NUMBER(10) Sequence that can define the order of entries.
RETRY_ATTEMPT_COUNT NUMBER(3) Number of retry attempts.
EXT_REF_NO_1 VARCHAR2(15) External Reference Number 1.
EXT_REF_NO_2 VARCHAR2(15) External Reference Number 2.
EXT_REF_NO_3 VARCHAR2(15) External Reference Number 3.
EXT_REF_NO_4 VARCHAR2(15) External Reference Number 4.
KEY_1_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 1.
KEY_1_NUMBER NUMBER(15) Entity Number identifier 1.
KEY_1_DATE DATE Entity Date identifier 1.
KEY_2_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 2.
KEY_2_NUMBER NUMBER(15) Entity Number identifier 2.
KEY_2_DATE DATE Entity Date identifier 2.
KEY_3_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 3.
KEY_3_NUMBER NUMBER(15) Entity Number identifier 3.
KEY_3_DATE DATE Entity Date identifier 3.
KEY_4_VARCHAR VARCHAR2(15) Entity Varchar2 identifier 4.
KEY_4_NUMBER NUMBER(15) Entity Number identifier 4.
KEY_4_DATE DATE Entity Date identifier 4.
EXT_GROUP_NO VARCHAR2(15) External Group Number.
Entity Publish Function

This is a generic definition of the function being called by ORCV_INT_SERVICE.PUBLISH that needs to be implemented for each integration entity. It must follow the specification below and returns Boolean true in case of success and false otherwise.

Parameter In/Out Parameter Type Description
O_error_message OUT

ORCV_LOGS.BACKTRACE_

DESC%TYPE

Error message in case of error during function call
O_service_res_tbl OUT ORCV_INT_SERVICE_RES_TBL Table with the output of the integration process
I_service_keys_tbl IN ORCV_INT_SERVICE_TBL Table of the keys of the entities to be integrated.
I_app_alias IN VARCHAR2 Application Alias
I_integration_type IN VARCHAR2 Type of Integration. Accepted values are SYNC, ASYNC, and BATCH.
I_is_retry IN BOOLEAN Flag indicating if the entity should be attempted to retry in case it fails
Application Entity Get Data Function

This is a generic definition of the function being called by ORCV_<ENTITY>_SERVICE.PUBLISH that retrieves the entity data based on application data. It must follow the specification below and returns Boolean true in case of success and false otherwise.

Parameter In/Out Parameter Type Description
O_error_message OUT

ORCV_LOGS.BACKTRACE_

DESC%TYPE

Error message in case of error during function call
IO_int_service_obj IN/OUT ORCV_INT_<ENTITY>_OBJ TBL of Entity to be populated with data by the function. The object type needs to be under ORCV_INT_SERVICE_OBJ
Entity Configuration Table

ORCV_INT_SERVICE_ENTITY table holds the publication and subscription mappings for synchronous integrations.

Column Data Type Nullable Comment
ENTITY_ID VARCHAR2(10) N This field contains the integration entity.
PUBLICATION_FUNCTION VARCHAR2(61) Y This field contains the function responsible for publishing information to the base product.
SUBSCRIPTION_FUNCTION VARCHAR2(61) Y This field contains the function responsible for subscribing information from the base product.
Integration Service Mapping Table

ORCV_INT_SERVICE_MAPPING table holds mapping information for synchronous integrations to fetch data from the Application.

Column Data Type Nullable Comment
ENTITY_ID VARCHAR2(10) N This field contains the integration entity.
APP_ALIAS VARCHAR2(10) N This field contains the app alias mapping to the entity.
DATA_FUNCTION VARCHAR2(61) N This field contains the function responsible for fetching data.
ATOMIC_IND VARCHAR2(1) N This field contains the indication about whether the integration process should be processed in an atomic way: ''N'' for entries to be processed individually, ''Y'' for entries to be processed in bulk.
Example Configuration

In the example below is the configuration for RTV Entity used by Quality Control.

Configuration Value Configuration Table
Entity ID RTV ORCV_INT_SERVICE_ENTITY
Publication Function ORCV_INV_INT_RTV_SERVICE.PUBLISH ORCV_INT_SERVICE_ENTITY
Subscription Function   ORCV_INT_SERVICE_ENTITY
Application Alias QLCT ORCV_INT_SERVICE_MAPPING
Application Entity Get Data Function

ORCV_QLCT_PUB_RTV.

GET_RTV_INTEGRATION_DATA

ORCV_INT_SERVICE_MAPPING
Atomic Indicator N ORCV_INT_SERVICE_MAPPING
Entity Integration Object ORCV_INV_INT_RTV_HEAD_OBJ N/A

Interactive Grid Additional Columns

Oracle APEX Interactive Grids can be extended to have additional reference data available, it is possible by replacing default views that are available as placeholders out of the box.

To use this functionality, it is necessary to change the provided “NB” views, keeping the Key columns and the reference columns names, and set the HIDDEN_ID to “N” on ORCV_IG_HIDDEN_COLUMN table.

The configuration of each of the relevant “NB” views and grid details can be found on each application’s implementation operations guide.

Database Objects

This section describes database objects.

Tables
Name Description
ORCV_IG_HIDDEN_COLUMN This table holds the columns that should be hidden for each application, grid and user role. The column ORCV_IG_HIDDEN_COLUMN must be set to true so it is visible and column ORCV_IG_HIDDEN_COLUMN can be changed to the required column header.
ORCV_IG_HIDDEN_COLUMN_TL This table holds the columns translations that should be hidden for each application, grid and user role.
Views

All views defined are defined with the naming convention ORCV_V_<APP_ALIAS>_<ENTITY>_NB and must comply with the format below:

Column Data Type Notes
<KEY_COLUMN_N> NUMBER / VARCHAR2 / DATE The number of key columns vary depending on the number of columns for the entity, it must align with the base table being replaced.
REF_1 VARCHAR2(255) The reference column 1.
REF_2 VARCHAR2(255) The reference column 2.
REF_3 VARCHAR2(255) The reference column 3.
REF_4 VARCHAR2(255) The reference column 4.
REF_5 VARCHAR2(255) The reference column 5.
REF_6 VARCHAR2(255) The reference column 6.
REF_LINK VARCHAR2(4000) The reference link to be added.
REF_LINK_TEXT VARCHAR2(255) The text to be added to the REF_LINK column.

Dynamic Execution Framework

Retail Supply Chain Hub applications flows are designed and developed in code. The purpose of Dynamic Execution Framework is to provide an easy way to customize the process flow of an application:

  • Add Additional Steps
  • Disable Steps
  • Modify Validations
  • Modify Permissions to execute Steps
  • Use User Groups to manage permissions to user actions
  • Enable/Disable action buttons based on Status/User permissions

Process Overview

Figure 27-27 Dynamic Execution Framework Process Overview


Dynamic Execution Framework Process Overview

Dynamic Button Rendering Overview

Buttons can be divided in two types, static and dynamic. Static buttons always have the same label and row action and they are defined on the application itself. Dynamic buttons may vary their label and row action according to their render condition. Dynamic buttons need to have two support page items <button_static_id>_LBL and <button_static_id>_ACTION to store their label and row action in the page. Bellow there is a diagram with the button dynamic rendering using the Dynamic Execution engine.

Figure 27-28 Dynamic Execution Framework Dynamic Button Rendering Overview


Dynamic Execution Framework Dynamic Button Rendering Overview

Extended Application Flow Helpers

The Application states flow extension using Dynamic Execution can be done in two ways:

  • Develop a new function(s) from scratch that handles the behavior of the new state(s)
  • Use the existing pre built helper functions available in DE and the Generic Function built on the Application side.
    • For cases where the new state just has the objective of changing the status of the entity, this approach does not require a new execute function.

    • To make this option available, when integrating the Dynamic Execution Engine into an Application, the generic function development must be coded in the Application side and use DE pre and post processor for generic steps.

When changing the status of an entity data integrity must be enforced from the previous state and run the base validation and custom validations that assure that guarantee.

Figure 27-29 Dynamic Execution Framework Extended Application Flow Helpers Overview


Dynamic Execution Framework Extended Application Flow Helpers Overview

Database Objects

This section describes database objects.

Tables
Name Description
ORCV_DE_ENTITY Available entities in Dynamic Execution
ORCV_DE_ENTITY_KEY Key column(s) definition for DE entities/entity tables
ORCV_DE_ENTITY_STEPS Available steps for each DE Entity
ORCV_DE_GROUP_HEAD DE Group header information
ORCV_DE_GROUP_DETAIL Functions to be executed for DE groups
ORCV_DE_GROUP_DETAIL_CUSTOM Custom Functions to be executed for DE groups
ORCV_DE_GROUP_DTL_COND Configuration of valid steps for each group detail
ORCV_DE_GROUP_USER_GROUPS User group's permissions for the group steps
ORCV_DE_ELEMENT_RENDER Dynamic render conditions for application elements
ORCV_DE_ELEMENT_RENDER_FILTER Dynamic render elements filters
ORCV_DE_ELEMENT_RND_FILTER_DETAIL Dynamic render element filter parameters
ORCV_DE_PROCESS_CONTROL Logs information about group execution
ORCV_DE_PROCESS_CTRL_EXE_CND Configuration of valid steps for each group detail at the time of the DE execution request
ORCV_DE_PROCESS_PARAMETERS Keeps information about the process parameters of a DE execution request
ORCV_DE_PROCESS_ATTRIBUTES Keeps information about the attributes to be processed on a DE execution request
ORCV_DE_PROCESS_ATTR_CONTROL Logs information about process attributes execution
ORCV_DE_PROCESS_AUX_ATTRIBUTES Keeps information about the auxiliar attributes to be processed on a DE execution request
Views
Name Description
ORCV_V_DE_PROC_ATTR_CTRL_PRG View to be used to purge old data on DE process attributes control table
ORCV_V_DE_PROC_CTRL_EXEC_PRG View to be used to purge old data on DE process control execution table
ORCV_V_DE_PROCESS_ATTR_PRG View to be used to purge old data on DE process attributes table
ORCV_V_DE_PROCESS_AUX_ATTR_PRG View to be used to purge old data on DE process aux attributes table
ORCV_V_DE_PROCESS_CONTROL_PRG View to be used to purge old data on DE process control table
ORCV_V_DE_PROCESS_PARAM_PRG View to be used to purge old data on DE process parameters table
Sequences
Name Description
ORCV_DE_PROCESS_SEQ Sequence to be used on a new process execution instance
Types
Name Description
ORCV_DE_ACTION_OBJ Represents an action/function to be executed on a DE process
ORCV_DE_ATTRIBUTES_CONTROL_OBJ Represents the DE process attributes control data
ORCV_DE_ATTRIBUTES_OBJ Represents the DE process auxiliar attributes data
ORCV_DE_AUX_ATTRIBUTES_OBJ Represents the DE process auxiliar attributes data
ORCV_DE_ENTITY_KEY_OBJ Represents the DE entity data
ORCV_DE_GROUP_DTL_CUSTOM_OBJ Represents DE custom functions data
ORCV_DE_PARAMETERS_OBJ Represents the DE process parameters data
Packages
Table Description
ORCV_DE_GV Package that holds global variables
ORCV_DE_ERR Package that holds keys for message errors
ORCV_DE_ENGINE Package to manage dynamic executions

Configuration Example - Cost Changes Management

This example configuration is based on Cost Changes Management application available in Retail Supply Chain Hub and follows the below base workflow.

Before the creation of DE configurations for SPCC it is necessary to understand the status flow of the application. Below there a simplified version of SPCC status flow.

Figure 27-30 Dynamic Execution Framework Configuration Example Cost Changes Management Base Flow


Dynamic Execution Framework Configuration Example Cost Changes Management Base Flow

For Custom Flows it’s possible to:

  • Rename status: some Status should not be changed as they are part of the integral functionality of the Application, however they can be renamed if required. In Cost Changes Management: New and Approved
  • Add Additional Steps:
    • If the additional steps only require validation (using Custom Validation Groups) and security control can be configured using a pre-existing generic function and setup.

      • Generic Action Function: ORCV_SPCC_COSTCHG.EXEC_ACTION_GENERIC
      • Security can be set at Role Level or Role + User Group Level to further detail permissions (Default workflow uses Role Level).
    • If not, then a custom function can be used and configured to be used instead

Example Custom Flow:

Figure 27-31 Dynamic Execution Framework Configuration Example Cost Changes Management Custom Flow


Dynamic Execution Framework Configuration Example Cost Changes Management Custom Flow

Step from New to Approved was removed and an additional step was added in the middle that requires an additional approval.

ORCV_CODE_DETAIL

Add a new Status code for the new flow.

CODE_TYPE CODE CODE_DESC
CCST PM Pending Manager Approval
ORCV_SEC_GROUPS

Add two additional groups to enable permissions for the additional Status.

GROUP_ID GROUP_DESC
SPCC_APPR_MNGR SPCC Approval Managers
SPCC_SUBMIT_USER SPCC Submit Users
ORCV_DE_GROUP_HEAD

Enable the user group security by setting APPLY_USR_GRP_SEC_IND to Y.

ORCV_DE_ENTITY_STEPS
ENTITY_ID STEP_ID FROM_STATUS ROW_ACTION ACTIVE_IND
COSTCHG STEP_PM_A PM A A
COSTCHG STEP_PM_M PM A A
COSTCHG STEP_PM_R PM A A
ORCV_DE_GROUP_DETAIL
DETAIL_ID GROUP_ID EXEC_FUNCTION EXEC_FUNCTION_DESC SCOPE_FUNCTION SEQ_NO ACTIVE_IND CUSTOM_IND
SPCC_EXEC_ACTION_SUBMIT SPCC_COST_MGMT ORCV_SPCC_COSTCHG.EXEC_ACTION_SUBMIT Submit Cost Change NA 10 A N
SPCC_EXEC_ACTION_REJECT SPCC_COST_MGMT ORCV_SPCC_COSTCHG.EXEC_ACTION_REJECT Reject Cost Change NA 20 A N
SPCC_EXEC_ACTION_N_APPROVE SPCC_COST_MGMT ORCV_SPCC_COSTCHG.EXEC_ACTION_GENERIC Approve New Cost Change NA 30 A N
SPCC_EXEC_ACTION_APPROVE SPCC_COST_MGMT ORCV_SPCC_COSTCHG.EXEC_ACTION_APPROVE Approve Cost Change NA 31 A N
ORCV_DE_GROUP_DETAIL_CUSTOM
DETAIL_ID TO_STATUS ROW_ACTION HIST_REASON_CODE VALIDATION_FUNCTION CVAL_GROUP_ID NOTIF_EVENT_TYPE PERMISSION_TYPE
SPCC_EXEC_ACTION_N_APPROVE PM A APRVCC ORCV_SPCC_COSTCHG_VAL.VALIDATE_APPROVE SPCC_COSTCHG_APPROVE NA APPR
ORCV_DE_GROUP_DTL_EXE_COND
DETAIL_ID ENTITY_ID STEP_ID
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_PM_M
SPCC_EXEC_ACTION_REJECT COSTCHG STEP_PM_R
SPCC_EXEC_ACTION_APPROVE COSTCHG STEP_PM_A
SPCC_EXEC_ACTION_N_APPROVE COSTCHG STEP_N_A
SPCC_EXEC_ACTION_N_APPROVE COSTCHG STEP_N_M
SPCC_EXEC_ACTION_N_APPROVE COSTCHG STEP_R_M
SPCC_EXEC_ACTION_N_APPROVE COSTCHG STEP_NULL_C
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_NULL_C
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_N_M
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_R_M
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_A_M
SPCC_EXEC_ACTION_SUBMIT COSTCHG STEP_P_M
SPCC_EXEC_ACTION_REJECT COSTCHG STEP_N_R
SPCC_EXEC_ACTION_REJECT COSTCHG STEP_P_R
SPCC_EXEC_ACTION_REJECT COSTCHG STEP_A_R
SPCC_EXEC_ACTION_APPROVE COSTCHG STEP_P_M
SPCC_EXEC_ACTION_APPROVE COSTCHG STEP_A_M
SPCC_EXEC_ACTION_APPROVE COSTCHG STEP_P_A
ORCV_DE_GROUP_USER_GROUPS
GROUP_ID USER_GROUP_ID ENTITY_ID STEP_ID
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_A_M
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_A_R
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_NULL_C
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_N_A
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_N_M
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_N_R
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_PM_A
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_PM_M
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_PM_R
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_P_A
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_P_M
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_P_R
SPCC_COST_MGMT SPCC_APP_MNGR COSTCHG STEP_R_M
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_A_M
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_A_R
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_NULL_C
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_N_A
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_N_M
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_N_R
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_P_A
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_P_M
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_P_R
SPCC_COST_MGMT SPCC_SUMBIT_USER COSTCHG STEP_R_M
ORCV_DE_ELEMENT_RENDER
ELEMENT_ID ELEMENT_DESC APP_ALIAS PAGE_NO STATIC_ID ROW_ACTION LABEL
SPCC_P200_B_APPROVE Approve button. SPCC 200 P200_B_APPROVE A Approve
SPCC_P200_B_SAVE Save button. SPCC 200 P200_B_SAVE NA NA
SPCC_P200_B_EDIT Edit button. SPCC 200 P200_B_EDIT NA NA
SPCC_P200_B_REJECT Reject button. SPCC 200 P200_B_REJECT NA NA
SPCC_P200_B_APPROVE_PM Approve button for PM Status. SPCC 200 P200_B_APPROVE A Approve
SPCC_P200_B_EDIT_PM Edit button for PM Status. SPCC 200 P200_B_EDIT NA NA
SPCC_P200_B_REJECT_PM Reject button for PM Status. SPCC 200 P200_B_REJECT NA NA
ORCV_DE_ELEMENT_RENDER_FILTER
ELEMENT_ID PARAMETER_NAME PARAMETER_TYPE PARAMETER_DELIMITER
ELEMENT_ID PARAMETER_NAME PARAMETER_TYPE PARAMETER_DELIMITER
SPCC_P200_B_EDIT_PM P200_MODE VARCHAR NA
SPCC_P200_B_EDIT_PM P200_USER_PERM VARCHAR NA
SPCC_P200_B_EDIT_PM P200_STATUS VARCHAR NA
SPCC_P200_B_EDIT_PM P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_REJECT_PM P200_MODE VARCHAR NA
SPCC_P200_B_REJECT_PM P200_USER_PERM VARCHAR NA
SPCC_P200_B_REJECT_PM P200_STATUS VARCHAR NA
SPCC_P200_B_REJECT_PM P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_APPROVE_PM P200_MODE VARCHAR NA
SPCC_P200_B_APPROVE_PM P200_USER_PERM VARCHAR NA
SPCC_P200_B_APPROVE_PM P200_STATUS VARCHAR NA
SPCC_P200_B_APPROVE_PM P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_APPROVE P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_REJECT P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_EDIT P200_I_USER_GROUPS VARCHAR :
SPCC_P200_B_SAVE P200_I_USER_GROUPS VARCHAR :
ORCV_DE_ELEMENT_RND_FILTER_DTL
ELEMENT_ID PARAMETER_NAME PARAMETER_VALUE_VARCHAR
SPCC_P200_B_EDIT_PM P200_MODE VIEW
SPCC_P200_B_EDIT_PM P200_USER_PERM APPR
SPCC_P200_B_EDIT_PM P200_STATUS SPCC_APPRF_MNGR
SPCC_P200_B_EDIT_PM P200_I_USER_GROUPS PM
SPCC_P200_B_REJECT_PM P200_MODE VIEW
SPCC_P200_B_REJECT_PM P200_USER_PERM APPR
SPCC_P200_B_REJECT_PM P200_STATUS SPCC_APPRF_MNGR
SPCC_P200_B_REJECT_PM P200_I_USER_GROUPS PM
SPCC_P200_B_APPROVE_PM P200_MODE VIEW
SPCC_P200_B_APPROVE_PM P200_USER_PERM APPR
SPCC_P200_B_APPROVE_PM P200_STATUS SPCC_APPRF_MNGR
SPCC_P200_B_APPROVE_PM P200_I_USER_GROUPS PM
SPCC_P200_B_APPROVE P200_I_USER_GROUPS SPCC_SUBMIT_USER
SPCC_P200_B_APPROVE P200_I_USER_GROUPS SPCC_APPRF_MNGR
SPCC_P200_B_REJECT P200_I_USER_GROUPS SPCC_SUBMIT_USER
SPCC_P200_B_REJECT P200_I_USER_GROUPS SPCC_APPRF_MNGR
SPCC_P200_B_EDIT P200_I_USER_GROUPS SPCC_SUBMIT_USER
SPCC_P200_B_EDIT P200_I_USER_GROUPS SPCC_APPRF_MNGR
SPCC_P200_B_SAVE P200_I_USER_GROUPS SPCC_SUBMIT_USER
SPCC_P200_B_SAVE P200_I_USER_GROUPS SPCC_APPRF_MNGR

Integration

This section describes integrations.

Price Change Integration to RPCS

The price change integration batch has a maximum chunk size configuration and has a thread aggregator by effective date and new group batch, which is a reference to the event that generated the price recommendations.

As the chunk size determines the maximum number of records that will be sent in each request to RPCS, this means that in case the number of recommendations for the thread aggregator is higher than the chunk size, the integration will do two requests to RPCS price change induction service. The price changes from the second request will have the price change group description equal to the ones from the first request, but price change group id will be different.

Process Overview

The Price Strategies integration will support the integration of price changes in RPCS through the induction service.

Figure 27-32 Price Change Integration Process Overview


Price Change Integration Process Overview
Process Price Changes

Figure 27-33 Price Changes Process Overview


Price Changes Process Overview
Pre Processor

Figure 27-34 Pre-Processor Price Changes for RPCS Integration


Pre-Processor Price Changes for RPCS Integration
Processor

Figure 27-35 Processor Price Changes for RPCS Integration


Processor Price Changes for RPCS Integration
Set Integration Status

Figure 27-36 Set Integration Status Flow for Price Change Integration to RPCS


Set Integration Status Flow for Price Change Integration to RPCS
Configuration

This section describes configurations.

Initial Batch Configuration for ORCV_PRICE_INT_PC_RPCS_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_PRICE_INT_PC_RPCS_JOB
MAX_CHUNK_SIZE 5000
MAX_CONCURRENT_THREADS 8
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1
AREA PARAMETER DESCRIPTION VALUE_1
BATCH MAX_CHUNK_SIZE Default price max chunck size 1000
BATCH THRESHOLD_INT Default threshold limit 10
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_PC
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_PC_ERR_SVC
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_PC_EVENT
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_PC_GRP_XREF
Web Service

Frequency: Ad-hoc

Base URL: <BASE_URL>>/PromotionIntRpcsJavaServicesWeb/services/orcv/merch/price/integration/promotionintrpcs/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_PRICE_INT_PC_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_PC_SVC

ORCV_PRICE_INT_PC_ERR_SVC

ORCV_PRICE_INT_PC

ORCV_PRICE_INT_PC_EVENT

ORCV_PRICE_INT_PC_GRP_XREF

/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_PRICE_INT_PC_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_PC_SVC

ORCV_PRICE_INT_PC_ERR_SVC

ORCV_PRICE_INT_PC

ORCV_PRICE_INT_PC_EVENT

ORCV_PRICE_INT_PC_GRP_XREF

/log GET

URL query parameters:

/log?jobName=ORCV_PRICE_INT_PC_

RPCS_JOB&

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

N/A
/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_PRICE_INT_PC_

RPCS_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

/status GET

URL query parameters:

/status?jobName=ORCV_PRICE_INT_

PC_RPCS_JOB&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Promotion Induction to RPCS

This section describes the promotion induction to RPCS.

Process Overview

The Promotion induction batch service will support the integration of Promotions into RPCS through the induction REST service.

Figure 27-37 Promotion Induction to RPCS Batch Process Overview


Initial Batch Configuration for ORCV_PRICE_INT_PC_RPCS_JOB
Process Promotion

Figure 27-38 Promotion Process Overview


Promotion Process Overview
Pre Processor

Figure 27-39 Pre-Processor Promotion to RPCS Integration


Pre-Processor Promotion to RPCS Integration
Processor

Figure 27-40 Processor Promotion induction to RPCS Integration


Processor Promotion induction to RPCS Integration
Post Processor

Figure 27-41 Post Processor Promotion induction to RPCS Integration


Processor Promotion induction to RPCS Integration
Set Integration Status

Figure 27-42 Set Integration Status Flow for Promotion induction to RPCS Integration


Set Integration Status Flow for Promotion induction to RPCS Integration
Configuration

This section describes configurations.

Initial Batch Configuration for ORCV_PRICE_INT_PRM_RPCS_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_PRICE_INT_PRM_RPCS_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1 Value 2
CONFIG INDUCTION_TEMPLATE Template key.

RPCS_PROMOTION_

INDUCTION

NA
INTEGRATION

LOCK_PROMOTION_

PROCESS

Promotion Ext Source that will not be processed by the batch. SPDM NA
PURGE PURGE_DAYS Default purge Period.

ORCV_PRICE_INT_

PRM_XREF

30
Web Service

Frequency: Ad-hoc

Base URL: <BASE_URL>/PromotionIntRpcsJavaServicesWeb/services/orcv/merch/price/integration/promotionintrpcs/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_PRICE_INT_PRM_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_PRM_HEAD_SVC

ORCV_PRICE_INT_PRM_HEAD

ORCV_PRICE_INT_PRM_OF_SVC

ORCV_PRICE_INT_PRM_OF

ORCV_PRICE_INT_PRM_OFC_SVC

ORCV_PRICE_INT_PRM_OFC

ORCV_PRICE_INT_PRM_OFC_ITM_SVC

ORCV_PRICE_INT_PRM_OFC_ITM

ORCV_PRICE_INT_PRM_OFR_SVC

ORCV_PRICE_INT_PRM_OFR

ORCV_PRICE_INT_PRM_OFR_ITM_SVC

ORCV_PRICE_INT_PRM_OFR_ITM

ORCV_PRICE_INT_PRM_OFLOC_SVC

ORCV_PRICE_INT_PRM_OFLOC

ORCV_PRICE_INT_PRM_ERR_SVC

ORCV_PRICE_INT_PRM_XREF

/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_PRICE_INT_PRM_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_PRM_HEAD_SVC

ORCV_PRICE_INT_PRM_HEAD

ORCV_PRICE_INT_PRM_OF_SVC

ORCV_PRICE_INT_PRM_OF

ORCV_PRICE_INT_PRM_OFC_SVC

ORCV_PRICE_INT_PRM_OFC

ORCV_PRICE_INT_PRM_OFC_ITM_SVC

ORCV_PRICE_INT_PRM_OFC_ITM

ORCV_PRICE_INT_PRM_OFR_SVC

ORCV_PRICE_INT_PRM_OFR

ORCV_PRICE_INT_PRM_OFR_ITM_SVC

ORCV_PRICE_INT_PRM_OFR_ITM

ORCV_PRICE_INT_PRM_OFLOC_SVC

ORCV_PRICE_INT_PRM_OFLOC

ORCV_PRICE_INT_PRM_ERR_SVC

ORCV_PRICE_INT_PRM_XREF

/log GET

URL query parameters:

/log?jobName=ORCV_PRICE_INT_PRM_

RPCS_JOB&

executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_PRICE_INT_PRM_

RPCS_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

/status GET

URL query parameters:

/status?jobName=ORCV_PRICE_INT_

PRM_RPCS_JOB&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Clearance Induction to RPCS

This section describes the clearance induction to RPCS.

Process Overview

The Clearance induction batch service will support the integration of Clearances into RPCS through the induction REST service.

Figure 27-43 Clearance Induction to RPCS Batch Process Overview


Clearance Induction to RPCS Batch Process Overview
Process Clearance

Figure 27-44 Clearance Process Overview


Clearance Process Overview
Pre Processor

Figure 27-45 Pre Processor Clearance to RPCS Integration


Pre Processor Clearance to RPCS Integration
Processor

Figure 27-46 Processor Clearance induction to RPCS Integration


Processor Clearance induction to RPCS Integration
Set Integration Status

Figure 27-47 Set Integration Status Flow for Clearance induction to RPCS Integration


Set Integration Status Flow for Clearance induction to RPCS Integration
Configuration

This section describes configurations.

Initial Batch Configuration for ORCV_PRICE_INT_CLR_RPCS_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_PRICE_INT_CLR_RPCS_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1 Value 2
CONFIG

CLEAR_MARKDOWN_

NBR_DEFAULT

Markdown NBR for clearance. Default set with -999 (means NULL).Valid values: MFCS Code Type MKDN(except "reset") -999 NA
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_CLEARANCE 30
PURGE PURGE_DAYS Default purge Period. ORCV_PRICE_INT_CLR_XREF 30
Web Service

Clearance Induction Batch Service

Frequency: Ad hoc

Base URL: <BASE_URL>/ClearanceIntRpcsJavaServicesWeb/services/orcv/merch/price/integration/

clearanceintrpcs/URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_PRICE_INT_CLR_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_CLEARANCE

ORCV_PRICE_INT_CLR_GRP_XREF

ORCV_PRICE_INT_CLEARANCE_SVC

ORCV_PRICE_INT_CLR_XREF

ORCV_PRICE_INT_CLEARANCE_ERR

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_PRICE_INT_CLR_

RPCS_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_CLEARANCE

ORCV_PRICE_INT_CLR_GRP_XREF

ORCV_PRICE_INT_CLEARANCE_SVC

ORCV_PRICE_INT_CLR_XREF

ORCV_PRICE_INT_CLEARANCE_ERR

batch/log GET

URL query parameters:

/log?jobName=ORCV_PRICE_INT_CLR_RPCS_JOB&executionId=<EXEC_ID>&date=YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_PRICE_INT_CLR_

RPCS_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_PRICE_INT_CLR_RPCS_JOB&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A
Clearance XREF Batch Service

The Clearance XREF batch service allow synchronization of RPCS clearance group display id and clearance display id to the external reference integrated via Clearance Induction to RPCS batch service.

Figure 27-48 Clearance XREF Batch Service Overview


Clearance XREF Batch Service Overview
Initial Batch Configuration for ORCV_PRICE_INT_CLR_XREF_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_PRICE_INT_CLR_XREF_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Web Service

Frequency: Ad hoc

Base URL: <BASE_URL>/ords/mfcs/orcv/merch/price/integration/clearance/xrefupdate/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_PRICE_INT_CLR_

XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_CLR_GRP_XREF

ORCV_PRICE_INT_CLR_XREF

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_PRICE_INT_CLR_

XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_PRICE_INT_CLR_GRP_XREF

ORCV_PRICE_INT_CLR_XREF

batch/log GET

URL query parameters:

/log?jobName=ORCV_PRICE_INT_CLR_

XREF_JOB&

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

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_PRICE_INT_CLR_

XREF_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_PRICE_INT_

CLR_XREF_JOB&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Purchase Order Induction to MFCS

The Purchase Order induction to MFCS batch has a maximum chunk size configuration and has a thread aggregator that is a combination of master purchase order and purchase order. The chunk size determines the maximum number of master purchase order and purchase order that will be sent to MFCS per purchase order induction ODS file, and then consumed by MFCS POINDBATCH_JOB.

Process Overview

The Purchase Order induction service will support the integration of Purchase Orders into MFCS through induction batch.

Figure 27-49 Purchase Order Induction to MFCS Process Overview


Purchase Order Induction to MFCS Process Overview
Process Purchase Order

Figure 27-50 Process Purchase Order Function


Process Purchase Order Function
Pre Processor

Figure 27-51 Pre-Processor Purchase Order Function


Pre-Processor Purchase Order Function
Processor

Figure 27-52 Processor Purchase Order Function


Processor Purchase Order Function
Post Processor

Figure 27-53 Post Processor Purchase Order Function


Post Processor Purchase Order Function
Set Integration Status

Figure 27-54 Set Integration Status Purchase Order Function


Set Integration Status Purchase Order Function
Batch Flow

Figure 27-55 Purchase Order integration Batch Flow


Purchase Order integration Batch Flow
Configuration

The Purchase Order integration service has a prerequisite of the interface with ID POINDUCTION being configured in ORCV_BATCH_SFTP and ORCV_BATCH_SFTP_TARGET tables.

Note:

POM configuration for MFCS POINDBATCH_JOB set to run at a high frequency if required and with a final target the merchandising tables.
Initial Batch Configuration for ORCV_ORD_INT_POINDUCTION_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_ORD_INT_POINDUCTION_JOB
MAX_CHUNK_SIZE 10000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Web Service

Frequency: Ad hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/PoInductionJavaServicesWeb/services/orcv/merch/integration/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_ORD_INT_

POINDUCTION_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ORD_INT_ORDHEAD_SVC

ORCV_ORD_INT_ORDSKU_SVC

ORCV_ORD_INT_ORDLOC_SVC

ORCV_ORD_INT_ORDER_CFA_SVC

ORCV_ORD_INT_ERR_SVC

ORCV_ORD_INT_ORDHEAD

ORCV_ORD_INT_ORDSKU

ORCV_ORD_INT_ORDLOC

ORCV_ORD_INT_ORDHEAD_CFA

ORCV_ORD_INT_ORDSKU_CFA

ORCV_ORD_INT_ORDLOC_CFA

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId": <EXEC_ID>,

"jobName":"ORCV_ORD_INT_

POINDUCTION_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ORD_INT_ORDHEAD_SVC

ORCV_ORD_INT_ORDSKU_SVC

ORCV_ORD_INT_ORDLOC_SVC

ORCV_ORD_INT_ORDER_CFA_SVC

ORCV_ORD_INT_ERR_SVC

ORCV_ORD_INT_ORDHEAD

ORCV_ORD_INT_ORDSKU

ORCV_ORD_INT_ORDLOC

ORCV_ORD_INT_ORDHEAD_CFA

ORCV_ORD_INT_ORDSKU_CFA

ORCV_ORD_INT_ORDLOC_CFA

batch/log GET

URL query parameters:

/log?jobName=ORCV_ORD_INT_

POINDUCTION_JOB

&executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_ORD_INT_

POINDUCTION_JOB",

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_ORD_INT_

POINDUCTION_JOB

&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Shipment ASNIN Integration to RICS

The Shipments ASNIN integration service supports the integration of ASNINs into MFCS through MFCS MerchIntegrations Rest Service and RIB-EXT Rest Service.

This integration has a maximum chunk size configuration and has a thread aggregator per number of ASN numbers. The chunk size determines the maximum number of ASNIN records that will be sent to MFCS.

Process Overview

Figure 27-56 Shipment ASNin Integration to MFCS via MerchIntegrations and RIB-EXT Process Overview


Shipment ASNin Integration to MFCS via MerchIntegrations and RIB-EXT Process Overview
Process Shipment ASNIN

Figure 27-57 Process Shipment ASNIn


Process Shipment ASNIn
Pre Processor

Figure 27-58 Pre-Processor Shipment ASNIn function


Pre-Processor Shipment ASNIn function
Processor

Figure 27-59 Processor Shipment ASNIn Function


Processor Shipment ASNIn Function
Post Processor

Figure 27-60 Post Processor Shipment ASNIn Function


Post Processor Shipment ASNIn Function
Set Integration Status

Figure 27-61 Set Integration Status for Shipments ASNIn


Set Integration status for Shipments ASNIn
ASNIN Targets Configuration

It is possible to configure the targets for ASNINs in table ORCV_BATCH_CONFIG_PROPS if the Java Service is configured with DATABASE_PROPS_ENABLED set to true and the target id for MFCS is defined as MFCS_TARGET key and RICS as RIB_TARGET key. After setting the Java Service to use the database configurations the details must be added to ORCV_BATCH_CONFIG_PROPS with program name ORCV_SHIP_INT_ASNIN_JOB. Examples are shared below for MFCS MechIntegrations Rest Service and RICS RIB -EXT Rest Service.

Java Service Properties Configuration
Parameter Description Example
DATABASE_PROPS_ENABLED If False, target is RIB-EXT and properties are defined within the JAVA application properties file. If True, properties configuration rely on what is defined on ORCV_BATCH_CONFIG_PROPS, accepts multiple targets at the same time. true
RIB_TARGET

Needs to match the KEY defined on

ORCV_BATCH_CONFIG_PROPS for VALUE = 'TARGET'

RIB_EXT
MFCS_TARGET

Needs to match the KEY defined on

ORCV_BATCH_CONFIG_PROPS for VALUE = 'TARGET'

MFCS_ASNIN_REST
TABLE: ORCV_BATCH_CONFIG_PROPS

MFCS MechIntegrations Rest Service Example.

Program Name Key Value
ORCV_SHIP_INT_ASNIN_JOB MFCS_ASNIN_REST TARGET
ORCV_SHIP_INT_ASNIN_JOB MFCS_ASNIN_REST.URL <MFCS Base URL>/MerchIntegrations/services/inventory/shipmentsAndReceipts/inboundAsn/manage
ORCV_SHIP_INT_ASNIN_JOB MFCS_ASNIN_REST.ALLOWEDSCOPES rgbu:merch:MFCS-<EnvId>
ORCV_SHIP_INT_ASNIN_JOB MFCS_ASNIN_REST.CLIENT_MAP oracle.retail.apps.platform.services.mfcs.security.idcs
ORCV_SHIP_INT_ASNIN_JOB MFCS_ASNIN_REST.CLIENT_KEY MFCSAlias

RICS RIB -EXT Rest Service Example.

Program Name Key Value
ORCV_SHIP_INT_ASNIN_JOB RIB_EXT TARGET
ORCV_SHIP_INT_ASNIN_JOB RIB_EXT.URL <RICS Base URL>/rib-ext-services-web/resources/publisher/publish
ORCV_SHIP_INT_ASNIN_JOB RIB_EXT.ALLOWEDSCOPES rgbu:rics:RICS-<EnvId>
ORCV_SHIP_INT_ASNIN_JOB RIB_EXT.CLIENT_MAP oracle.retail.apps.platform.services.rics.security.idcs
ORCV_SHIP_INT_ASNIN_JOB RIB_EXT.CLIENT_KEY RICSAlias
Configuration

This section describes configurations.

Initial Batch Configuration for ORCV_SHIP_INT_ASNIN_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_SHIP_INT_ASNIN_JOB
MAX_CHUNK_SIZE 10000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Web Service

Frequency: Ad hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ShipmentAsnInJavaServicesWeb/services/orcv/merch/integration/rib/ext/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":" ORCV_SHIP_INT_ASNIN_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SHIP_INT_ASNIN_SVC

ORCV_SHIP_INT_ASNIN_PO_SVC

ORCV_SHIP_INT_ASNIN_CTN_SVC

ORCV_SHIP_INT_ASNIN_ITEM_SVC

ORCV_SHIP_INT_ASNIN_UIN_SVC

ORCV_SHIP_INT_ASNIN_CFA_SVC

ORCV_SHIP_INT_ASNIN_ERR_SVC

ORCV_SHIP_INT_ASNIN

ORCV_SHIP_INT_ASNIN_PO

ORCV_SHIP_INT_ASNIN_CTN

ORCV_SHIP_INT_ASNIN_ITEM

ORCV_SHIP_INT_ASNIN_UIN

ORCV_SHIP_INT_ASNIN_CFA

ORCV_SHIP_INT_ASNIN_CTN_CFA

/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId": <EXEC_ID>,

"jobName":" ORCV_SHIP_INT_ASNIN_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_SHIP_INT_ASNIN_SVC

ORCV_SHIP_INT_ASNIN_PO_SVC

ORCV_SHIP_INT_ASNIN_CTN_SVC

ORCV_SHIP_INT_ASNIN_ITEM_SVC

ORCV_SHIP_INT_ASNIN_UIN_SVC

ORCV_SHIP_INT_ASNIN_CFA_SVC

ORCV_SHIP_INT_ASNIN_ERR_SVC

ORCV_SHIP_INT_ASNIN

ORCV_SHIP_INT_ASNIN_PO

ORCV_SHIP_INT_ASNIN_CTN

ORCV_SHIP_INT_ASNIN_ITEM

ORCV_SHIP_INT_ASNIN_UIN

ORCV_SHIP_INT_ASNIN_CFA

ORCV_SHIP_INT_ASNIN_CTN_CFA

/log GET

URL query parameters:

/log?jobName=ORCV_SHIP_INT_ASNIN_JOB

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

N/A
/kill POST

{

"executionId":<EXEC_ID>,

"jobName":" ORCV_SHIP_INT_ASNIN_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

/status GET

URL query parameters:

/status?jobName=ORCV_SHIP_INT_ASNIN_JOB

&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Finance EDI Documents to IMCS

This integration has a maximum chunk size configuration and has a thread aggregator per number of documents for each document type. The chunk size determines the maximum number of documents of a certain type that will be sent per EDI file to IMCS.

Process Overview

The Finance EDI Documents Service batch will support the integration of Financial Documents into IMCS through the EDI injection batch.

Figure 27-62 Finance EDI Documents to IMCS Process Overview


Finance EDI Documents to IMCS Process Overview
System Parameters

Listed below is the list of configurations at system level that are used by this service.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1
INTEGRATION INDUCTION_TEMPLATE Finance Integration template key

Tax Type = ‘SALES’

MFCS_EDIUPINV_SALES_DATA

Tax Type = ‘SVAT’

MFCS_EDIUPINV_SVAT_DATA

Tax Type = ‘GTS’

MFCS_EDIUPINV_GTS_DATA

Note:

The MFCS system option (defined in the localization_config_options table) sets the default tax type used in the environment.

Process EDI

Figure 27-63 Process EDI Overview


Process EDI Overview
Pre Processor

Figure 27-64 Pre-Processor Finance Documents EDI integration


Pre-Processor Finance Documents EDI integration
Processor

Figure 27-65 Processor Finance Documents EDI integration


Processor Finance Documents EDI integration
Post Processor

Figure 27-66 Post Processor Finance Documents EDI integration


Post Processor Finance Documents EDI integration
Set Integration Status

Figure 27-67 Set Integration Status Flow for Finance Documents EDI Integration


Set Integration Status Flow for Finance Documents EDI Integration
Configuration

The finance EDI documents integration service has a prerequisite of the interface with ID FINEDI being configured in ORCV_BATCH_SFTP and ORCV_BATCH_SFTP_TARGET tables.

Note:

POM configuration for IMCS REIM_EDI_INJECTOR_JOB set to run at a high frequency if required.
Initial Batch Configuration for ORCV_FIN_INT_EDI_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_FIN_INT_EDI_JOB
MAX_CHUNK_SIZE 10000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Batch Flow

Figure 27-68 Finance Documents EDI integration Batch Flow


Finance Documents EDI integration Batch Flow
Web Service

Frequency: Ad hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ FinanceEdiDocsJavaServicesWeb/services/orcv/merch/finance/integration/

edidocs/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName": "ORCV_FIN_INT_

EDI_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_FIN_INT_DOC_HEAD_SVC

ORCV_FIN_INT_DOC_HEAD_CMTS_SVC

ORCV_FIN_INT_DOC_TX_SVC

ORCV_FIN_INT_DOC_DTL_CMTS_SVC

ORCV_FIN_INT_DOC_DTL_RC_SVC

ORCV_FIN_INT_DOC_DTL_TAX_SVC

ORCV_FIN_INT_DOC_NON_MERCH_SVC

ORCV_FIN_INT_DOC_N_MCH_TX_SVC

ORCV_FIN_INT_DOC_PO_SVC

ORCV_FIN_INT_INV_DTL_SVC

ORCV_FIN_INT_ERR_SVC

ORCV_FIN_INT_DOC_HEAD

ORCV_FIN_INT_DOC_HEAD_CMTS

ORCV_FIN_INT_DOC_NON_MERCH

ORCV_FIN_INT_DOC_NON_MERCH_TX

ORCV_FIN_INT_DOC_PO

ORCV_FIN_INT_DOC_TX

ORCV_FIN_INT_DOC_XREF

ORCV_FIN_INT_DOC_DTL_CMTS

ORCV_FIN_INT_DOC_DTL_RC

ORCV_FIN_INT_DOC_DTL_TAX

ORCV_FIN_INT_DOC_PO

ORCV_FIN_INT_INV_DTL

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_FIN_INT_

EDI_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_FIN_INT_DOC_HEAD_SVC

ORCV_FIN_INT_DOC_HEAD_CMTS_SVC

ORCV_FIN_INT_DOC_TX_SVC

ORCV_FIN_INT_DOC_DTL_CMTS_SVC

ORCV_FIN_INT_DOC_DTL_RC_SVC

ORCV_FIN_INT_DOC_DTL_TAX_SVC

ORCV_FIN_INT_DOC_NON_MERCH_SVC

ORCV_FIN_INT_DOC_N_MCH_TX_SVC

ORCV_FIN_INT_DOC_PO_SVC

ORCV_FIN_INT_INV_DTL_SVC

ORCV_FIN_INT_ERR_SVC

ORCV_FIN_INT_DOC_HEAD

ORCV_FIN_INT_DOC_HEAD_CMTS

ORCV_FIN_INT_DOC_NON_MERCH

ORCV_FIN_INT_DOC_NON_MERCH_TX

ORCV_FIN_INT_DOC_PO

ORCV_FIN_INT_DOC_TX

ORCV_FIN_INT_DOC_XREF

ORCV_FIN_INT_DOC_DTL_CMTS

ORCV_FIN_INT_DOC_DTL_RC

ORCV_FIN_INT_DOC_DTL_TAX

ORCV_FIN_INT_DOC_PO

ORCV_FIN_INT_INV_DTL

batch/log GET

URL query parameters:

/log?jobName=ORCV_FIN_INT_

EDI_JOB

&executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId":<EXEC_ID>,

"jobName":"ORCV_FIN_INT_

EDI_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_FIN_INT_

EDI_JOB &executionId=<EXEC_ID>

N/A
/ping GET Empty N/A
Finance EDI Document XREF Service

Finance EDI Document XREF service updates the integrated Finance Document ids from IMCS in table ORCV_FIN_INT_DOC_XREF.

  • Job: ORCV_FIN_INT_EDI_XREF_JOB
  • Frequency: Ad hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Figure 27-69 Finance EDI Document XREF Batch Service Overview


Finance EDI Document XREF Batch Service Overview
Initial Batch Configuration

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_FIN_INT_EDI_XREF_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
Web Service

Authentication Method: OAuth2

BaseURL: <BASE_URL>/orcv/merch/finance/integration/xrefupdate/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_FIN_INT_EDI_XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_FIN_INT_DOC_XREF

restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_FIN_INT_EDI_XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_FIN_INT_DOC_XREF

log GET

URL query parameters:

/log?jobName=ORCV_FIN_INT_EDI_XREF_JOB

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

N/A
kill POST Empty

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

status GET

URL query parameters:

/status?jobName=ORCV_FIN_INT_EDI_XREF_JOB

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

N/A
ping GET Empty N/A

Item Induction to MFCS

This integration batch has a maximum chunk size configuration and has a thread aggregator per number of level-one items to process. The chunk size represents the maximum number of level-one items that each thread will pick per iteration and maps it to the number of level-one items each output induction ODS file will have and that will be integrated to MFCS through IINDBATCH_JOB.

Note:

Item Induction has different configurations depending on the tax type defined in MFCS, in case the tax type is changed in MFCS the template should also be updated.
Process Overview

The Item induction service will support the integration of Items into MFCS through the induction batch.

Figure 27-70 Item Induction to MFCS Process Overview


Item Induction to MFCS Process Overview
Process Item

Figure 27-71 Process Item Overview


Process Item Overview
Pre-Processor

Figure 27-72 Pre-Processor Item Induction MFCS Integration


Pre-Processor Item Induction MFCS Integration
Processor

Figure 27-73 Processor Item Induction MFCS Integration


Processor Item Induction MFCS Integration
Set Integration Status

Figure 27-74 Set Integration Status Flow for Item Induction MFCS Integration


Set Integration Status Flow for Item Induction MFCS Integration
Batch Flow

Figure 27-75 Item Induction MFCS Integration Batch Flow


Item Induction MFCS Integration Batch Flow
Configuration

The Item Induction integration service has a prerequisite of the interface with ID ITEMINDUCTION being configured in ORCV_BATCH_SFTP and ORCV_BATCH_SFTP_TARGET tables.

Note:

POM configuration for MFCS IINDBATCH_JOB set to run at a high frequency if required.
Initial Batch Configuration for ORCV_ITEM_INT_INDUCTION_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_ITEM_INT_INDUCTION_JOB
MAX_CHUNK_SIZE 1
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N

Note:

Worksheet VAT_ITEM will not be displayed if system option (defined in IMFCS localization_config_options table) has GTS or SALES value

System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1
INTEGRATION INDUCTION_TEMPLATE Template key. ORCV_S9T_MFCS_ITEMS_INDUCTION_V24
Web Service

Frequency: Ad hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/ ItemInductionJavaServicesWeb/services/orcv/merch/item/integration/iteminduct /<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_ITEM_INT_

INDUCTION_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_IMAGE_SVC

ORCV_ITEM_INT_SEASONS_SVC

ORCV_ITEM_INT_HTS_SVC

ORCV_ITEM_INT_HTS_ASSESS_SVC

ORCV_ITEM_INT_IMAGE_TL_SVC

ORCV_ITEM_INT_SUP_TL_SVC

ORCV_ITEM_INT_MASTER_TL_SVC

ORCV_ITEM_INT_XFORM_H_TL_SVC

ORCV_ITEM_INT_EXPENSES_SVC

ORCV_ITEM_INT_TICKET_SVC

ORCV_ITEM_INT_CHRG_SVC

ORCV_ITEM_INT_MASTER

ORCV_ITEM_INT_SUP

ORCV_ITEM_INT_SUPCTRY

ORCV_ITEM_INT_SUPCTRY_DIM

ORCV_ITEM_INT_SUP_CTRYLOC

ORCV_ITEM_INT_SUP_MN_CTRY

ORCV_ITEM_INT_SUP_UOM

ORCV_ITEM_INT_XFORM_HEAD

ORCV_ITEM_INT_XF_H_TL_PUBINFO

ORCV_ITEM_INT_EXPENSES_PUBINFO

ORCV_ITEM_INT_HTS_PUBINFO

ORCV_ITEM_INT_TICKET_PUBINFO

ORCV_ITEM_INT_CHRG_PUBINFO

ORCV_ITEM_INT_EXPENSES

ORCV_ITEM_INT_TICKET

ORCV_ITEM_INT_CHRG

ORCV_ITEM_INT_ERR_SVC

ORCV_ITEM_INT_MASTER_PUBINFO

ORCV_ITEM_INT_SUP_PUBINFO

ORCV_ITEM_INT_SUPCTRY_PUBINFO

ORCV_ITEM_INT_SUPCY_DM_PUBINFO

ORCV_ITEM_INT_SUP_CYLC_PUBINFO

ORCV_ITEM_INT_SUP_UOM_PUBINFO

ORCV_ITEM_INT_SUP_MNCY_PUBINFO

ORCV_ITEM_INT_XF_HEAD_PUBINFO

ORCV_ITEM_INT_XF_DTL_PUBINFO

ORCV_ITEM_INT_PACKITEM_PUBINFO

ORCV_ITEM_INT_IZP_PUBINFO

ORCV_ITEM_INT_VAT_ITEM_PUBINFO

ORCV_ITEM_INT_UDA_LOV_PUBINFO

ORCV_ITEM_INT_UDA_DATE_PUBINFO

ORCV_ITEM_INT_UDA_FF_PUBINFO

ORCV_ITEM_INT_SEASONS_PUBINFO

ORCV_ITEM_INT_IMAGE_PUBINFO

ORCV_ITEM_INT_IMAGE_TL_PUBINFO

ORCV_ITEM_INT_HTS_A_PUBINFO

ORCV_ITEM_INT_IEM_TL_PUBINFO

ORCV_ITEM_INT_SUP_TL_PUBINFO

ORCV_ITEM_INT_XFORM_DETAIL

ORCV_ITEM_INT_PACKITEM

ORCV_ITEM_INT_IZP

ORCV_ITEM_INT_VAT_ITEM

ORCV_ITEM_INT_UDA_LOV

ORCV_ITEM_INT_UDA_DATE

ORCV_ITEM_INT_UDA_FF

ORCV_ITEM_INT_IMAGE

ORCV_ITEM_INT_SEASONS

ORCV_ITEM_INT_HTS

ORCV_ITEM_INT_HTS_ASSESS

ORCV_ITEM_INT_IMAGE_TL

ORCV_ITEM_INT_SUP_TL

ORCV_ITEM_INT_MASTER_TL

ORCV_ITEM_INT_XFORM_H_TL

ORCV_ITEM_INT_MASTER_SVC

ORCV_ITEM_INT_SUP_SVC

ORCV_ITEM_INT_SUPCTRY_SVC

ORCV_ITEM_INT_SUPCTRY_DIM_SVC

ORCV_ITEM_INT_SUP_CTRYLOC_SVC

ORCV_ITEM_INT_SUP_MN_CTRY_SVC

ORCV_ITEM_INT_SUP_UOM_SVC

ORCV_ITEM_INT_XFORM_HEAD_SVC

ORCV_ITEM_INT_XFORM_DETAIL_SVC

ORCV_ITEM_INT_PACKITEM_SVC

ORCV_ITEM_INT_IZP_SVC

ORCV_ITEM_INT_VAT_ITEM_SVC

ORCV_ITEM_INT_UDA_LOV_SVC

ORCV_ITEM_INT_UDA_DATE_SVC

ORCV_ITEM_INT_UDA_FF_SVC

batch/restart POST

{

"executionId":<EXEC_ID>,

"jobName":"ORCV_ITEM_INT_

INDUCTION_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_IMAGE_SVC

ORCV_ITEM_INT_SEASONS_SVC

ORCV_ITEM_INT_HTS_SVC

ORCV_ITEM_INT_HTS_ASSESS_SVC

ORCV_ITEM_INT_IMAGE_TL_SVC

ORCV_ITEM_INT_SUP_TL_SVC

ORCV_ITEM_INT_MASTER_TL_SVC

ORCV_ITEM_INT_XFORM_H_TL_SVC

ORCV_ITEM_INT_EXPENSES_SVC

ORCV_ITEM_INT_TICKET_SVC

ORCV_ITEM_INT_CHRG_SVC

ORCV_ITEM_INT_MASTER

ORCV_ITEM_INT_SUP

ORCV_ITEM_INT_SUPCTRY

ORCV_ITEM_INT_SUPCTRY_DIM

ORCV_ITEM_INT_SUP_CTRYLOC

ORCV_ITEM_INT_SUP_MN_CTRY

ORCV_ITEM_INT_SUP_UOM

ORCV_ITEM_INT_XFORM_HEAD

ORCV_ITEM_INT_XF_H_TL_PUBINFO

ORCV_ITEM_INT_EXPENSES_PUBINFO

ORCV_ITEM_INT_HTS_PUBINFO

ORCV_ITEM_INT_TICKET_PUBINFO

ORCV_ITEM_INT_CHRG_PUBINFO

ORCV_ITEM_INT_EXPENSES

ORCV_ITEM_INT_TICKET

ORCV_ITEM_INT_CHRG

ORCV_ITEM_INT_ERR_SVC

ORCV_ITEM_INT_MASTER_PUBINFO

ORCV_ITEM_INT_SUP_PUBINFO

ORCV_ITEM_INT_SUPCTRY_PUBINFO

ORCV_ITEM_INT_SUPCY_DM_PUBINFO

ORCV_ITEM_INT_SUP_CYLC_PUBINFO

ORCV_ITEM_INT_SUP_UOM_PUBINFO

ORCV_ITEM_INT_SUP_MNCY_PUBINFO

ORCV_ITEM_INT_XF_HEAD_PUBINFO

ORCV_ITEM_INT_XF_DTL_PUBINFO

ORCV_ITEM_INT_PACKITEM_PUBINFO

ORCV_ITEM_INT_IZP_PUBINFO

ORCV_ITEM_INT_VAT_ITEM_PUBINFO

ORCV_ITEM_INT_UDA_LOV_PUBINFO

ORCV_ITEM_INT_UDA_DATE_PUBINFO

ORCV_ITEM_INT_UDA_FF_PUBINFO

ORCV_ITEM_INT_SEASONS_PUBINFO

ORCV_ITEM_INT_IMAGE_PUBINFO

ORCV_ITEM_INT_IMAGE_TL_PUBINFO

ORCV_ITEM_INT_HTS_A_PUBINFO

ORCV_ITEM_INT_IEM_TL_PUBINFO

ORCV_ITEM_INT_SUP_TL_PUBINFO

ORCV_ITEM_INT_XFORM_DETAIL

ORCV_ITEM_INT_PACKITEM

ORCV_ITEM_INT_IZP

ORCV_ITEM_INT_VAT_ITEM

ORCV_ITEM_INT_UDA_LOV

ORCV_ITEM_INT_UDA_DATE

ORCV_ITEM_INT_UDA_FF

ORCV_ITEM_INT_IMAGE

ORCV_ITEM_INT_SEASONS

ORCV_ITEM_INT_HTS

ORCV_ITEM_INT_HTS_ASSESS

ORCV_ITEM_INT_IMAGE_TL

ORCV_ITEM_INT_SUP_TL

ORCV_ITEM_INT_MASTER_TL

ORCV_ITEM_INT_XFORM_H_TL

ORCV_ITEM_INT_MASTER_SVC

ORCV_ITEM_INT_SUP_SVC

ORCV_ITEM_INT_SUPCTRY_SVC

ORCV_ITEM_INT_SUPCTRY_DIM_SVC

ORCV_ITEM_INT_SUP_CTRYLOC_SVC

ORCV_ITEM_INT_SUP_MN_CTRY_SVC

ORCV_ITEM_INT_SUP_UOM_SVC

ORCV_ITEM_INT_XFORM_HEAD_SVC

ORCV_ITEM_INT_XFORM_DETAIL_SVC

ORCV_ITEM_INT_PACKITEM_SVC

ORCV_ITEM_INT_IZP_SVC

ORCV_ITEM_INT_VAT_ITEM_SVC

ORCV_ITEM_INT_UDA_LOV_SVC

ORCV_ITEM_INT_UDA_DATE_SVC

ORCV_ITEM_INT_UDA_FF_SVC

batch/log GET

URL query parameters:

/log?jobName=ORCV_ITEM_INT_

INDUCTION_JOB

&executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId":<EXEC_ID>,

"jobName":"ORCV_ITEM_INT_

INDUCTION_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_ITEM_INT_

INDUCTION_JOB&executionId=

<EXEC_ID>

N/A
/ping GET Empty N/A

Item CFAs Rest to MFCS

Item integration to MFCS MerchIntegration extends the Database Integration Framework to publish Items CFAs for Item Master, Item Supplier and Item Supplier Country.

Process Overview

This section describes the process overview.

Publish Flow

Publish allows integration endpoints to be called in either synchronous or asynchronous mode. These calls can be atomic or non-atomic. Atomic calls ensure that all entries are integrated together as a bulk operation, while non-atomic calls handle each entry individually.

Figure 27-76 Items CFAs to MFCS Publish Flow


Items CFAs to MFCS Publish Flow
Publish Atomic

Figure 27-77 Items CFAs to MFCS Publish Atomic


Items CFAs to MFCS Publish Atomic
Publish Non Atomic

Figure 27-78 Items CFAs to MFCS Publish Non Atomic


Items CFAs to MFCS Publish Non Atomic
Configuration

Items publish Items CFAs with the following configurations in Database Integration Framework.

Table ORCV_INT_SERVICE_MAPPING

Item Master

Configuration Value
Application Alias ITEM
Application Entity Get Data Function ORCV_ITEM_INT_MI_WS.GET_ITEM_INTEGRATION_DATA
Application Status Function NA
Family ITEM_MASTER
Atomic Indicator N

Item Supplier

Configuration Value
Application Alias ITEM
Application Entity Get Data Function ORCV_ITEM_INT_MI_WS.GET_ITEM_INTEGRATION_DATA
Application Status Function NA
Family ITEM_SUPPLIER
Atomic Indicator N

Item Supplier Country

Configuration Value
Application Alias ITEM
Application Entity Get Data Function ORCV_ITEM_INT_MI_WS.GET_ITEM_SUPCTRY_INT_DATA
Application Status Function NA
Family ITEM_SUPPLIER_CTRY
Atomic Indicator N

Table ORCV_WS_ENDPOINT

Item Master

Configuration Value
Endpoint ID MFCS_MERCH_ITEM_UPDATE
Credential Static ID OAUTH_MFCS_INTEGRATION
URL <MFCS_MerchIntegrations_URL>/services/items/update
Action PUT
Request Type REST

Item Supplier

Configuration Value
Endpoint ID MFCS_MERCH_SUP_UPDATE
Credential Static ID OAUTH_MFCS_INTEGRATION
URL <MFCS_MerchIntegrations_URL>/services/item/supplier/update
Action PUT
Request Type REST

Item Supplier Country

Configuration Value
Endpoint ID MFCS_MERCH_SUPCTRY_UPDATE
Credential Static ID OAUTH_MFCS_INTEGRATION
URL <MFCS_MerchIntegrations_URL>/services/item/suppliers/countries/update
Action PUT
Request Type REST
Item Rest Publish Asynchronous Batch

This batch processes all entries to be integrated in MFQueue tables for Rest Integrations, it requires the parameter ENTITY to be passed defining the entity to be processed:

  • ITEM_MASTER for Item Master CFAs
  • ITEM_SUPPLIER for Item Supplier CFAs
  • ITEM_SUPPLIER_CTRY for Item Supplier Country CFAs

For those entries to be integrated, this batch enriches the data from the Application Layer generating the payload to call the MFCS MerchIntegrations Rest update endpoints in mode Atomic / Non Atomic depending on configuration setup.

Configuration

Batch configuration table: ORCV_BATCH_CONFIG

Column Name Default Values
PROGRAM_NAME ORCV_ITEM_INT_MFCS_JOB
MAX_CHUNK_SIZE 10000
MAX_CONCURRENT_THREADS 4
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Process Overview

Figure 27-79 Item CFAs Rest to MFCS Publish Batch Overview


Item CFAs Rest to MFCS Publish Batch Overview
Operations

Authentication Method: OAuth2

Base URL: /ords/mfcs/orcv/merch/item/integration/item/merchint/batch/<URL Path>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_ITEM_INT_MFCS_JOB",

"agentExecutionId": "",

"parameters": "ENTITY=ITEM_MASTER|

ITEM_SUPPLIER|ITEM_SUPPLIER_CTRY"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_SUPCTRY_CFA

ORCV_ITEM_INT_SUPCTRY_SVC

ORCV_ITEM_INT_SUPCTRY

ORCV_ITEM_INT_SUP_CTRYLOC

ORCV_ITEM_INT_SUPCTRY_DIM

ORCV_ITEM_INT_MFQUEUE

ORCV_ITEM_INT_MASTER_SVC

ORCV_ITEM_INT_MASTER

ORCV_ITEM_INT_MASTER_CFA_SVC

ORCV_ITEM_INT_MASTER_CFA

ORCV_ITEM_INT_SUP_SVC

ORCV_ITEM_INT_SUP

ORCV_ITEM_INT_SUPPLIER_CFA_SVC

ORCV_ITEM_INT_SUPPLIER_CFA

ORCV_ITEM_INT_SUPCTRY_CFA_SVC

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "<EXEC_ID>",

"jobName": "ORCV_ITEM_INT_MFCS_JOB",

"agentExecutionId": "",

"parameters": "ENTITY=ITEM_MASTER|

ITEM_SUPPLIER|ITEM_SUPPLIER_CTRY"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_SUPCTRY_CFA

ORCV_ITEM_INT_SUPCTRY_SVC

ORCV_ITEM_INT_SUPCTRY

ORCV_ITEM_INT_SUP_CTRYLOC

ORCV_ITEM_INT_SUPCTRY_DIM

ORCV_ITEM_INT_MFQUEUE

ORCV_ITEM_INT_MASTER_SVC

ORCV_ITEM_INT_MASTER

ORCV_ITEM_INT_MASTER_CFA_SVC

ORCV_ITEM_INT_MASTER_CFA

ORCV_ITEM_INT_SUP_SVC

ORCV_ITEM_INT_SUP

ORCV_ITEM_INT_SUPPLIER_CFA_SVC

ORCV_ITEM_INT_SUPPLIER_CFA

ORCV_ITEM_INT_SUPCTRY_CFA_SVC

log GET

URL query parameters:

?jobName=ORCV_ITEM_INT_MFCS_JOB&

executionId=<EXEC_ID>&

logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "<EXEC_ID>",

"jobName": "ORCV_ITEM_INT_MFCS_JOB",

"agentExecutionId": "",

"parameters": ""

}

N/A
status GET

URL query parameters:

?jobName=ORCV_ITEM_INT_MFCS_JOB&

executionId=<EXEC_ID>&

logDate=YYYY-DD-MM

N/A

Item Location Integration to MFCS

This integration has a maximum chunk size configuration and has a thread aggregator per number of different hierarchy level records per item. The chunk size represents the maximum number of hierarchy level that each thread iteration will process per item and send to MFCS MerchIntegrations item location service that subscribes items and their locations.

Process Overview

The Item Location integration service will support the integration of item locations into MFCS through the MerchIntegrations ReST endpoint.

Figure 27-80 Item Location Integration to MFCS Process Overview


Item Location Integration to MFCS Process Overview
Process Item Loc

Figure 27-81 Item Location Process Overview


Item Location Process Overview
Pre-Processor

Figure 27-82 Pre-Processor Item Location MFCS Integration


Pre-Processor Item Location MFCS Integration
Processor

Figure 27-83 Processor Item Location MFCS Integration


Processor Item Location MFCS Integration
Set Integration Status

Figure 27-84 Set Integration Status Flow for Item Location MFCS Integration


Set Integration Status Flow for Item Location MFCS Integration
Batch Flow

Figure 27-85 Item Location MFCS Integration Batch Flow


Item Location MFCS Integration Batch Flow
Configuration

This section describes configurations.

Initial Batch Configuration for ORCV_ITEM_INT_XITEMLOC_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_ITEM_INT_XITEMLOC_JOB
MAX_CHUNK_SIZE 10
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Web Service

Frequency: Ad hoc

Authorization Method: OAuth 2.0

Base URL: <BASE_URL>/XItemLocJavaServicesWeb/services/orcv/merch/item/integration/xitemloc /<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_ITEM_INT_

XITEMLOC_JOB",

"agentExecutionId":"",

"parameters":"”

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_IL_ERR_SVC

ORCV_ITEM_INT_ILDTL_SVC

ORCV_ITEM_INT_ILDTL

ORCV_ITEM_INT_ILTRT_SVC

ORCV_ITEM_INT_ILTRT

ORCV_ITEM_INT_ILDTL_CFA_SVC

ORCV_ITEM_INT_ILDTL_CFA

ORCV_ITEM_INT_IL_PUBINFO

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_ITEM_INT_

XITEMLOC_JOB",

"agentExecutionId":"",

"parameters":"”

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_ITEM_INT_IL_ERR_SVC

ORCV_ITEM_INT_ILDTL_SVC

ORCV_ITEM_INT_ILDTL

ORCV_ITEM_INT_ILTRT_SVC

ORCV_ITEM_INT_ILTRT

ORCV_ITEM_INT_ILDTL_CFA_SVC

ORCV_ITEM_INT_ILDTL_CFA

ORCV_ITEM_INT_IL_PUBINFO

batch/log GET

URL query parameters:

/log?jobName=ORCV_ITEM_INT_

XITEMLOC_JOB

&executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_ITEM_INT_

XITEMLOC_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_ITEM_INT_

XITEMLOC_JOB

&executionId=<EXEC_ID>

N/A
/ping GET Empty N/A

Cost Change Induction to MFCS

This section describes the Cost Change Induction to MFCS.

Process Overview

The Cost Change induction service will support the integration of Cost Changes into MFCS through the induction batch.

Figure 27-86 Cost Change Induction to MFCS Process Overview


Cost Change Induction to MFCS Process Overview
Process Cost Change

Figure 27-87 Cost Change Process Overview


Cost Change Process Overview
Pre-Processor

Figure 27-88 Pre-Processor Cost Change Induction to MFCS Integration


Pre-Processor Cost Change Induction to MFCS Integration
Processor

Figure 27-89 Processor Cost Change Induction to MFCS Integration


Processor Cost Change Induction to MFCS Integration
Set Integration Status

Figure 27-90 Set Integration Status Flow for Cost Change Induction to MFCS Integration


Set Integration Status Flow for Cost Change Induction to MFCS Integration
Batch Flow

Figure 27-91 Processor Cost Change Induction to MFCS Integration Batch Flow


Processor Cost Change Induction to MFCS Integration Batch Flow
Configuration

The Cost Change Induction integration service has a prerequisite of the interface with ID COSTCHANGEINDUCTION being configured in ORCV_BATCH_SFTP and ORCV_BATCH_SFTP_TARGET tables.

Note:

POM configuration for MFCS IINDBATCH_CC_JOB is set to run at a high frequency if required and the final target is Merchandising instead of staging tables. The cost change number should be aligned to avoid collision in Merchandising.
Initial Batch Configuration for ORCV_COSTS_INT_CCINDUCT_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_COSTS_INT_CCINDUCT_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1
INTEGRATION INDUCTION_TEMPLATE Template key. ORCV_S9T_MFCS_COST_CHANGE
Web Service

Frequency: Ad hoc

Base URL: <BASE_URL>/CostChangeInductionJavaServicesWeb/services/orcv/merch/costs/integration/

costchangeinduct/<URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_COSTS_INT_

CCINDUCT_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_COSTS_INT_HEAD_SVC

ORCV_COSTS_INT_DETAIL_SVC

ORCV_COSTS_INT_DETAIL_LOC_SVC

ORCV_COSTS_INT_HEAD

ORCV_COSTS_INT_DETAIL

ORCV_COSTS_INT_DETAIL_LOC

ORCV_COSTS_INT_CC_HEAD_PUBINFO

ORCV_COSTS_INT_CC_DTL_PUBINFO

ORCV_COSTS_INT_CC_LOC_PUBINFO

ORCV_COSTS_INT_ERR_SVC

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_COSTS_INT_

CCINDUCT_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_COSTS_INT_HEAD_SVC

ORCV_COSTS_INT_DETAIL_SVC

ORCV_COSTS_INT_DETAIL_LOC_SVC

ORCV_COSTS_INT_HEAD

ORCV_COSTS_INT_DETAIL

ORCV_COSTS_INT_DETAIL_LOC

ORCV_COSTS_INT_CC_HEAD_PUBINFO

ORCV_COSTS_INT_CC_DTL_PUBINFO

ORCV_COSTS_INT_CC_LOC_PUBINFO

ORCV_COSTS_INT_ERR_SVC

batch/log GET

URL query parameters:

/log?jobName=ORCV_COSTS_INT_

CCINDUCT_JOB&

executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_COSTS_INT_

CCINDUCT_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

batch/status GET

URL query parameters:

/status?jobName=ORCV_COSTS_INT_

CCINDUCT_

JOB&executionId=<EXEC_ID>

N/A
ping GET Empty N/A

Return to Vendor to MFCS

Return to Vendor integration to MFCS MerchIntegration extends the Database Integration Framework to Publish RTVs.

Process Overview

This section describes the process overview.

Publish Flow

Publish allows the calling of integration endpoints in synchronous mode. Those calls can be either atomic or non-atomic. Atomic is in case all the entries need to be integrated together in bulk, while the non-atomic deals with each entry individually.

Figure 27-92 Return to Vendor to MFCS Publish Flow


Return to Vendor to MFCS Publish Flow
Publish Atomic

Figure 27-93 Return to Vendor to MFCS Publish Atomic


Return to Vendor to MFCS Publish Atomic
Publish Non Atomic

Figure 27-94 Return to Vendor to MFCS Publish Non Atomic


Return to Vendor to MFCS Publish Non Atomic
Configuration

Quality Control and Return to Vendor publish RTVs with the following configurations in Database Integration Framework.

Table ORCV_INT_SERVICE_ENTITY
Configuration Value
Entity ID RTV
Publication Function ORCV_INV_INT_RTV_SERVICE.PUBLISH
Table ORCV_INT_SERVICE_MAPPING

Quality Control

Configuration Value
Application Alias QLCT
Application Entity Get Data Function ORCV_QLCT_PUB_RTV.GET_RTV_INTEGRATION_DATA
Application Status Function NA
Atomic Indicator N

Return to Vendor

Configuration Value
Application Alias SPRV
Application Entity Get Data Function ORCV_SPRV_PUB_RTV.GET_RTV_INTEGRATION_DATA
Application Status Function NA
Atomic Indicator N
Table ORCV_WS_ENDPOINT
Configuration Value
Endpoint ID MFCS_MERCH_RTV_MANAGE
Credential Static ID OAUTH_MFCS_INTEGRATION
URL <MFCS_MerchIntegrations_URL>/services/inventory/returnsToVendor/manage
Action PUT
Request Type REST
Integration Object Type

ORCV_INT_SERVICE_OBJ is a base object type for handling the reference keys sent for integration and Return to Vendor to MFCS implements ORCV_INV_INT_RTV_HEAD_OBJ under this object following the RTVs specific requirements.

Deals to MFCS

The Deal to MFCS batch service will support the integration of Deals into MFCS as an EDIDU file through the deal upload batch (DEALUPLD_JOB).

Process Overview

Figure 27-95 Deal Integration to MFCS Batch Process Overview


Deal Integration to MFCS Batch Process Overview
Process Deal

Figure 27-96 Deal Process Overview


Deal Process Overview
Pre-Processor

Figure 27-97 Pre-Processor Deal Integration to MFCS


Pre-Processor Deal Integration to MFCS
Processor

Figure 27-98 Processor Deal Integration to MFCS


Processor Deal Integration to MFCS
Post Processor

Figure 27-99 Post Processor Deal Integration to MFCS


Post Processor Deal Integration to MFCS
Set Integration Status

Figure 27-100 Set Integration Status Flow for Deal Integration to MFCS


Set Integration Status Flow for Deal Integration to MFCS
Configuration

The Deal to MFCS batch service has a prerequisite of the interface ID DEALEDIDU being configured on ORCV_BATCH_SFTP and ORCV_BATCH_SFTP_TARGET tables.

Note:

POM configuration for ORCV_DEAL_INT_EDIDU_JOB Ad-hoc execution is advised to be set at a high frequency.
Initial Batch Configuration for ORCV_DEAL_INT_EDIDU_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_DEAL_INT_EDIDU_JOB
MAX_CHUNK_SIZE 1 (one deal per edidu file)
MAX_CONCURRENT_THREADS 4
BULK_LIMIT 1000
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 2
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
System Parameters

Listed below is the list of configurations at system level that are required by this integration.

The parameters are defined in table ORCV_SYSTEM_PARAMETERS.

Area Parameter Description Value 1
PURGE PURGE_DAYS Default purge Period. 30
INTEGRATION INDUCTION_TEMPLATE Deals Integration template key MFCS_EDIDU_DATA_V23
INTEGRATION THRESHOLD_LOWER_LIMIT Lower limit of the deal component. This is the minimum value will apply, when multiple_thresholds_ind = 'N' 0
INTEGRATION THRESHOLD_UPPER_LIMIT 'Upper limit of the deal component. This is the maximum value will apply, when multiple_thresholds_ind = 'N' 99999999
CONFIG GENERATE_DEAL_COMPONENT Apply deal component rule and insert integration tables.

ORCV_DEAL_INT_EDIDU.

INSERT_INT

Web Service

Frequency: Ad hoc

Base URL: <BASE_URL>/DealsEdiduJavaServicesWeb/services/orcv/merch/deal/integration/edidu/< URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_DEAL_INT_

EDIDU_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_DEAL_INT_HEAD_SVC

ORCV_DEAL_INT_DETAIL_SVC

ORCV_DEAL_INT_COMP_PRM_SVC

ORCV_DEAL_INT_IL_ITEM_SVC

ORCV_DEAL_INT_POP_TERMS_SVC

ORCV_DEAL_INT_THRESHOLD_SVC

ORCV_DEAL_INT_ERR_SVC

ORCV_DEAL_INT_HEAD

ORCV_DEAL_INT_DETAIL

ORCV_DEAL_INT_COMP_PRM

ORCV_DEAL_INT_IL_ITEM

ORCV_DEAL_INT_POP_TERMS

ORCV_DEAL_INT_THRESHOLD

ORCV_DEAL_INT_XREF

ORCV_DEAL_INT_HEAD_PUBINFO

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_DEAL_INT_

EDIDU_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_DEAL_INT_HEAD_SVC

ORCV_DEAL_INT_DETAIL_SVC

ORCV_DEAL_INT_COMP_PRM_SVC

ORCV_DEAL_INT_IL_ITEM_SVC

ORCV_DEAL_INT_POP_TERMS_SVC

ORCV_DEAL_INT_THRESHOLD_SVC

ORCV_DEAL_INT_ERR_SVC

ORCV_DEAL_INT_HEAD

ORCV_DEAL_INT_DETAIL

ORCV_DEAL_INT_COMP_PRM

ORCV_DEAL_INT_IL_ITEM

ORCV_DEAL_INT_POP_TERMS

ORCV_DEAL_INT_THRESHOLD

ORCV_DEAL_INT_XREF

ORCV_DEAL_INT_HEAD_PUBINFO

batch/log GET

URL query parameters:

/log?jobName=ORCV_DEAL_INT_

EDIDU_JOB&

executionId=<EXEC_ID>&date=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_DEAL_INT_

EDIDU_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/status GET

URL query parameters:

/status?jobName=ORCV_DEAL_INT_

EDIDU_JOB&executionId=<EXEC_ID>

N/A
ping GET Empty N/A
Deal XREF Batch Service

The Deal cross reference batch service allow synchronization of MFCS deal ID to the external reference integrated through the Deal Integration Batch Service.

Figure 27-101 Deal XREF Batch Service Overview


Deal XREF Batch Service
Initial Batch Configuration for ORCV_DEAL_INT_EDIDU_XREF_JOB

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
PROGRAM_NAME ORCV_DEAL_INT_EDIDU_XREF_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
RETRY_LOCK_ATTEMPTS 4
RETRY_WAIT_TIME 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_IND N
Web Service

Frequency: Ad-hoc

Base URL: <BASE_URL>/ords/mfcs/orcv/merch/deal/integration/xrefupdate/< URL_PATH>

URL Path Request Method Request Body Affected Tables
batch/start POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":"",

"jobName":"ORCV_DEAL_INT_

EDIDU_XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_DEAL_INT_XREF

batch/restart POST

{

"cycleName":"",

"flowName":"",

"processName":"",

"async":"",

"executionId":<EXEC_ID>,

"jobName":"ORCV_DEAL_INT_

EDIDU_XREF_JOB",

"agentExecutionId":"",

"parameters":""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_ENGINE_THREADS

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

ORCV_DEAL_INT_XREF

batch/log GET

URL query parameters:

/log?jobName=ORCV_DEAL_INT_

EDIDU_XREF_JOB&

executionId=<EXEC_ID>&logDate=

YYYY-MM-DD

N/A
batch/kill POST

{

"executionId": <EXEC_ID>,

"jobName":"ORCV_DEAL_INT_

EDIDU_XREF_JOB"

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_BATCH_AUDIT_LOG

batch/status GET

URL query parameters:

/status?jobName=ORCV_DEAL_INT_

EDIDU_XREF_JOB&executionId=<EXEC_ID>

N/A
ping GET Empty N/A

Fulfillment Order to MFCS

Fulfillment Order to MFCS extends the Database Integration Framework to publish Fulfillment Orders to MFCS Merch Integrations.

Process Overview

This section describes the process overview.

Publish Flow

Publish allows the call of integration endpoints in synchronous and asynchronous mode. Those calls can be either atomic or non-atomic. Atomic is in case all the entries need to be integrated together in bulk while the non-atomic deals with each entry individually.

Figure 27-102 Fulfillment Order to MFCS Publish Flow


Fulfillment Order to MFCS Publish Flow
Publish Atomic

Figure 27-103 Fulfillment Order to MFCS Publish Atomic


Fulfillment Order to MFCS Publish Atomic
Publish Non Atomic

Figure 27-104 Fulfillment Order to MFCS Publish Non-Atomic


Fulfillment Order to MFCS Publish Non-Atomic
Publish Asynchronous Batch

Fulfillment Order Publish to MFCS

The Fulfillment Order Publish to MFCS Batch checks the queue table ORCV_ORD_INT_FO_MFQ for Fulfillment Orders to be published in the table.

  • Job: ORCV_ORD_INT_FO_MFCS_JOB
  • Frequency: Ad-hoc
  • Dependency: None
  • Inter Scheduler Dependency: None

Batch default configuration (ORCV_BATCH_CONFIG):

Column Name Default Values
Program Name ORCV_ORD_INT_FO_MFCS_JOB
Maximum Chunk Size 10000
Maximum Concurrent Threads 4
Retry Lock Attempts 4
Retry Wait Time 2
Retry Maximum Attempts 3
Retry Ordered N
Retry Indicator N

Process Overview

Figure 27-105 Fulfillment Order to MFCS Publish Asynchronous Batch Overview


Fulfillment Order to MFCS Publish Asynchronous Batch Overview
Configuration

Customer Order Fulfillment publishes Fulfillment Orders with the following configurations in Database Integration Framework:

Table ORCV_INT_SERVICE_ENTITY
Configuration Value
Entity ID FO_MFCS
Publication Function ORCV_ORD_INT_FO_SERVICE.PUBLISH
Table ORCV_INT_SERVICE_MAPPING
Configuration Value
Application Alias SPCO
Application Entity Get Data Function ORCV_SPCO_PUB_FO.GET_FO_INTEGRATION_DATA
Application Status Function ORCV_SPCO_PUB_FO.SET_FO_INTEGRATION_STATUS
Atomic Indicator N
Table ORCV_WS_ENDPOINT
Configuration Value
Endpoint ID MFCS_MERCH_FO_MANAGE
Credential Static ID OAUTH_MFCS_INTEGRATION
URL <MFCS_MerchIntegrations_URL>/services/customerOrders/fulfillmentOrder/create
Action PUT
Request Type REST
Integration Object Type

ORCV_INT_SERVICE_OBJ is a base object type for handling the reference keys sent for integration and Fulfillment Order to MFCS implements ORCV_ORD_INT_FO_HEAD_OBJ under this object following the Fulfillment Orders specific requirements.

Security

Authentication and Single Sign-On

Authentication in Retail Supply Chain Hub is managed through Oracle Cloud Infrastructure Identity and Access Management (OCI IAM). The IDCS or OCI IAM tenant is the same tenant that is used by the rest of the Oracle Retail suite of applications, enabling SSO or federated with another instance.

ReST Services Authentication

ReST Service services endpoints support IDCS Authentication OAuth 2.0 with grant types of Client Credentials. It is applicable to all ReST endpoints in ORDS. The Java Services all support OAuth2.0, but only with grant type Client Credentials.

To ensure a proper security configuration the following must be done:

  • Client Credentials for batch executions
  • Client Credentials for Integrations:
    • Create an Application in IDCS with a specific scope for the client.

    • Create a user in IDCS with the uppercased name matching the IDCS Application name.

    • Grant IDCS Application Role RETAILER_ADMINISTRATOR for RSCH.

    • Run IDCS Synchronization Batch.

    • Map the client scopes with the appropriate roles of the endpoint in table ORCV_SEC_ROLES_SCOPES.

    • Set appropriate Data permissions for the actions to be performed in Profile.

Database

Data Filter Policy

Retail Supply Chain Hub provides an optional layer of data filtering in the application user interface, which limits the data end users see by levels in the merchandise, supplier site and location. Whether or not this is used in your environment is controlled by association to a supplier, department, location, or a specific role that determines if the user is a retailer or a supplier and they are an administrator of the system.

With data filtering enabled for merchandise hierarchy, users will only be able to work with entities that are part of the merchandise hierarchy to which they have been given data filtering access. Otherwise, by default, any retailer user will have access to all departments. This configuration will be persisted in the table ORCV_SEC_USER_DEPT and the user information will need to be set up on the ORCV_SEC_USER table.

GDPR

Retail Supply Chain Hub complies with GDPR requirements that mandates that organizations protect the personal data of individuals and provides individuals with rights regarding their data, such as the right to access, rectification, erasure, and data portability. In essence, the available web-services manage the process of identifying, modifying, and/or deleting personal data across various tables in the ORCV database to comply with GDPR regulations.

Web Services

This section describes the web services.

Right of Access

This service retrieves and returns user information based on the provided user ID.

Endpoint /ords/mfcs/orcv/common/gdpr/access
Authorization Method OAuth 2.0
Request Method POST
Request Body

The request body should be a JSON object containing the user_id.

Example:

{

"user_id": "MY_USER"

}

Response Body

A JSON object containing the user's information.

Example:

{

"entity": "User with id RETAILER_ADMIN information.",

"list": [

{

"USER_ID": "MY_USER",

"USER_NAME": "My User",

"FIRST_NAME": "My",

"LAST_NAME": "User",

"USER_STATUS": "A",

"JOB_TITLE": null,

"EMAIL": "my.user@example.com",

"USER_TYPE": "RA"

}

]

}

This endpoint will verify the user exists in the system. If the user is confirmed to exist, the function proceeds to gather all the relevant information associated with that user and returns it in a JSON format.

Figure 27-106 GDPR Right of Access Rest Service


GDPR Right of Access Rest Service
Right to be Forgotten

This service initiates the process of forgetting a user's data in accordance with GDPR regulations.

URL /ords/mfcs/orcv/common/gdpr/forget
Authorization Method OAuth 2.0
Request Method POST
Request Body

The request body should be a JSON object containing the user_id.

Example:

{

"user_id": "RETAILER_ADMIN"

}

Response Body

A JSON object containing the process id of the batch executing in the background that will obfuscate the user id requested.

Example:

{

"process_id": "1234"

}

This endpoint will verify the user exists in the system. If the user is confirmed to exist, the function proceeds to adding the user to be processed in the batch.

Figure 27-107 GDPR Right to be Forgotten Rest Service

GDPR Right to be Forgotten Rest Service

Forget Batch

This process executes the 'forget' functionality for all tables configured in the ORCV_GDPR_CONFIG table where ROA_IND is 'N'. It updates the columns specified in the GDPR_COLUMN to anonymize user data.

Batch configuration table: ORCV_BATCH_CONFIG

Column Name Default Values
PROGRAM_NAME ORCV_GDPR_JOB
MAX_CHUNK_SIZE 1000
MAX_CONCURRENT_THREADS 4
RETRY_IND N
RETRY_LOCK_ATTEMPTS 3
RETRY_MAX_ATTEMPTS_COUNT 3
RETRY_ORDERED N
RETRY_WAIT_TIME 3

Process Overview

Figure 27-108 Forget Batch Process Overview


Forget Batch Process Overview

Pre-Processor: This function's primary responsibility is to divide the workload of the processing into smaller chunks that can be processed concurrently by different threads. This is achieved by collecting all the configurations in ORCV_GDPR_CONFIG table and defining the threads based on MOD of (TABLE_NAME, MAX_CONCURRENT_THREADS) to ORCV_THREAD_CONTROL.

Processor: The processor function is responsible for the bulk of the execution. It begins by inactivating the user identified for removal to prevent further actions associated with that user. The function updates the ORCV_GDPR_REQ table to mark the process as 'P'. After the handling of the thread number, it will update the ORCV_THREAD_CONTROL table. After this, the function will run through every TABLE_NAME configured on the ORCV_GDPR_CONFIG table and insert all records associated with the user in the configured column into a GTT table (ORCV_GDPR_USER_ACTIV_GTT). It will then finally update all columns with the user to the new created user inserted on the beginning of the process. The function concludes by updating the ORCV_THREAD_CONTROL table to 'PS' for success or 'E' for error."

Post Processor: The post-processor begins by checking the status of the ORCV_THREAD_CONTROL table for the given PROCESS_ID. If all threads completed successfully, the process status in ORCV_GDPR_REQ is set to 'C' (Completed); otherwise, it is set to 'E' (Error). If the status in ORCV_GDPR_REQ is 'C', the user is deleted from the ORCV_SEC_USER_APP, ORCV_SEC_USER_SUPP, ORCV_SEC_USER_DEPT, ORCV_SEC_USER_LOC, ORCV_SEC_TOKEN_HEAD, and ORCV_SEC_USER tables.

Operations

Authentication Method: OAuth2

Base URL: /ords/mfcs/orcv/merch/common/batch/<URL_PATH>

URL Path Request Method Request Body Affected Tables
start POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "",

"jobName": "ORCV_GDPR_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_GDPR_REQ

ORCV_SEC_USER

ORCV_SEC_USER_APP

ORCV_SEC_USER_SUPP

ORCV_SEC_USER_DEPT

ORCV_SEC_USER_LOC

ORCV_SEC_TOKEN_HEAD

and tables listed in ORCV_GDPR_CONFIG

restart POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "<EXEC_ID>",

"jobName": "ORCV_GDPR_JOB",

"agentExecutionId": "",

"parameters": ""

}

ORCV_BATCH_STATUS_CONTROL

ORCV_THREAD_CONTROL

ORCV_BATCH_AUDIT_STATUS

ORCV_GDPR_REQ

ORCV_SEC_USER

ORCV_SEC_USER_APP

ORCV_SEC_USER_SUPP

ORCV_SEC_USER_DEPT

ORCV_SEC_USER_LOC

ORCV_SEC_TOKEN_HEAD

and tables listed in ORCV_GDPR_CONFIG

log GET

URL query parameters:

?jobName=ORCV_GDPR_JOB&

executionId=<EXEC_ID>&

logDate=YYYY-DD-MM

N/A
kill POST

{

"cycleName": "",

"flowName": "",

"processName": "",

"async": "",

"executionId": "<EXEC_ID>",

"jobName": "ORCV_GDPR_JOB",

"agentExecutionId": "",

"parameters": ""

}

N/A
status GET

URL query parameters:

?jobName=ORCV_GDPR_JOB&

executionId=<EXEC_ID>&

logDate=YYYY-DD-MM

N/A
Right to be Forgotten Service

This service retrieves the status of a "forget user" request, identified by its process ID.

URL /ords/mfcs/orcv/common/gdpr/forget
Authorization Method OAuth 2.0
Request Method GET
Request Parameters

The process_id received on the forget user web service.

Example:

/ords/mfcs/orcv/common/gdpr/forget?process_id=1234

Response Body

A JSON object containing the status of the forget user process.

Example:

{

"status": "New"

}