Az alábbi példa kód leírják a folyamat, amelynek során döntés táblázat végrehajtására rules.There kétféleképpen
a) A táblázatkezelő API közvetlenül végrehajtani a szabályok.
b) Alakítsa át az Excel táblázatkezelő egy DRL fájlt, majd hajtsa végre a szabályokat.
Fogom írni a második folyamat (b).
** A fő java osztály "DroolExcelDemo.java '. Először konvertálja a excel lapot a (.DRL) fájlt, majd hajtsa végre a szabályokat.
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;
/**
* Ez az osztály létrehoz egy DRL fájl Excel munkalapra
* majd végrehajtja a szabályokat.
*/
public class DroolExcelDemo {
public static final void main(final String[] args) {
// Új tudás builder
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// Hozzon létre DRL fájlt Excel munkalapra
InputStream jelentése = null;
megpróbál {
a = new FileInputStream(“D:/Munkaterület / DroolsDemo / src / Drools / DroolExcel.xls”);
} fogás (FileNotFoundException e) {
e.printStackTrace();
}
// Hozzon létre fordító osztály példány
SpreadsheetCompiler sc = new SpreadsheetCompiler();
// Fordítsuk le a excel, hogy létrehoz a (.DRL) fájl
StringBuffer DRL = new StringBuffer(sc.compile(a, InputType.XLS));
// Helyezze nyelvjárás értéket DRL fájlba
drl.insert(drl.indexOf(“Drools”)+40,”nyelvjárás ”mvel ””+”\n”);
// Ellenőrizze, hogy a generált DRL fájl
System.out.println(“Generate DRL fájlt mutatja az alábbi–: “);
System.out.println(DRL);
// írásban karakterlánc egy DRL fájlba
megpróbál {
BufferedWriter out = new BufferedWriter(új FileWriter(“D:/Munkaterület / DroolsDemo / src / Drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
fogás (IOException e){
System.out.println(“Kivétel “);
}
// Várj, mielőtt a DRL fájlt a következő részben.
megpróbál {
Thread.sleep(10000);
} fogás (InterruptedException e) {
e.printStackTrace();
}
// Vége létrehozása DRL fájl Excel munkalapra
// A DRL fájl
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );
// Ellenőrizze az építtető a hibákat
ha ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder hibás”);
System.out.println( kbuilder.getErrors().toString());
}
// kap az összeállított csomagok (amelyek serializable)
final Collection pkgs = kbuilder.getKnowledgePackages();
// Add hozzá a csomagokat a tudásbázisa (telepíthetik a tudásalapú csomagok).
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
// Létrehozása állapottartó ülés
final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
// Állítsa esemény figyelők
ksession.addEventListener(Debug új menetrend EventListener());
ksession.addEventListener(új DebugWorkingMemoryEventListener());
// Új üzenet szövegét
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Járatszám”);
DroolMessage messagetxt1 = new DroolMessage();
messagetxt1.setMessage(“FlightCode”);
// Helyezze a munkamenet és tűzvédelmi szabályok
System.out.println(“beszúrhatunk ülés”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“égetés előtt szabályok”);
ksession.fireAllRules();
System.out.println(“égetés után szabályok”);
ksession.dispose();
System.out.println(“után leselejtezés”);
}
}
* *A második fájl egy "DroolMessage.java’ POJO osztály. Úgy tartja a beállított értékek a fő java osztály a fent leírt.
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;
// Építész
nyilvános DroolMessage() {
System.out.println(“inicializálás Message”);
}
// Szetter és getter módszerek
public String getMessage() {
vissza az üzenetet;
}
public void setMessage(String message) {
this.message = üzenet;
}
// vizsgálati módszer, hogy teszteljék a szabály végrehajtása
public void teszt(Karakterlánc teszt) {
System.out.println(“Elemzési kezdő és véghelyzet: “+teszt);
}
}
** A következőkben egy szabály, fájl által generált "DroolExcelDemo.java’ osztály.
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
// szabály értékek B13, fejléc B7
szabály “DroolExcelRule_13”
amikor
msg:DroolMessage(Üzenet == “FlightCode”)
akkor
msg.test(“7,8”);
vég
** A következőkben a bemeneti Excel alapú szabály fájlt a "DroolExcelDemo.java’ osztály felett.
Hi, could you send me DroolExcel.xls file?
thank you!
Hi Daniel,
Thanks for your interest. Please let me know your exact requirement. I will send you the excel sheet.
Cheers
/KP
Hi, could you send me DroolExcel.xls file? I just want to run this code and want to get result
my email
dahalram20@gmail.com
Hi Aakash,
Please send me your exact requirement. I will try my best to help you out.
Thanks,
Techalpine
Hi,
Can you please share the DroolExcel.xls file?
I wanted to execute this program. I am new to Drools and wanted to understand how it works.
My email address: b4umani2003@gmail.com
Thanks,
Mani
Hi Manideepa,
The excel sample is already shown in the post. You can use it as it is. If you have some other requirement, do let me know. I would love to help you sort the issues.
Thanks
/KP
Hi,
Tudja, hogyan kell használni a táblázatkezelő API-k közvetlenül végrehajtja a szabályok?
Thanks,
Nithya
legyen szíves küldjön az Excel fájl ,Azt akarom futtatni, és kap az eredmény ..??
Meg tudná biztosítani DRL például, ahol tudtam, hogy az adatokat az adatbázisból, és frissíti azt a tényt, .
Hi Sunil,
Használhatja ugyanazt a programot egy kis módosítással.
Kérem keressen fel @ techalpineit@gmail.com További segítségért.
Thanks
/KP
Hi,
Meg tudná megosztani az excel ? Azt akarom, hogy megfeleljen a számsorozat vagy inkább keresni karakterlánc másik húr
Thanks
Hi Ananya,
Használhatja ugyanazokat az adatokat, amint az a minta fájlt, és egy magad.
Kérem írjon nekem @ techalpineit@gmail.com További segítségért.
Thanks
/KP
Helló,
Miközben én igyekszem, hogy végre, ez emeli a fájl nem található hiba a feldolgozás vonal alatt.
// A DRL fájl
kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );
Tudna sugallják, mit kell tennem.
Üdvözlettel,
Shekhar Shaw
Helló Shekhar,
Meg kell biztosítani, hogy mind a .drl és .class fájlok. Kérjük, ellenőrizze, és tudassa velem, ha szembe bármilyen probléma.
Kérem írjon nekem @ techalpineit@gmail.com
Thanks
Kaushik
Szia
ez nagyon jó blog i végrehajtott. de szeretnék generálni szabály fájlsablont automatikusan anélkül, hogy bármilyen szabály fájl.