instancia de proceso Activiti-

1. ¿Qué es la instancia de proceso

  Los participantes (que puede ser de usuario puede ser un programa) inicia un procedimiento de acuerdo con el contenido de definición de procesos, que es una instancia de proceso es dinámico;

  Definiciones de procesos y ejemplos ilustran el proceso:

    

 2. Inicie la instancia de proceso

  definición del proceso desplegado después activiti, se puede ir a gestionar la ejecución del proceso por activiti en el flujo de ejecución del sistema representa un flujo de ejecución; tales sistemas dejan después del proceso de despliegue, si un usuario quiere solicitar permiso entonces usted necesita para llevar a cabo este proceso, Si otro usuario debe salir de la aplicación tiene que realizar este proceso, cada uno realizado independientemente uno de otro, cada uno realizando una instancias de proceso separadas;

Paquete com.wn; 

Importación org.activiti.engine.ProcessEngine; 
Importación org.activiti.engine.ProcessEngines; 
Importación org.activiti.engine.RuntimeService; 
Importación org.activiti.engine.runtime.ProcessInstance; 

/ * se inicia instancia de proceso 
* ` act_hi_actinst` ha comenzado y terminado de la información del evento 
* `act_hi_identitylink` información del historial participante 
*` act_hi_procinst` instancia de proceso 
* `act_hi_taskinst` instancia de tarea histórica 
*` act_ru_execution` información de ejecución de la tarea 
* `act_ru_identitylink` actual participante ejecución de la tarea 
 *` act_ru_task` información de la tarea 
* 
* * / 
público  de clase StartInstance {
     públicas  estáticas  void main (String [] args) {
        // Obtener el ProcessEngine 
        la ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // Obtener el objeto RuntimeService 
        RuntimeService runtimeService = processEngine.getRuntimeService ();
         // crear una instancia de proceso 
        la ProcessInstance hoilday = runtimeService.startProcessInstanceByKey ( " hoilday " );
         // información instancia de salida 
        Sistema . OUT .println ( " Obtener ID de proceso de despliegue: " + hoilday.getDeploymentId ()); 
        . el Sistema OUT .println ( " Obtener ID de instancia de proceso: " +hoilday.getId ()); 
        . el Sistema OUT .println ( " Obtener actividad del proceso ID: " + hoilday.getActivityId ()); 
    } 
}

3.BusinessKey (identificación de servicio)

  Cuando se inicia la instancia de proceso, se lleva a cabo businessKey businessKey almacena en la tabla ejecución de la instancia de proceso act_ru_execution;

  BusinessKey: identificador de servicio, típicamente la clave primaria del servicio de mesa, la identificación instancia de proceso de negocio y correspondencia; identificador de servicio del sistema de servicio; identificador de servicio de almacenamiento se utiliza para sistema asociado del servicio de consulta de datos de acuerdo con el identificador de servicio;

  Por ejemplo: dejar el proceso para iniciar una instancia de proceso, se puede dejar el único ID como el identificador de servicio almacenada activiti en futuras consultas activiti la instancia de proceso puede conseguir dejar sola Identificación información obtenida formulario de permiso de base de datos de sistema de servicio de consulta asociación ;

Paquete com.wn.activiti; 

Importación org.activiti.engine.ProcessEngine; 
org.activiti.engine.ProcessEngines Importación; 
Importación org.activiti.engine.RuntimeService; 
Importación org.activiti.engine.TaskService; 
Importación org.activiti.engine. task.Task; 

/ * instancia de proceso de negocio asociados se pone en marcha y el sistema * / 
público  de clase StartInstance {
     públicas  estáticas  void main (String [] args) { 

        // Obtener el processEngine 
        la processEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // objetos Get un RuntimeService 
        RuntimeService = runtimeService processEngine.getRuntimeService ();
         //proceso de generación de 
        runtimeService.startProcessInstanceByKey ( " hoilday " , " 1. " ); 

        // presentado para su aprobación por el proceso de licencia 
        TaskService TaskService = processEngine.getTaskService (); 
        el Grupo de Tareas . TaskService.createTaskQuery = () TaskAssignee ( " zhangsan " ) .processDefinitionKey ( " hoilday " ) .singleResult ();
         // aprobación tarea 
        taskService.complete (task.getId ()); 
    } 
}

    

4. instancia de proceso de consulta

  Estado puede fluir durante el funcionamiento de la instancia del proceso de consulta, información de funcionamiento nodo actual;

com.wn.activiti empaquetar; 

org.activiti.engine.ProcessEngine importación; 
org.activiti.engine.ProcessEngines de importación; 
org.activiti.engine.RuntimeService importación; 
org.activiti.engine.runtime.ProcessInstance importación; 

java.util.List importación; 

público  de clase QueryProcessInstance {
     públicas  estáticas  void main (String [] args) {
         // 获取processEngine对象 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
        // 流程定义 
        cadena processDefinitionKeu = " hoilday " ;
        // 获取RuntimeService
        RuntimeService runtimeService = processEngine.getRuntimeService (); 
        Lista <ProcessInstance> list = runtimeService 
                .createProcessInstanceQuery () 
                .processDefinitionKey (processDefinitionKeu) 
                .list (); 
        para (ProcessInstance processInstance: lista) { 
            Sistema. fuera .println ( "     " ); 
            Sistema. fuera .println ( " 流程实例id: " 
                    + processInstance.getProcessInstanceId ()); Sistema. cabo .println ( " 所属流程定义id: "
                    + ProcessInstance.getProcessDefinitionId ()); 
            Sistema. OUT .println ( " si completa: " + processInstance.isEnded ()); 
            Sistema. OUT .println ( " ¿Son pausa: " + processInstance.isSuspended ()); 
            . Sistema OUT .println ( " actividad actual representado: " + processInstance.getActivityId ()); 
        } 
    } 
}

5. Suspender la instancia de proceso de activación

  En algunos casos puede ser debido al proceso de cambios que necesita hacer una pausa en los procesos actualmente en ejecución, en lugar de eliminar, suspender el proceso no será ejecutada;

  5.1 Todos pendiente instancia de proceso

    proceso de operación se define como un estado de suspensión, definición de proceso gigante debajo de todas las instancias de proceso todo en suspensión;

    A la espera del proceso de llenado se define como la definición del proceso se permitirá para iniciar una nueva instancia de proceso, mientras que toda esta definición de proceso se todo el rato suspendido instancias de proceso;

Paquete com.wn.activiti; 

Importación org.activiti.engine.ProcessEngine; 
Importación org.activiti.engine.ProcessEngines; 
Importación org.activiti.engine.RepositoryService; 
Importación org.activiti.engine.repository.ProcessDefinition; 

/ * todas las instancias del proceso suspender * / 
público  de clase AllSuspend {
     públicas  estáticas  void main (String [] args) {
         // Obtener el processEngine 
        la processEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // Obtener el objeto RepositoryService 
        RepositoryService RepositoryService = processEngine.getRepositoryService ();
         // Obtener proceso definiciones
        . ProcessDefinition hoilday = repositoryService.createProcessDefinitionQuery () processDefinitionKey ( " hoilday " ) .singleResult ();
         // obtener la definición actual proceso si el estado de suspensión suspende el método es cierto se suspende, el método de suspensión es falso se está ejecutando 
        boolean suspendió = hoilday .isSuspended ();
         IF (suspendida) { 
            repositoryService.activateProcessDefinitionById (hoilday.getId (), a verdadero , nula ); 
            . el Sistema OUT .println ( " la definición del proceso de activación " ); 
        } la otra cosa { 
            repositoryService.suspendProcessDefinitionById (hoilday.getId ( ),a verdadero , nula ); 
            . el Sistema OUT .println ( " la suspensión definición de proceso " ); 
        } 
    } 
}

  ejemplo solo proceso se suspende 5,2

    Operación objeto instancia de proceso, realice suspender las operaciones para un solo proceso, una instancia de proceso se suspende este proceso no se detiene a completar el mandato actual de la instancia de proceso informará anomalías;

Paquete com.wn.activiti; 

Importación org.activiti.engine.ProcessEngine; 
org.activiti.engine.ProcessEngines Importación; 
Importación org.activiti.engine.RepositoryService; 
Importación org.activiti.engine.RuntimeService; 
Importación org.activiti.engine. runtime.ProcessInstance; 

/ * una única instancia de proceso se suspende * / 
/ * act_hi_taskinst * / 
público  clase SingleSuspend {
     público  estático  void main (String [] args) {
         // Obtener el processEngine objeto 
        la processEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // Get objetos RuntimeService
        RuntimeService = RuntimeService processEngine.getRuntimeService (); 
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery () processInstanceId (. " 32501 " .singleResult ());
         // obtener la definición del proceso actual si el estado de suspensión suspendido a verdadero método es ejecutar en nombre de la falsa pausa la 
        Boolean Suspendido = processInstance.isSuspended ();
         IF (suspendida) { 
            runtimeService.activateProcessInstanceById ( " 32501 " ); 
            . el Sistema OUT .println ( " proceso de activación de permiso " ); 
        } el otro {
            runtimeService.suspendProcessInstanceById ( " 32501 " ); 
            el Sistema. OUT .println ( " licencia Suspender Proceso " ); 
        } 
    } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/wnwn/p/12619783.html
Recomendado
Clasificación