las variables del proceso activiti

1. significados variables de proceso:

  Podemos entre los sistemas y procesos de negocio en el sistema, el desarrollo de la rama correspondiente de las variables del proceso, tales como: personal deja
  días de licencia <= 3 luego de vuelta al gerente del departamento de personal para su aprobación, si> 3 a continuación, después de que el jefe de servicio a la aprobación del Director General después de la aprobación, el gerente general de la tarea

2. Los tipos de datos variables proceso:

  cadena, doble, boolean, corto, largo, Entero, binario, fecha fecha
  Serializable, si la necesidad de utilizar las variables de proceso entre POJO campo de atributos, la necesidad de implementar la interfaz de serialización a POJO

3. El alcance variables de proceso

  1. En virtud de las variables de proceso por defecto existen entre toda la instancia de proceso, cada paso puede llegar a la variable llamada variables globales, globales como Java
  2. Ejemplos de tareas y llevar a cabo sólo para la ejecución de una tarea y una serie de ejemplos , instancias de proceso hay llamadas variables, grandes locales. De manera similar a las variables locales de Java

4. El caso las variables de proceso:

   Dejar días <= 3 luego de vuelta al gerente del departamento de personal para su aprobación, si> 3 a continuación, después de que el jefe de departamento para su aprobación al director general para su aprobación, después de que el director general de la tarea

                    4.1 Definiciones diagrama de flujo, las variables de proceso proporcionados en las condiciones de la línea de flujo

      

 

 

 

 

                    4.2 definición de POJO, recorrer para lograr la interfaz serializable

      

/ ** 
 * entidad 
 * / 
público  de clase el Holiday los implementos de la Serializable {
     privada  estática  final  largo serialVersionUID = 1L ;
     Privada entero de identificación;
     privada Cadena holidayName; // solicitante 
    privado una Fecha startDate; // Hora de inicio 
    privados un endDate Fecha;    // Hora de finalización 
    privada Entero NUM;     // licencia días 
    privada cadena razón;   // dejar el tema de la 
    privada cadena del tipo;     // tipo de licencia 

    públicaEntero getId () { 

        retorno de id; 
    } 

    Pública  vacío setId (id entero) {
         este .ID = Identificación; 
    } 

    Pública Cadena getHolidayName () {
         volver holidayName; 
    } 

    Pública  vacío setHolidayName (String holidayName) {
         este .holidayName = holidayName; 
    } 

    Pública Fecha getStartDate () {
         volver startDate; 
    } 

    Pública  vacío setStartDate (Fecha startDate) {
         este .startDate = startDate; 
    }

    pública Fecha getEndDate () {
         retorno endDate; 
    } 

    Pública  vacío setEndDate (Fecha endDate) {
         este .endDate = endDate; 
    } 

    Pública Entero getNum () {
         retorno num; 
    } 

    Pública  vacío setNum (entero num) {
         este .num = num; 
    } 

    Pública getReason String () {
         retorno de la razón; 
    } 

    Pública  vacío setReason (razón String) {
         este raciocinio = razón; 
    } 

    públicaCadena getType () {
         retorno tipo; 
    } 

    Pública  vacío setType (tipo String) {
         este .type = tipo; 
    } 
}


                    implementación 4.3 proceso de

/ ** 
     * proceso de implementación 
     * / 
    @test 
    pública  nula distribución () {
         // Obtener el nombre del archivo de configuración por defecto de objeto ProcessEngine: activiti.cfg.xml y configuración de frijol ID de instancia processEngineConfiguration 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // procedimientos para la obtención de objetos RepositoryService 
        RepositoryService RepositoryService = processEngine.getRepositoryService ();
         // desplegado, va a generar el archivo de definición de proceso correspondiente a la que la base de datos se guarda como un registro 
        del despliegue despliegue = repositoryService.createDeployment () 
                .addClasspathResource ( "vacaciones / holiday2 .bpmn ")      // archivos de proceso de carga
                .addClasspathResource ( "vacaciones / holiday2.png" ) 
                .name ( "Dejar de procesos - Variable de proceso")        // establecer el nombre del proceso de 
                la .deploy ();                       // despliegue 

        // Información sobre la implementación de salida 
        System.out.println ( "Nombre del proceso: "+ deployment.getName ()); 
        System.out.println ( " ID de proceso: "+ deployment.getId ()); 
        System.out.println ( " proceso clave: "+ deployment.getKey ()); 
    }

 


                    4.4 Inicio de la instancia de proceso

/ ** 
     * Inicio instancia de proceso 
     * / 
    @test 
    pública  vacío startInstance () {
         // Obtener el nombre del archivo de configuración por defecto de objeto ProcessEngine: activiti.cfg.xml y configuración de frijol ID de instancia processEngineConfiguration 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         / / Get runtimeService 
        runtimeService runtimeService = processEngine.getRuntimeService ();
         // set variables de proceso 
        los alquileres de vacaciones = new new los alquileres (); 
        holiday.setNum ( 3. );
         // definir una variables de proceso Mapa valor establecido almacenar 
        Map <String, Object> = assMap nuevo nuevoEl HashMap <> (); 
        assMap.put ( "día de fiesta" , de vacaciones);
         // iniciar el proceso de 
        la ProcessInstance la processInstance = runtimeService.startProcessInstanceByKey ( "holiday2" ); 
        System.out.println ( "~ instancia de proceso se inicia con éxito" ); 
    }

 

 
                    4.5 Prueba de ejecución de procesos

      Lisi menos de tres días después de la ejecución de la agencia directamente a la zhaoliu

 

     Si deja cuatro días, tendrá que transferir después de la aprobación por Wangwu get a zhaoliu

 

 

 

 

5. ejecución de la tarea, las variables del proceso de ajuste    

                / ** 
                 * Cuando la ejecución de la tarea, las variables del proceso conjunto 
                 * / 
                @test 
                pública  sin efecto la runTask () { 


                    // Obtener el nombre del archivo de configuración por defecto de objeto ProcessEngine: activiti.cfg.xml y configuración de frijol ID de instancia processEngineConfiguration 
                    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // Obtener una TaskService objetos 
                    TaskService TaskService = processEngine.getTaskService ();
                     // agencia de consulta tarea de consulta createTaskQuery negocio tarea de consulta taskCandidateOrAssigned intérprete processDefinitionKey: proceso de consulta 
                    / ** 
                     * reglas de coincidencia taskCandidateOrAssigned: 1.Assigned 2. Configurar bpmn valor definido en el archivo
                     * TaskAssignee匹配规则: 1.Assigned 
                     * / 
                    / *Lista <Tarea> list = taskService.createTaskQuery () taskCandidateOrAssigned ( "Lisi") processDefinitionKey ( "día de fiesta") lista ()...; * / 
                    Lista <Tarea> list = taskService.createTaskQuery () taskAssignee ( "Lisi") processDefinitionKey ( "holiday2".. ) .List ();
                    // 分页: Lista <Tarea> list = taskService.createTaskQuery () taskAssignee ( "zhangsan") processDefinitionKey ( "día de fiesta") listPage (i, j);... 
                    para (tarea Tarea: lista) { 
                        System.out.println ( "任务名称:" + task.getName ()); 
                        System.out.println ( "任务执行人:" + 
                        System.out. // set variables de proceso 
                        los alquileres de vacaciones = nueva nuevos los alquileres (); 
                        holiday.setNum ( 5. );
                         // definen una colección de Mapa, variable de proceso de almacenamiento de valores 
                        Map <String, Object> = assMap nuevo nuevo el HashMap <> (); 
                        assMap.put ( "Holiday" , de vacaciones);
                         // procesamiento de tareas 
                        taskService.complete (task.getId (), assMap); 
                        System.out.println ( "proceso ID de instancia:" + task.getProcessInstanceId ());
                    } 
                }

 

6. Los valores ajustados proceso ID de instancia de variables de proceso

Antes de realizar la tarea rama Lisi, realizar esta configuración del método

                / ** 
                 * Obtener el ID de instancia de proceso, de acuerdo con los valores establecidos instancia de proceso de las variables de proceso 
                 * / 
                @test 
                pública  vacío getInstanceVar () {
                     // Obtener el nombre del archivo de configuración por defecto de objeto ProcessEngine: activiti.cfg.xml grano de ID de instancia y la configuración es processEngineConfiguration 
                    la processEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // Get runtimeService 
                    runtimeService runtimeService = processEngine.getRuntimeService ();
                     // variables del proceso de ajuste 
                    de la Casa de vacaciones = new new el Holiday (); 
                    holiday.setNum ( 3.);
                     // variables de proceso conjunto 
                    runtimeService.setVariable ( "25001", "vacaciones" , de vacaciones); 
                }

 

El trabajo de identificación, las variables de proceso conjunto

                / ** 
                 * El ID de trabajo, las variables del proceso conjunto 
                 * / 
                @test 
                pública  sin efecto la runTask () {
                     // Obtener el nombre del objeto ProcessEngine fichero de configuración por defecto: activiti.cfg.xml y configuración de frijol ID de instancia processEngineConfiguration 
                    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // Obtener una TaskService objetos 
                    TaskService TaskService = processEngine.getTaskService ();
                     // agencia de consulta tarea de consulta createTaskQuery negocio tarea de consulta taskCandidateOrAssigned intérprete processDefinitionKey: proceso de consulta 
                    / ** 
                     * reglas de coincidencia taskCandidateOrAssigned: 1.Assigned 2. Configurar bpmn valor definido en el archivo
                     * TaskAssignee匹配规则: 1.Assigned 
                     * / 
                    / * Lista <Tarea> list = taskService.createTaskQuery () taskCandidateOrAssigned ( "Lisi") processDefinitionKey ( "día de fiesta") lista ();... * / 
                    Lista <Tarea> list = taskService.createTaskQuery () taskAssignee ( "Lisi") processDefinitionKey ( "holiday2".. ) .List ();
                    // 分页: Lista <Tarea> list = taskService.createTaskQuery () taskAssignee ( "zhangsan") processDefinitionKey ( "día de fiesta") listPage (i, j);... 
                    para (tarea Tarea: lista) { 
                        System.out.println ( "任务名称:" + task.getName ()); 
                        System.out.
                        System.out. // set variables de proceso 
                       los alquileres = vacaciones nuevo nuevos los alquileres de (); 
                        holiday.setNum ( 5. ); 
                        TaskService.setVariable ( task.getId () , "Holiday" , de vacaciones);
                         / / tareas de procesamiento 
                        taskService.complete (task.getId ()); 
                        System.out.println ( "ID de instancia de proceso:" + task.getProcessInstanceId ()); 
                    } 
                }

 


            
  Tenga en cuenta el problema:
                1, si el nombre de la variable de proceso expresión UEL no existe error.
                2, si la variable de proceso expresión UEL es NULL nulo, el proceso no es por expresión UEL de realizar, y los extremos de proceso.
                3, si la expresión UEL no cumplen con las condiciones, finaliza el flujo
                4, si no se establece las condiciones para la conexión, el flujo irá pequeño número de esa línea

 

 

 


       

Supongo que te gusta

Origin www.cnblogs.com/chx9832/p/12643558.html
Recomendado
Clasificación