Red de conocimiento informático - Computadora portátil - Cuando el proceso se detiene en una determinada tarea, ¿cómo obtienen las actividades las tareas anteriores y siguientes, o cómo aprender de la tarea actual?

Cuando el proceso se detiene en una determinada tarea, ¿cómo obtienen las actividades las tareas anteriores y siguientes, o cómo aprender de la tarea actual?

1. Al obtener la tarea anterior, puede obtener todas las tareas ordenadas en orden descendente por tiempo de creación del nodo a través de act_hi_taskinst en la tabla proc_inst_id_ y luego determinar la posición de orden de la tarea actual en función del ID de la tarea comparada, determinando así la tarea anterior. de la tarea actual

2. Obtenga la siguiente tarea. Si se ha generado la siguiente tarea de la tarea actual, consulte 1. De lo contrario, debe analizar bpm para obtener el código del nodo. se ha generado. Consulte 1. De lo contrario, debe analizar bpm para obtener el código del nodo de la siguiente manera:

public FlowNodegt; Instancia de tarea histórica myTask = ProcessEngine.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskid).singleResult();

String ProcessDefinitionId = myTask.getProcessDefinitionId()

BpmnModel bpmnModel =; repositoryService.getBpmnModel(processDefinitionId);

String myActivityId = myTask.getTaskDefinitionKid();

String myActivityId = myTask.getTaskDefinitionKid(); .getTaskDefinitionKid();

String myActivityId = myTask.getTaskDefinitionKid()getTaskDefinitionKey();

if (ValidateUtil.isEmpty(myActivityId)) {

devolver listas .newArrayList();

}

Listlt; flowNodeList = Lists.newArrayList();

FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(myActivityId) );

Listlt; FlowNodegt; flowNodes = Lists.newArrayList();

flowNodes.add(flowNode);

addNextNode(flowNodes, flowNodeList); p>

}

p

rivate void addNextNode(Listlt; FlowNodegt; list, List lt; FlowNodegt; flowNodeList) {

if (ValidateUtil.isEmpty(list)) {

return;

}

Listlt; FlowNodegt; flowNodeList1 = Lists.newArrayList();

for (FlowNode flowNode: lista) {

SequenceFlowgt; .getOutgoingFlows()getOutgoingFlows();

for (SequenceFlow secuenciaFlow : secuenciaFlows) {

FlowNode flowNode1 = (FlowNode) secuenciaFlow. getTargetFlowElement();

if (flowNode1 == null) {

continuar;

}

if (flowNode1 instancia de UserTask) {

if (flowNode1.getName() == null) {

flowNode1.setName(" ";

}

flowNodeList"; .add(flowNode1);

} else if (flowNode1 instancia de EndEvent) {

flowNode1.setName("End")setName("End");

flowNodeList.add(flowNode1);

} else if (flowNode1 instancia de StartEvent) {

flowNode1.setName("Begin"); (flowNode1);

} más {

flowNodeList1.add(flowNode1);

}

}

}

}

addNextNode( flowNodeList1, flowNodeList

}

;