Aşağıdakı misal kodu rules.There yerinə qərar masa istifadə edərək prosesi təsvir edəcək iki yolları
bir) Birbaşa qaydaları icra yayılması hesabatı API istifadə edin.
b) Bir drl fayla excel yayılması hesabatı çevirmək və sonra qaydaları yerinə.
Mən ikinci proses təsvir edəcək (b).
** Əsas java sinif "DroolExcelDemo.java" deməkdir. İlk bir daxil excel hesabatı çevirmək edəcək (.drl) qaydaları fayl və sonra icra.
package DROOLS;
idxal java.io.BufferedWriter;
java.io.FileInputStream idxal;
idxal java.io.FileNotFoundException;
idxal java.io.FileWriter;
idxal java.io.IOException;
java.io.InputStream idxal;
idxal java.util.Collection;
idxal org.drools.KnowledgeBase;
idxal org.drools.KnowledgeBaseFactory;
idxal org.drools.builder.KnowledgeBuilder;
idxal org.drools.builder.KnowledgeBuilderFactory;
org.drools.builder.ResourceType idxal;
idxal org.drools.decisiontable.InputType;
idxal org.drools.decisiontable.SpreadsheetCompiler;
org.drools.definition.KnowledgePackage idxal;
idxal org.drools.event.rule.DebugAgendaEventListener;
idxal org.drools.event.rule.DebugWorkingMemoryEventListener;
idxal org.drools.io.ResourceFactory;
idxal org.drools.runtime.StatefulKnowledgeSession;
/**
* Bu sinif excel hesabatı bir drl faylı yaradır
* və sonra qaydaları yerinə.
*/
ictimai sinif DroolExcelDemo {
ictimai statik final etibarsız əsas(final String[] args) {
// Bilik builder yarat
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// Excel hesabatı drl fayl yaradın
InputStream = null edir;
çalışmaq {
= Yeni FileInputStream edir(“D:/İş / DroolsDemo / src / DROOLS / DroolExcel.xls”);
} tutmaq (FileNotFoundException e) {
e.printStackTrace();
}
// Compiler sinif instansiya yarat
SpreadsheetCompiler nc = Yeni SpreadsheetCompiler();
// Yaratmaq üçün excel tərtib edən (.drl) fayl
StringBuffer drl = Yeni StringBuffer(sc.compile(edir, InputType.XLS));
// Drl fayla dialekt dəyər daxil edin
drl.insert(drl.indexOf(“DROOLS”)+40,”dialekt ”mvel ””+”\n”);
// Yaradılan drl fayl yoxlayın
System.out.println(“Generate DRL fayl aşağıda göstərir–: “);
System.out.println(drl);
// bir drl fayla string yazı
çalışmaq {
= Yeni BufferedWriter həyata BufferedWriter(yeni FileWriter(“D:/İş / DroolsDemo / src / DROOLS / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
tutmaq (IOException e){
System.out.println(“Istisna “);
}
// Növbəti bölməsində drl faylı istifadə edərək əvvəl gözləyin.
çalışmaq {
Thread.sleep(10000);
} tutmaq (InterruptedException e) {
e.printStackTrace();
}
// Excel hesabatı drl fayl sonu yaradılması
// DRL fayl istifadə
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );
// Səhvlər üçün builder yoxlayın
əgər ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder səhvlər var”);
System.out.println( kbuilder.getErrors().toString());
}
// tərtib paketləri almaq (olan serializable var)
final Collection pkgs = kbuilder.getKnowledgePackages();
// bir informasiya üçün paketləri əlavə (bilik paketləri yerləşdirmək).
final informasiya kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
// Stateful sessiya yarat
final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
// Hadisə dinləyicilərə göstərilməyib
ksession.addEventListener(yeni DebugAgendaEventListener());
ksession.addEventListener(yeni DebugWorkingMemoryEventListener());
// Mesajı mətn yaradın
DroolMessage messagetxt = Yeni DroolMessage();
messagetxt.setMessage(“Reysin nömrəsi”);
DroolMessage messagetxt1 = Yeni DroolMessage();
messagetxt1.setMessage(“FlightCode”);
// Sessiya və yanğın qaydaları daxil edin
System.out.println(“sessiya daxil”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“qaydaları atəş əvvəl”);
ksession.fireAllRules();
System.out.println(“qaydaları atəş sonra”);
ksession.dispose();
System.out.println(“sərəncam sonra”);
}
}
* *İkinci fayl 'DroolMessage.java edir’ pojo sinif. Bu əsas java sinif tərəfindən müəyyən dəyərləri yuxarıda təsvir keçirir.
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;
// Inşaatçı
ictimai DroolMessage() {
System.out.println(“Mesaj başlatılıyor”);
}
// Setter və törədici üsulları
ictimai String getMessage() {
Mesaj qayıtmaq;
}
ictimai etibarsız setMessage(String mesaj) {
this.message = mesaj;
}
// qayda icra test test üsulu
ictimai etibarsız test(String test) {
System.out.println(“Təhlil başlanğıc və son mövqe: “+sınaq);
}
}
** Aşağıdakı 'DroolExcelDemo.java tərəfindən bir qayda fayl’ sinif.
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
// B13 da qayda dəyərlər, B7 da mövzu
idarə “DroolExcelRule_13”
zaman
msg:DroolMessage(Mesaj == “FlightCode”)
sonra
msg.test(“7,8”);
son
** Aşağıdakılar daxil 'DroolExcelDemo.java based qayda fayl üstün deyil’ yuxarıda sinif.
Salam, Mənə DroolExcel.xls fayl göndərmək bilər?
təşəkkür edirəm!
Hi Daniel,
Interest üçün təşəkkür edirik. Mənə dəqiq tələb bildirin. Mən sizə excel hesabatı göndərir.
Alqış
/KP
Salam, Mənə DroolExcel.xls fayl göndərmək bilər? Mən yalnız bu kodu run etmək istəyirəm və nəticə almaq istəyirəm
mənim e-poçt
dahalram20@gmail.com
Hi Aakash,
Mənə dəqiq tələb göndərin. Mən sizə kömək etmək üçün mənim ən yaxşı çalışacağıq.
Təşəkkür,
Techalpine
Salam,
Siz DroolExcel.xls fayl bölüşmək edin bilər?
Mən bu proqram icra istədi. Mən Drools yeni am və bu işləri necə anlamaq istəyirdilər.
Mənim e-mail: b4umani2003@gmail.com
Təşəkkür,
Mani
Hi Manideepa,
excel nümunə artıq post göstərilir. Bu kimi istifadə edə bilərsiniz. Bəzi digər tələb varsa,, Mənə bildirin yoxdur. Mən sizə məsələləri düzmək kömək üçün sevgi olardı.
Təşəkkür
/KP
Salam,
Siz qaydaları icra birbaşa yayılması hesabatı API istifadə etmək üçün necə bilirsinizmi?
Təşəkkür,
Nithya
Siz excel faylı göndərmək edin bilər ,i run və nəticə əldə etmək istəyirik ..??
Mən bazası veri almaq və fakt yeniləmə bilər ki, bir DRL nümunə edin bilər .
Hi Sunil,
Siz bir az dəyişiklik ilə eyni proqramı istifadə edə bilərsiniz.
Mənə müraciət edin @ techalpineit@gmail.com daha kömək.
Təşəkkür
/KP
Salam,
Excel bölüşmək edin bilər ? Mən ədəd bir simli uyğun və ya daha başqa simli simli axtarmaq istədiyiniz
Təşəkkür
Hi Ananya,
Siz nümunə fayl göstərildiyi kimi eyni data istifadə və özünüz üçün bir edə bilər.
Mənə mail edin @ techalpineit@gmail.com daha kömək.
Təşəkkür
/KP
Hello,
Mən icra çalışıram isə, xətt aşağıda emal isə tapılmadı səhv bir fayl artırılması.
// DRL fayl istifadə
kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );
Mən nə etmək lazımdır nə təklif edin bilər.
salam,
Shekhar Shaw
Hello Shekhar,
Siz .drl və Sinif faylları həm də mövcuddur ki, təmin etmək lazımdır. yoxlamaq və hər hansı bir problem varsa, xahiş edirik Mənə bildirin.
Mənə mail edin @ techalpineit@gmail.com
Təşəkkür
Kaushik
hi
it is very good blog i executed. but i want to generate Rule file template automatically without adding any Rule file.