hyperjumptech/grule-rule-engine

Error comparing map object using ">"

Closed this issue · 1 comments

Describe the bug
I'm getting an error in loading the rule:

rule tbl_total_hours_miss "Table Total Hours Missing" {
when
JSONData.tbl_row1_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row2_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row3_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row4_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row5_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row6_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row7_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row8_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row9_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row10_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row11_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row12_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row13_TotalHours["Value"] > 24.0 ||
JSONData.tbl_row14_TotalHours["Value"] > 24.0
then
RCodes.RCSlice.Append("HRS02");
Retract("tbl_total_hours_miss");
}

The error is:

"error": "got 3 error(s) in grl the script"}
panic: expression JSONData.tbl_row1_TotalHours["Value"]>24.0 is not on the clone table - E(EL(E(EA(A(V(O:V(O:V(N:JSONData)->tbl_row1_TotalHours)->MAS(E(EA(A(C(string->"Value"))))))))))>ER(E(EA(A(C(float64->24.000000))))))

To Reproduce
Steps to reproduce the behavior:
Try to load that rule

Expected behavior
Rule would load without issue

Additional context
Seems like Grule is assuming that JSONData.tbl_row12_TotalHours["Value"] is a string?

Nevermind. User error!