Yuav siv li cas drools cov lus txiav txim hauv spreadsheet cov hom ntawv uas yuav coj kev cai?

Chaws piv txwv nram qab no yuav piav txog cov txheej txheem siv rau qhov kev txiav txim cov lus mus coj kev cai.Muaj ob txoj kev

ib) Siv cov kab ntawv APIs ncaj qha rau txim tuag rau txoj cai.
b) Hloov tus excel uas yuav kis tau ntawv rau ib tus neeg ua ntaub ntawv thov drl thiab coj cov kev cai.

Kuv yuav piav txog cov txheej txheem thib ob (b).







** Cov chav kawm ntawv uas tsis yog tus java lub ntsiab yog 'DroolExcelDemo.java'.Ua ntej nws yuav hloov tau qhov ntawv excel rau ib (.drl) ua daim ntawv thov thiab mam li coj cov kev cai.




package DROOLS;

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

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

/**
* Cov hoob kawm no yuav tsim ib cov ntawv drl mus los zoo ntawv
* thiab ho coj cov kev cai.
*/
pej xeem hoob DroolExcelDemo {
pej xeem zoo li qub thaum kawg tsis muaj dabtsis loj(Thaum kawg cov hlua[] args) {
// Tsim cov txuj ci builder
Thaum kawg KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

// Tsim muaj cov ntaub ntawv drl mus los zoo ntawv
InputStream = null;
sim {
= yog tshiab FileInputStream(“D:/Workspace/DroolsDemo/src/DROOLS/DroolExcel.xls”);

} ntes (FileNotFoundException e) {
e.printStackTrace();
}
// Tsim compiler hoob lom
SpreadsheetCompiler sc = tshiab SpreadsheetCompiler();

// Compile lub excel rau Meskas lub (.drl) cov ntaub ntawv
StringBuffer drl = tshiab StringBuffer(sc.compile(yog, InputType.XLS));

// Ntxig hom lus hais tus nqi rau cov ntaub ntawv drl
drl.insert(drl.indexOf(“DROOLS”)+40,”hom lus hais yog muaj”mvel””+”\n”);

// Xyuas cov ntawv generated drl
System.out.println(“Ua kom muaj DRL tej ntaub ntawv tseem uas qhia nram qab no–: “);
System.out.println(drl);

// txoj hlua sau ntawv rau ib tus neeg ua ntaub ntawv thov drl
sim {
BufferedWriter tawm = tshiab BufferedWriter(tshiab FileWriter(“D:/Workspace/DroolsDemo/src/DROOLS/RuleFile.drl”));
out.Write(drl.toString());
out.close();
}
ntes (IOException e){
System.out.println(“Kos “);
}
// Tos ua ntej yuav siv cov ntawv drl rau hauv seem tom ntej no.
sim {
Thread.sleep(10000);
} ntes (InterruptedException e) {
e.printStackTrace();
}
// Kawg creation ntawm drl ntaub ntawv los mus zoo ntawv

// Siv cov ntaub ntawv DRL
kbuilder.ADD(ResourceFactory.newClassPathResource(“RuleFile.drl”, DroolMessage.class ), ResourceType.DRL );

// Xyuas cov builder rau cov uas tsis
Yog hais tias ( kbuilder.hasErrors() ) {
System.out.println(“kbuilder muaj cov uas tsis”);
System.out.println( kbuilder.getErrors().toString());
}
// tau rau tej pob khoom compiled (uas yog serializable)
Thaum kawg Collection pkgs = kbuilder.getKnowledgePackages();

// ntxiv rau tej pob khoom rau ib knowledgebase (deploy rau tej pob khoom kev paub txog).
Thaum kawg KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);

// Tsim kev kho stateful
Thaum kawg StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

// Cov kev tshwm sim set listeners
ksession.addEventListener(tshiab DebugAgendaEventListener());
ksession.addEventListener(tshiab DebugWorkingMemoryEventListener());

// Sau cov lus ntawv
DroolMessage messagetxt = tshiab DroolMessage();
messagetxt.setMessage(“FlightNumber”);

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

// Ntxig rau hauv kev sib kho thiab hluav taws kev cai
System.out.println(“ntxig rau hauv kev sib kho”);
ksession.insert(messagetxt);
ksession.insert(messagetxt1);
System.out.println(“ua ntej firing txoj cai”);
ksession.fireAllRules();
System.out.println(“tom qab firing txoj cai”);
ksession.dispose();
System.out.println(“tom qab muab”);
}
}








* *Cov ntaub ntawv thib ob yog ib tug ' DroolMessage.java’ pojo cov chav kawm ntawv. Nws tuas cov qhov tseem ceeb los ntawm cov hoob piav los saum no lub ntsiab 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;

// Constructor
pej DroolMessage() {
System.out.println(“initializing lus”);
}
// Txoj kev setter thiab getter
pej xeem txoj hlua getMessage() {
xa lus;
}
pej xeem tsis muaj dabtsis setMessage(Txoj hlua xov) {
this.Message = xov;
}
// sim txoj kev kuaj tau cov kev tso cai
pej xeem tsis muaj dabtsis(Txoj hlua kuaj) {
System.out.println(“Parsing pib thiab xaus rau txoj hauj lwm: “+ntsuam xyuas);
}
}

** Nram no yog ib txoj cai thov generated ntawm lub ' DroolExcelDemo.java’ hoob.

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

// txoj cai tswj qhov tseem ceeb ntawm B13, header ntawm B7
txoj cai “DroolExcelRule_13”
Thauj tw
msg:DroolMessage(lus sam == “FlightCode”)
ces
msg.test(“7,8”);
kawg

** Nram qab no yog cov input excel based txoj cai thov kom lub ' DroolExcelDemo.java’ chav kawm ntawv saum toj no.


15 xav txog"Yuav siv li cas drools cov lus txiav txim hauv spreadsheet cov hom ntawv uas yuav coj kev cai?

    1. kaushik Ncej sau

      Kuv tuaj los Daniel,

      Tsaug rau koj cov paj. Thov qhia rau kuv paub tias koj yuav tsum tau qhia kiag. Kuv yuav xa cov excel ntawv.

      Cheers
      /KP

    1. kaushik Ncej sau

      Kuv tuaj los Aakash,

      Thov xa kuv koj yuav tsum tau qhia kiag. Kuv yuav sim Kuv zoo tshaj plaws los pab koj.

      Tsaug,
      Techalpine

  1. Manideepa

    nyob zoo,
    Tau koj thov muab cov ntaub ntawv DroolExcel.xls?
    Kuv xav mus coj tau cov kev pab cuam no. Kuv yog Drools tshiab thiab xav kom koj to taub txog nws xwb li cas.
    Kuv email chaw nyob: b4umani2003@gmail.com

    Tsaug,
    Mani

  2. kaushik Ncej sau

    Kuv tuaj los Manideepa,

    Cov excel pawg los yog twb muaj tus ncej. Koj yuav siv nws li nws yog. Yog hais tias koj muaj tej yam yuav tsum tau lwm, qhia rau kuv paub. Kuv yuav hlub koj tshawb qhov teeb meem.

    Tsaug
    /KP

  3. sunil

    Ua koj muab piv txwv li ib tug DRL qhov twg kuv yuav tau txais cov ntaub ntawv los ntawm Database thiab hloov txog .

  4. Shekhar Shaw

    Nyob zoo,
    Txawm kuv yuav ua txim tuag, Nws yog raising ib cov ntaub ntawv nrhiav tsis tau yuam kev thaum ua qab kab.

    // Siv cov ntaub ntawv DRL
    kbuilder.ADD(ResourceFactory.newClassPathResource("RuleFile.drl", DroolMessage.class ), ResourceType.DRL );

    Ua koj thov kom muab dab tsi ntxiv kuv yuav tsum tau ua.

    Regards,
    Shekhar Shaw

  5. Rahul Pandey

    nyob zoo
    Nws tseem zoo heev kuv tseg blog. tab sis kuv xav kom neeg txoj cai tswj tej ntaub ntawv template yeej tsis tau muab tej ntaub ntawv txoj cai.

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share