Иерархия: Если любому сотруднику платят 100 тыс., Organization.maxSalary = 100 тыс. Если любому сотруднику платят 50 тыс., Organization.maxSalary = 50 тыс., Если никто другой не получает 100 тыс.
ДХО
rule "Salary 100000"
when
$org: Organization()
$empDetail: EmployeeDetail() from $org.employeeDetail
$employee: Employee( $org.maxSalary != 100000,
salary == 100000
) from $empDetail.employees
then
System.out.println("Salary 100000: " + $org.maxSalary);
$org.maxSalary = 100000;
end
rule "Salary 50000"
when
$org: Organization()
$empDetail: EmployeeDetail() from $org.employeeDetail
$employee: Employee( $org.maxSalary != 100000
&& $org.maxSalary != 50000,
salary == 50000
) from $empDetail.milestoneDetails
then
System.out.println("Salary 50000: " + $org.maxSalary);
$org.maxSalary = 50000;
end
Ввод JSON 1:
{
"Organization": {
"EmployeeDetail": {
"Employees" : [
{
"name": "willie"
"salary": "50000",
},
{
"name": "john"
"salary": "100000",
},
{
"name": "jack"
"salary": "50000",
},
{
"name": "jim"
"salary": "50000",
}
]
}
}
}
Ожидаемый выход консоли: Salary 100000: null
Фактический выход консоли: Salary 100000: null
Все хорошо.
Вход JSON 2:
{
"Organization": {
"EmployeeDetail": {
"Employees" : [
{
"name": "willie"
"salary": "50000",
},
{
"name": "jack"
"salary": "50000",
},
{
"name": "jim"
"salary": "50000",
}
]
}
}
}
Ожидаемый вывод консоли: Salary 50000: null
Фактическая консольвывод:
Salary 50000: null
Salary 50000: 50000
Salary 50000: 50000
В обоих случаях результат JSON хороший, если Organization.maxSalary
установлено правильно. Но почему вывод консоли странный?