Kā lietot drools lēmumu tabulu izklājlapas formātā izpildīt noteikumus?

Šis piemērs kods aprakstīt procesu, izmantojot lēmumu tabulu izpildīt rules.There ir divi veidi

a) Izmantojiet izplatīties lapu API tieši izpildīt noteikumus.
b) Konvertēt Excel izplatīties lapu uz DRL failu un pēc tam izpildīt noteikumus.

Es aprakstīt otro procesu (b).







** Galvenais java klase ir "DroolExcelDemo.java". Vispirms tas konvertēt Excel loksni (.DRL) failu un pēc tam izpildīt noteikumus.




package DROOLS;

Importa java.io.BufferedWriter;
importēt java.io.FileInputStream;
Importa java.io.FileNotFoundException;
Importa java.io.FileWriter;
Importa java.io.IOException;
importēt java.io.InputStream;
Importa java.util.Collection;

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

/**
* Šī klase radīs DRL failu no Excel lapā
* un tad izpildīt noteikumus.
*/
valsts klases DroolExcelDemo {
valsts statisko gala spēku galvenās(gala String[] args) {
// Izveidot zināšanu celtnieks
galīgā KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Izveidot DRL failu no Excel lapā
InputStream ir = null;
izmēģināt {
ir = jauns FileInputStream(“D:/Workspace / DroolsDemo / src / drools / DroolExcel.xls”);

} noķert (FileNotFoundException e) {
e.printStackTrace();
}
// Izveidot kompilators klases instanci
SpreadsheetCompiler sc = jauns SpreadsheetCompiler();

// Aizpildi Excel, lai radītu (.DRL) fails
StringBuffer DRL = jauns StringBuffer(sc.compile(ir, InputType.XLS));

// Ievietot dialektu vērtība no DRL failā
drl.insert(drl.indexOf(“Drools”)+40,”dialekts ”mvel ””+”\n”);

// Pārbaudiet radīto DRL failu
Println(“Izveidot DRL fails rāda tālāk–: “);
Println(DRL);

// rakstot string vērā DRL failā
izmēģināt {
BufferedWriter ārā = jauns BufferedWriter(Jaunais FileWriter(“D:/Workspace / DroolsDemo / src / drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
noķert (IOException e){
Println(“Izņēmums “);
}
// Jāgaida, pirms izmantojot DRL failu nākamajā nodaļā.
izmēģināt {
Thread.sleep(10000);
} noķert (InterruptedException e) {
e.printStackTrace();
}
// Beigas veidošana DRL failu no Excel lapā

// Izmantojot DRL failu
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Pārbaudiet celtnieks par kļūdām
ja ( kbuilder.hasErrors() ) {
Println(“kbuilder ir kļūdas”);
Println( kbuilder.getErrors().toString());
}
// saņemt apkopoto paketes (kas ir Serializable)
pēdējās vākšanas PKGS = kbuilder.getKnowledgePackages();

// pievienotu paketes uz zināšanu bāzes (izvietot zināšanas paketes).
galīgā bibliotēka Kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(PKGS);

// Izveidot konekcijas stāvokļa parametriem bāzēts sesiju
galīgā StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Uzstādīt notikumu klausītājiem
ksession.addEventListener(Jaunais DebugAgendaEventListener());
ksession.addEventListener(Jaunais DebugWorkingMemoryEventListener());

// Izveidot ziņojuma tekstu
DroolMessage messagetxt = jauns DroolMessage();
messagetxt.setMessage(“Avioreisa numurs”);

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

// Ievietot sesija un uguns noteikumiem
Println(“ievietot sesijā”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
Println(“Pirms šaušanas noteikumus”);
ksession.fireAllRules();
Println(“pēc apdedzināšanas noteikumus”);
ksession.dispose();
Println(“Pēc atsavināt”);
}
}








* *Otrs fails ir "DroolMessage.java’ POJO klase. Tas pieder vērtībām, ko galvenā java klasi iepriekš.

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;

// Celtnieks
sabiedrisko DroolMessage() {
Println(“inicializēšana Message”);
}
// Noteicēju un vaislas metodes
valsts String getMessage() {
atgrieztos ziņu;
}
valsts spēkā setMessage(String ziņojums) {
this.message = ziņa;
}
// testēšanas metodes, lai pārbaudītu noteikumu izpildi
valsts spēkā tests(Stīgu tests) {
Println(“Parsēšana sākuma un beigu stāvoklis: “+pārbaude);
}
}

** Pēc ir noteikums fails, ko rada ar "DroolExcelDemo.java’ 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

// noteikums vērtības pie B13, galvene pie B7
lemt “DroolExcelRule_13”
kad
msg:DroolMessage(ziņa == “FlightCode”)
tad
msg.test(“7,8”);
beigas

** Pēc ir ieejas excel balstīta noteikums failu ar "DroolExcelDemo.java’ klasē iepriekš.


15 domas par "Kā lietot drools lēmumu tabulu izklājlapas formātā izpildīt noteikumus?

    1. Kaushik Post autors

      Hi Daniel,

      Paldies par jūsu interesi. Lūdzu, ļaujiet man zināt jūsu precīzo prasībām. Es jums nosūtīsim Excel lapā.

      Priekā
      /KP

    1. Kaushik Post autors

      Hi Aakash,

      Lūdzu, atsūtiet man savu precīzas prasības. Es centīšos manos spēkos, lai palīdzētu jums out.

      pateicība,
      Techalpine

  1. Manideepa

    Sveiki,
    Vai jūs, lūdzu, dalīties ar DroolExcel.xls failu?
    Es gribēju, lai izpildītu šo programmu. Es esmu jauns, lai drools un vēlējās, lai saprastu, kā tas darbojas.
    Mana e-pasta adrese: b4umani2003@gmail.com

    pateicība,
    Mani

  2. Kaushik Post autors

    Hi Manideepa,

    Excel Paraugu jau redzams amatā. Jūs varat izmantot to kā tas ir. Ja jums ir kāda cita prasība, do let me know. Es mīlu, lai palīdzētu jums atrisināt jautājumus.

    pateicība
    /KP

  3. Nithya Kathiresan

    Sveiki,
    Vai jūs zināt, kā izmantot izplatīšanās lapa API tieši izpildīt noteikumus?

    pateicība,
    Nithya

  4. Sunil

    Vai jūs, lūdzu sniegt DRL piemēru, kur es varētu iegūt datus no datu bāzes un atjaunināt to, .

  5. ananja

    Sveiki,

    Vai jūs, lūdzu dalīties Excel ? Es gribu, lai atbilstu virkni skaitļu vai drīzāk meklēt virkni citā virknē

    pateicība

  6. Shekhar Shaw

    Sveiki,
    Kamēr es cenšos izpildīt, tas ir paaugstināt failu nav atrasta kļūda, apstrādājot zem līnijas.

    // Izmantojot DRL failu
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Vai jūs, lūdzu, ieteikt, ko vēl man jādara.

    Sveicieni,
    Shekhar Shaw

    1. Kaushik Post autors

      Sveiki Shekhar,

      Jums ir nepieciešams, lai nodrošinātu, ka gan .drl un .class faili ir pieejami. Lūdzu, pārbaudiet un ļaujiet man zināt, ja jūs sejas jebkuru problēmu.

      Lūdzu pastu man @ techalpineit@gmail.com

      pateicība
      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.

============================================= ============================================== Pērciet labākās Techalpine grāmatas vietnē Amazon,en,Elektriķa CT kastaņu valodas,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share