Are you sure the AgendaFilter is not causing the Technical Rule to be excluded?<br><br><div class="gmail_quote">On 29 October 2012 12:17, Manasi <span dir="ltr"><<a href="mailto:manasi.a.damle@capgemini.com" target="_blank">manasi.a.damle@capgemini.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
How to call Technical rule assets stored in Guvnor from Java application?<br>
<br>
Currently I have one drl rule which is stored in Technical rule assets<br>
section.<br>
<br>
But I am not able to call it from my Java application.<br>
<br>
I am using following code to call my rules stored in Guvnor :<br>
<br>
UrlResource urlResource = (UrlResource)<br>
ResourceFactory.newUrlResource(<a href="http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/GuiKontrolKiss.FeltKnapRestriktionerKundeMedAnl/LATEST" target="_blank">http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/GuiKontrolKiss.FeltKnapRestriktionerKundeMedAnl/LATEST</a>");<br>
urlResource .setBasicAuthentication("enabled");<br>
urlResource.setUsername("admin");<br>
urlResource.setPassword("admin");<br>
urlResource.setResourceType(ResourceType.PKG);<br>
<br>
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
try {<br>
kbuilder.add(ResourceFactory.newInputStreamResource(urlResource<br>
.getInputStream()), ResourceType.PKG);<br>
} catch (IOException e) {<br>
e.printStackTrace();<br>
}<br>
KnowledgeBase kbase = kbuilder.newKnowledgeBase();<br>
// create session<br>
StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();<br>
NyssCaseSO caseSO = droolsRequest.getNyssCaseSO();<br>
NyssCaseStateSO caseState = caseSO.getNyssCaseStateSO();<br>
NyssOfferSO offerSO = droolsRequest.getNyssOfferSO();<br>
<br>
session.insert(caseSO);<br>
session.insert(offerSO);<br>
session.insert(caseState);<br>
<br>
AgendaFilter filter = new AgendaFilter() {<br>
public boolean accept(Activation activation) {<br>
if (activation.getRule().getName().contains("testDrl")) {<br>
return true;<br>
}<br>
return false;<br>
}<br>
};<br>
session.fireAllRules(filter);<br>
<br>
for (Object o : session.getObjects()) {<br>
if (o instanceof ResultSO) {<br>
ResultSO resultSO = (ResultSO) o;<br>
reply.setResultSO(resultSO);<br>
}<br>
}<br>
session.dispose();<br>
<br>
With above I am able to call my rules stored in *"Business rule assets"*<br>
section.<br>
<br>
Thanks,<br>
Manasi<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://drools.46999.n3.nabble.com/Calling-Technical-rule-assets-in-Guvnor-tp4020537.html" target="_blank">http://drools.46999.n3.nabble.com/Calling-Technical-rule-assets-in-Guvnor-tp4020537.html</a><br>
Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br>