Find out the installed version of Determinations Server
Find out what Rulebases are deployed on the Determinations Server
Create and execute an Assess operation
To import the Determinations Server WSDL into soapUI, do the following:
soapUI will create a new project and import the WSDL into that project giving you a service definition named odsServer. In you left the option Create sample requests for all operations on, you will have a sample operation for the three Determinations Server Service Operations: GetServerInfo, ListRulebases and LoadRulebase.
If an error occurred, it is probably because the Initial WSDL URL is incorrect.
You can use soapUI to test a Rulebase deployed in the Determinations Server
To import the Rulebase WSDL, do the following:
Now that you have created the rulebase service you can test a simple request. It is a good idea to have the Rulebase open in Oracle Policy Modeling so you can create attributes, entities and relationships with the correct name. You can see the attributes, entities and relationships that the rulebase uses by viewing the Build Model or the Data Model (View menu > Build Model/Data Model).
Looking at the Data Model for ExampleRB1 We can see that the Global has some attributes and a relationship to the child entity.
For this example we will investigate the goal “eligible_low_income_allowance” and “eligible_teenage_allowance”.
Start the Assess request by adding the two attribute outcomes that we want to investigate in the global entity instance. In this case we will ask for value-only if the attribute is known and a full decision report if the value is unknown. The entire Assess request now looks like
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://oracle.com/determinations/server/10.2/rulebase/assess/types">
<soapenv:Header/>
<soapenv:Body>
<typ:assess-request>
<typ:global-instance>
<typ:attribute id="eligible_teenage_allowance" known-outcome-style="value-only" unknown-outcome-style="decision-report"/>
<typ:attribute id="eligible_low_income_allowance" known-outcome-style="value-only" unknown-outcome-style="decision-report"/>
</typ:global-instance>
</typ:assess-request>
</soapenv:Body>
If we execute this request now, each attribute outcome will be unknown, with a decision report telling us which attributes require values in order to reach a determination for the given outcome.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:i18n="http://www.w3.org/2005/09/ws-i18n" xmlns:typ="http://oracle.com/determinations/server/10.2/rulebase/assess/types">
<SOAP-ENV:Header>
<i18n:international>
<i18n:locale>en_US</i18n:locale>
<i18n:tz>GMT+1100</i18n:tz>
</i18n:international>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<typ:assess-response>
<typ:global-instance>
<typ:attribute id="eligible_teenage_allowance" type="boolean" inferred="false">
<typ:unknown-val/>
<typ:decision-report report-style="decision-report">
<typ:attribute-node id="dn:0" entity-id="global" instance-id="global" hypothetical-instance="false" attribute-id="eligible_teenage_
allowance" type="boolean" text="Is the claimant eligible for the teenage child allowance?" inferred="false">
<typ:unknown-val/>
<typ:relationship-node id="dn:1" source-entity-id="global" source-instance-id="global" hypothetical-instance="false"
target-entity-id="child" relationship-id="claimantschildren" state="unknown" inferred="false"></typ:relationship-node>
</typ:attribute-node>
</typ:decision-report>
</typ:attribute>
<typ:attribute id="eligible_low_income_allowance" type="boolean" inferred="false">
<typ:unknown-val/>
<typ:decision-report report-style="decision-report">
<typ:attribute-node id="dn:0" entity-id="global" instance-id="global" hypothetical-instance="false" attribute-id="eligible_low_income_
allowance" type="boolean" text="Is the claimant eligible for low income allowance?" inferred="false">
<typ:unknown-val/>
<typ:attribute-node id="dn:1" entity-id="global" instance-id="global" hypothetical-instance="false" attribute-id="claimant_income"
type="currency" text="The claimant's annual income is unknown." inferred="false">
<typ:unknown-val/>
</typ:attribute-node>
<typ:attribute-node id="dn:2" entity-id="global" instance-id="global" hypothetical-instance="false" attribute-id="claimant_public_
housing_client" type="boolean" text="Is the claimant a public housing client?" inferred="false">
<typ:unknown-val/>
</typ:attribute-node>
</typ:attribute-node>
</typ:decision-report>
</typ:attribute>
</typ:global-instance>
</typ:assess-response>
</SOAP-ENV:Body>
From the decision report we can see that for the eligible_low_income_allowance attribute to have a value, we need to provide answers for the following attributes:
We can do that by adding the following to the global entity instance.
<typ:attribute id="claimant_income">
<typ:number-val>13000</typ:number-val>
</typ:attribute>
<typ:attribute id="claimant_public_housing_client">
<typ:boolean-val>true</typ:boolean-val>
</typ:attribute>
According to the decision report for the eligible_teenage_allowance goal, the relationship ‘claimantschildren’ needs to be known. Since this relationship is a containment relationship, we do can by adding some instances of the ‘child’ entity to the gobal entity instance:
<typ:entity id="child">
<typ:instance id="child_1">
<typ:attribute id="child_age">
<typ:number-val>9</typ:number-val>
</typ:attribute>
</typ:instance>
<typ:instance id="child_2">
<typ:attribute id="child_age">
<typ:number-val>5</typ:number-val>
</typ:attribute>
</typ:instance>
</typ:entity>
Our Assess request should now look like the request below. Now the response (see below) provides the following answers for our goal: