Cómo utilizar la tabla babea decisión en formato de hoja de cálculo para ejecutar reglas?

El código de ejemplo siguiente se describe el proceso de utilización de la tabla de decisiones para ejecutar rules.There dos formas

un) Utilice la API de hoja de cálculo directamente para ejecutar las normas.
b) Convertir la hoja de cálculo de Excel en un archivo drl y luego ejecutar las reglas.

Voy a describir el segundo proceso (b).







** La principal clase java es 'DroolExcelDemo.java'. Primero convertirá la hoja de cálculo de Excel en un (.drl) presentar y ejecutar las normas.




package DROOLS;

importación java.io.BufferedWriter;
importar java.io.FileInputStream;
importación java.io.FileNotFoundException;
importación java.io.FileWriter;
importación java.io.IOException;
importar java.io.InputStream;
importación java.util.Collection;

importación org.drools.KnowledgeBase;
importación org.drools.KnowledgeBaseFactory;
importación org.drools.builder.KnowledgeBuilder;
importación org.drools.builder.KnowledgeBuilderFactory;
importar org.drools.builder.ResourceType;
importación org.drools.decisiontable.InputType;
importación org.drools.decisiontable.SpreadsheetCompiler;
importar org.drools.definition.KnowledgePackage;
importación org.drools.event.rule.DebugAgendaEventListener;
importación org.drools.event.rule.DebugWorkingMemoryEventListener;
importación org.drools.io.ResourceFactory;
importación org.drools.runtime.StatefulKnowledgeSession;

/**
* Esta clase va a crear un archivo de hoja de Excel drl
* y luego ejecutar las reglas.
*/
público DroolExcelDemo clase {
public static final void main(final String[] args) {
// Crear constructor de conocimiento
último KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Crear archivo drl de hoja de Excel
InputStream is = nulo;
tratar de {
= new FileInputStream es(“D:/Espacio de trabajo / DroolsDemo / src / babea / DroolExcel.xls”);

} coger (FileNotFoundException e) {
e.printStackTrace();
}
// Crear instancia compilador clase
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Compile el Excel para generar el (.drl) expediente
Drl = new StringBuffer StringBuffer(sc.compile(es, InputType.XLS));

// Insertar valor en dialecto archivo drl
drl.insert(drl.indexOf(“Babea”)+40,”dialecto ”MVEL ””+”\n”);

// Compruebe el archivo generado drl
System.out.println(“Generar archivo DRL muestra a continuación–: “);
System.out.println(drl);

// escrito cadena en un archivo drl
tratar de {
BufferedWriter fuera = BufferedWriter nuevo(FileWriter nuevo(“D:/Espacio de trabajo / DroolsDemo / src / babea / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
coger (IOException e){
System.out.println(“Excepción “);
}
// Esperar antes de utilizar el archivo drl en la sección siguiente.
tratar de {
Thread.sleep(10000);
} coger (InterruptedException e) {
e.printStackTrace();
}
// Fin creación del archivo drl de hoja de Excel

// Utilizando el archivo DRL
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Compruebe el constructor de los errores
si ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder tiene errores”);
System.out.println( kbuilder.getErrors().toString());
}
// obtener los paquetes compilados (que son serializables)
PKGS finales Collection = kbuilder.getKnowledgePackages();

// agregar los paquetes a una base de conocimiento (desplegar los paquetes de conocimiento).
última base de conocimientos KBase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(Pkgs);

// Crear sesión con estado
ksession StatefulKnowledgeSession final = kbase.newStatefulKnowledgeSession();

// Establecer los detectores de eventos
ksession.addEventListener(DebugAgendaEventListener nuevo());
ksession.addEventListener(DebugWorkingMemoryEventListener nuevo());

// Crear un mensaje de texto
DroolMessage messageTxt = new DroolMessage();
messagetxt.setMessage(“Número de vuelo”);

DroolMessage messagetxt1 = new DroolMessage();
messagetxt1.setMessage(“FlightCode”);

// Insertar en las normas de sesión y fuego
System.out.println(“insertar en sesión”);
ksession.insert(messageTxt);
ksession.insert(messagetxt1);
System.out.println(“antes de disparar normas”);
ksession.fireAllRules();
System.out.println(“después de la cocción normas”);
ksession.dispose();
System.out.println(“después de disponer”);
}
}








* *El segundo archivo es un DroolMessage.java '’ pojo clase. Contiene los valores establecidos por la principal clase java descrito anteriormente.

package DROOLS;
/**
* This is a POJO for messages.It will be used by the drl file.
* The message values will be set from the DroolExcelDemo class
*/
public class DroolMessage {
// Create variable
private String message;

// Constructor
público DroolMessage() {
System.out.println(“Mensaje de inicialización”);
}
// Métodos setter y getter
getMessage cadena pública() {
devolver mensaje;
}
public void setMessage(Cadena mensaje) {
this.mensaje = Mensaje;
}
// Método de ensayo para probar la ejecución de la regla
prueba public void(Prueba del hilo) {
System.out.println(“De análisis inicial y la posición final: “+prueba);
}
}

** A continuación se presenta un archivo de reglas generadas por el DroolExcelDemo.java '’ clase.

package DROOLS;
//generated from Decision Table
dialect "mvel"
import DroolMessage;
// rule values at B12, header at B7
rule "DroolExcelRule_12"
when
msg:DroolMessage(message == "FlightNumber")
then
msg.test("1,6");
end

// valores de reglas en B13, encabezado en B7
gobernar “DroolExcelRule_13”
cuando
MSG:DroolMessage(mensaje == “FlightCode”)
entonces
msg.test(“7,8”);
final

** A continuación se presenta la entrada de archivo de Excel basado en normas para la DroolExcelDemo.java '’ clase por encima de.


15 opiniones en “Cómo utilizar la tabla babea decisión en formato de hoja de cálculo para ejecutar reglas?

    1. kaushik Autor

      Hi Daniel,

      Thanks for your interest. Please let me know your exact requirement. I will send you the excel sheet.

      Cheers
      /KP

    1. kaushik Autor

      Hi Aakash,

      Please send me your exact requirement. I will try my best to help you out.

      Gracias,
      Techalpine

  1. Manideepa

    Hi,
    Can you please share the DroolExcel.xls file?
    I wanted to execute this program. I am new to Drools and wanted to understand how it works.
    My email address: b4umani2003@gmail.com

    Gracias,
    Mani

  2. kaushik Autor

    Hi Manideepa,

    The excel sample is already shown in the post. You can use it as it is. If you have some other requirement, do let me know. I would love to help you sort the issues.

    Gracias
    /KP

  3. Nithya Kathiresan

    Hi,
    ¿Sabes cómo utilizar las API de hoja de cálculo directamente a la ejecución de las normas?

    Gracias,
    Nithya

  4. sunil

    ¿Podría por favor dar un ejemplo DRL donde podría obtener los datos de la base de datos y actualizar el hecho .

  5. Ananya

    Hi,

    ¿Podría por favor compartir el excel ? Quiero que coincida con una cadena de números o más bien buscar cadena en otra cadena

    Gracias

    1. kaushik Autor

      Hola Ananya,

      Puede utilizar los mismos datos que se muestra en el archivo de ejemplo y hacer una para usted.

      Por favor envíeme un correo electrónico @ techalpineit@gmail.com para obtener más ayuda.

      Gracias
      /KP

  6. Shekhar Shaw

    Hola,
    Mientras que yo estoy tratando de ejecutar, se está levantando un archivo no encontrado error al procesar debajo de la línea.

    // Utilizando el archivo DRL
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    ¿Podría sugerir qué más tengo que hacer.

    Saludos,
    Shekhar Shaw

    1. kaushik Autor

      Hola Shekhar,

      Usted necesita asegurarse de que tanto el .drl y archivos .class están disponibles. Por favor, comprobar y quiero saber si tienes cualquier problema.

      Por favor envíeme un correo electrónico @ techalpineit@gmail.com

      Gracias
      Kaushik

  7. Rahul Pandey

    Hola
    es muy buen blog ejecuté. pero quiero generar plantilla de archivo de la regla de forma automática sin necesidad de añadir ningún archivo de Regla.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share