Saya mencoba membuat file drl drools menggunakan java secara terprogram dengan mengikuti metode.

Saya dapat membuat aturan sederhana di bawah ini dengan aturan sederhana dengan program java.

rule "Demo_testing"
when
    $employee : EmployeeModel( department contains "Accounts" )
then
//

Dan ini dalam satu bekerja dengan baik untuk saya, tetapi saya perlu mendapatkan informasi karyawan dari daftar. Suka $employee : EmployeeModel( department berisi "Accounts", role = "manager" ) dari $employeeList

Saya menemukan daftar pada deskriptor yang tersedia di drools compiler di sini Tetapi saya tidak tahu deskriptor mana yang perlu saya gunakan dan bagaimana mendefinisikannya.?

Tolong siapa pun membantu saya untuk relove yang satu ini. Terima kasih sebelumnya.

PatternDescr employeePatternDescr=new PatternDescr();
employeePatternDescr.setIdentifier("$employee");
employeePatternDescr.setObjectType("EmployeeModel");
RelationalExprDescr relationalExprDescr = null;
constraintDescr.setExpression("department");
ExprConstraintDescr constraintDescr2=new ExprConstraintDescr();
constraintDescr2.setExpression("Accounts" );
relationalExprDescr = new RelationalExprDescr("contains" ,false, null, constraintDescr, constraintDescr2);
employeePatternDescr.addConstraint(relationalExprDescr);
andDescr.addDescr(employeePatternDescr);
ruleDescr.setLhs(andDescr);
0
Thilakar Raj 10 Juli 2020, 13:02

1 menjawab

Jawaban Terbaik

Hai terima kasih atas saran Anda akhirnya saya selesai dengan menggunakan DariDescr.

Sesuai kebutuhan saya, saya dapat membuat file Rule drl dengan menggunakan kode Java di bawah ini.

PatternDescr employeePatternDescr=new PatternDescr();
employeePatternDescr.setIdentifier("$employee");
employeePatternDescr.setObjectType("EmployeeModel");
**FromDescr fromDescr = new FromDescr();
fromDescr.setDataSource( new MVELExprDescr( "$employeeList") );
employeePatternDescr.setSource(fromDescr);**
RelationalExprDescr relationalExprDescr = null;
constraintDescr.setExpression("department");
ExprConstraintDescr constraintDescr2=new ExprConstraintDescr();
constraintDescr2.setExpression("Accounts" );
relationalExprDescr = new RelationalExprDescr("contains" ,false, null, 
constraintDescr, constraintDescr2);
employeePatternDescr.addConstraint(relationalExprDescr);
andDescr.addDescr(employeePatternDescr);
ruleDescr.setLhs(andDescr);

Kode ini menghasilkan aturan sebagai berikut

rule "Demo_testing"
when
    $employee : EmployeeModel( department contains "Accounts" ) from $employeeList
then
System.out.println("Rule executed");
0
Thilakar Raj 18 Juli 2020, 13:05