Ինչպես օգտվել drools որոշումը նստել աղյուսակների ձեւաչափով կատարել կանոնները?

Հետեւյալ օրինակը կոդը, որը նկարագրել գործընթացը, օգտագործելով որոշումը սեղանի կատարել rules.There երկու ճանապարհ

ա) Օգտագործեք տարածումը թիթեղներ API-ներ անմիջապես կատարել կանոնները.
բ) Փոխանակեք Excel տարածել թերթիկը մեջ մի 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 {
հասարակական ստատիկ վերջնական ոչինչ հիմնական(եզրափակիչ String[] args) {
// Ստեղծել գիտելիքների builder
Վերջնական KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Ստեղծել drl ֆայլը excel թերթիկ
InputStream է = առ;
փորձել {
է = նոր FileInputStream(“D:/Workspace / DroolsDemo / src / DROOLS / DroolExcel.xls”);

} բռնելը (FileNotFoundException e) {
e.printStackTrace();
}
// Ստեղծեք Կազմողի դասային դեպք
SpreadsheetCompiler SC = նոր SpreadsheetCompiler();

// Կազմել է Excel է առաջացնում այն (.drl) ֆայլ
StringBuffer drl = նոր StringBuffer(sc.compile(է, InputType.XLS));

// Տեղադրեք Բարբառ արժեքի մեջ drl ֆայլը
drl.insert(drl.indexOf(“DROOLS”)+40,”Բարբառ ”mvel ””+”\N”);

// Ստուգեք գեներացվել drl ֆայլը
System.out.println(“Առաջացնում DRL ֆայլ է Ստորեւ բերված է–: “);
System.out.println(drl);

// գրավոր տողը մեջ drl ֆայլը
փորձել {
BufferedWriter դուրս = նոր BufferedWriter(նոր FileWriter(“D:/Workspace / DroolsDemo / src / DROOLS / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
բռնելը (IOException e){
System.out.println(“Բացառություն “);
}
// Սպասեք մինչեւ օգտագործելով ֆայլը drl հաջորդ բաժին.
փորձել {
Thread.sleep(10000);
} բռնելը (InterruptedException e) {
e.printStackTrace();
}
// End ստեղծում drl նիշքը excel թերթիկ

// Օգտագործելով DRL ֆայլը
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Ստուգեք builder համար սխալներով
եթե ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder սխալներ ունի”);
System.out.println( kbuilder.getErrors().toString());
}
// ստանալ կազմված փաթեթները (որոնք serializable)
Վերջնական Collection pkgs = kbuilder.getKnowledgePackages();

// ավելացնել փաթեթները մի knowledgebase (տեղակայել գիտելիքների փաթեթները).
Վերջնական KnowledgeBase 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”);

// Տեղադրեք մեջ նստաշրջանի եւ հակահրդեհային կանոնների
System.out.println(“insert մեջ նիստում”);
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(“Նախապատրաստվում հաղորդագրություն”);
}
// Սետտեր եւ շահող մեթոդներ
հասարակական String getMessage() {
վերադառնալ հաղորդագրություն;
}
հասարակական անվավեր setMessage(String հաղորդագրությունը) {
this.message = հաղորդագրությունը;
}
// փորձարկման մեթոդ է փորձարկել գերակայության կատարումը
հասարակական անվավեր test(String test) {
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, վերնագիր է B7
բացառում “DroolExcelRule_13”
երբ
msg:DroolMessage(հաղորդագրությունը == “FlightCode”)
ապա
msg.test(“7,8”);
վերջ

** Ստորեւ ներկայացվում է աչքի ընկնել ներմուծումը հիմնված իշխանության ֆայլը 'DroolExcelDemo.java’ Դուք բարձր.


15 մտքերն են "Ինչպես օգտվել drools որոշումը նստել աղյուսակների ձեւաչափով կատարել կանոնները?

  1. Daniel

    Ողջու՜յն, կարող եք ուղարկել ինձ DroolExcel.xls ֆայլի?

    Շնորհակալություն!

    1. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

      Hi Daniel,

      Շնորհակալություն Ձեր հետաքրքրության. Խնդրում եմ ինձ տեղյակ ձեր ճշգրիտ պահանջը. Ես կուղարկի ձեզ Excel թերթ.

      Կենացը
      /KP

  2. Aakash

    Ողջու՜յն, կարող եք ուղարկել ինձ DroolExcel.xls ֆայլի? Ես պարզապես ցանկանում եմ վազել այս կոդը եւ ցանկանում են ստանալ արդյունք

    իմ էլփոստով
    dahalram20@gmail.com

    1. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

      Hi Aakash,

      Խնդրում եմ ուղարկել ինձ ձեր ճշգրիտ պահանջը. Ես կփորձեմ իմ լավագույն օգնել ձեզ դուրս.

      Շնորհակալություն,
      Techalpine

  3. Manideepa

    Ողջու՜յն,
    Կարող եք, խնդրում եմ կիսվել այն DroolExcel.xls ֆայլը?
    Ես ուզում էի կատարել այդ ծրագիրը. Ես նոր drools եւ ուզում է հասկանալ, թե ինչպես է այն աշխատում.
    Իմ էլփոստի հասցեն: b4umani2003@gmail.com

    Շնորհակալություն,
    Mani

  4. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

    Hi Manideepa,

    The Excel նմուշ է արդեն ցույց է տվել, որ պաշտոնում. Դուք կարող եք օգտագործել այն, քանի որ դա. Եթե ​​դուք ունեք մի այլ պահանջը, թույլ մի թող ինձ իմանալ,. Ես սիրում եմ օգնել ձեզ տեսակավորելու հարցեր.

    Շնորհակալություն
    /KP

  5. Nithya Kathiresan

    Ողջու՜յն,
    Գիտեք, թե ինչպես պետք է օգտագործել տարածումը թերթիկ APIs ուղղակիորեն կատարել կանոնները?

    Շնորհակալություն,
    Nithya

  6. Deepak

    կարող եք, խնդրում եմ ուղարկել Excel ֆայլ ,ես ուզում եմ առաջադրվել, եւ ստանալ արդյունքը ..??

  7. Սունիլ

    Կարող եք տրամադրել մի Փնտրում օրինակ է, որտեղ ես կարող եմ ստանալ տվյալների բազա եւ թարմացնել այն փաստը, .

    1. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

      Hi Սունիլ,

      Դուք կարող եք օգտագործել նույն ծրագիրը մի քիչ ձեւափոխման.

      Խնդրում ենք կապնվել ինձ @ techalpineit@gmail.com հետագա օգնության.

      Շնորհակալություն
      /KP

  8. Անանիա

    Ողջու՜յն,

    Կարող եք կիսել Excel ? Ես ուզում եմ համապատասխանելու տողը թվերի կամ ավելի շուտ որոնել տողը մեկ այլ պարանի

    Շնորհակալություն

    1. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

      Hi Անանիա,

      Դուք կարող եք օգտագործել նույն տվյալները, ինչպես ցույց է տրված ընտրանքային ֆայլը եւ կատարել մեկը Ձեզ համար.

      Խնդրում ենք mail ինձ @ techalpineit@gmail.com հետագա օգնության.

      Շնորհակալություն
      /KP

  9. Շեխար Shaw

    Բարեւ,
    Մինչ ես փորձում եմ կատարել,, այն բարձրացնում է մի ֆայլ չի գտնվել սխալ, իսկ վերամշակման ստորեւ գծում.

    // Օգտագործելով DRL ֆայլը
    kbuilder.add(ResourceFactory.newClassPathResource(«RuleFile.drl», DroolMessage.class ), ResourceType.DRL );

    Could you please suggest what else I need to do.

    Regards,
    Շեխար Shaw

    1. Kaushik Հաղորդագրություն Ավելացված է հեղինակը

      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.

      Խնդրում ենք mail ինձ @ techalpineit@gmail.com

      Շնորհակալություն
      Kaushik

  10. Rahul Pandey

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

============================================= ============================================== Գնեք լավագույն տեխնոլոգիական գրքերը Amazon- ում,en,Էլեկտրականություն CT շագանակագույն էլեկտրաէներգիա,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share