2010-06-14 15 views
7

Esto es lo que me gustaría hacer.Uso de drools expert con tablas dinámicas de decisión

Me gustaría poner "reglas" en una tabla de base de datos. Esto es algo así como el formato de la tabla de decisiones drools xls, excepto que todas las reglas serán filas en una tabla. De esta manera puedo modificar las reglas fácilmente. Necesito poner esto en una tabla y no un xls porque mis reglas podrían cambiar con frecuencia. ¿Es esto posible con babas? ¿Puedo construir una base de conocimiento con reglas recuperadas de un DB (en lugar de un DRL o un archivo xls) y cada vez que cambian las reglas puedo reconstruir la base de conocimiento desde cero (o tal vez solo partes de la base de conocimientos, básicamente actualizar solo las reglas modificadas? ..)

Respuesta

6

Depende del tipo de reglas que tenga en mente. Un enfoque respaldado por una base de datos tiene sentido si tiene muchas reglas que tienen la misma estructura y que solo varían según ciertos "parámetros". En este caso, puede escribir una sola regla genérica y usar la base de datos para almacenar todas las combinaciones que correspondan. Por ejemplo, supongamos que tiene reglas para calcular las tarifas de envío por país para un pedido, p.

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

// Similar rules for other countries… 

Se podría sustituir a estos datos de reglas de su base de datos, donde cada CountryShippingRate especifica la velocidad de un país. A continuación, se inserta todas las filas CountryShippingRate como objetos de datos en la sesión de reglas, y una sola regla, como:

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

En la práctica, resulta que un montón de reglas de tipo de tabla de decisiones se pueden reescribir esta manera.

+1

Ojalá pueda votar 10 veces :) –

+0

@Peter Hilton Mire esta pregunta. Gracias http://stackoverflow.com/questions/26322576/stop-rules-on-update-facts-drools – Kumar

Cuestiones relacionadas