12.5 Scenario Analysis (POST)

Below mentioned table has element name which indicates which type of custom data is passed by enclosing the name and its value in keyname and keyvalue respectively.

Table 12-6 Scenario Analysis

Element name Sub element Data type
CustomUserDefinedStringData KeyName String
  KeyValue String
CustomUserDefinedNumberData KeyName String
  KeyValue Number (Double)
CustomUserDefinedDateData KeyName String
  KeyValue Date(YYYY-MM-DDTHH:MM:SS)
Sample XML
<Custom>
    <CustomUserDefinedStringData>
        <KeyName>Middle Name</KeyName>
        <KeyValue>Oracle</KeyValue>
    </CustomUserDefinedStringData>
    <CustomUserDefinedNumberData>
        <KeyName>Age</KeyName>
        <KeyValue>27</KeyValue>
    </CustomUserDefinedNumberData>
    <CustomUserDefinedDateData>
        <KeyName>FirstPmtDate</KeyName>
        <KeyValue>2016-07-14</KeyValue>
    </CustomUserDefinedDateData>
</Custom>
Sample JSON
{
    "Custom": {
        "CustomUserDefinedStringData": {
            "KeyName": "Middle Name",
            "KeyValue": "Oracle"
        },
        "CustomUserDefinedNumberData": {
            "KeyName": "Age",
            "KeyValue": "27"
        },
        "CustomUserDefinedDateData": {
            "KeyName": "FirstPmtDate",
            "KeyValue": "2016-07-14"
        }
    }
}

Below are the package details for scenario analysis web service

Engine wrapper package:
xsaprc_ew_100_01. xsaprc_ew_100_01(iv_xsa_asa_recIN OUT xae_cal_rec_t,
iv_calculator_type IN VARCHAR2,
iv_action     IN VARCHAR2,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)

Wrapper package is used for two services (POST & GET), both services differentiated by iv_action.

Engine main packages:

POST:
xsaprc_em_100_01.create_asa( iv_xsa_asa_recIN OUT xae_cal_rec_t,
iv_calculator_type     IN  VARCHAR2,
iv_result     OUT  VARCHAR2,
iv_err_desc     OUT  VARCHAR2)

Below are the exit points for post service

BEFORE:
xsaprc_ex_100_01.post_prc_bfr ( iv_xsa_asa_rec     IN OUT xae_cal_rec_t,
iv_calculator_type IN VARCHAR2,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
REPLACE:
xsaprc_ex_100_01.post_prc_rep ( iv_xsa_asa_rec     IN OUT xae_cal_rec_t,
iv_calculator_type IN VARCHAR2,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
AFTER:
xsaprc_ex_100_01.post_prc_afr ( iv_xsa_asa_rec     IN OUT xae_cal_rec_t,
iv_calculator_type IN VARCHAR2,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
GET:
xsaprc_em_100_01.get_asa( iv_xsa_asa_rec IN OUT   xae_cal_rec_t,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)

Below are the exit points for get service

BEFORE:
xsaprc_ex_100_01.get_prc_bfr ( iv_xsa_asa_rec IN OUT  xae_cal_rec_t,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
REPLACE :
xsaprc_ex_100_01.get_prc_rep ( iv_xsa_asa_rec IN OUT  xae_cal_rec_t,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
AFTER:
xsaprc_ex_100_01.get_prc_afr ( iv_xsa_asa_rec IN OUT  xae_cal_rec_t,
iv_result     OUT VARCHAR2,
iv_err_desc     OUT VARCHAR2)
IN parameters:
xae_cal_rec_t --- Rec Type Object
iv_calculator_type --- VARCHAR2
iv_action --- VARCHAR2
OUT parameters:
xae_cal_rec_t --- Rec Type Object
iv_result --- VARCHAR2,
iv_err_desc --- VARCHAR2

Extensible parameters are Tab Type object

CREATE OR REPLACE TYPE xws_att_date_rec_t AS OBJECT
(
ATT_NAME         VARCHAR2 (30)
ATT_VALUE        DATE);
/
CREATE OR REPLACE TYPE xws_att_num_rec_t AS OBJECT
(
ATT_NAME         VARCHAR2 (30)
, ATT_VALUE      NUMBER);
);
/
CREATE OR REPLACE TYPE xws_att_str_rec_t AS OBJECT
(
ATT_NAME         VARCHAR2 (30)
, ATT_VALUE      VARCHAR2 (4000));
);
/