Kiel al uzo salivumas decidan tablon en spreadsheet formato efektivigi regulojn?

La sekvanta ekzempla kodo priskribos la procezon uzi decidan tablon efektivigi regulojn.Estas du vojoj

a) Uzi la disvastiĝan folion APIs rekte efektivigas la regulojn.
B) Transformi la excel disvastiĝa folio en drl dosiero kaj tiam efektivigi la regulojn.

Mi priskribos la duan procezon (B).







** La ĉefa java klaso estas ‘DroolExcelDemo.Java’.Unue ĝi transformos la excel folio en (.Drl) Dosiero kaj tiam efektivigi la regulojn.




package DROOLS;

Importi java.Io.BufferedWriter;
Importi java.Io.FileInputStream;
Importi java.Io.FileNotFoundException;
Importi java.Io.FileWriter;
Importi java.Io.IOException;
Importi java.Io.InputStream;
Importi java.Util.Kolekto;

Importi org.Salivumas.KnowledgeBase;
Importi org.Salivumas.KnowledgeBaseFactory;
Importi org.Salivumas.Konstruisto.KnowledgeBuilder;
Importi org.Salivumas.Konstruisto.KnowledgeBuilderFactory;
Importi org.Salivumas.Konstruisto.ResourceType;
Importi org.Salivumas.Decisiontable.InputType;
Importi org.Salivumas.Decisiontable.SpreadsheetCompiler;
Importi org.Salivumas.Difino.KnowledgePackage;
Importi org.Salivumas.Evento.Regulo.DebugAgendaEventListener;
Importi org.Salivumas.Evento.Regulo.DebugWorkingMemoryEventListener;
Importi org.Salivumas.Io.ResourceFactory;
Importi org.Salivumas.Runtime.StatefulKnowledgeSession;

/**
* Ĉi tiu klaso kreos drl dosiero de excel folio
* Kaj tiam efektivigi la regulojn.
*/
Publika klaso DroolExcelDemo {
Publika senmova fina malplena ĉefa(Fina Ŝnuro[] Args) {
// Krei scian konstruiston
Fina KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.NewKnowledgeBuilder();

// Krei drl dosiero de excel folio
InputStream estas =null;
Provo {
Estas= nova FileInputStream(“D:/Workspace/DroolsDemo/src/SALIVUMAS/DroolExcel.Xls”);

} Kaptaĵo (FileNotFoundException e) {
E.PrintStackTrace();
}
// Krei compiler klasa okazo
SpreadsheetCompiler sc = nova SpreadsheetCompiler();

// Kompili la excel produkti la (.Drl) Dosiero
StringBuffer drl=nova StringBuffer(Sc.Kompilas(Estas, InputType.XLS));

// Enigaĵa dialekto valoro en drl dosiero
Drl.Enigaĵo(Drl.IndexOf(“SALIVUMAS”)+40,”Dialekto ”Mvel””+”\N”);

// Kontroli la produktita drl dosiero
Sistemo.Ekstere.Println(“Produkti DRLan dosieron estas montranta malsupre–: “);
Sistemo.Ekstere.Println(Drl);

// Skribanta ŝnuron en drl dosiero
Provo {
BufferedWriter ekstere = nova BufferedWriter(Nova FileWriter(“D:/Workspace/DroolsDemo/src/SALIVUMAS/RuleFile.Drl”));
Ekstere.Skribas(Drl.ToString());
Ekstere.Egale();
}
Kaptaĵo (IOException e){
Sistemo.Ekstere.Println(“Escepto “);
}
// Atendi antaŭ ol uzanta la drl dosiero en la sekvanta sekcio.
Provo {
Fadeno.Dormo(10000);
} Kaptaĵo (InterruptedException e) {
E.PrintStackTrace();
}
// Fina kreo de drl dosiero de excel folio

// Uzanta DRLan dosieron
Kbuilder.Aldonas(ResourceFactory.NewClassPathResource(“RuleFile.Drl”, DroolMessage.Klaso ), ResourceType.DRL );

// Kontroli la konstruiston por eraroj
Se ( Kbuilder.HasErrors() ) {
Sistemo.Ekstere.Println(“Kbuilder havas erarojn”);
Sistemo.Ekstere.Println( Kbuilder.GetErrors().ToString());
}
// Akiri la kompilita pakojn (Kiu estas serializable)
Fina Kolekto pkgs = kbuilder.GetKnowledgePackages();

// Aldoni la pakojn al knowledgebase (Deplojiĝi la sciajn pakojn).
Fina KnowledgeBase kbase = KnowledgeBaseFactory.NewKnowledgeBase();
Kbase.AddKnowledgePackages(Pkgs);

// Krei stateful sesio
Fina StatefulKnowledgeSession ksession = kbase.NewStatefulKnowledgeSession();

// Fiksita eventajn aŭskultantojn
Ksession.AddEventListener(Nova DebugAgendaEventListener());
Ksession.AddEventListener(Nova DebugWorkingMemoryEventListener());

// Krei mesaĝan tekston
DroolMessage messagetxt = nova DroolMessage();
Messagetxt.SetMessage(“FlightNumber”);

DroolMessage messagetxt1 = nova DroolMessage();
Messagetxt1.SetMessage(“FlightCode”);

// Enigaĵo en sesio kaj fajregaj reguloj
Sistemo.Ekstere.Println(“Enigaĵo en sesio”);
Ksession.Enigaĵo(Messagetxt);
Ksession.Enigaĵo(Messagetxt1);
Sistemo.Ekstere.Println(“Antaŭ ol pafadanta regulojn”);
Ksession.FireAllRules();
Sistemo.Ekstere.Println(“Post kiam pafadanta regulojn”);
Ksession.Dispozicias();
Sistemo.Ekstere.Println(“Post kiam dispozicias”);
}
}








* *La dua dosiero estas ‘DroolMessage.Java’ Pojo klaso. Ĝi tenas la valorojn fiksita de la ĉefa java klaso priskribis sur.

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;

// Constructor
Publika DroolMessage() {
Sistemo.Ekstere.Println(“Initializing Mesaĝo”);
}
// Setter kaj getter metodoj
Publika Ŝnuro getMessage() {
Revena mesaĝo;
}
Publika malplena setMessage(Ŝnura mesaĝo) {
Tio ĉi.Mesaĝa = mesaĝo;
}
// Testa metodo elprovi la regulan ekzekuton
Publika malplena testo(Ŝnura testo) {
Sistemo.Ekstere.Println(“Analizanta komencon kaj finan pozicion: “+Testo);
}
}

** Sekvanta estas regula dosiero produktita de la ‘DroolExcelDemo.Java’ Klaso.

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

// Regulaj valoroj ĉe B13, Titolo ĉe B7
Regulo “DroolExcelRule_13”
Kiam
Msg:DroolMessage(Mesaĝo == “FlightCode”)
Tiam
Msg.Testo(“7,8”);
Fino

** Sekvanta estas la enigo excel bazis regulan dosieron al la ‘DroolExcelDemo.Java’ Klasifiki sur.


15 Pensoj sur “Kiel al uzo salivumas decidan tablon en spreadsheet formato efektivigi regulojn?

    1. Kaushik #Po?to #a?toro

      Hi Daniel,

      Dankonas por via intereso. Bonvolu lasi Mi scii vian ĝustan postulon. Mi sendos vin la excel folio.

      Huraoj
      /KP

    1. Kaushik #Po?to #a?toro

      Hi Aakash,

      Bonvolu sendi mi via ĝusta postulo. Mi provos mian plej bonan helpi vin ekstere.

      Dankonas,
      Techalpine

  1. Manideepa

    Hi,
    Povas vin bonvolu dividi la DroolExcel.Xls dosiero?
    Mi deziris efektivigi ĉi tiun programon. Mi estas nova al Salivumas kaj dezirita kompreni kiel ĝin laboras.
    Mia retpoŝta adreso: B4umani2003@gmail.Com

    Dankonas,
    Mani

  2. Kaushik #Po?to #a?toro

    Hi Manideepa,

    La excel ekzemplo estas jam montrita en la poŝto. Vi povas uzi ĝin kiel ĝi estas. Se vi havas kelkaj alia postulo, Ja lasas min scii. Mi amus helpi vin ordigi la aferojn.

    Dankonas
    /KP

  3. Ananya

    Hi,

    Povis vin bonvolu dividi la excel ? Mi deziras egali ŝnuron de nombroj aŭ prefere serĉi ŝnuron en alia ŝnuro

    Dankonas

  4. Shekhar Shaw

    Halo,
    Dum mi estas provanta efektivigi, Ĝi estas levanta dosieron ne fondi eraron dum pretiganta sub linio.

    // Uzanta DRLan dosieron
    Kbuilder.Aldonas(ResourceFactory.NewClassPathResource(“RuleFile.Drl”, DroolMessage.Klaso ), ResourceType.DRL );

    Povis vin bonvolu sugesti kion alia mi devas fari.

    Konsideroj,
    Shekhar Shaw

    1. Kaushik #Po?to #a?toro

      Halo Shekhar,

      Vi devas certigi ke ambaŭ la .Drl kaj .Klasaj dosieroj estas haveblaj. Plaĉi kontrolon kaj lasita min scii se vi alfrontas ajnan problemon.

      Plaĉi poŝton mi @ @Techalpineit@gmail.com

      Dankonas
      Kaushik

  5. Rahul Pandey

    Hi
    Ĝi estas tre bona blogo i efektivigita. Sed i deziras produkti Regulan dosieron ŝablono aŭtomate sen aldonanta ajnan Regulan dosieron.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share