With the new soa suite patch ( 4 feb ) for the jdeveloper 11g TP3 release we can test the business rules. The 11g version is a totally different then the 10.1.3 version. The first thing is a lot easier to make business rules and you can expose these rules as web services so you can use it in other applications. In 10.1.3 you have a binary br repository which you can use. Now you create service in the BR to expose a particular ruleset or function. You can also use business rules to create advanced approval routing in the workflow component.
The first step is to drag the business rule to the composite.xml. Now you get a wizard to create a new business rule. In my case I made a simple schema with a element total order amount which I use as input and as output boolean element supersize order. You can also check expose as composite service so you can use this br in other applications
Because I checked the expose as composite service you can see that soa suite creates a webservice.
If we open the new BR then we see that soa suite has created xml facts of the input and output element. This is done with jaxb.
Soa suite also creates a service which calls the empty created ruleset. You can add more services based on br functions or other rulesets.
To the created the ruleset we can add a new rule. We select a simple test where we check if the total order is greater then 2000.
Next I select the input element, > and 2000. Now we can add the return value. Choose assert new.
We have to select the output element and in the output element we select true. Now we can make a second rule where the outcome is false when the input is lower then 2000
We are ready with the composite part now we can go to bpel where we add a business rule to the right place in the bpel designer. We have to select the just created br and the right operation, in my case assert facts , execute and retrieve result. We also have to assign the input and output variable of the br.
This is how it looks when we open the business rule scope.
You are ready to deploy this to soa container and test this
how to implement a global variable in 11g jdeveloper
ReplyDeleteHi,
ReplyDeletemaybe this can help http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_app_deploydesc.htm#SOASE11121
Hi Edwin,
ReplyDeleteWith Oracle Business rules 11g can we create a central GUI for Business users to change the rules than changing them in jdeveloper and redeploying the coposites. And also, do you have any idea if Oracle is planning to come out with something like that in the future. Thanks
Mayur
Hi Mayur,
ReplyDeleteWith Oracle Business rules 11g can we create a central GUI for Business users to change the rules than changing them in jdeveloper and redeploying the coposites.
yep this is possible, you can make br composites and use this in other composites. If you want to change things then you have to go to jdeveloper . br variables which influence br can be set in the composite
And also, do you have any idea if Oracle is planning to come out with something like that in the future
maybe in 11gr2 or 12g you can br from the console
thanks Edwin
Hi Edwin,
ReplyDeleteA couple of questions on OBR. The dictionaries that we create are part of the SAR, when we deploy. Is it possible store them into MDS, so that everytime, a change in dictionary is there, the BPEL does not have to be redeployed and the vice versa.
Secondly, I have a composite with close to 75 dictionaries and the size of the SAR has gone to 52MB. Is there any statistics that is available which states what is the maximum size of SAR that we can deploy and how many such SAR's can exist on the domain?
Cheers,
Arun Ramesh
Hi Arun,
ReplyDeleteIf you can use oramds: or lookup a obr in the resource view then this should be possible.
so add your OBR to your local MDS and put it in /apps/xxx/...
and a oramds ref to this file and compile.
I don't know the limits probably it is wls memory setting. But why don't you deploy to MDS in smaller files. ( dont remove the app folder before uploading )
thanks
While creating a business rule the input payload for the business rule comprises of many fields
ReplyDeletelike name,configURL,processId,ConversationID
Could you please thow some light on them,My scenario is very simple i have created a simple rule which is being called by bpel,but i am not sure on what i should map to these fields
Hi Edwin,
ReplyDeleteI've implemented the Business rule activity in a BPEL Process.
While testing the same, i'm getting following error:
Fact not found in the rule engine working memory, rule session execution failed.
The rule session 620073 failed because an instance of the fact com.autoloan.ns.autoloan.LoanOffer could not be found in the working memory of the rule session.
This is most likely a rule modeling error. The decision service interaction expects the fact instance to exist in the working memory of the rule session. Check the rule actions in rule designer and make sure that a fact of the expected type is being asserted. If the error persists, contact Oracle Support Services.
Kindly help me on the above...
Regards,
Rupesh
Is it possible to integrate Oracle service Bus with Oracle Business Rule ,please suggest me some site/samples/reference or provide steps for same if possible.
ReplyDeleteHi,
ReplyDeleteYes it is possible , create your business rule composite and expose it with a direct binding or use a ws binding.
Then in OSB do a service call out to the business service which calls the SOA composite,
Or maybe you can do a java call out and loads the business rule file .
Good luck
Hi Edwin,
ReplyDeleteI am new to OBR and want to check if its possible to implement a standard rule rule, such as checking the order Value > 2000, but have this value of 2000 dynamically set so that each customer could have there own amount....
Cust1 has an amount of 2000
Cust2 has an amount of 10000
cust3 has an amount of 7000
So when you apply the rule it dynamically pulls in the amount you are evaluating against as a substitution.
If order > x
where X is set for each instance of the rule.
Is this possible?
Stuart
Hi,
ReplyDeleteCan you provide besides the order information also the relation information which has this order amount value.
Then you can determine or use this values. Maybe you can say if it is a gold customer and with gold has a value of 2000. Decision table can do this.
Thanks
can you upload this project, we can easily implement and understand the code.
ReplyDeleteHi Edwin, Im quite new with Jdeveloper and the business rules. When trying to expose my BR as a web service, I'm only able to change the service name but the operations of the web service stay the same (callFunctionStateless,callFunctionStateful). Is there a way to configure this?
ReplyDeleteHi,
DeleteDon't know but it looks likes it can't
Hi,
ReplyDeleteI am new to JDeveloper and BPMn,OBR.Can some tell me the process, how can a BR of a projects exposed as a webservice and used by another projects. Please help. Thanks in advance.
HI Biemond,
ReplyDeleteCan we use the an EBM.xsd from AIA to create FACTS in the OracleBusinessRules 11g.We are using RulesSDkAPI to do a run-time update of the RuleData,Buckets,Bucketsets.If so what are the difficulties we encounter ?
Thanks
Raghu
Hi Biemond,
ReplyDeleteDo you have an example of using the OBR rule file stored in MDS in a BPEL flow?
I have a .rules file stored in MDS which I want to use in my new BPEL workflow.
Am unable to find an option to import .rules file.
Thanks for the help.
Sapna
Hi,
DeleteI think BPEL calls BR or HWF with a partnerlink ( not embedded in BPEL) and it is a different service component. maybe you can expose this BR or add a BR service component and make a reference to this rules file in the MDS
Thanks
Hi Edwin,
DeleteHi Edwin,
I've created a Rules Dictionary (abc.rules) and copied it to integration\seed\apps. In JDeveloper, I've created a new composite wherein I've created a Rules Dictionary (xyz.rules). Under "Links", I'm able to browse to abc Rules Dictionary but when I click ok, I get the following error-
RUL-05601: The dictionary cannot be found using link "abc".
Is there a restriction on how to store a Rule Dictionary in MDS?
p.s.- I am able to "Link" to an existing Dictionary (CaseManagementBaseDictionary) in the soa/shared folder.
Thank you in advance, Edwin.
--
Dilip
Hello Edwin,
ReplyDeleteWOuld it be possible for you help me in providing direction on converting Java Fact to XML Fact ? I have created a simple java fact and loaded it and created a rule as well. But while exposing that as Decision Service (Function), it is not accepting the java facts. The User guide states, that it has to be converted but I am not sure how to do this.
Are there any performance implications in using XMLFACT versus Java Facts ? Kindly provide your insight.
ReplyDeleteHi,
Deleteprobably some jaxb conversion but this will not take that much time/resources ( unless you will use a big payload )
Thanks
Hi Edwin,
ReplyDeleteFrom a rule file i want to created dictionary links from MDS ( refering the rules files MDS). And also the same question i am asking that is asked by many people
From BPEL can i refer the decision service function that is expsoed in the rules file that is stored in MDS.
My question is : our typical way of using rules file thru linking with BPEL.
I don't want this. I want the rule file is independent of BPEL process for which i am storing in the MDS. Now how can i access the MDS rules from BPEL.
second: If i have rule file in the composite then can i refer all other dictionaries in MDS using dictionary links. I have tried this ...I am getting this error -RUL-05601: The dictionary cannot be found using link
Hi Edwin,
ReplyDeleteFrom a rule file i want to created dictionary links from MDS ( refering the rules files MDS). And also the same question i am asking that is asked by many people
From BPEL can i refer the decision service function that is expsoed in the rules file that is stored in MDS.
My question is : our typical way of using rules file thru linking with BPEL.
I don't want this. I want the rule file is independent of BPEL process for which i am storing in the MDS. Now how can i access the MDS rules from BPEL.
second: If i have rule file in the composite then can i refer all other dictionaries in MDS using dictionary links. I have tried this ...I am getting this error -RUL-05601: The dictionary cannot be found using link
HI Edwin,
ReplyDeleteCan we expose BR as webservice and invoke it just like BPEL, I tried and got below error:
fpre:operationErroredFault
TestBR
Please help.
Thanks
Yatan
Hi,
DeleteYou can use a mediator in front of it just what Emiel did in this presentation
http://www.slideshare.net/emielpaasschens/cookbook-oracle-soa-business-rules
thanks
Hi Edwin,
ReplyDeleteIn BR, can we have a ELSE condition, like if no conditions got satisfied it can execute the ELSE.
Thanks
Yatan
Hi Edwin,
ReplyDeleteIn oracl business rules how to use RL Functions and is it possible to Invoke Decision Table from another Decision Table????