Kako koristiti drools tablicu odluku u obliku proračunske tablice za izvršavanje pravila?

Sljedeći primjer koda će opisati proces pomoću tablica odlučivanja izvršiti rules.There su dva načina

a) Koristite API list prenosi izravno izvršiti pravila.
b) Pretvoriti Excel list širenje u DRL datoteku, a zatim izvršiti pravila.

Ja ću opisati drugi proces (b).







** Glavni java klasa 'DroolExcelDemo.java'. Prvo će se pretvoriti u Excel list u (.DRL) podnijeti i tada izvršiti pravila.




package DROOLS;

uvoz java.io.BufferedWriter;
uvesti java.io.FileInputStream;
uvoz java.io.FileNotFoundException;
uvoz java.io.FileWriter;
uvoz java.io.IOException;
uvesti java.io.InputStream;
uvoz java.util.Collection;

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

/**
* Ova klasa će stvoriti DRL datoteku iz Excel list
* i tada izvršiti pravila.
*/
public class DroolExcelDemo {
public static void konačni glavni(Konačna Gudački[] args) {
// Stvaranje znanja graditelj
Konačna KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Stvaranje DRL datoteku iz Excel list
InputStream je = null;
pokušati {
je = new FileInputStream(“D:/Radni prostor / DroolsDemo / src / drools / DroolExcel.xls”);

} ulov (FileNotFoundException e) {
e.printStackTrace();
}
// Stvaranje instancu klase prevodilac
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Sastaviti Excel za generiranje (.DRL) file
StringBuffer DRL = new StringBuffer(sc.compile(je, InputType.XLS));

// Umetnite narječju vrijednost u DRL datoteku
drl.insert(drl.indexOf(“Drools”)+40,”dijalekt ”mvel ””+”\n”);

// Provjerite generirani DRL datoteku
System.out.println(“Generate DRL datoteka prikazuje u nastavku–: “);
System.out.println(DRL);

// pisanje niz u DRL datoteku
pokušati {
BufferedWriter iz = new BufferedWriter(Novi FileWriter(“D:/Radni prostor / DroolsDemo / src / drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
ulov (IOException e){
System.out.println(“Izuzetak “);
}
// Pričekajte prije korištenja DRL datoteku u sljedećem poglavlju.
pokušati {
Thread.sleep(10000);
} ulov (InterruptedException e) {
e.printStackTrace();
}
// Kraj stvaranje DRL datoteke iz Excel list

// Korištenje DRL datoteku
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Provjerite graditelj za pogreške
ako ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder ima pogrešaka”);
System.out.println( kbuilder.getErrors().toString());
}
// dobiti sastaviti paketa (koji su serializable)
Konačni Zbirka pkgs = kbuilder.getKnowledgePackages();

// dodati pakete na bazu znanja (implementirati pakete znanja).
Konačna Znanja kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// Stvaranje stateful sjednicu
Konačna StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Postavite događaja slušateljima
ksession.addEventListener(Debug novi EventListener rokovnika());
ksession.addEventListener(Novi DebugWorkingMemoryEventListener());

// Stvaranje tekst poruke
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Broj leta”);

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

// Uložite u session i vatra pravilima
System.out.println(“umetnuti u sjednici”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“prije pečenja pravila”);
ksession.fireAllRules();
System.out.println(“nakon pečenja pravila”);
ksession.dispose();
System.out.println(“nakon naručiti”);
}
}








* *Drugi je datoteka 'DroolMessage.java’ pojo razred. On drži se vrijednosti postavljene na glavnoj java klasi je gore opisano.

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;

// Graditelj
javni DroolMessage() {
System.out.println(“inicijalizacije poruku”);
}
// Setera i dobavljač metode
public String getMessage() {
povratak poruku;
}
public void setMessage(String poruka) {
this.message = poruka;
}
// test metoda za testiranje pravila izvršenje
public void Test(Gudački Test) {
System.out.println(“Raščlanjivanje početak i kraj poziciju: “+test);
}
}

** Slijedi pravilo datoteku generira 'DroolExcelDemo.java’ razred.

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

// pravilo vrijednosti na B13, zaglavlja na B7
vladati “DroolExcelRule_13”
kada
msg:DroolMessage(Poruka == “FlightCode”)
zatim
msg.test(“7,8”);
kraj

** Slijedi ulaz excel temelji pravilo datoteku 'DroolExcelDemo.java’ klasa iznad.


15 misli o "Kako koristiti drools tablicu odluku u obliku proračunske tablice za izvršavanje pravila?

    1. Kaushik Post autor

      Pozdrav Daniel,

      Hvala na Vašem interesu. Molimo vas javite mi vaš točan zahtjev. Ja ću vam poslati Excel list.

      Živjeli
      /KP

    1. Kaushik Post autor

      Pozdrav Aakash,

      Molimo vas pošaljite mi svoj točan zahtjev. Ja ću probati moj najbolji da vam pomogne.

      Hvala,
      Techalpine

  1. Kaushik Post autor

    Pozdrav Manideepa,

    Excel Uzorak je već prikazano na post. Možete ga koristiti kao što je to. Ako imate neki drugi uvjet, nemojte pustiti mene znati. Volio bih vam pomoći sortirati pitanja.

    Hvala
    /KP

  2. Sunil

    Možete li molim vas dati DRL primjer gdje sam mogao dobiti podatke iz baze podataka i ažuriranje činjenicu .

  3. Ananya

    bok,

    Molim Vas da podijelite Excel ? Želim da odgovaraju niz brojeva, odnosno traženje string u drugom nizu

    Hvala

  4. Shekhar Shaw

    bok,
    While I am trying to execute, it is raising a file not found error while processing below line.

    // Korištenje DRL datoteku
    kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

    Could you please suggest what else I need to do.

    Regards,
    Shekhar Shaw

  5. Rahul Pandey

    hi
    it is very good blog i executed. but i want to generate Rule file template automatically without adding any Rule file.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share