כיצד להשתמש בטבלת החלטה מזילה ריר בפורמט של גיליון אלקטרוני לביצוע כללים?

הקוד בדוגמא הבא יתארו את התהליך באמצעות טבלת החלטה לבצע rules.There שתי דרכים

א) השתמש בממשקי API גיליון ההתפשטות ישירות לבצע את הכללים.
ב) המר את גיליון ההתפשטות להצטיין לקובץ drl ולאחר מכן להפעיל את הכללים.

אני אתאר את התהליך השני (ב).







** כיתת java העיקרית היא 'DroolExcelDemo.java'. בהתחלה זה יהיה להמיר את גיליון Excel לתוך (.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
* ולאחר מכן להפעיל את הכללים.
*/
המעמד הציבורי DroolExcelDemo {
סטטי הסופי חלל מרכזי ציבורי(מחרוזת סופית[] ארגומנטים) {
// צור בונת ידע
הסופי KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// יצירת קובץ drl מגיליון Excel
InputStream הוא = null;
לנסות {
הוא = FileInputStream החדש(“D:/סביבת עבודה / DroolsDemo / src / מזיל ריר / DroolExcel.xls”);

} לתפוס (FileNotFoundException דואר) {
e.printStackTrace();
}
// צור למשל כיתת מהדר
SpreadsheetCompiler sc = SpreadsheetCompiler החדש();

// Compile להצטיין כדי ליצור את (.drl) קובץ
StringBuffer drl = StringBuffer החדש(sc.compile(הוא, InputType.XLS));

// הכנס ערך ניב לתוך קובץ drl
drl.insert(drl.indexOf(“מזיל ריר”)+40,”ניב ”mvel ””+”\n”);

// בדקו את הקובץ שנוצר drl
שיטה(“קובץ DRL ליצור מראה מתחת–: “);
שיטה(drl);

// כתיבת מחרוזת לקובץ drl
לנסות {
BufferedWriter החוצה = BufferedWriter החדש(FileWriter החדש(“D:/סביבת עבודה / DroolsDemo / src / מזיל ריר / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
לתפוס (IOException דואר){
שיטה(“חריגה “);
}
// חכה לפני השימוש בקובץ drl בסעיף הבא.
לנסות {
Thread.sleep(10000);
} לתפוס (InterruptedException דואר) {
e.printStackTrace();
}
// יצירת סוף קובץ drl מגיליון Excel

// שימוש בקובץ DRL
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// בדקו את הבונה לטעויות
אם ( kbuilder.hasErrors() ) {
שיטה(“kbuilder יש טעויות”);
שיטה( kbuilder.getErrors().toString());
}
// לקבל את החבילות שנאספו (אשר serializable)
pkgs אוסף הסופי = kbuilder.getKnowledgePackages();

// להוסיף את החבילות למאגר מידע (לפרוס את חבילות הידע).
הסופי Knowledgebase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// יצירת חיבור stateful
ksession StatefulKnowledgeSession הסופי = kbase.newStatefulKnowledgeSession();

// הגדר מאזיני אירוע
ksession.addEventListener(DebugAgendaEventListener החדש());
ksession.addEventListener(DebugWorkingMemoryEventListener החדש());

// יצירת טקסט הודעה
DroolMessage messagetxt = DroolMessage החדש();
messagetxt.setMessage(“מספר טיסה”);

DroolMessage messagetxt1 = DroolMessage החדש();
messagetxt1.setMessage(“FlightCode”);

// הכנס לכללי הפעלה ואש
שיטה(“הכנס לתוך המושב”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
שיטה(“לפני ירי כללים”);
ksession.fireAllRules();
שיטה(“לאחר שפטר את הכללים”);
ksession.dispose();
שיטה(“אחרי התשליך”);
}
}








* *הקובץ השני הוא '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() {
שיטה(“אתחול הודעה”);
}
// שיטות סטר וגטר
ציבור המחרוזת getMessage() {
תחזור הודעה;
}
החלל הציבורי setMessage(הודעת מחרוזת) {
this.message = הודעה;
}
// שיטת בדיקה על מנת לבחון את הביצוע כלל
בדיקת חלל הציבורית(בדיקת מייתרים) {
שיטה(“התחלה של ניתוח ומיקום סיום: “+מבחן);
}
}

** להלן קובץ שנוצר על ידי שלטון '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, הכותרת בB7
לשלוט “DroolExcelRule_13”
כאשר
msg:DroolMessage(הודעת == “FlightCode”)
אז
msg.test(“7,8”);
הסוף

** להלן הקלט מצטיין קובץ מבוסס כללים ל'DroolExcelDemo.java’ כיתה מעל.


15 thoughts on “כיצד להשתמש בטבלת החלטה מזילה ריר בפורמט של גיליון אלקטרוני לביצוע כללים?

    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.

      Thanks,
      Techalpine

  1. Manideepa

    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

  2. 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.

    Thanks
    /KP

  3. Nithya Kathiresan

    Hi,
    האם אתה יודע כיצד להשתמש בממשקי API הגיליון האלקטרוני ישירות לביצוע הכללים?

    Thanks,
    Nithya

  4. דיפאק

    אתה יכול בבקשה לשלוח את קובץ Excel ,אני רוצה לרוץ ולהשיג את התוצאה ..??

  5. סוניל

    אתה יכול בבקשה לספק דוגמא DRL איפה אני יכול להשיג את הנתונים ממאגר המידע ולעדכן את העובדה .

  6. Ananya

    Hi,

    אתה יכול בבקשה לשתף את Excel ? אני רוצה להתאים מחרוזת של מספרים או יותר נכון לחפש מחרוזת במחרוזת אחרת

    Thanks

    1. kaushik Post author

      היי Ananya,

      אתה יכול להשתמש באותם נתונים כפי שמוצג בקובץ לדוגמא ולעשות אחד בעצמך.

      בבקשה לשלוח לי @ techalpineit@gmail.com לעזרה נוספת.

      Thanks
      /KP

  7. שקאר שו

    Hello,
    בעוד אני מנסה לבצע, הוא מעלה קובץ לא נמצא שגיאה בעת העיבוד מתחת לקו.

    // שימוש בקובץ DRL
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    אתה יכול בבקשה להציע מה עוד אני צריך לעשות.

    בברכה,
    שקאר שו

    1. kaushik Post author

      שלום שקאר,

      אתה צריך לוודא ששני קבצי .class .drl וזמינים. אנא קרא ותנו לי לדעת אם אתה להתמודד עם כל בעיה.

      בבקשה לשלוח לי @ techalpineit@gmail.com

      Thanks
      Kaushik

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share