Ошибка сборки в JBPM - PullRequest
       6

Ошибка сборки в JBPM

0 голосов
/ 28 февраля 2020

Я добавил задачу сценария в рабочий процесс и добавил зависимость в pom. xml, как показано ниже. введите описание изображения здесь

И добавлена ​​зависимость Maven.

<dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20190722</version>
            <scope>provided</scope>
</dependency>

Сбой Builid с ошибкой:

[KBase: defaultKieBase ]: Ошибка компиляции процесса. Синтаксическая ошибка в токене «import», выбрасывается ожидаемая организация. json .JSONArray не может быть преобразован в

, но сборка не выполняется. Не могли бы вы помочь

введите описание изображения здесь

код задачи скрипта:

import org.json.JSONArray;
import org.json.JSONObject;

JSONArray objects = new JSONArray(Result);
        JSONArray finalArray = new JSONArray();
        for (int i = 0; i < objects.length(); i++) {
            JSONObject jsonObject = objects.getJSONObject(i);
            if (jsonObject.getString("ac_id").equals(acc_id)) {
                finalArray.put(jsonObject);
            }
        }

1 Ответ

0 голосов
/ 28 февраля 2020

в скриптовом задании мы никогда не импортируем классы, каждый раз, когда вы вызываете класс, вы должны ввести его полный путь. это применяется не только для библиотек, даже если вы создаете свой собственный класс (называемый Data Object в jBPM), вы должны указать ie его полный путь к пакету. Даже если вы хотите объявить строковое значение, вы должны поставить java.lang.String name;

Так что здесь, вы должны указывать путь JSONArray и JSONObject каждый раз, когда вы его используете. Поэтому вы должны заменить свой код на

java.lang.String resTmp = (java.lang.String) kcontext.getVariable("Result");
org.json.JSONArray objects = new org.json.JSONArray(resTmp);
org.json.JSONArray finalArray = new org.json.JSONArray();
for (int i = 0; i < objects.length(); i++) {
    JSONObject jsonObject = objects.getJSONObject(i);
    if (jsonObject.getString("ac_id").equals(acc_id)) {
        finalArray.put(jsonObject);
    }
}   

, используя kcontext.getVariable(), чтобы получить фактическое значение переменной в задаче, и каждый раз, когда вы вызываете переменную, вы должны приводить ее к требуемому типу данных. .

...