Nola drools erabakia taula erabili kalkulu-orriaren formatuan arauak exekutatu?

Ondorengo adibidez kodea erabakia taula erabiliz rules.There exekutatu prozesua azalduko dira, bi bide

bat) Erabili eta zabalduago fitxa APIak arauak zuzenean exekutatu.
b) Bihurtu excel eta zabalduago fitxa drl fitxategi bat sartu eta gero arauak exekutatzen.

Bigarren prozesua deskribatzeko egingo dut (b).







** Java klase nagusia 'DroolExcelDemo.java' da. Lehenik eta behin, excel orri bihurtzeko izango da sartu (.drl) fitxategian, eta ondoren exekutatu arauak.




package DROOLS;

import java.io.BufferedWriter;
inportatu java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
inportatu java.io.InputStream;
import java.util.Collection;

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

/**
* Klase excel fitxa hau drl fitxategi berri bat sortuko da
* eta, ondoren, exekutatu arauak.
*/
public class DroolExcelDemo {
publiko final static void main(final String[] argumentuak) {
// Sortu ezagutza eraikitzailea
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Sortu drl fitxategia excel fitxa
InputStream = null;
saiatu {
= new FileInputStream(“D:/Laneko arearen / DroolsDemo / src / DROOLS / DroolExcel.xls”);

} harrapatzeko (FileNotFoundException e) {
e.printStackTrace();
}
// Sortu konpilatzailea klase instantzia
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Konpilatu excel sortzeko (.drl) fitxategia
StringBuffer drl = new StringBuffer(sc.compile(da, InputType.XLS));

// Txertatu euskalki balioa drl fitxategi
drl.insert(drl.indexOf(“DROOLS”)+40,”euskalki ”mvel ””+”\n”);

// Begiratu sortutako fitxategia drl
System.out.println(“Sortu DRL fitxategia erakusten da azpian–: “);
System.out.println(drl);

// kate drl fitxategi batean idatziz
saiatu {
= New BufferedWriter out BufferedWriter(berri FileWriter(“D:/Laneko arearen / DroolsDemo / src / DROOLS / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
harrapatzeko (IOException e){
System.out.println(“Exception “);
}
// Hurrengo atalean drl fitxategia erabiliz aurretik itxaron.
saiatu {
Thread.sleep(10000);
} harrapatzeko (InterruptedException e) {
e.printStackTrace();
}
// Amaiera drl fitxategia sortzea excel fitxa

// DRL Fitxategi berri bat erabiltzen ari da
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Begiratu, erroreentzat eraikitzailea
bada ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder du akatsak”);
System.out.println( kbuilder.getErrors().toString());
}
// get konpilatu paketeak (den serializable dira)
final bilduma argibideak = kbuilder.getKnowledgePackages();

// jakintza bat gehitu paketeak (inplementatzeko ezagutza-paketeak).
final jakintza kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(argibideak);

// Sortu stateful saioa
final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Ezarri gertaera entzule
ksession.addEventListener(berri DebugAgendaEventListener());
ksession.addEventListener(berri DebugWorkingMemoryEventListener());

// Sortu testu-mezu
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Hegaldi zenbakia”);

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

// Saio eta sua arauak txertatzeko
System.out.println(“Saio txertatzeko”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“arauak tiro aurretik”);
ksession.fireAllRules();
System.out.println(“arauak tiro ondoren”);
ksession.dispose();
System.out.println(“botatzeko ondoren”);
}
}








* *Bigarren fitxategia 'DroolMessage.java da’ pojo klasea. Java klase nagusiak ezartzen balioak, gorago deskribatu ditu.

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;

// Builder
publiko DroolMessage() {
System.out.println(“Mezua hasieratzean”);
}
// Setter eta getter metodoak
publiko String GetMessage() {
itzultzeko mezua;
}
public void setMessage(String mezua) {
this.message = mezua;
}
// test metodoa arau exekuzioa probatzeko
public void test(String test) {
System.out.println(“Parsing hasiera eta bukaera posizioa: “+test);
}
}

** Jarraian 'DroolExcelDemo.java sortutako arau-fitxategi bat da’ klase.

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

// arau B13 balioak, B7 at goiburua
araua “DroolExcelRule_13”
denean
msg:DroolMessage(Mezu == “FlightCode”)
ondoren
msg.test(“7,8”);
amaieran

** Jarraian sarrera oinarritutako arau Excel fitxategia 'DroolExcelDemo.java’ klase gainetik.


15 buruzko gogoeta "Nola drools erabakia taula erabili kalkulu-orriaren formatuan arauak exekutatu?

    1. Kaushik Post Egileak

      Hi Daniel,

      Eskerrik asko zure interesagatik. Mesedez, utzi zure baldintza zehatzak jakin me. Excel orriak bidaliko du I.

      Cheers
      /KP

    1. Kaushik Post Egileak

      Hi Aakash,

      Bidali niri zure baldintza zehatzak. Nire onena saiatu duzu lagundu egingo dut.

      Eskerrik asko,
      Techalpine

  1. Manideepa

    Hi,
    Ezin azaldu mesedez DroolExcel.xls fitxategia?
    Programa hau exekutatu nahi nuen. I berrietara Drools naiz eta nola funtzionatzen duen ulertu nahi.
    Nire helbide elektronikoa: b4umani2003@gmail.com

    Eskerrik asko,
    Mani

  2. Kaushik Post Egileak

    Hi Manideepa,

    excel lagin dagoeneko post erakutsiko da. Erabili ahal izango duzu, dagoen bezala. beste baldintza batzuk bada, ez iezadazu. gaiak antolatzeko lagundu nahi nuke.

    Eskerrik asko
    /KP

  3. Nithya Kathiresan

    Hi,
    Ez zenbat eta zabalduago fitxa APIak zuzenean erabiltzeko arauak exekutatuko den badakizu?

    Eskerrik asko,
    Nithya

  4. sunil

    Ezin mesedez ematen duzu DRL adibide bat non datu-baseko datuak eskuratu ahal izan dut, eta hain zuzen eguneratu .

  5. Ananya

    Hi,

    Ezin duzu mesedez parteka excel du ? zenbaki-kate bat etortzeko edo, hobeto esanda, bilatu kate beste kateekin nahi dut

    Eskerrik asko

  6. Shekhar Shaw

    Kaixo,
    Bitartean exekutatu saiatzen naiz, fitxategi bat error biltzeko ez da aurkitu lerro beherago prozesatzerakoan.

    // DRL Fitxategi berri bat erabiltzen ari da
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Ezin duzu mesedez iradokitzen zer gehiago egin behar dut.

    Ondo,
    Shekhar Shaw

    1. Kaushik Post Egileak

      Kaixo Shekhar,

      bai .drl eta .class fitxategiak daude eskuragarri bermatzeko behar duzu. Mesedez egiaztatu eta utzi aurre arazorik izanez gero, jakin me.

      Mesedez mail me @ techalpineit@gmail.com

      Eskerrik asko
      Kaushik

  7. 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