Как использовать «rule-name-agenda-filter», запрашивающий Kie-сервер с использованием Http Json (rest api)

#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», все еще не сработало.