Hogyan kell használni nyáladzik határozat táblázat táblázatos formában, hogy végre szabályok?

Az alábbi példa kód leírják a folyamat, amelynek során döntés táblázat végrehajtására rules.There kétféleképpen

a) A táblázatkezelő API közvetlenül végrehajtani a szabályok.
b) Alakítsa át az Excel táblázatkezelő egy DRL fájlt, majd hajtsa végre a szabályokat.

Fogom írni a második folyamat (b).







** A fő java osztály "DroolExcelDemo.java '. Először konvertálja a excel lapot a (.DRL) fájlt, majd hajtsa végre a szabályokat.




package DROOLS;

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

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

/**
* Ez az osztály létrehoz egy DRL fájl Excel munkalapra
* majd végrehajtja a szabályokat.
*/
public class DroolExcelDemo {
public static final void main(final String[] args) {
// Új tudás builder
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Hozzon létre DRL fájlt Excel munkalapra
InputStream jelentése = null;
megpróbál {
a = new FileInputStream(“D:/Munkaterület / DroolsDemo / src / Drools / DroolExcel.xls”);

} fogás (FileNotFoundException e) {
e.printStackTrace();
}
// Hozzon létre fordító osztály példány
SpreadsheetCompiler sc = new SpreadsheetCompiler();

// Fordítsuk le a excel, hogy létrehoz a (.DRL) fájl
StringBuffer DRL = new StringBuffer(sc.compile(a, InputType.XLS));

// Helyezze nyelvjárás értéket DRL fájlba
drl.insert(drl.indexOf(“Drools”)+40,”nyelvjárás ”mvel ””+”\n”);

// Ellenőrizze, hogy a generált DRL fájl
System.out.println(“Generate DRL fájlt mutatja az alábbi–: “);
System.out.println(DRL);

// írásban karakterlánc egy DRL fájlba
megpróbál {
BufferedWriter out = new BufferedWriter(új FileWriter(“D:/Munkaterület / DroolsDemo / src / Drools / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
fogás (IOException e){
System.out.println(“Kivétel “);
}
// Várj, mielőtt a DRL fájlt a következő részben.
megpróbál {
Thread.sleep(10000);
} fogás (InterruptedException e) {
e.printStackTrace();
}
// Vége létrehozása DRL fájl Excel munkalapra

// A DRL fájl
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Ellenőrizze az építtető a hibákat
ha ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder hibás”);
System.out.println( kbuilder.getErrors().toString());
}
// kap az összeállított csomagok (amelyek serializable)
final Collection pkgs = kbuilder.getKnowledgePackages();

// Add hozzá a csomagokat a tudásbázisa (telepíthetik a tudásalapú csomagok).
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// Létrehozása állapottartó ülés
final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Állítsa esemény figyelők
ksession.addEventListener(Debug új menetrend EventListener());
ksession.addEventListener(új DebugWorkingMemoryEventListener());

// Új üzenet szövegét
DroolMessage messagetxt = new DroolMessage();
messagetxt.setMessage(“Járatszám”);

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

// Helyezze a munkamenet és tűzvédelmi szabályok
System.out.println(“beszúrhatunk ülés”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“égetés előtt szabályok”);
ksession.fireAllRules();
System.out.println(“égetés után szabályok”);
ksession.dispose();
System.out.println(“után leselejtezés”);
}
}








* *A második fájl egy "DroolMessage.java’ POJO osztály. Úgy tartja a beállított értékek a fő java osztály a fent leírt.

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;

// Építész
nyilvános DroolMessage() {
System.out.println(“inicializálás Message”);
}
// Szetter és getter módszerek
public String getMessage() {
vissza az üzenetet;
}
public void setMessage(String message) {
this.message = üzenet;
}
// vizsgálati módszer, hogy teszteljék a szabály végrehajtása
public void teszt(Karakterlánc teszt) {
System.out.println(“Elemzési kezdő és véghelyzet: “+teszt);
}
}

** A következőkben egy szabály, fájl által generált "DroolExcelDemo.java’ osztály.

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

// szabály értékek B13, fejléc B7
szabály “DroolExcelRule_13”
amikor
msg:DroolMessage(Üzenet == “FlightCode”)
akkor
msg.test(“7,8”);
vég

** A következőkben a bemeneti Excel alapú szabály fájlt a "DroolExcelDemo.java’ osztály felett.


15 thoughts on “Hogyan kell használni nyáladzik határozat táblázat táblázatos formában, hogy végre szabályok?

    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,
    Tudja, hogyan kell használni a táblázatkezelő API-k közvetlenül végrehajtja a szabályok?

    Thanks,
    Nithya

  4. Sunil

    Meg tudná biztosítani DRL például, ahol tudtam, hogy az adatokat az adatbázisból, és frissíti azt a tényt, .

  5. Ananya

    Hi,

    Meg tudná megosztani az excel ? Azt akarom, hogy megfeleljen a számsorozat vagy inkább keresni karakterlánc másik húr

    Thanks

  6. Shekhar Shaw

    Helló,
    Miközben én igyekszem, hogy végre, ez emeli a fájl nem található hiba a feldolgozás vonal alatt.

    // A DRL fájl
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Tudna sugallják, mit kell tennem.

    Üdvözlettel,
    Shekhar Shaw

    1. kaushik Post author

      Helló Shekhar,

      Meg kell biztosítani, hogy mind a .drl és .class fájlok. Kérjük, ellenőrizze, és tudassa velem, ha szembe bármilyen probléma.

      Kérem írjon nekem @ techalpineit@gmail.com

      Thanks
      Kaushik

  7. Rahul Pandey

    Szia
    ez nagyon jó blog i végrehajtott. de szeretnék generálni szabály fájlsablont automatikusan anélkül, hogy bármilyen szabály fájl.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share