Additional validation logic for a field or group of fields

Oracle Banking Payments provides the extension call outs in database layer. These extension call outs are extensible package and pre-named procedures to be used for extensibility. The base product will call this call outs during runtime with required PLSQL data type as parameters.

Example:
User wanted extends STDCIFCR function to add capital letter validation for the field
“Customer name”. This can be achieved as follows:

Edit the STPKS_STDCIFCR_CUSTOME.Fn_Pre_Default_Validate as below

FUNCTION Fn_Pre_Default_And_Validate
(p_Source IN VARCHAR2,
p_Source_Operation IN VARCHAR2,
p_Function_Id IN VARCHAR2,
p_Action_Code IN VARCHAR2,
p_Child_Function IN VARCHAR2,
p_stdcifcr IN stpks_stdcifcr_Main.ty_stdcifcr,
p_Prev_stdcifcr IN OUT stpks_stdcifcr_Main.ty_stdcifcr,
p_Wrk_stdcifcr IN OUT stpks_stdcifcr_Main.ty_stdcifcr,
p_Err_Code IN OUT VARCHAR2,
p_Err_Params IN OUT VARCHAR2)
RETURN BOOLEAN IS
BEGIN
Dbg('In Fn_Pre_Default_And_Validate..');

--extensibility code start
p_Wrk_stdcifcr:= p_stdcifcr;
IF p_wrk_stdcifcr.v_sttms_customer.CUSTOMER_NAME1 NOT IN
(upper(p_wrk_stdcifcr.v_sttms_customer.CUSTOMER_NAME1))
THEN
p_err_code := 'ST-OTHR-097';
p_err_params := NULL;
Dbg('Out of validation code-Sarva');
RETURN FALSE;
END IF;
--extensibility code ends
Dbg('Returning Success From fn_pre_default_and_validate..');

RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
Debug.Pr_Debug('**',
'In When Others of stpks_stdcifcr_Custom.Fn_Pre_Default_And_Validate
..');
Debug.Pr_Debug('**', SQLERRM);
p_Err_Code := 'ST-OTHR-001';
p_Err_Params := NULL;
RETURN FALSE;
END Fn_Pre_Default_And_Validate;

Note:

Open RAD XML for a given function ID using RAD tool to understand the data block and field name. This would give above complete path to access the field name. you can prefix “p_” to get function ID data type and “v_” to data block to get data block name.

Example: to know the card holder name element at runtime, use following template:

[function_id type].[data block name].[field name]
p_wrk_stdcifcr.v_sttms_customer.CUSTOMER_NAME1