代码:
package com.cloud.test;
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task;
import org.jbpm.pvm.internal.task.TaskImpl;
/**
* 子任务测试
* @author Administrator
*
*/
public class SubTask {
/**
* 获取流程引擎
* @return
*/
public static ProcessEngine getProcessEngine() {
Configuration cfg = new Configuration();
return cfg.buildProcessEngine();
}
public void create() {
ProcessEngine engine = getProcessEngine();
//启动任务
engine.getExecutionService().startProcessInstanceByKey("SubTask");
//创建子任务
TaskService ts = engine.getTaskService();
List<Task> tasks = ts.findPersonalTasks("abc");
if (tasks !=null && tasks.size() >= 1) {
Task parent = tasks.get(0);
System.out.println(parent.getId() + "_" + parent.getName());
Task task = ts.newTask(parent.getId());
task.setAssignee("abc");
((TaskImpl)task).setSignalling(false);
task.setName("subTask_new");
ts.saveTask(task);
System.out.println("success");
}
}
public void audit() {
ProcessEngine engine = getProcessEngine();
TaskService ts = engine.getTaskService();
List<Task> tasks = ts.findPersonalTasks("abc");
for (Task task : tasks) {
System.out.println(task.getId() + "_" + task.getName());
if ("subTask_new".equals(task.getName())) {
ts.completeTask(task.getId());
}
}
}
public static void main(String[] args) {
// new SubTask().create();
new SubTask().audit();
}
}
xml:
<?xml version="1.0" encoding="UTF-8"?>
<process name="SubTask" xmlns="http://jbpm.org/4.4/jpdl">
<start name="start1" g="182,42,48,48">
<transition name="to task1" to="task1" g="-53,-17"/>
</start>
<task name="task1" g="159,132,92,52" assignee="abc">
<transition name="to end1" to="end1" g="-47,-17"/>
</task>
<end name="end1" g="182,245,48,48"/>
</process>
报错:
Exception in thread "main" org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [org.jbpm.pvm.internal.task.TaskImpl#440004]
at org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1041)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:188)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)
at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:241)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:145)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56)
at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:107)
at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:64)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:57)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)
at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:88)
at com.cloud.test.SubTask.audit(SubTask.java:59)
at com.cloud.test.SubTask.main(SubTask.java:67)
分享到:
相关推荐
java-subtask1
“jira subtask Shorable”是Jira SubStasks的微妙增强。 这允许您通过拖动和丢弃来移动它们,而不是使用令人讨厌的小箭头。 将子任务拖到所需位置后,其位置将透明地保存,因此不需要重新加载。
拖放以重新排序子任务。 “ JIRA子任务可排序”是JIRA子任务的细微增强。这使您可以通过拖放来移动它们,而不是使用烦人的小箭头。将子任务拖动到所需位置后,其位置将透明保存,因此不需要重新加载。...
npm install gulp-subtask 用法 首先。 用gulp初始化gulp-subtask。 var g = require ( 'gulp' ) ; var SubTask = require ( 'gulp-subtask' ) ( g ) ; var task = new SubTask ( ) . src ( 'test/js/*.js'...
特征.pick(path) 安全地选择所需的数据使用对象创建承诺并使用键/值执行** 现在 subtask.js 建立在 promise 之上,并且与旧版本相比发生了很大变化。 如果您想检查旧 API,请检查。如何使用定义任务任务由task ...
子任务构建基础使用 Seed 和。 最初是作为大学项目开发的。
angular-lesson1-task2-subtask11-12
为 JIRA 批量创建问题在 JIRA 中一次创建多个问题。 所有常规 JIRA 问题都可以使用此功能,所有问题都将在用户拥有的权限下创建。 与 JIRA 导入器插件不同,该插件将识别并强制执行您的配置 - 必须填写所有必填字段...
禁用jira子任务标签的事件传播 该插件主要用于禁用jira子任务标签的事件传播,从而解决了子任务url重定向故障的问题。 支持语言:English (United States)
对于多目标优化问题的算法比较需要计算IGD值需要用到PF,本资源实现UF系列测试问题的PF,且这些PF是根据数学方法求得,力求分布均匀
网络任务基于和轻量级 Web 框架特征使开发人员将复杂的 Web 应用程序逻辑解耦为小逻辑块以供重用,并加快实现和测试。 所有逻辑组件都是 commonjs 中的 webtasks。 所有 webtask 都是异步的。 React 支持(和服务器...
如题,用于lemon去选手子文件夹。下载后查看readme使用。
addSequence ( task, subtask, halt, ... ) 将要添加到主task的subtask排队。 如果halt为真,则子任务被标记为暂停任务。 当排队的任务被提升为子任务时,这会触发 subtask: added( ... ) 回调。 addSubtask ( ...
用于Kanboard的子任务日历预测插件 该插件显示用户日历中子任务的估计。 必须填写用户时间表,才能查看日历中的时隙。 要求 看板> = 1.0.29 <= 1.0.37 时间表插件 作者 弗雷德里克·古洛特(Frederic Guillot) ...
吉拉 用于外壳程序脚本的JIRA Client。 配置 转到您的个人资料以获取API令牌 : ...export JIRA_PASS= " your-token-... if [[ $( issue_is_subtask " AA-999 " ) == " true " ]] ; then echo " is subtask " if 获取问
例如: - [x] this is a complete item- [ ] this is an incomplete item任务列表可以嵌套以更好地组织您的任务: - [ ] a bigger project - [ ] first subtask - [ ] follow up subtask - [ ] final subtask- [ ] ...
语言:English 导航 摘要作为Scrum Master,我必须手动为Sprint准备好的故事创建所有子任务。该过程需要一段时间,必须为每个故事创建8-10个子任务(每次Sprint大约20个),当其中5-6个是默认子任务时,所有故事都是...
在大多数Codechef竞赛中,我们必须面对着在浏览器中打开许多标签的问题,并且不得不反复查看提交的问题(由于排队时间较长)。 这是比赛中的一大疏远。 这是解决方案,此chrome扩展程序将在比赛中通知用户有关其裁决...
TaskManager 传输数据时,不同的 TaskManager 上的两个 Subtask 间通常根据 key 的数量有多个 Channel,这些 Channel 会复用同一个 TaskManager 级别的 TCP 链接,并且共享接收端 Subtask 级别的 Buffer Pool。...
instruct--task:subtask 例如: exotic--vocab:mem 运行 cd word-memorization python3 VocabGPT.py 查询 查询时,请使用 [英语单词]--[vocab:任务名称] 例如 trenchant--vocab # 当任务名称缺失时默认为exp...