Miten käyttää drools päätöksen taulukko taulukkomuodossa toteuttaa sääntöjä?

Seuraava esimerkki kuvaa prosessia käyttäen päätöksen taulukon toteuttaa rules.There kahdella tavalla

a) Käytä taulukosta API suoraan toteuttaa sääntöjä.
b) Muunna excel taulukosta tulee DRL tiedosto ja suorita senjälkeen säännöt.

Kerron toisen prosessin (b).







** Pääasiassa Java-luokka on "DroolExcelDemo.java". Ensin se muuntaa Excel arkki (.DRL) tiedosto ja suorita säännöt.




package DROOLS;

tuonti java.io.BufferedWriter;
tuoda java.io.FileInputStream;
tuonti java.io.FileNotFoundException;
tuonti java.io.FileWriter;
tuonti java.io.IOException;
tuoda java.io.InputStream;
tuonti java.util.Collection;

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

/**
* Tämä luokka luo DRL tiedoston Excel
* ja sitten suorittaa säännöt.
*/
public class DroolExcelDemo {
public static void main(lopullinen String[] args) {
// Luo Knowledge Builder
lopullinen KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Luo DRL tiedosto Excel-
InputStream on = null;
yrittää {
on = uusi FileInputStream(“D:/Työtila / DroolsDemo / src / drools / DroolExcel.xls”);

} saalis (FileNotFoundException e) {
e.printStackTrace();
}
// Luo kääntäjä luokka esimerkiksi
SpreadsheetCompiler sc = uusi SpreadsheetCompiler();

// Kokoa excel tuottaa (.DRL) tiedosto
Int DRL = uusi int(sc.compile(on, InputType.XLS));

// Aseta murre arvo otetaan DRL tiedosto
drl.insert(drl.indexOf(“Drools”)+40,”murre ”mvel ””+”\n”);

// Tarkista luotu DRL tiedosto
System.out.println(“Luo DRL tiedosto näkyy alla–: “);
System.out.println(DRL);

// kirjallisesti merkkijono DRL tiedostoon
yrittää {
BufferedWriter out = uusi BufferedWriter(uusi FileWriter(“D:/Työtila / DroolsDemo / src / drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
saalis (IOException e){
System.out.println(“Poikkeus “);
}
// Odota ennen huomiovalot tiedoston seuraavassa jaksossa.
yrittää {
Thread.sleep(10000);
} saalis (InterruptedException e) {
e.printStackTrace();
}
// End luominen Päiväajovalot tiedoston Excel

// Käyttämällä DRL tiedosto
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Tarkista rakentaja virheitä
jos ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder on virheitä”);
System.out.println( kbuilder.getErrors().toString());
}
// saada koottu paketit (jotka ovat sarjoittaa)
lopullinen Collection PKG = kbuilder.getKnowledgePackages();

// lisätä paketteja Knowledgebase (käyttöön tieto paketit).
lopullinen KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(PKG);

// Luo tilallinen istunto
lopullinen StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Määritä tapahtuman kuuntelijat
ksession.addEventListener(uusi DebugAgendaEventListener());
ksession.addEventListener(uusi DebugWorkingMemoryEventListener());

// Luo viestin teksti
DroolMessage messagetxt = uusi DroolMessage();
messagetxt.setMessage(“Lennon numero”);

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

// Insert into istunto ja tuleen säännöt
System.out.println(“insert into istunto”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“ennen ampumista säännöt”);
ksession.fireAllRules();
System.out.println(“ammunnan jälkeen säännöt”);
ksession.dispose();
System.out.println(“jälkeen hävittää”);
}
}








* *Toinen tiedosto on "DroolMessage.java’ Pohja luokka. Se pitää asettamat arvot tärkeimmät java luokan edellä.

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;

// Rakentaja
julkinen DroolMessage() {
System.out.println(“alustetaan viesti”);
}
// Asettaja ja getter menetelmiä
public String GetMessage() {
paluuviestin;
}
public void setMessage(String viesti) {
this.message = viesti;
}
// testausmenetelmä testata säännön suorituksen
public void testi(String testi) {
System.out.println(“Jäsennys alku ja loppu asentoon: “+testi);
}
}

** Seuraavassa on sääntö tiedosto tuottama "DroolExcelDemo.java’ luokka.

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

// sääntö arvot B13, otsake B7
sulje “DroolExcelRule_13”
kun
msg:DroolMessage(viesti == “FlightCode”)
sitten
msg.test(“7,8”);
pää

** Seuraavassa on tulo excel pohjainen sääntö tiedosto "DroolExcelDemo.java’ luokka yllä.


15 ajatuksia "Miten käyttää drools päätöksen taulukko taulukkomuodossa toteuttaa sääntöjä?

    1. kaushik Kirjoitus Tekijä

      Hi Daniel,

      Kiitos mielenkiinnostasi. Kerrothan tarkka vaatimus. Lähetän sinulle excel.

      Kippis
      /KP

    1. kaushik Kirjoitus Tekijä

      Hi Aakash,

      Lähetä minulle tarkka vaatimus. Yritän parhaani auttaakseni sinua ulos.

      Thanks,
      Techalpine

  1. Manideepa

    Moi,
    Voisitteko jakaa DroolExcel.xls tiedosto?
    Halusin Ohjelman toteutuksen. Olen uusi drools ja halusi ymmärtää, miten se toimii.
    Sähköpostiosoitteeni: b4umani2003@gmail.com

    Thanks,
    Mani

  2. kaushik Kirjoitus Tekijä

    Hi Manideepa,

    Excel Näyte jo esitetty post. Voit käyttää sitä, koska se on. Jos sinulla on jokin muu vaatimus, älä kerro minulle. Haluaisin auttaa sinua lajitella kysymyksiä.

    Thanks
    /KP

  3. Nithya Kathiresan

    Moi,
    Tiedätkö miten käyttää taulukosta API suoraan toteuttaa sääntöjä?

    Thanks,
    Nithya

  4. Sunil

    Voisitteko antaa huomiovalot esimerkki mistä voisin saada tietoja tietokantaan ja päivittää sitä .

  5. Ananya

    Moi,

    Voisitteko jakaa excel ? Haluan vastaamaan numerosarjan tai pikemminkin etsiä merkkijonon toisella merkkijonolla

    Thanks

  6. Shekhar Shaw

    Hello,
    Vaikka Yritän toteuttaa, se herättää tiedostoa ei löytynyt virhe käsiteltäessä alla viiva.

    // Käyttämällä DRL tiedosto
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Voisitteko ehdottaa mitä muuta minun pitää tehdä.

    Terveiset,
    Shekhar Shaw

    1. kaushik Kirjoitus Tekijä

      Hei Shekhar,

      Sinun täytyy varmistaa, että sekä .drl ja .luokka tiedostot ovat. Tarkista ja Kerrothan, jos kohtaat ongelmia.

      Lähetä sähköpostia minulle @ techalpineit@gmail.com

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

============================================= ============================================== Osta parhaat tekniset kirjat Amazonista,en,sähköasentaja CT -kastaja,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share