2010-06-14 3 views
7

Voici ce que j'ai voulu faire. J'ai eu envie de mettre des "règles" dans une table de base de données. C'est un peu comme le format de la table de décision de drools xls, sauf que toutes les règles seront des lignes dans une table. De cette façon, je peux facilement modifier les règles. Je dois mettre ceci dans une table et pas un xls parce que mes règles pourraient changer fréquemment. Est-ce possible avec des baves? Puis-je créer une base de connaissances avec des règles extraites d'une base de données (au lieu d'une DRL ou d'un fichier xls) et chaque fois que je change de règles, je peux reconstruire la base de connaissances à partir de zéro. ..)Utilisation de drools experts avec des tables de décision dynamique

Répondre

6

Cela dépend du type de règles que vous avez en tête. Une approche basée sur une base de données a du sens si vous avez beaucoup de règles qui ont la même structure et qui ne varient que selon certains «paramètres». Dans ce cas, vous pouvez écrire une seule règle générique et utiliser la base de données pour stocker toutes les combinaisons qui s'appliquent. Par exemple, supposons que vous ayez des règles pour calculer les tarifs d'expédition par pays, pour une commande, par ex.

rule "Shipping rates to France" 
when 
    $order : Order(country == 'fr') 
then 
    $order.setShippingRate(10.0); 
    update(order); 
end 

// Similar rules for other countries… 

Vous pouvez remplacer ces données règles de votre base de données où chaque CountryShippingRate spécifie le taux pour un pays. Ensuite, vous insérez toutes les CountryShippingRate lignes comme des objets de fait à la session de la règle, et une seule règle, comme:

rule "Shipping rates" 
when 
    $order : Order($country : country) 
    CountryShippingRate($rate : rate, country == $country) 
then 
    $order.setShippingRate($rate); 
    update(order); 
end 

Dans la pratique, il se trouve que beaucoup de règles de type table de décision peut être réécrite de cette façon.

+1

Je souhaite que je peux upvote 10 fois :) –

+0

@Peter Hilton S'il vous plaît regarder cette question. Merci http://stackoverflow.com/questions/26322576/stop-rules-on-update-facts-drools – Kumar

Questions connexes