assertEquals(new Integer(IWorkItem.INITIALIZED), ((IWorkItem) workItemList.get(0)).getState());
List<IToken> tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
IToken token = (IToken)tokensList.get(0);
assertEquals(1,token.getStepNumber().intValue());
final String workItem1Id = ((IWorkItem) workItemList.get(0)).getId();
//-------------------------------------
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem1 = workflowSession.findWorkItemById(workItem1Id);
// IProcessInstance processInstance = runtimeContext.getPersistenceService().findProcessInstanceById(currentProcessInstance.getId());
workItem1.claim();
workItem1.complete();
} catch (EngineException ex) {
ex.printStackTrace();
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
ex.printStackTrace();
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}catch(Exception ex){
ex.printStackTrace();
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity1");
assertNotNull(taskInstanceList);
assertEquals(2, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
if (taskInst.getState()==ITaskInstance.COMPLETED){
taskInst = ((ITaskInstance) taskInstanceList.get(1));
}
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(2,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity1.Task1");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.RUNNING), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(2,token.getStepNumber().intValue());
final String workItem11Id = ((IWorkItem) workItemList.get(0)).getId();
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem11Id);
IProcessInstance currentProcessInstance1 = workflowSession.findProcessInstanceById(currentProcessInstance.getId());
currentProcessInstance1.setProcessInstanceVariable("loopFlag", 2);
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity2");
assertNotNull(taskInstanceList);
assertEquals(1, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(3,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity2.Task2");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.INITIALIZED), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(3,token.getStepNumber().intValue());
final String workItem2Id = ((IWorkItem) workItemList.get(0)).getId();
//--------------------------------------
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem2Id);
// IProcessInstance processInstance = runtimeContext.getPersistenceService().findProcessInstanceById(currentProcessInstance.getId());
workItem.claim();
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity2");
assertNotNull(taskInstanceList);
assertEquals(2, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
if (taskInst.getState()==ITaskInstance.COMPLETED){
taskInst = ((ITaskInstance) taskInstanceList.get(1));
}
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(4,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity2.Task2");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.RUNNING), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(4,token.getStepNumber().intValue());
final String workItem21Id = ((IWorkItem) workItemList.get(0)).getId();
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem21Id);
IProcessInstance currentProcessInstance1 = workflowSession.findProcessInstanceById(currentProcessInstance.getId());;
currentProcessInstance1.setProcessInstanceVariable("loopFlag", 4);
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity3");
assertNotNull(taskInstanceList);
assertEquals(1, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(5,taskInst.getStepNumber().intValue());
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity4");
assertNotNull(taskInstanceList);
assertEquals(1, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
assertEquals(new Integer(ITaskInstance.COMPLETED),taskInst .getState());
assertEquals(5,taskInst.getStepNumber().intValue());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(2, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(5,token.getStepNumber().intValue());
token = (IToken)tokensList.get(1);
assertEquals(5,token.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity3.Task3");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.INITIALIZED), ((IWorkItem) workItemList.get(0)).getState());
final String workItem3Id = ((IWorkItem) workItemList.get(0)).getId();
//----------------------------------
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem3Id);
// IProcessInstance processInstance = runtimeContext.getPersistenceService().findProcessInstanceById(currentProcessInstance.getId());
workItem.claim();
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity3");
assertNotNull(taskInstanceList);
assertEquals(2, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
if (taskInst.getState()==ITaskInstance.COMPLETED){
taskInst = ((ITaskInstance) taskInstanceList.get(1));
}
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(6,taskInst.getStepNumber().intValue());
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity4");
assertNotNull(taskInstanceList);
assertEquals(1, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
assertEquals(new Integer(ITaskInstance.COMPLETED),taskInst .getState());
assertEquals(5,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity3.Task3");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.RUNNING), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(2, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(6,token.getStepNumber().intValue());
final String workItem31Id = ((IWorkItem) workItemList.get(0)).getId();
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem31Id);
IProcessInstance currentProcessInstance1 = workflowSession.findProcessInstanceById(currentProcessInstance.getId());
currentProcessInstance1.setProcessInstanceVariable("loopFlag", 5);
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity5");
assertNotNull(taskInstanceList);
assertEquals(1, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(7,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity5.Task5");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.INITIALIZED), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
token = (IToken)tokensList.get(0);
assertEquals(7,token.getStepNumber().intValue());
final String workItem5Id = ((IWorkItem) workItemList.get(0)).getId();
//-------------------------------
this.transactionTemplate.execute(new TransactionCallback()
{
public Object doInTransaction(TransactionStatus status)
{
try {
IWorkflowSession workflowSession = runtimeContext.getWorkflowSession();
//启动"/workflowdefinition/Loop.xml
IWorkItem workItem = workflowSession.findWorkItemById(workItem5Id);
// IProcessInstance processInstance = runtimeContext.getPersistenceService().findProcessInstanceById(currentProcessInstance.getId());
workItem.claim();
workItem.complete();
} catch (EngineException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KernelException ex) {
Logger.getLogger(FireWorkflowEngineTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
});
taskInstanceList = persistenceService.findTaskInstancesForProcessInstance(currentProcessInstance.getId(), "Loop.Activity5");
assertNotNull(taskInstanceList);
assertEquals(2, taskInstanceList.size());
taskInst = ((ITaskInstance) taskInstanceList.get(0));
if (taskInst.getState()==ITaskInstance.COMPLETED){
taskInst = ((ITaskInstance) taskInstanceList.get(1));
}
assertEquals(new Integer(ITaskInstance.RUNNING),taskInst .getState());
assertEquals(8,taskInst.getStepNumber().intValue());
workItemList = persistenceService.findTodoWorkItems(CurrentUserAssignmentHandlerMock.ACTOR_ID, "Loop", "Loop.Activity5.Task5");
assertNotNull(workItemList);
assertEquals(1, workItemList.size());
assertEquals(new Integer(IWorkItem.RUNNING), ((IWorkItem) workItemList.get(0)).getState());
tokensList = persistenceService.findTokensForProcessInstance(currentProcessInstance.getId(), null);
assertNotNull(tokensList);
assertEquals(1, tokensList.size());
token = (IToken)tokensList.get(0);
// IToken token2 = (IToken)tokensList.get(1);
assertEquals(8,token.getStepNumber().intValue());
final String workItem51Id = ((IWorkItem) workItemList.get(0)).getId();
this.transactionTemplate.execute(new TransactionCallback()
{