Forum Stats

  • 3,752,118 Users
  • 2,250,461 Discussions
  • 7,867,729 Comments

Discussions

Time traveling using OPA

717861
717861 Member Posts: 11
Is it possible to use a form of time traveling using Oracle Policy Automation?

e.g.:
In 2006 we developed a rulebase for a company. We made backups of these rules.
In 2007 we used the 2006 as a basedocument for developing rules, a lot of the same variables are used but a lot of things in the calculation and rules are changed.
In 2008 a lot more is changed in the same way.

Is it possible to work with a variable 'ruleyear' and use a specific set of rules?

Gr.

Answers

  • Davin Fifield-Oracle
    Davin Fifield-Oracle Member, Moderator Posts: 1,032 Employee
    edited Dec 22, 2009 12:05AM
    There are two aspects to this.

    The first is simply which set of rules to use.

    You can do that easily with rules like:
    the claimant is eligible for the benefit if
       the claimant is eligible for the 2006 benefit or
       the claimant is eligible for the 2007 benefit

    the claimant is eligible for the 2006 benefit if
       the application date >= 2006-01-01 and
    &nbsp;&nbsp;&nbsp;the application date <= 2006-12-31 and
    &nbsp;&nbsp;&nbsp;<2006 eliigibility rules here>

    the claimant is eligible for the 2007 benefit if
    &nbsp;&nbsp;&nbsp;the application date >= 2007-01-01 and
    &nbsp;&nbsp;&nbsp;the application date <= 2007-12-31 and
    &nbsp;&nbsp;&nbsp;<2007 eliigibility rules here>

    In other words, just splice in which set of rules you want to use based on application date.

    If you have some rules in common across the 2006 and 2007 rules, you can just share those pieces of logic between the lower level rules.

    If you actually need to perform calculations that span the boundary between the time periods where rules vary (e.g. if calculating the sum of benefits across the year boundary) then you can use the "temporal reasoning" feature to control which rules are applied to which date ranges. For this case, I'd suggest you search for "temporal" in the on-line help for Oracle Policy Modeling more information.

    Davin Fifield

    Edited by: davinfifield on 21/12/2009 21:03

    Edited by: davinfifield on 21/12/2009 21:04

    Edited by: davinfifield on 21/12/2009 21:05
  • 717861
    717861 Member Posts: 11
    The second might be what I'm looking for, I'll look in to it. Thanks
  • 717861
    717861 Member Posts: 11
    This is not a solution to what I meant.
    I have an example that demonstrates my problem:

    a family consists of parents with two children:
    child 1 birthdate 2-1-2007
    child 2 birthdate 1-1-2009

    and the following pricingtable:

    year age Pricing(per month)
    2007 0- 2 100
    2007 2 -4 150
    2008 0- 2 110
    2008 2 -4 160
    2009 0- 2 120
    2009 2 -4 170

    This will be changed later on to:
    2007 0- 3 105
    2007 3 -5 150
    2008 0- 3 115
    2008 3 -5 160
    2009 0- 3 125
    2009 3 -5 170

    As a consequense of these changes, the allowances have to be recalculated. The difference should be claimed or payed out starting from the year 2007

    Can you solve this in a simple way in OPA. Or do you need to have a starting and ending period for all variables, or do I maybe need different versions of the project?
  • Davin Fifield-Oracle
    Davin Fifield-Oracle Member, Moderator Posts: 1,032 Employee
    Actually, temporal reasoning is well-suited to the part of this which requires you to calculate amounts across all time periods, without having to iterate and call the rules for multiple dates.

    If you send me your email address, I can send you a small rulebase that has the two rate tables, and calculates the difference between the rates for the two periods. The rate tables are simply defined in Excel, with a "new" rate column for the changed rates. In the rulebase, I've assumed the calculation period is the full three year period from 2007 to 2009, inclusive - but you can change this easily.

    To test this, open the Debugger, and import the ChildData.xds. I've defined the payment year as a temporal value that changes each year over this period, defined two children and set their birthdates (I used an earlier one for one of the children). You could easily define an InstanceSum over these children to get the grand total amount.

    Davin Fifield
    (first dot last at oracle dot com)
  • 717861
    717861 Member Posts: 11
    Hi Davin,

    Thank you for taking the trouble of making an example project.
    This does seem to be what I need. I'll investigate this further today.

    Thanks again,

    Gr. Sake
This discussion has been closed.