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ä.
Moi, Voisitteko lähettää minulle DroolExcel.xls tiedosto?
Kiitos!
Hi Daniel,
Kiitos mielenkiinnostasi. Kerrothan tarkka vaatimus. Lähetän sinulle excel.
Kippis
/KP
Moi, Voisitteko lähettää minulle DroolExcel.xls tiedosto? Haluan vain suorittaa tämän koodin ja haluat saada tulos
sähköpostini
dahalram20@gmail.com
Hi Aakash,
Lähetä minulle tarkka vaatimus. Yritän parhaani auttaakseni sinua ulos.
Thanks,
Techalpine
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
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
Moi,
Tiedätkö miten käyttää taulukosta API suoraan toteuttaa sääntöjä?
Thanks,
Nithya
voitteko lähettää Excel-tiedoston ,Haluan juosta ja saada tulosta ..??
Voisitteko antaa huomiovalot esimerkki mistä voisin saada tietoja tietokantaan ja päivittää sitä .
Hi Sunil,
Voit käyttää samaa ohjelmaa pieniä muutoksia.
Ota yhteyttä minuun @ techalpineit@gmail.com lisäohjeita.
Thanks
/KP
Moi,
Voisitteko jakaa excel ? Haluan vastaamaan numerosarjan tai pikemminkin etsiä merkkijonon toisella merkkijonolla
Thanks
Hi Ananya,
Voit käyttää samoja tietoja kuin on esitetty näytteen tiedoston ja tehdä yhden itsellesi.
Lähetä sähköpostia minulle @ techalpineit@gmail.com lisäohjeita.
Thanks
/KP
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
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
hi
it is very good blog i executed. but i want to generate Rule file template automatically without adding any Rule file.