შემდეგი მაგალითი კოდი აღწერას პროცესში გამოყენების გადაწყვეტილება მაგიდასთან, რათა შესრულდეს rules.There ორი გზა
a) გამოიყენეთ გავრცელების ფურცელი APIs პირდაპირ შეასრულოს წესები.
ბ) Convert Excel გავრცელების ფურცელი შევიდა drl ფაილი და შემდეგ შეასრულოს წესები.
მე აღწერს მეორე პროცესი (ბ).
** მთავარი java კლასი არის "DroolExcelDemo.java. პირველი ეს იქნება კონვერტირება Excel sheet შევიდა (.drl) ფაილი და შემდეგ შეასრულოს წესები.
package DROOLS;
იმპორტი java.io.BufferedWriter;
იმპორტი java.io.FileInputStream;
იმპორტი java.io.FileNotFoundException;
იმპორტი java.io.FileWriter;
იმპორტი java.io.IOException;
იმპორტი java.io.InputStream;
იმპორტი java.util.Collection;
იმპორტი org.drools.KnowledgeBase;
იმპორტი org.drools.KnowledgeBaseFactory;
იმპორტი org.drools.builder.KnowledgeBuilder;
იმპორტი org.drools.builder.KnowledgeBuilderFactory;
იმპორტი org.drools.builder.ResourceType;
იმპორტი org.drools.decisiontable.InputType;
იმპორტი org.drools.decisiontable.SpreadsheetCompiler;
იმპორტი org.drools.definition.KnowledgePackage;
იმპორტი org.drools.event.rule.DebugAgendaEventListener;
იმპორტი org.drools.event.rule.DebugWorkingMemoryEventListener;
იმპორტი org.drools.io.ResourceFactory;
იმპორტი org.drools.runtime.StatefulKnowledgeSession;
/**
* ეს კლასი შევქმნით drl ფაილი Excel sheet
* და მაშინ შეასრულოს წესები.
*/
საჯარო კლასის DroolExcelDemo {
საჯარო სტატიკური საბოლოო ბათილად მთავარი(საბოლოო სიმებიანი[] args) {
// საკუთარი ცოდნის მშენებელი
საბოლოო KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
// შექმნა drl ფაილი Excel sheet
InputStream არის = null;
ვცდილობთ {
არის = ახალი FileInputStream(“D:/სამუშაო გარემოს / DroolsDemo / src / DROOLS / DroolExcel.xls”);
} catch (FileNotFoundException ვებ) {
e.printStackTrace();
}
// შექმნა შემდგენელი კლასის ინსტანციის
SpreadsheetCompiler sc = ახალი SpreadsheetCompiler();
// კომპილირების Excel გენერირება (.drl) ფაილი
StringBuffer drl = ახალი StringBuffer(sc.compile(არის, InputType.XLS));
// ჩადეთ დიალექტი ღირებულება შევიდა drl ფაილი
drl.insert(drl.indexOf(“DROOLS”)+40,”დიალექტი ”mvel ””+”\N”);
// შეამოწმეთ generated drl ფაილი
System.out.println(“გენერირება DRL ფაილი ქვემოთ იხილეთ–: “);
System.out.println(drl);
// წერილობით სიმებიანი შევიდა drl ფაილი
ვცდილობთ {
BufferedWriter out = ახალი BufferedWriter(ახალი FileWriter(“D:/სამუშაო გარემოს / DroolsDemo / src / DROOLS / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
catch (IOException ვებ){
System.out.println(“Exception “);
}
// დაელოდეთ სანამ გამოყენებით drl ფაილის შემდეგი განყოფილება.
ვცდილობთ {
Thread.sleep(10000);
} catch (InterruptedException ვებ) {
e.printStackTrace();
}
// ბოლო შექმნის drl ფაილი Excel sheet
// გამოყენება DRL ფაილი
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );
// შეამოწმეთ მშენებელი შეცდომებისთვის
თუ ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder აქვს შეცდომები”);
System.out.println( kbuilder.getErrors().toString());
}
// მიიღონ შედგენილი პაკეტების (რომლებიც serializable)
საბოლოო კოლექცია pkgs = kbuilder.getKnowledgePackages();
// დაამატოთ პაკეტების შემეცნებითი (განათავსოს ცოდნა პაკეტების).
საბოლოო შემეცნებითი kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
// შექმნა stateful სხდომა
საბოლოო StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
// უცნობია ღონისძიება მსმენელს
ksession.addEventListener(ახალი DebugAgendaEventListener());
ksession.addEventListener(ახალი DebugWorkingMemoryEventListener());
// შექმნა გაგზავნა ტექსტი
DroolMessage messagetxt = ახალი DroolMessage();
messagetxt.setMessage(“რეისის ნომერი”);
DroolMessage messagetxt1 = ახალი DroolMessage();
messagetxt1.setMessage(“FlightCode”);
// INSERT INTO სხდომაზე და ცეცხლის წესები
System.out.println(“INSERT INTO სხდომა”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“ადრე გათავისუფლების წესები”);
ksession.fireAllRules();
System.out.println(“შემდეგ გათავისუფლების წესები”);
ksession.dispose();
System.out.println(“შემდეგ განკარგავს”);
}
}
* *მეორე ფაილი 'DroolMessage.java’ pojo კლასის. იგი აჩერებს ღირებულებების დადგენილი ძირითადი java კლასის ზემოთ აღწერილი.
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;
// აღმაშენებლის
საჯარო DroolMessage() {
System.out.println(“ინიციალიზაციისას შეტყობინება”);
}
// Setter და getter მეთოდები
საჯარო სიმებიანი getMessage() {
დაბრუნების გაგზავნა;
}
საჯარო ბათილად setMessage(სიმებიანი გაგზავნა) {
this.message = გაგზავნა;
}
// ტესტი მეთოდი შესამოწმებლად წესი აღსრულება
საჯარო ბათილად ტესტი(სიმებიანი ტესტი) {
System.out.println(“დამუშავების დაწყების და დასრულების თანამდებობა: “+ტესტი);
}
}
** შემდეგი წესით ფაილი გენერირდება 'DroolExcelDemo.java’ კლასის.
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, header ზე B7
გამორიცხავს “DroolExcelRule_13”
როდესაც
msg:DroolMessage(გაგზავნა == “FlightCode”)
მაშინ
msg.test(“7,8”);
ბოლოს
** შემდეგი შეყვანის Excel დაფუძნებული წესი ფაილი 'DroolExcelDemo.java’ კლასის ზემოთ.
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.
მადლობა,
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
მადლობა,
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.
მადლობა
/KP
Hi,
Do you know how to use the spread sheet APIs directly to execute the rules?
მადლობა,
Nithya
can you please send the excel file ,i want to run and get the result..??
Could you please provide a DRL example where I could get the data from Database and update the fact .
Hi Sunil,
You can use the same program with a little modification.
Please contact me @ techalpineit@gmail.com for further help.
მადლობა
/KP
Hi,
Could you please share the excel ? I want to match a string of numbers or rather search string in another string
მადლობა
Hi Ananya,
You can use the same data as shown in the sample file and make one for yourself.
Please mail me @ techalpineit@gmail.com for further help.
მადლობა
/KP
გაუმარჯოს,
While I am trying to execute, it is raising a file not found error while processing below line.
// გამოყენება DRL ფაილი
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );
Could you please suggest what else I need to do.
Regards,
Shekhar Shaw
Hello Shekhar,
You need to ensure that both the .drl and .class files are available. Please check and let me know if you face any problem.
Please mail me @ techalpineit@gmail.com
მადლობა
Kaushik
hi
it is very good blog i executed. but i want to generate Rule file template automatically without adding any Rule file.