Business rule engine [BRE]

  • A non – technical person can also change the business logic by wing SOA computer business rules we can define 2 ways

1. Ruleset [if]

2. Decision table [switch]


  • Facts
  • Functions
  • Globals O.V’s (list of values) ex: 10, 20, 30, 40 -----
  • Bucket set
  • Links O.V’s (range of values) ex: 0-35, 35-60-----
  • Decision functions ex: A-Z, A-F ----
  • Ruleset
  • By using BRE we can configure various business logics
  • I can even configure their business logics/rules in source code it will work very well, but if there is any change in the business logic in the future I will have to go back to source code, make changes completely deploy it again
  • This is the process I have to do it whenever there is a change in the business logic
  • Whereas by using BRE I don’t need to make changes in the source code, that is the biggest advantage


Whenever a human interaction is required then a human task is required    


  • General
  • Data
  • Assignment
  • Presentation
  • Deadlines
  • Notification
  • Access
  • Events

Remote – Fault


  • Fault – bindings.xml:

< ? xml version = “1.0” en ----?>

<fault policy Bindings version = “2.0.1”

Xmlns =”--------“

Xmlns =”---------“>

<composite fault policy = “handle fault”/>

</fault policyBindings>  

  • Fault- policies.xml:

<? Xml version = “1.0”------?>

<fault policies xmlns = “------“>

Xmlns =” ---------- --------------“

Xmlns : xsi = “------------------“>

< Conditions>

<fault name xmlns:bpelx =”http://

Extension” name = “bplex : remote fault”>


<action ref = “ora-retry”/>


</fault name>



<Action id =”ora-retry”>


<retry count> 4</ retry count>

<retry interval> 2</retry interval>

<Exponential back off/>

<retry failure action ref = “ora-rethrow”/>



<Action id = “ora-rethrow”/>

<rethrow fault/>



</fault policy>

</fault policies>

<retry failure ref = “ora_ws”/



<Action id = “ord_ws”>

<invokews uri = “concrete WSDL”


---> no need to take the catch, email, terminate activities

Concrete WSDL:  (remote fault handle)

                       Concrete WSDL  

Go to next case 2  

Inclined to build a profession as Oracle SOA Developer? 
Then here is the blog post on Oracle SOA Training Online.

Case 1:


Namespace URI:

Local part:

Remote fault    2        table from system faults  


Output 2 Set fault as a string ():  

Email activity 1:

From account: default

To                      : ramesh - [this person will give response]

Cc                      : shyam -   [this person will not give response]

Bcc                     :

Replay to           :     __

Subject              :   remote fault

Body                  :   web server is down (or) somebody changed WSDL and replayed

Error message is :    get default as string ():  

Case 2:

Create Dvm table:

Right-click on project name à new 2 transformations 2 (Dvm) 2



Email 2:

To : <% dvm: lookup value(“email notifications.dvm”, “name”, “to”, “value”,” NA”)%>

cc: <% dvm: lookup value(“email notifications.dvm”, “name”, “cc”, “value”, “NA”)%>

Subject: remote fault

Body: “same as above email 1”

For In-depth knowledge on Oracle SOA, click on below