Alfresco 如何在Activiti 5.22.0中设置作业到期日?
我得到了对作业对象的引用,如下所示:Alfresco 如何在Activiti 5.22.0中设置作业到期日?,alfresco,activiti,bpmn,alfresco-enterprise,Alfresco,Activiti,Bpmn,Alfresco Enterprise,我得到了对作业对象的引用,如下所示: Job timer = managementService.createJobQuery().processInstanceId(execution.getParentId()).singleResult(); 谁能告诉我如何将计时器的截止日期设置为任意值 Activiti 5.22.0中的日期或时间段 我在管理服务或工作课程中找不到合适的方法 致以最诚挚的问候。对我来说,我只有一种方法可以做到这一点: 创建一个新计时器并从旧计时器设置配置。 这是我如何做
Job timer = managementService.createJobQuery().processInstanceId(execution.getParentId()).singleResult();
谁能告诉我如何将计时器的截止日期设置为任意值
Activiti 5.22.0中的日期或时间段
我在管理服务或工作课程中找不到合适的方法
致以最诚挚的问候。对我来说,我只有一种方法可以做到这一点:
创建一个新计时器并从旧计时器设置配置。
这是我如何做到这一点的一个例子,不要忘记修复它,以避免NPE
TimerEntity oldTimer = (TimerEntity) managementService.createJobQuery()
.processInstanceId("YOUR_PROCESS_INSTANCE_ID")
.timers()
.singleResult();
commandExecutor.execute(new Command<Void>() {
@Override
public Void execute(CommandContext commandContext) {
oldTimer.delete();
TimerEntity newTimer = new TimerEntity();
newTimer.setJobHandlerConfiguration(oldTimer.getJobHandlerConfiguration());
newTimer.setJobHandlerType(oldTimer.getJobHandlerType());
newTimer.setExclusive(oldTimer.isExclusive());
newTimer.setRepeat(oldTimer.getRepeat());
newTimer.setRetries(oldTimer.getRetries());
newTimer.setEndDate(oldTimer.getEndDate());
newTimer.setExecutionId(oldTimer.getExecutionId());
newTimer.setProcessInstanceId(oldTimer.getProcessInstanceId());
newTimer.setProcessDefinitionId(oldTimer.getProcessDefinitionId());
newTimer.setTenantId(oldTimer.getTenantId());
// Sets a new date
newTimer.setDuedate(new Date());
commandContext.getJobEntityManager().schedule(newTimer);
return null;
}
});
TimerEntity oldTimer=(TimerEntity)managementService.createJobQuery()
.processInstanceId(“您的\u进程\u实例\u ID”)
.计时器()
.singleResult();
commandExecutor.execute(新命令(){
@凌驾
public Void execute(CommandContext CommandContext){
delete();
TimerEntity newTimer=新的TimerEntity();
newTimer.setJobHandlerConfiguration(oldTimer.getJobHandlerConfiguration());
newTimer.setJobHandlerType(oldTimer.getJobHandlerType());
newTimer.setExclusive(oldTimer.isExclusive());
newTimer.setRepeat(oldTimer.getRepeat());
newTimer.setRetries(oldTimer.getRetries());
newTimer.setEndDate(oldTimer.getEndDate());
newTimer.setExecutionId(oldTimer.getExecutionId());
newTimer.setProcessInstanceId(oldTimer.getProcessInstanceId());
newTimer.setProcessDefinitionId(oldTimer.getProcessDefinitionId());
newTimer.setTenantId(oldTimer.getTenantId());
//设定新日期
newTimer.setDuedate(newDate());
commandContext.getJobEntityManager().schedule(newTimer);
返回null;
}
});
运行时无法更改计时器,最好在流程定义中使用适当的ISO8601计时器间隔