#drools
#пускает слюни
Вопрос:
Я развертываю проект с некоторыми правилами, используя workbench (7.17.0), а затем запрашиваю kie-сервер следующим образом:
url: http://*.*.*.*:*/kie-server/services/rest/server/containers/instances/LtangsTestProject
Тело:
{
"commands": [
{
"insert": {
"out-identifier": "person",
"object": {
"com.riskspace.ltangstestproject.Person": {
"name": "linweijiang",
"age": 27,
"balance": 120000.00
}
}
}
},
{
"fire-all-rules": {
"out-identifier": "firedActivations",
"rule-name-equals-agenda-filter": "TreeTest_0"
}
}
]
}
Я ожидал, что запрос запустит только одно вызванное правило TreeTest_0
, оказывается, что оно все еще запускало все правила.
Я проверил проект drools (7.42.0-SNAPSHOT), коды поиска приведены ниже:
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) {
String max = null;
String outIdentifier = null;
while ( reader.hasMoreChildren() ) {
reader.moveDown();
if ( "max".equals( reader.getNodeName() ) ) {
max = reader.getValue();
} else if ( "out-identifier".equals( reader.getNodeName() ) ) {
outIdentifier = reader.getValue();
} else {
throw new IllegalArgumentException( "fire-all-rules does not support the child element name=''" reader.getNodeName() "' value=" reader.getValue() "'" );
}
reader.moveUp();
}
FireAllRulesCommand cmd;
if ( max != null ) {
cmd = new FireAllRulesCommand( Integer.parseInt( max ) );
} else {
cmd = new FireAllRulesCommand();
}
if ( outIdentifier != null ) {
cmd.setOutIdentifier(outIdentifier);
}
return cmd;
}
Мне интересно, почему rest api kie-server не поддерживает фильтр имен правил.
Пожалуйста, помогите, как я могу это сделать, запускать только те правила, которые мне нужны, вместо того, чтобы запускать все.
Спасибо, чувак.
Комментарии:
1. Ваш первый вопрос (
I am wondering why kie-server rest api do not support rule name filter
) не по теме — на него могут ответить только разработчики приложения. Однако второй вопрос (как запускать только определенные правила) относится к теме.2. Свойство явно
"agenda-filter"
включено в fire-all-rules (не rule-name-equals-agenda-filter).agenda-filter). Но я не могу найти никаких примеров того, каким должен быть синтаксис.3. Спасибо, чувак. Я запустил «agenda-filter», все еще не сработало.