როგორ გამოვიყენოთ drools გადაწყვეტილება მაგიდაზე ცხრილების ფორმატში შეასრულოს წესები?

შემდეგი მაგალითი კოდი აღწერას პროცესში გამოყენების გადაწყვეტილება მაგიდასთან, რათა შესრულდეს 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’ კლასის ზემოთ.


15 thoughts on “როგორ გამოვიყენოთ drools გადაწყვეტილება მაგიდაზე ცხრილების ფორმატში შეასრულოს წესები?

    1. kaushik Post author

      Hi Daniel,

      Thanks for your interest. Please let me know your exact requirement. I will send you the excel sheet.

      Cheers
      /KP

    1. kaushik Post author

      Hi Aakash,

      Please send me your exact requirement. I will try my best to help you out.

      მადლობა,
      Techalpine

  1. kaushik Post author

    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

  2. Nithya Kathiresan

    Hi,
    Do you know how to use the spread sheet APIs directly to execute the rules?

    მადლობა,
    Nithya

  3. sunil

    Could you please provide a DRL example where I could get the data from Database and update the fact .

  4. Ananya

    Hi,

    Could you please share the excel ? I want to match a string of numbers or rather search string in another string

    მადლობა

  5. Shekhar Shaw

    გაუმარჯოს,
    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

  6. Rahul Pandey

    hi
    it is very good blog i executed. but i want to generate Rule file template automatically without adding any Rule file.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share