Come usare tabella di decisione sbava in formato foglio di calcolo per eseguire le regole?

Il codice di esempio riportato di seguito verrà descritto il processo di utilizzo tabella di decisione di eseguire rules.There sono due modi

un) Utilizzare le API di foglio di calcolo direttamente per l'esecuzione delle norme.
b) Convertire il foglio di lavoro Excel in un file DRL e quindi eseguire le regole.

Mi limiterò a descrivere il secondo processo (b).







** La classe principale java è 'DroolExcelDemo.java'. In primo luogo permette di convertire il foglio excel in un (.DRL) file e quindi eseguire le regole.




package DROOLS;

importazione java.io.BufferedWriter;
importare java.io.FileInputStream;
importazione java.io.FileNotFoundException;
importazione java.io.FileWriter;
importazione java.io.IOException;
importare java.io.InputStream;
importazione java.util.Collection;

importazione org.drools.KnowledgeBase;
importazione org.drools.KnowledgeBaseFactory;
importazione org.drools.builder.KnowledgeBuilder;
importazione org.drools.builder.KnowledgeBuilderFactory;
importare org.drools.builder.ResourceType;
importazione org.drools.decisiontable.InputType;
importazione org.drools.decisiontable.SpreadsheetCompiler;
importare org.drools.definition.KnowledgePackage;
importazione org.drools.event.rule.DebugAgendaEventListener;
importazione org.drools.event.rule.DebugWorkingMemoryEventListener;
importazione org.drools.io.ResourceFactory;
importazione org.drools.runtime.StatefulKnowledgeSession;

/**
* Questa classe viene creato un file drl da foglio Excel
* e quindi eseguire le regole.
*/
public class DroolExcelDemo {
public static void main finale(final String[] args) {
// Creazione di Knowledge Builder
finale KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Crea file DRL da foglio excel
InputStream è = null;
provare {
è = new FileInputStream(“D:/Postazione di lavoro / DroolsDemo / src / Drools / DroolExcel.xls”);

} prendere (FileNotFoundException e) {
e.printStackTrace();
}
// Crea istanza di classe del compilatore
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Compilare il excel per generare il (.DRL) file
StringBuffer DRL = new StringBuffer(sc.compile(è, InputType.XLS));

// Inserire il valore dialetto nel file drl
drl.insert(drl.indexOf(“Drools”)+40,”dialetto ”MVEL ””+”\n”);

// Controllare il file generato DRL
System.out.println(“Genera file di DRL viene visualizzato sotto–: “);
System.out.println(DRL);

// scrittura stringa in un file di DRL
provare {
BufferedWriter out = BufferedWriter nuovo(FileWriter nuovo(“D:/Postazione di lavoro / DroolsDemo / src / Drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
prendere (IOException e){
System.out.println(“Eccezione “);
}
// Attendere prima di utilizzare il file DRL nella sezione successiva.
provare {
Thread.sleep(10000);
} prendere (InterruptedException e) {
e.printStackTrace();
}
// Creazione Fine del file drl da foglio excel

// Utilizzo di file di DRL
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Controllare il costruttore di eventuali errori
se ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder contiene errori”);
System.out.println( kbuilder.getErrors().toString());
}
// ottenere i pacchetti compilati (che sono serializzabili)
pkgs raccolta finale = kbuilder.getKnowledgePackages();

// aggiungere i pacchetti a un knowledge (distribuire i pacchetti di conoscenza).
finale KnowledgeBase KBase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// Creazione di sessione stateful
ksession StatefulKnowledgeSession finale = kbase.newStatefulKnowledgeSession();

// Impostare listener di eventi
ksession.addEventListener(Debug EventListener nuova agenda());
ksession.addEventListener(DebugWorkingMemoryEventListener nuovo());

// Creazione di testo del messaggio
DroolMessage messageTxt = new DroolMessage();
messagetxt.setMessage(“Numero del volo”);

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

// Inserire in regole di sessione e il fuoco
System.out.println(“inserire in sessione”);
ksession.insert(messageTxt);
ksession.insert(messagetxt1);
System.out.println(“prima di sparare le regole”);
ksession.fireAllRules();
System.out.println(“dopo la cottura regole”);
ksession.dispose();
System.out.println(“dopo smaltire”);
}
}








* *Il secondo file è un 'DroolMessage.java’ POJO classe. Contiene i valori fissati dalla classe principale java sopra descritto.

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;

// Costruttore
pubblico DroolMessage() {
System.out.println(“inizializzazione Messaggio”);
}
// Setter e getter metodi
public String getMessage() {
restituisce il messaggio;
}
public void setMessage(String messaggio) {
this.message = messaggio;
}
// Metodo di prova per verificare l'esecuzione regola
vuoto test pubblico(Stringa di prova) {
System.out.println(“Analisi di inizio e fine: “+test);
}
}

** Di seguito è riportato un file di regole generato dal 'DroolExcelDemo.java’ classe.

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

// I valori delle regole a B13, intestazione a B7
regola “DroolExcelRule_13”
quando
msg:DroolMessage(messaggio == “FlightCode”)
poi
msg.test(“7,8”);
fine

** Di seguito è riportato l'input basato su file di Excel regola al 'DroolExcelDemo.java’ classe superiore.


15 interventi su “Come usare tabella di decisione sbava in formato foglio di calcolo per eseguire le regole?

    1. Kaushik Autore

      Hi Daniel,

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

      Cheers
      /KP

    1. Kaushik Autore

      Hi Aakash,

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

      Grazie,
      Techalpine

  1. Kaushik Autore

    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.

    Grazie
    /KP

  2. Nithya Kathiresan

    Hi,
    Sapete come utilizzare direttamente le API di foglio elettronico per l'esecuzione delle norme?

    Grazie,
    Nithya

  3. sunil

    La prego di fornire un esempio di DRL dove ho potuto ottenere i dati dal database e aggiornare il fatto .

  4. Ananya

    Hi,

    La prego di condividere l'excel ? Voglio abbinare una stringa di numeri, o meglio la ricerca della stringa in un'altra stringa

    Grazie

  5. Shekhar Shaw

    Ciao,
    Mentre sto provando ad eseguire, si sta sollevando un file non trovato errore durante l'elaborazione di sotto della linea.

    // Utilizzo di file di DRL
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    La prego di suggerire che altro devo fare.

    grazie,
    Shekhar Shaw

    1. Kaushik Autore

      Ciao Shekhar,

      È necessario assicurarsi che sia il .drl e file .class sono disponibili. Si prega di controllare e fatemi sapere se dovete affrontare qualsiasi problema.

      Si prega di mail me @ techalpineit@gmail.com

      Grazie
      Kaushik

  6. Rahul Pandey

    Ciao
    è molto buono blog ho eseguito. ma voglio generare modello di file regola automaticamente senza l'aggiunta di alcun file di regola.

============================================= ============================================== Acquista i migliori libri di tecnologia su Amazon,en,ELETTRICI CT COSTRALETTRICO,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share