Обновите входные переменные в бизнес-правиле jbpm - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь использовать бизнес-правило в процессе jbpm. Бизнес-правило имеет входные и выходные данные, связанные с переменной процесса.

Я пытаюсь вставить и передать параметр процессу. Правило учитывает вставленное значение в процесс вместо рассмотрения бизнес-правила. Я следовал за этим Туто . Я думаю, что я что-то зацикливаю, не могли бы вы помочь, пожалуйста.

Ожидаемое поведение должно быть в выводе консоли incrementation firing... New Value:2 вместо 6.

Следующий код показывает бизнес-правило:

rule "incrementation"
ruleflow-group "incrementInt"
        no-loop
        when
                unEntier : java.lang.Integer()
        then 
                retract( unEntier );
                unEntier++;
                System.out.println("incrementation firing... New Value:"+unEntier);
                insert(unEntier);
end

Вот как я называю процесс:

Command c0 = CommandFactory.newInsert(new java.lang.Integer(5));
HashMap<String, Object> h = new HashMap<String, Object>() {
  {
    put("inint", new java.lang.Integer(1));
  }
};
Command c1 = CommandFactory.newStartProcess("test.thirdProcess", h);

kieSession.execute(CommandFactory.newBatchExecution(Arrays.asList(c0, c1)));

Это вывод вызова:

ENTRY: int = 1
11342 [main] ERROR org.jbpm.workflow.instance.node.RuleSetNodeInstance  - Could not find variable scope for variable var_test.thirdProcess_inint
11342 [main] ERROR org.jbpm.workflow.instance.node.RuleSetNodeInstance  - when trying to execute RuleSetNode Task
11342 [main] ERROR org.jbpm.workflow.instance.node.RuleSetNodeInstance  - Continuing without setting parameter.
incrementation firing... New Value:6
11357 [main] WARN  org.jbpm.workflow.instance.node.RuleSetNodeInstance  - Could not find variable scope for variable var_test.thirdProcess_inint
EXIT: int = 1

На следующем рисунке показан реализованный процесс: jbpm called process

...