Implémenter un connecteur Drools pour Bonita 6
Bonjour à tous,
je cherche de la doc pour développer un connecteur Drools pour Bonita 6 (exigence du client).
J'ai essayé de reprendre les exemples suivants : http://documentation.bonitasoft.com/5x/bos-56/connectivity/connectors-bonita-open-solution/drools http://community.bonitasoft.com/groups/usage-operation-6x/drools-connector-newer-releases-bos-6x http://svn.bonitasoft.org/bonita-connectors/branches/bonita-connectors-5.2.4/drools/src/test/java/org/bonitasoft/connectors/drools/examples/agerules/
Mais sans succès. Après la commande :
J'ai l'erreur :
J'ai bien inclu les jar suivants : kie-api-6.0.1.Final drools-decisiontables-6.0.1.Final drools-api-5.1.1 drools-compiler-6.0.1.Final drools-core-6.0.1.Final jbpm-bpmn2-5.5.0
Que manque-t-il à mon connecteur pour fonctionner normalement ?
Merci
Salut, Je vois que tu utilise des classes 5.1 (drools api) et 6.0 ensemble, ça pourrait etre le problème . J'ai crée un connecteur custom avec les libraries 5.3 et a bien marché. Le code est le suivant:
Logger LOGGER=Logger.getLogger(this.getClass().getName());
@Override
protected void executeBusinessLogic() throws ConnectorException{
List listOfFacts = this.getListOfFacts();
String drlFilePath = this.getDrlFilePath();
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// this will parse and compile in one step
kbuilder.add(ResourceFactory.newFileResource(drlFilePath), ResourceType.DRL);
// Check the builder for errors
if (kbuilder.hasErrors()) {
LOGGER.severe(kbuilder.getErrors().toString());
throw new RuntimeException("Unable to compile \"" + drlFilePath + "\".");
}
// get the compiled packages (which are serializable)
final Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
// add the packages to a knowledgebase (deploy the knowledge packages).
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
KnowledgeRuntimeLogger logger = null;
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.addEventListener(new DebugAgendaEventListener());
ksession.addEventListener(new DebugWorkingMemoryEventListener());
// setup the audit logging
logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "drools");
//ksession.execute( listOfFacts );
ksession.execute( CommandFactory.newInsertElements( listOfFacts ) );
setRevisedListOfFacts(listOfFacts);
logger.close();
}
Salut,
Je sais que nous sommes en train de travailler sur un connecteur Drools. Ce que nous avons du code source est disponible ici: https://github.com/bonitasoft/bonita-connector-drools
Peut-être devrais tu jeter un coup d'oeil. Si tu as envie par la suite de faire un Pull Request, je sais qu'il sera très apprécié ;-)
Comments
Ok merci je vais essayer de regarder ça. L'import sur Bonita est censé être possible ? Menu Développement > Connecteurs > Import puis on sélectionne le zip du connecteur ?
Ok merci je vais essayer de regarder ça. L'import sur Bonita est censé être possible ? Menu Développement > Connecteurs > Import puis on sélectionne le zip du connecteur ? - See more at: http://community.bonitasoft.com//answers/implementer-un-connecteur-drool...
Comments
Merci ttoine & enrico, j'ai une question concernant les fichiers maintenant (.drl ou .xsl peu importe); y a -t-il un dossier spécifique où les mettre pour pouvoir utiliser ? (Je n'ai pas de src/java/resources dans mon connecteur)
Je pense que tu peux mettre le fichier où tu veux. Je suis presque sure de ça :-)