# Provide Secure Way of Accessing Stack Trace

A stack trace is technical in nature and used by configurer’s or debuggers to understand the error but may not be meaningful to the OIPA end user. With this enhancement, displaying the stack trace can be enabled or disabled based on the user’s security role for both production and development/testing environments.

A new company security page shows ShowStackTrace has been added to the Rules Palette Admin Explorer pane in order to give access to view stack traces. ShowStackTraces is created under Admin Explorer > Security > Application Security > Security Groups > Security Group Name > Company Security > Company pages > Company name > ShowStackTraces.

ShowStackTraces will have the security for accessing the ShowStackTrace button and viewing the full stack trace error. Only User’s that have appropriate security roles to access ShowStackTrace button are allowed to view stack trace. Otherwise ShowStackTrace button will not be displayed. The upgrade utility adds new security page ShowStackTrace to AsAuthPage and AsAuthCompanyPage. By default, the security for Stack Trace is set to No. Each OIPA customer will need to review their security groups to determine which ones should be given access to view stack traces and make the appropriate updates in the ShowStackTrace page.

## Better Error and Message Handling

This enhancement is the first in a series that will replace OIPA system error messages with user friendly error messages which helps to easily identify the reason for the error. As a part of 11.3.1.0 twenty messages of APE and SRE type are replaced with new messages. Three new columns have been added to the AsErrorCatalog table.

Column | Constraint | Description
ErrorType | Nullable | This column stores the type of error.
SystemIndicator | Not Null | This column indicates whether the error is system error or custom error.
ErrorCause | Nullable | This column displays the cause of the error.

### SRE Message

The list of SRE messages that are replaced with new messages are as follows:

ERROR NUMBER | ERROR TYPE | EXISTING ERROR MESSAGES IN OIPA | NEW ERROR MESSAGES IN OIPA
SRE.FailedGenerateDisbursementNumber | SRE | Error.FailedFindDisbursementNumber = Failed to find disbursement number. | Disbursement failed due to an improper or missing sequence number value. Policy: {PolicyNumber} Activity: {TransactionName} Business Rule: "DisbursementNumber" Sequence Name: "DisbursementNumber"
SRE.FailedFindDisbursementNumber | SRE | Error.FailedFindDisbursementNumber = Failed to find disbursement number. | Disbursement record associated to the Policy or Role cannot be found. Policy: {PolicyNumber} Activity: {TransactionName} Role: {RoleCode.ShortDescription}
SRE.FailedFindClientDisbursementNumber | SRE | Error.FailedFindDisbursementNumber = Failed to find disbursement number. | Disbursement record associated to the Client cannot be found. Client: {ClientName} Activity: {TransactionName}
SRE.FailedFindWithholdingForActivity | SRE | Error.FailedFindWithholding = Failed to find withholding. | The Withholding information cannot be found. Plan: {PlanName} Client: {ClientName} or Policy: {PolicyNumber} Activity: {TransactionName}
SRE.FailedFindWithholdingFieldName | SRE | Error.FailedFindWithholding = Failed to find withholding. | Withholding information cannot be found due to one or more Withholding field values are null or empty. Policy: {PolicyNumber} Activity: {TransactionName}
SRE.FailedFindWithholdingField | SRE | Error.FailedFindWithholding = Failed to find withholding. | Withholding data cannot be found. Plan: {PlanName} Client: {ClientName} or Policy: {PolicyNumber} Activity: {TransactionName}
SRE.FailedCreateWithholdingFieldsDefinition | SRE | Error.FailedFindWithholdingFields = Withholding fields not defined. | Withholding field data has not been provided for the Disbursement being created. Plan: {PlanName} Client: {ClientName} and/or Policy: {PolicyNumber} Activity: {TransactionName}
SRE.FailedCreateRequirementProcessor | SRE | Error.FailedCreateRequirementProcessor = Failed to create an instance of the requirement processor for requirement: {0}. | Requirement cannot be processed by the Requirement Processor. Requirement: {RequirementName}
SRE.FailedGenerateGlobalScreenMathEngine | SRE | Error.FailedGenerateGlobalScreenMathEngine = Failed to generate GlobalScreen event processor. | Global ScreenMath could not be found or its configuration references a math variable or field that does not exist. Business Rule: {RuleName} MathID: {MathIDName} MathVariable:{MathVariableName}
SRE.FailedGenerateOnChangeMathEngine | SRE | Error.FailedGenerateOnChangeMathEngine = Failed to generate OnChange event processor. | The OnChange Event cannot find ScreenMath configuration or the ScreenMath configuration references a mathvariable or field that does not exist. Business Rule: {RuleName} MathID: {MathIDName} MathVariable:{MathVariableName} Field: {TransactionFieldName}
SRE.FailedGenerateOnLoadMathEngine | SRE | Error.FailedGenerateOnLoadMathEngine = Failed to generate OnLoad event processor. | The OnLoad Event cannot find ScreenMath configuration or the ScreenMath configuration references a mathvariable or field that does not exist. Business Rule: {RuleName} MathVariable: {MathVariableName}
SRE.FailedGenerateOnSubmitMathEngine | SRE | Error.FailedGenerateOnSubmitMathEngine = Failed to generate OnSubmit event processor. | The OnSubmit Event cannot find ScreenMath configuration or the ScreenMath configuration references a mathvariable or field that does not exist. Business Rule: {RuleName} MathVariable:{MathVariableName}
SRE.FailedLoadAccountingDetail | SRE | Error.FailedLoadAccountingDetail=Failed to load Accounting Detail. | The Accounting data for the activity cannot be found. Policy: {PolicyNumber} Activity: {TransactionName}
SRE.FailedLoadAccountingDetailForFund | SRE | Error.FailedLoadAccountingDetail=Failed to load Accounting Detail. | The Fund Accounting data for the Activity cannot be found. Policy: {PolicyNumber} Activity: {TransactionName} Fund: {FundName} Account: {AccountNumber}

### APE Error Message

The APE error messages that are replaced with new messages are as follows:

ERROR NUMBER | ERROR TYPE | EXISTING ERROR MESSAGES IN OIPA | NEW ERROR MESSAGES IN OIPA | BUSINESS RULE/APE RULE
APE.FailedLoadSegmentName | APE | Error.FailedLoadSegmentName = Failed to load segment name for segmentGuid {0}. | Definition for the Segment is not available. Business Rule: "CreatePolicy" Policy: {PolicyNumber} Segment: {SegmentName} | APE Rule : CreatePolicy
APE.AllocationTypeCodeMismatch | APE | Error.AllocationTypeCodeMismatch = Mismatch between the Allocation Type Codes. | The Activity cannot replace a Program Allocation. Business Rule: "WriteDefaultAllocation" Activity: {TransactionName} Allocation Type: {AllocationTypeCode.ShortDescription} | APE Rule : WriteDefaultAllocation
APE.FailedLoadPolicyScreen | APE | Error.FailedLoadPolicyScreen = Failed to locate Policy Screen Business Rule in AddRoles. | Unable to load the PolicyScreen business rule. Business Rule: "AddRoles" Plan: {PlanName} Policy: {PolicyNumber} | APE Rule: AddRoles
APE.FailedLoadPolicyScreen | APE | Error.FailedLoadPolicyScreen = Failed to locate Policy Screen Business Rule in AddRoles. | Unable to load the PolicyScreen business rule. Business Rule: "CopyToRoleFields" Plan: {PlanName} Policy: {PolicyNumber} Role: {RoleCode.ShortDescription} | APE Rule: CopyToRoleFields
APE.FailedLoadRoleCodeList | APE | Error.FailedLoadRoleCode = Failed to load Role Codes. | Unable to load a list of available Roles. Business Rule: "RolesExist" Plan: {PlanName} Policy: {PolicyNumber} | APE Rule : RolesExist
APE.FailedLoadRoleScreen | APE | Error.FailedLoadRoleScreen = Failed to locate Role Screen Business Rule in AddRoles. | Unable to load the RoleScreen business rule. Business Rule: "AddRoles" Plan: {PlanName} Policy: {PolicyNumber} Role: {RoleCode.ShortDescription} | APE Rule: AddRoles
APE.FailedLoadRoleScreenForSegment | APE | Error.FailedLoadRoleScreen = Failed to locate Role Screen Business Rule in AddRoles. | Unable to load the RoleScreen business rule for adding or updating Segment Roles. Business Rule: "CopyToRoleFields" Plan: {PlanName} Policy: {PolicyNumber} | APE Rule: CopyToRoleFields
APE.InvalidProgramGuidForAllocationTypeCode | APE | Error.InvalidProgramGuidForAllocationTypeCode = Unable to write to Program Allocation. ProgramGUID is null. | The WriteDefaultAllocation business rule cannot replace a Program Allocation because the ProgramGUID is null. Business Rule: "WriteDefaultAllocation" Policy: {PolicyNumber} Activity: {TransactionName} Allocation Type: {AllocationTypeCode.ShortDescription} | APE Rule : WriteDefaultAllocation
APE.MissingFromCollectionValue | APE | Error.MissingFromCollection = Missing FromCollection element. | CopyToRoleFields business rule cannot update Roles because a FromCollection value is not valid. Business Rule: "CopyToRoleFields" Plan: {PlanName} Policy: {PolicyNumber} Activity: (TransactionName} | APE Rule : CopyToRoleFields
APE.MissingFromCollection | APE | Error.MissingFromCollection = Missing FromCollection element. | CreatePolicy business rule cannot create a new Policy because a FromCollection is not valid. Business Rule: "CreatePolicy" Plan: {PlanName} Policy: {PolicyNumber} Activity: (TransactionName} | APE Rule : CreatePolicy
APE.MissingRolePercentValue | APE | Error.MissingRolePercentValue = Missing values for column RolePercent. | CopyToRoleFields business rule cannot update the Role's percentages. Business Rule: "CopyToRoleFields" Plan: {PlanName} Policy: {PolicyNumber} Activity: (TransactionName} Role: {RoleCode.ShortDescription} | APE

Upgrade utility will insert the new messages of APE and SRE types in AsTranslation table and the existing errors in the AsErrorCatalog will be updated by Upgrade utility. The system indicator as “N” for all existing custom messages in OIPA.

| Copyright © 2025, Oracle and/or its affiliates. All rights reserved. | About Oracle Insurance | Customer Support