在 JBPM 中构建失败

Build failed in JBPM

我在工作流中添加了一个脚本任务,并在 pom.xml 中添加了依赖项,如下所示。 enter image description here

并且添加了 Maven 依赖。

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

构建失败并出现错误:

[KBase: defaultKieBase]: Process Compilation error Syntax error on token "import", throw expected org.json.JSONArray cannot be resolved to

但是构建失败了。你能帮忙吗

enter image description here

脚本任务代码:

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);
            }
        }

在脚本任务中,我们从不导入 classes,每次调用 class 时都必须键入其完整路径。这不仅适用于库,即使您创建自己的 class(在 jBPM 中称为数据对象),您也必须指定其完整的包路径。即使你想声明一个字符串值,你也必须把 java.lang.String name;

所以这里每次使用都要指定JSONArrayJSONObject的路径。所以你必须将你的代码替换为

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()获取任务中变量的实际值,每次调用变量时都必须将其转换为请求的数据类型。