Ako používať slintá rozhodnutia tabuľku v tabuľkovom formáte vykonať pravidlá?

Nasledujúci príklad kódu bude popisovať proces pomocou rozhodnutie tabuľky vykonať rules.There sú dva spôsoby

a) Použite šírenie list API priamo vykonať pravidlá.
b) Previesť šírenie Excel list do súboru DRL a spustiť pravidlá.

Budem popisovať druhý proces (b).







** Hlavné java trieda je "DroolExcelDemo.java". Najprv bude previesť hárok programu Excel do (.DRL) súbor a potom spustiť pravidlá.




package DROOLS;

import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import 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;
import org.drools.builder.ResourceType;
import org.drools.decisiontable.InputType;
import org.drools.decisiontable.SpreadsheetCompiler;
import 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;

/**
* Táto trieda vytvorí súbor DRL z hárku programu Excel
* a potom spustiť pravidlá.
*/
public class DroolExcelDemo {
public static final void main(final String[] args) {
// Vytvoriť vedomostného navigátora
v konečnom znení KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Vytvorte DRL súbor z hárku programu Excel
InputStream je = null;
vyskúšať {
je = new FileInputStream(“D:/Pracovná plocha / DroolsDemo / src / slintá / DroolExcel.xls”);

} chytiť (FileNotFoundException e) {
e.printStackTrace();
}
// Vytvorte kompilátora inštanciu triedy
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Kompilácia programu Excel generovať (.DRL) súbor
StringBuffer DRL = new StringBuffer(sc.compile(je, InputType.XLS));

// Vložte dialekt hodnotu do súboru DRL
drl.insert(drl.indexOf(“Slintá”)+40,”dialekt ”mvel ””+”\n”);

// Skontrolujte vygenerovaný DRL súbor
System.out.println(“Generate DRL súbor je zobrazené nižšie–: “);
System.out.println(DRL);

// zápis reťazca do súboru DRL
vyskúšať {
BufferedWriter out = new BufferedWriter(nové FileWriter(“D:/Pracovná plocha / DroolsDemo / src / slintá / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
chytiť (IOException e){
System.out.println(“Výnimka “);
}
// Počkajte pred použitím súbor DRL v ďalšej časti.
vyskúšať {
Thread.sleep(10000);
} chytiť (InterruptedException e) {
e.printStackTrace();
}
// Koniec vytvorenie súboru DRL z hárku programu Excel

// Použitie DRL súbor
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Skontrolujte staviteľ pre chyby
ak ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder obsahuje chyby”);
System.out.println( kbuilder.getErrors().toString());
}
// dostať kompilované balíčky (ktoré sú serializovatelný)
Konečné Kolekcia PKGS = kbuilder.getKnowledgePackages();

// pridať balíčky do vedomostnej (nasadiť znalosti balíčky).
v konečnom znení Knowledgebase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(PKGS);

// Vytvoriť stavovú zasadnutí
v konečnom znení StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Nastaviť poslucháčov udalostí
ksession.addEventListener(Ladenie novú agendu EventListener());
ksession.addEventListener(nové DebugWorkingMemoryEventListener());

// Vytvorte text správy
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Číslo letu”);

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

// Vložiť do relácie a požiarne predpisy
System.out.println(“vložiť do zasadnutia”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“pred vypálením pravidlá”);
ksession.fireAllRules();
System.out.println(“po výpale pravidlá”);
ksession.dispose();
System.out.println(“po objednať”);
}
}








* *Druhý súbor je "DroolMessage.java’ POJO tried. To platí hodnoty stanovené hlavné triedy java je popísané vyššie.

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;

// Staviteľ
verejné DroolMessage() {
System.out.println(“inicializácia správu”);
}
// Stavača a kariérista metódy
public String getMessage() {
návrat správu;
}
public void setMessage(String správa) {
this.message = správa;
}
// testovacia metóda na testovanie pravidiel vykonávania
public void Test(String skúška) {
System.out.println(“Rozobrať počiatočné a konečné umiestnenie: “+test);
}
}

** Ďalej je pravidlom súbor generovaný "DroolExcelDemo.java’ trieda.

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

// pravidlo hodnoty na B13, záhlavie na B7
vládnuť “DroolExcelRule_13”
keď
msg:DroolMessage(Správa == “FlightCode”)
potom
msg.test(“7,8”);
koniec

** Nasleduje vstup vynikajú založené pravidlo súbor do "DroolExcelDemo.java’ triedu vyššie.


15 myšlienky na "Ako používať slintá rozhodnutia tabuľku v tabuľkovom formáte vykonať pravidlá?

    1. Kaushik post autor

      hi Daniel,

      Ďakujeme za váš záujem. Prosím, dajte mi vedieť váš presný požiadavku. Pošlem vám na liste Excelu.

      na zdravie
      /KP

    1. Kaushik post autor

      hi Aakash,

      Prosím, pošlite mi vaše presné požiadavky. Budem sa snažiť čo najlepšie, aby vám pomohol von.

      Vďaka,
      Techalpine

  1. Manideepa

    ahoj,
    Môžete mi prosím zdieľať súbor DroolExcel.xls?
    Chcel som spustiť tento program. Som nový slintá a chcel pochopiť, ako to funguje.
    Moje e-mailová adresa: b4umani2003@gmail.com

    Vďaka,
    mani

  2. Kaushik post autor

    hi Manideepa,

    Vzorka Excel je už uvedené v pošte. Môžete ho použiť ako to je. Ak máte nejaký iný požiadavka, dajte mi vedieť. Bol by som rád, aby vám pomôže vyriešiť problémy.

    Vďaka
    /KP

  3. Nithya Kathiresan

    ahoj,
    Viete, ako používať šírenie list API priamo na spustenie pravidlá?

    Vďaka,
    Nithya

  4. Sunil

    Mohli by ste mi prosím poskytnúť príklad DRL, kde by som mohol získať dáta z databázy a aktualizovať skutočnosť, .

  5. ananya

    ahoj,

    Mohli by ste mi prosím zdieľať Excel ? Chcem, aby zodpovedali reťazec čísel alebo skôr hľadať reťazec v inom reťazci

    Vďaka

  6. Shekhar Shaw

    Ahoj,
    Aj keď sa snažím spustiť, to je zvýšenie súbor nebol nájdený chybu pri spracovaní pod hranicou.

    // Použitie DRL súbor
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Mohli by ste mi prosím navrhnúť čo ešte musím urobiť.

    S pozdravom,
    Shekhar Shaw

    1. Kaushik post autor

      Dobrý deň, Shekhar,

      Musíte zabezpečiť, že ako .drl a .class súbory sú k dispozícii. Skontrolujte problém a dajte mi vedieť, ak budete čeliť žiadny problém.

      Prosím, napíšte mi @ techalpineit@gmail.com

      Vďaka
      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