Я проектирую таблицу управляемых решений для выполнения некоторых рабочих элементов, которые просто распечатывают некоторые тексты в функции executeWorkItem.
В настройках рабочей среды я добавил обработчики рабочих элементов в сеанс с состоянием.Также я определил их в файле виджета.
Правила в таблице управляемых решений довольно просты.В представлении исходного кода это выглядит следующим образом:
//from row number: 1
rule "Row 1 dt1"
dialect "mvel"
when
then
org.drools.core.process.instance.WorkItemManager wim = (org.drools.core.process.instance.WorkItemManager) drools.getWorkingMemory().getWorkItemManager();
org.drools.core.process.instance.impl.WorkItemImpl wiQianhaiAddrWorkItemHandler = new org.drools.core.process.instance.impl.WorkItemImpl();
wiQianhaiAddrWorkItemHandler.setName( "QianhaiAddrWorkItemHandler" );
wim.internalExecuteWorkItem( wiQianhaiAddrWorkItemHandler );
end
Нет условной проверки только потому, что я хочу запускать ее каждый раз, когда на сервер KIE отправляется запрос.
Этот запрос отправляется наСервер KIE
URL:http://localhost:8080/kie-server/services/rest/server/containers/instances/poc2_1.0.1
body:
{"commands": [
{
"fire-all-rules": {}
}
]}
Я вижу, что рабочий элемент был выполнен при первом запуске запроса на сервере KIE.Тем не менее, он больше не запускается со второго раза, потому что я не вижу никакой печати в консоли.
Ответ от сервера KIE всегда корректен, как указано ниже
{
"type" : "SUCCESS",
"msg" : "Container poc2_1.0.1 successfully called.",
"result" : {
"execution-results" : {
"results" : [ ],
"facts" : [ ]
}
}
}
Могу ли язнаете, как выполнить рабочий элемент в соответствии с моей отправленной командой "fire-all-rules"?Или это поведение по умолчанию в JBPM?