Πώς να χρησιμοποιήσετε τον πίνακα απόφαση τρέχουν τα σάλια σε μορφή υπολογιστικού φύλλου για την εκτέλεση των κανόνων?

Το ακόλουθο παράδειγμα κώδικα θα περιγράφει τη διαδικασία με τη χρήση πίνακα απόφαση να εκτελέσει rules.There είναι δύο τρόπους

ένα) Χρησιμοποιήστε το φύλλο εξάπλωση APIs άμεσα για την εκτέλεση των κανόνων.
β) Μετατρέψτε το φύλλο εξάπλωση του Excel σε ένα αρχείο DRL και στη συνέχεια να εκτελέσει τους κανόνες.

Θα περιγράψει τη δεύτερη διαδικασία (β).







** Η κύρια κατηγορία της Ιάβας είναι «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) {
// Δημιουργία οικοδόμος γνώση
τελικό KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Δημιουργία DRL αρχείο από φύλλο Excel
InputStream είναι = null;
προσπαθώ {
= είναι η νέα FileInputStream(“D:/Χώρος εργασίας / DroolsDemo / src / τρέχουν τα σάλια / DroolExcel.xls”);

} σύλληψη (E FileNotFoundException) {
e.printStackTrace();
}
// Δημιουργία compiler παράδειγμα τάξη
SpreadsheetCompiler sc = νέα SpreadsheetCompiler();

// Συμπληρώστε το Excel για να δημιουργήσετε το (.DRL) αρχείο
StringBuffer DRL = νέο StringBuffer(sc.compile(είναι, InputType.XLS));

// Τοποθετήστε αξία διάλεκτο σε αρχείο DRL
drl.insert(drl.indexOf(“Τρέχουν τα σάλια”)+40,”διάλεκτο ”mvel ””+”\n”);

// Ελέγξτε το αρχείο που δημιουργείται DRL
System.out.println(“Δημιουργήστε το αρχείο DRL δείχνει κάτω–: “);
System.out.println(DRL);

// γραπτώς string σε ένα αρχείο DRL
προσπαθώ {
BufferedWriter out = νέα BufferedWriter(νέα FileWriter(“D:/Χώρος εργασίας / DroolsDemo / src / τρέχουν τα σάλια / RuleFile.drl”));
out.write(drl.toString());
out.close();
}
σύλληψη (IOException e){
System.out.println(“Εξαίρεση “);
}
// Περιμένετε πριν από τη χρήση του αρχείου DRL στην επόμενη ενότητα.
προσπαθώ {
Thread.sleep(10000);
} σύλληψη (E InterruptedException) {
e.printStackTrace();
}
// Τέλος δημιουργία του αρχείου DRL από φύλλο excel

// Χρησιμοποιώντας DRL αρχείο
kbuilder.add(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Ελέγξτε τη οικοδόμος για λάθη
αν ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder έχει σφάλματα”);
System.out.println( kbuilder.getErrors().toString());
}
// να καταρτίζονται τα πακέτα (που είναι σειριοποιήσιμο)
Συλλογή τελικό pkgs = kbuilder.getKnowledgePackages();

// προσθέστε τα πακέτα σε μια γνωσιακή (αναπτύξετε τα πακέτα γνώσης).
Γνωσιακή τελικό 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”);

// Τοποθετήστε σε συνεδρία και φωτιά κανόνες
System.out.println(“τοποθετήστε σε συνεδρίαση”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“πριν από την πυροδότηση των κανόνων”);
ksession.fireAllRules();
System.out.println(“μετά το ψήσιμο κανόνες”);
ksession.dispose();
System.out.println(“μετά τη διάθεση”);
}
}








* *Το δεύτερο αρχείο είναι ένα «DroolMessage.java’ Pojo κατηγορία. Κατέχει τις τιμές που καθορίζονται από την κύρια κατηγορία της Ιάβας που περιγράφεται παραπάνω.

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 και κτήτορας μεθόδους
δημόσια String GetMessage() {
επιστροφή μήνυμα;
}
public void setMessage(String μήνυμα) {
this.message = μήνυμα;
}
// Μέθοδος δοκιμής για τον έλεγχο της εκτέλεσης κανόνα
δημόσια δοκιμή άκυρη(String δοκιμή) {
System.out.println(“Parsing έναρξη και την τελική θέση: “+δοκιμή);
}
}

** Μετά είναι ένα αρχείο που δημιουργείται από τον κανόνα του «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, κεφαλίδα στο Β7
αποφανθεί “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. Deepak

    μπορεί να σας παρακαλούμε να στείλετε το αρχείο excel ,θέλω να τρέξει και να πάρει το αποτέλεσμα ..??

  5. Sunil

    Θα μπορούσατε σας παρακαλώ να παρέχει ένα παράδειγμα DRL, όπου θα μπορούσα να πάρω τα δεδομένα από τη βάση δεδομένων και να ενημερώσετε το γεγονός .

    1. kaushik Post author

      Γεια σου Sunil,

      Μπορείτε να χρησιμοποιήσετε το ίδιο πρόγραμμα με μια μικρή τροποποίηση.

      Παρακαλώ επικοινωνήστε μαζί μου @ techalpineit@gmail.com για περαιτέρω βοήθεια.

      Thanks
      /KP

  6. Ananya

    Hi,

    Θα σας παρακαλούσα να μοιράζονται το excel ? Θέλω να ταιριάζει με μια σειρά από αριθμούς ή μάλλον αναζήτηση συμβολοσειράς σε μια άλλη συμβολοσειρά

    Thanks

    1. kaushik Post author

      αποκλειστικός,

      Μπορείτε να χρησιμοποιήσετε τα ίδια στοιχεία, όπως φαίνεται στο δείγμα αρχείου και να κάνουν ένα για τον εαυτό σας.

      Παρακαλώ mail μου @ techalpineit@gmail.com για περαιτέρω βοήθεια.

      Thanks
      /KP

  7. Shekhar Shaw

    Χαίρετε,
    Ενώ εγώ προσπαθώ να εκτελέσει, αυτό θέτει ένα αρχείο δεν βρέθηκε σφάλμα κατά την επεξεργασία κάτω από το όριο.

    // Χρησιμοποιώντας DRL αρχείο
    kbuilder.add(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Θα σας παρακαλούσα να προτείνουν τι άλλο πρέπει να κάνω.

    Χαιρετισμοί,
    Shekhar Shaw

    1. kaushik Post author

      Γεια Shekhar,

      Θα πρέπει να διασφαλιστεί ότι τόσο η .drl και .class αρχεία είναι διαθέσιμα. Ελέγξτε και επιτρέψτε μου να ξέρω αν αντιμετωπίζετε οποιοδήποτε πρόβλημα.

      Παρακαλώ mail μου @ 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