Decision Table for extended calculation of Airport Charge

Business logic can be quite complex. Up until now in this chapter, we have seen fairly simple, straightforward IF/THEN rule sets with a limited number of variations. However, it is not hard to imagine more convoluted rules, for situations where multiple dimensions influence the outcome and several options may apply along each dimension. The decision table–style rule set in Oracle Business Rules helps to manage such situations.

The calculation of the airport charge is not as simple as we discussed in the previous section. There is more at stake than just the weight and the type of flight. The formula also takes into account a surcharge for which the calculation depends on the noise category of the aircraft, the timeslot of the flight and whether the flight takes off or touches down. Simply put: for each combination of noise category, time slot and arrival or departure, a different surcharge percentage is determined. The total charge is calculated from the base rate corrected with this surcharge percentage.

In this section, we use a Decision Table style business rule to derive the airport charge, based on the real calculation table from an actual Airport:


In our SOA Composite:



Supporting Resources

My Fusion Middleware Blog – SOA/BPM Suite 12c: Oracle Business Rules – MS Excel Integration

Oracle Fusion Middleware Blog: SOA Suite 11g Edit DVM and Business Rules at runtime using console

Real world airport charge calculations are discussed for example here: ttp:// and here

The starting point sources are in the folder AirportCharge_step1. The end result for this section is in the AirportCharge_step2 folder.


Getting Started with Oracle Business Rules

Testing and Validating Business Rules

Using Oracle SOA Composer with Oracle Business Rules at Runtime

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>