Hvernig á að nota drools ákvörðun borð í formi töflureikni til að framkvæma reglur?

Eftirfarandi dæmi kóða mun lýsa ferli með ákvörðun töflunni til að framkvæma rules.There eru tvær leiðir

a) Notaðu lak breiða API beint að framkvæma reglur.
B) Breyta Excel breiða lak í drl skrá og framkvæma reglur.

Ég mun lýsa annað ferli (B).







** Helstu Java tegund er 'DroolExcelDemo.java'. Fyrst mun umbreyta Excel lak inn í a (.drl) skrá og framkvæma reglur.




package DROOLS;

innflutningur java.io.BufferedWriter;
innflutningur java.io.FileInputStream;
innflutningur java.io.FileNotFoundException;
innflutningur java.io.FileWriter;
innflutningur java.io.IOException;
flytja java.io.InputStream;
innflutningur java.util.Collection;

innflutningur org.drools.KnowledgeBase;
innflutningur org.drools.KnowledgeBaseFactory;
innflutningur org.drools.builder.KnowledgeBuilder;
innflutningur org.drools.builder.KnowledgeBuilderFactory;
flytja org.drools.builder.ResourceType;
innflutningur org.drools.decisiontable.InputType;
innflutningur org.drools.decisiontable.SpreadsheetCompiler;
flytja org.drools.definition.KnowledgePackage;
innflutningur org.drools.event.rule.DebugAgendaEventListener;
innflutningur org.drools.event.rule.DebugWorkingMemoryEventListener;
innflutningur org.drools.io.ResourceFactory;
innflutningur org.drools.runtime.StatefulKnowledgeSession;

/**
* Þessi tegund mun skapa drl skrá af Excel lak
* og þá framkvæma þær reglur.
*/
opinber bekknum DroolExcelDemo {
opinber truflanir síðasta ógilt aðalæð(Endanleg String[] viðföng) {
// Búa þekkingu byggir
Endanleg KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Búa drl skrá úr Excel lak
InputStream er = null;
reyna {
er = new FileInputStream(“D:/Workspace / DroolsDemo / src / drools / DroolExcel.xls”);

} grípa (FileNotFoundException E) {
e.printStackTrace();
}
// Búa þýðanda flokks dæmi
SpreadsheetCompiler SC = new SpreadsheetCompiler();

// Safna saman Excel til að búa til (.drl) skrá
StringBuffer drl = new StringBuffer(sc.compile(er, InputType.XLS));

// Setja mállýskum gildi í drl skrá
drl.insert(drl.indexOf(“Drools”)+40,”mállýskum ”mvel ””+”\N”);

// Athugaðu mynda drl skrá
System.out.println(“Mynda DRL skrá birtist undir–: “);
System.out.println(drl);

// skrifa band í drl skrá
reyna {
BufferedWriter út = new BufferedWriter(New FileWriter(“D:/Workspace / DroolsDemo / src / drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
grípa (IOException E){
System.out.println(“Undantekning “);
}
// Bíddu áður en drl skrá í næsta kafla.
reyna {
Thread.sleep(10000);
} grípa (InterruptedException E) {
e.printStackTrace();
}
// End sköpun drl skrá úr Excel lak

// Notkun DRL skrá
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Athugaðu byggir fyrir villur
ef ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder hefur villur”);
System.out.println( kbuilder.getErrors().toString());
}
// fá pakkar (sem eru Serializable)
endanlegar pkgs Collection = kbuilder.getKnowledgePackages();

// bæta pakka í Knowledgebase (dreifa þekkingu pakka).
Endanleg Knowledgebase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// Búa stateful fundur
Endanleg StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Setja atburður hlustun
ksession.addEventListener(New DebugAgendaEventListener());
ksession.addEventListener(New DebugWorkingMemoryEventListener());

// Búa til skilaboð texta
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Flugnúmer”);

DroolMessage messagetxt1 = new DroolMessage();
messagetxt1.setMessage(“FlightCode”);

// Setja í fundi og eldur reglur
System.out.println(“setja í setu”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“áður en hleypa reglur”);
ksession.fireAllRules();
System.out.println(“eftir að hleypa reglur”);
ksession.dispose();
System.out.println(“eftir ráðstafa”);
}
}








* *Annað skrá er a 'DroolMessage.java’ POJO flokki. Það hefur gildin sett af helstu Java bekknum lýst.

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;

// Builder
Almenn DroolMessage() {
System.out.println(“Frumstilli skilaboð”);
}
// Setter og getter aðferðir
public String getMessage() {
aftur skilaboð;
}
public void setMessage(String skeyti) {
this.message = skilaboð;
}
// próf aðferð til að prófa reglu framkvæmd
public void próf(String próf) {
System.out.println(“Þátta upphaf og endir stöðu: “+próf);
}
}

** Eftirfarandi er regla skrá mynda af 'DroolExcelDemo.java’ flokki.

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

// regla gildi á B13, haus á B7
reglu “DroolExcelRule_13”
þegar
msg:DroolMessage(skilaboð == “FlightCode”)
þá
msg.test(“7,8”);
enda

** Eftirfarandi er inntak skara byggir regla skrá til 'DroolExcelDemo.java’ flokki fyrir ofan.


15 thoughts on “Hvernig á að nota drools ákvörðun borð í formi töflureikni til að framkvæma reglur?

    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.

      Takk,
      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

    Takk,
    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.

    Takk
    /KP

  3. Nithya Kathiresan

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

    Takk,
    Nithya

  4. sunil

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

  5. Ananya

    Hi,

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

    Takk

  6. Shekhar Shaw

    Halló,
    While I am trying to execute, it is raising a file not found error while processing below line.

    // Notkun DRL skrá
    kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

    Could you please suggest what else I need to do.

    Regards,
    Shekhar Shaw

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