Combo box (filtered dropdown list) search functionality is unsupported in Opera browsers and hence disabled.
The Batch Processor replaces the Data Source Connector. It allows a large number of cases to be processed in batch and is available in both Java and .NET implementations to enable support for platform specific custom functions. It uses a variety of techniques to maximize throughput for both CSV and database connections. Full details regarding the use of the Batch Processor can be found in the Batch Processor section. Note that this includes a topic on migrating a Data Source Connector project to a Batch Processor project.
The assess service will now only return relevant attributes in the decision report for an unknown attribute. For backwards compatibility, all assess services prior to 10.4 will continue to include all related attributes in the decision report. The interview service is not affected by this change.
Three previously disparate topics have been combined to form a single topic Get an answer from the Determinations Server Assess Request. The topics to be removed are: Process multiple determinations within the same Assess request, Get answers from a web service and Obtain a decision report from a web service. Additionally, a new section has been included to describe the use of the Outcome option.
A portlet is a pluggable website component that is managed and displayed in a web portal; the Interview Portlet allows interviews to be conducted in such a web portal. Full details regarding customizing and using the Interview Portlet can be found in the Customize the Interview Portlet section.
Some APIs for the Interview Engine have been deprecated. Details can be found in the Technical Reference section.
In most instances, code snippets have been removed from the documentation and replaced by references to where the appropriate source code and compiled samples can be found in the Oracle Policy Automation Java or .NET runtime zip file.
Rulebase listeners are custom objects that are created when a rulebase is loaded, and called every time a new session is created. Developers can create a rulebase listener to perform early initialization of new sessions before they are returned to the calling application.
Details can be found in the topics Initialize a new session with a Rulebase Listener, Rulebase Listeners (in the Technical Reference) and Example: Create a Rulebase Listener to preload reference data (in Tutorials and Examples)
The mechanism used to load and store rulebases and consequently its extension point have undergone a number of changes in 10.4. Prior to this version those wishing to change the default rulebase loading behavior would have to implement the RulebaseService. In doing so, however, this would make them responsible for not only the rulebase sourcing and loading behavior, but the creation of the InterviewRulebase object, the rulebase caching behavior, as well as any dynamic updating behavior.
Since the introduction of modules in this release has necessitated a number of changes in the way rulebases are loaded, created and maintained, it was decided to simplify the extension point such that now people wishing to customize the loading behavior need only implement a method of retrieving rulebase streams. In order to achieve this, the RulebaseService is no longer available as a plugin, instead the loading behavior is customized via the RulebaseResolverPlugin.
A new topic, Report error messages from plugins has been added to the extensions section, describing the localization of error messages, the passing of parameters to localized error messages and how to report errors from the various plugins in the Interview Engine and Web Determinations.
A number of new examples have been created to assist users with Oracle Policy Automation's features:
Use the OnInterviewSessionCreatedEvent to pre-seed data into a newly created session
The following no longer appropriate examples, have been removed:
The default XSLT/ FOP Document Generation Plugin has been replaced with the BIPublisherDocumentGenerator which uses Oracle Business Intelligence Publisher as the basis for its document generation.
Support for BI Publisher has necessitated the following API changes to the Oracle Determinations Interview Engine:
Document Generator Plugin Overview
Use the Default Document Generator
The Determinations Server has been completely rewritten to follow a new architecture. This allows the existing functionality provided by the Determinations Server to be extended. It also allows custom services to be written and installed in the Determinations Server.
New WSDL for Assess Service
There is a new version of the WSDL for assess requests and responses. Assess requests and responses now have a hierarchical structure that follows the hierarchical data model provided by Entity Containment. Full backwards compatibility is provided for WSDL used in OPA 10.0 and 10.1.
Interview Service
Version 10.2.0 also includes a new Interview Service. The Interview Service is a web service that can be used by custom applications that conduct interviews. It is provided as an alternative to using the Interview Engine Java or .NET APIs directly.
The Oracle Determinations Engine has been enhanced with new data types and reasoning features. These features are available throughout the product suite from Oracle Policy Modeling to Oracle Determinations Server and Oracle Web Determinations.
Prevent custom functions making session data changes
It was previously possible (but officially discouraged) to change the session inside a custom function handler or in an inferencing listener after a rulebase event is raised. Since this can cause instability in the engine (at worst) or inconsistent behaviour (at best), this is now explicitly prevented and an error occurs if the custom function handler or inferencing listener attempt to make direct changes to the session in the middle of an inferencing cycle.
Inferencing Listener enhancements
Inferencing listeners are allowed to make changes before or after an inferencing cycle, and this is the recommended alternative. If an inferencing listener needs to make changes in response to a rulebase event, it should set some internal flag and wait until the end of the inferencing cycle to make those changes. The engine will automatically trigger another inferencing cycle if those changes cause other rules to trigger.
Customize the inferencing cycle with custom functions and inferencing listeners
Oracle Web Determinations has been completely re-architected, and provides improved extensibility, embedability, international support and configurability.
Entity Containment
In Oracle Policy Automation V10.0 the concept of an entity being collected was introduced. When an entity is considered collected, the rule engine assumes that it knows the entire set of instances for that entity.
An entity's collection status (whether or not it is considered collected) is of major importance when determining whether or not a relationship is partially known (Partially known relationships).
Under Oracle Policy Automation 10.0 the user was able to directly set the collection status of an entity. However in Oracle Policy Automation 10.1 the collection status of an entity is now determined by the engine through the use of containment relationships. A containment relationship is a one-to-many relationship from a parent entity to a child entity. An entity Y is considered to be collected if:
- A one-to-many containment relationship is defined from some other entity X to entity Y (i.e. Y is contained by X) and this is referred to as the entity Y's containment relationship
- Entity Y's containment relationship is set (i.e. it is known) for all instances of entity X
- Entity X is also considered to be collected.
Note:
- The global entity is always automatically collected. It is not necessary (or possible) to create a containment relationship for the global entity.
- Containment relationships are not supported for singleton entities as they are deprecated. Singleton entities are never considered by the rule engine to be collected.
Rulebase Service Plug-in
An Oracle Web Determinations implementation can now handle more than one rulebase. When there are two or more rulebases, the user is given the choice to select which rulebase to run. Therefore, an Oracle Web Determinations implementation can now list the available rulebases that the user can access, and retrieve a specific rulebase when the user selects one to run. These and other internal rulebase functions are provided by a 'Rulebase Service' object in the Oracle Web Determinations.
The default Oracle Web Determinations Rulebase Service retrieves rulebases as zip files from a pre-defined location/path in the Oracle Web Determinations webapp; for example, for a default installation, the path <OWD webapp>/WEB-INF/classes/rulebases, is read and monitored for rulebases. The user can store/manage the rulebase zip files in the path, and also access them to list or load a specific rulebase.
There are situations where rulebases of an Oracle Web Determinations implementation need to be stored and accessed from a custom datasource. The Rulebase Service Plugin is an Interview Engine plugin that allows usage of custom datasources to store and retrieve rulebases from. Also it allows the implementer to customize the rulebase service functionality.
Localization
The default Oracle Web Determinations user interface is now provided in every one of the 24 languages for which a syntactic or non-syntactic parser is available.
Change the appearance of a web interview
Change the behavior of a web interview control
Customize resource loading for Web Determinations
Add user authentication to Web Determinations
For this release of the Developer's Guide, it may help to be aware of the following product mapping between the Oracle naming and the former Haley naming:
Current Oracle Naming | Former Haley Naming |
Oracle Policy Automation | Haley Office Rules product suite |
Oracle Policy Modeling | Haley Office Rules |
Oracle Policy Automation | Haley Determination Services |
Oracle Determinations Server | Haley Determinations Server |
Oracle Determinations Engine | Haley Determinations Engine |
Oracle Web Determinations | Haley Interactive |