jbpm - 在 JBPM 中构建失败
问题描述
我在工作流中添加了一个脚本任务,并在 pom.xml 中添加了依赖项,如下所示。 在此处输入图像描述
并添加了 Maven 依赖项。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20190722</version>
<scope>provided</scope>
</dependency>
构建失败并出现错误:
[KBase: defaultKieBase]: Process Compilation error 令牌“导入”上的语法错误,抛出预期的 org.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);
}
}
解决方案
在脚本任务中,我们从不导入类,每次调用类时都必须输入其完整路径。这不仅适用于库,即使您创建自己的类(在 jBPM 中称为数据对象),您也必须指定其完整的包路径。即使你想声明一个字符串值,你也必须把 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()
获取任务中变量的实际值,每次调用变量时都必须将其转换为请求的数据类型。
推荐阅读
- r - 用时间表示为咒语重塑数据
- r - 合并两个不完全因子
- c - 了解如何从内部函数更新原始二维数组
- firebase - React Native 0.57 + React Native Firebase Crashlytics - 报告未在 iOS 中提交
- sql - SQL 到 JSON 父/子关系
- ruby-on-rails - Ruby rails 如何从数组中的数组中的数组中获取值?
- excel - 匹配字符串的开头并从单独的工作表或列表中返回值,Excel
- google-sheets - Google 表格与 Zapier 的集成:如何基于模型创建新的电子表格
- javascript - RollOver 目标视网膜显示在 JavaScript 中不起作用
- javascript - 根据选择的偏好匹配数据