variables de processus Activiti

1. significations variables du processus:

  Nous pouvons entre les systèmes et processus d'affaires dans le système, pour développer la branche correspondante par des variables de processus, tels que: congé personnel
  jours de congé <= 3 puis de nouveau au directeur du service du personnel pour approbation, si> 3 puis après le chef de service à l' approbation du directeur général après l'approbation, le directeur général à la tâche

2. Les types de données variables de processus:

  chaîne, double, boolean, court, long, entier, binaire, la date la date
  Serializable, si la nécessité d'utiliser les variables de processus entre champ d'attribut de POJO, la nécessité de mettre en œuvre l'interface de sérialisation à POJO

3. La portée des variables de processus

  1. Dans les variables de processus par défaut existent entre l'ensemble de l' instance de processus, chaque étape peut arriver à la variable appelée variables globales globales, comme Java
  2. Des exemples de tâches et d' effectuer uniquement pour la mise en œuvre d'une tâche et une série d'exemples , les instances de processus sont pas grandes, appelées variables locales. Similaire à Java variables locales

4. Les variables de processus cas:

   jours de congé <= 3 puis de nouveau au directeur du service du personnel pour approbation, si> 3 puis après le chef de service à l'approbation du directeur général pour approbation, après le directeur général à la tâche

                    4.1 Définitions organigramme des variables de processus prévus dans les conditions de la ligne d'écoulement

      

 

 

 

 

                    4.2 définition de POJO, allez à atteindre Interface sérialisable

      

/ ** 
 * entité commerciale 
 * / 
publique  classe Holiday les outils du Serializable {
     privé  statique  finale  longue serialVersionUID = 1L ;
     Private ID entier,
     privé Chaîne holidayName; // demandeur 
    privé une date startDate; // Heure de départ 
    privé une date endDate;    // Heure de fin 
    privé Entier NUM;     // jours de congé 
    privé raison String;   // laisser l'objet de 
    Private chaîne du type;     // type de congé 

    publiqueEntier getId () { 

        retour id; 
    } 

    Publique  vide setId (id Entier) {
         ce .id = id; 
    } 

    Publique Chaîne getHolidayName () {
         retour holidayName; 
    } 

    Publique  vide setHolidayName (String holidayName) {
         ce .holidayName = holidayName; 
    } 

    Publique Date de getStartDate () {
         retour startDate; 
    } 

    Publique  vide setStartDate (date startDate) {
         ce .startDate = startDate; 
    }

    publique Date de getEndDate () {
         retour endDate; 
    } 

    Publique  vide setEndDate (date endDate) {
         ce .endDate = endDate; 
    } 

    Publique entier getNum () {
         retour num; 
    } 

    Publique  vide setNum (entier num) {
         ce .num = num; 
    } 

    Publique Chaîne getReason () {
         retour raison; 
    } 

    Publique  vide setReason (motif String) {
         ce .reason = raison; 
    } 

    publiqueChaîne getType () {
         retour de type; 
    } 

    Publique  vide setType (type String) {
         ce .type = le type; 
    } 
}


                    4.3 déploiement de processus

/ ** 
     * processus de déploiement 
     * / 
    @Test 
    publique  vide déploiement () {
         // Obtenir l'objet ProcessEngine nom du fichier de configuration par défaut: activiti.cfg.xml et la configuration de Bean ID d' instance processEngineConfiguration 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         // processus d'obtention objet RepositoryService 
        RepositoryService RepositoryService = processEngine.getRepositoryService ();
         // déployé, va générer le fichier de définition de processus correspondant auquel la base de données est enregistré comme un enregistrement 
        le déploiement de déploiement = repositoryService.createDeployment () 
                .addClasspathResource ( « Location / holiday2 .bpmn « )      // fichiers de processus de chargement
                .addClasspathResource ( "Location / holiday2.png" ) 
                .name ( "Processus de congé - variable process")        // définir le nom du processus 
                du .deploy ();                       // déploiement 

        // informations de déploiement de sortie 
        System.out.println ( « Processus Nom: "+ deployment.getName ()); 
        System.out.println ( " ID de processus: "+ deployment.getId ()); 
        System.out.println ( " processus clé: « + deployment.getKey ()); 
    }

 


                    4.4 Démarrage de l'instance de processus

/ ** 
     * processus de démarrage par exemple 
     * / 
    @Test 
    publique  vide startInstance () {
         // Obtenir l'objet ProcessEngine nom du fichier de configuration par défaut: activiti.cfg.xml et la configuration de Bean ID d' instance processEngineConfiguration 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
         / / Get runtimeService 
        runtimeService runtimeService = processEngine.getRuntimeService ();
         // ensemble des variables de processus 
        les vacances = vacances new new les vacances (); 
        holiday.setNum ( 3. );
         // définir une valeur de consigne carte de stockage des variables de processus 
        Map <String, Object> = assMap nouvelle nouvelleLe HashMap <> (); 
        assMap.put ( "vacances" , vacances);
         // démarrer le processus 
        du ProcessInstance le processInstance = runtimeService.startProcessInstanceByKey ( "holiday2" ); 
        System.out.println ( "~ instance de processus a démarré avec succès" ); 
    }

 

 
                    4.5 Exécution du processus d'essai

      Lisi moins de trois jours après la mise en œuvre de l'agence directement au zhaoliu

 

     Si vous laissez quatre jours, vous devrez transférer après l'approbation par Wangwu get à zhaoliu

 

 

 

 

5. l'exécution des tâches, ensemble des variables de processus    

                / ** 
                 * Lorsque l'exécution des tâches, définir les variables de processus 
                 * / 
                @Test 
                publique  vide le runTask () { 


                    // Obtenir l'objet ProcessEngine nom du fichier de configuration par défaut: activiti.cfg.xml et la configuration de Bean ID d' instance processEngineConfiguration 
                    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // obtenir un objets TaskService 
                    TaskService TaskService = processEngine.getTaskService ();
                     // agence de requête tâche de requête createTaskQuery d'affaires tâche d'interrogation taskCandidateOrAssigned interprète processDefinitionKey: processus de requête 
                    / ** 
                     * règles de correspondance taskCandidateOrAssigned: 1.Assigned 2. Configurer BPMN la valeur définie dans le fichier
                     * TaskAssignee匹配规则: 1.Assigned 
                     * / 
                    / *Liste <Tâche> Liste = taskService.createTaskQuery () taskCandidateOrAssigned ( "LISI") processDefinitionKey ( "vacances") liste ()... * / 
                    Liste <Tâche> Liste = taskService.createTaskQuery () taskAssignee ( "LISI") processDefinitionKey ( "holiday2".. ) .List ();
                    // 分页: Liste <Tâche> Liste = taskService.createTaskQuery () taskAssignee ( "de Zhangsan") processDefinitionKey ( "de vacances") listPage (i, j)... 
                    pour (tâche Tâche: liste) { 
                        System.out.println ( "任务名称:" + task.getName ()); 
                        System.out.println ( "任务执行人:" + 
                        System.out.// ensemble des variables de processus 
                        les vacances = vacances nouvelle nouvelle Holiday (); 
                        holiday.setNum ( 5. );
                         // définir une collection de cartes, les valeurs des variables de processus de stockage 
                        Carte <String, Object> = assMap new new HashMap <> (); 
                        assMap.put ( "vacances" , vacances);
                         // traitement de tâches 
                        taskService.complete (task.getId (), assMap); 
                        System.out.println ( "instance processus ID:" + task.getProcessInstanceId ());
                    } 
                }

 

6. Le procédé exemple des valeurs de consigne d'identification des variables de processus

Avant d'effectuer la tâche de branche Lisi, effectuer ce réglage de la méthode

                / ** 
                 * Obtenir l'ID d'instance de processus, selon les valeurs de réglage d'instance de processus de variables de processus 
                 * / 
                @Test 
                publique  vide de getInstanceVar () {
                     // Obtenir l'objet ProcessEngine nom du fichier de configuration par défaut: activiti.cfg.xml Bean ID d'instance et la configuration il est processEngineConfiguration 
                    la processEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // Get RuntimeService 
                    RuntimeService runtimeService = processEngine.getRuntimeService ();
                     // ensemble des variables de processus 
                    les vacances = vacances new new Holiday (); 
                    holiday.setNum ( 3.);
                     // variables de processus d'installation 
                    runtimeService.setVariable ( "25001", "vacances" , vacances); 
                }

 

L'ID d'emploi, les variables de processus ensemble

                / ** 
                 * L'ID de travail, définir les variables de processus 
                 * / 
                @Test 
                publique  vide le runTask () {
                     // Obtenir l'objet ProcessEngine nom du fichier de configuration par défaut: activiti.cfg.xml et la configuration de Bean ID d' instance processEngineConfiguration 
                    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine ();
                     // obtenir un objets TaskService 
                    TaskService TaskService = processEngine.getTaskService ();
                     // agence de requête tâche de requête createTaskQuery d'affaires tâche d'interrogation taskCandidateOrAssigned interprète processDefinitionKey: processus de requête 
                    / ** 
                     * règles de correspondance taskCandidateOrAssigned: 1.Assigned 2. Configurer BPMN la valeur définie dans le fichier
                     * TaskAssignee匹配规则: 1.Assigned 
                     * / 
                    / *Liste <Tâche> Liste = taskService.createTaskQuery () taskCandidateOrAssigned ( "LISI") processDefinitionKey ( "vacances") liste ()... * / 
                    Liste <Tâche> Liste = taskService.createTaskQuery () taskAssignee ( "LISI") processDefinitionKey ( "holiday2".. ) .List ();
                    // 分页: Liste <Tâche> Liste = taskService.createTaskQuery () taskAssignee ( "de Zhangsan") processDefinitionKey ( "de vacances") listPage (i, j)... 
                    pour (tâche Tâche: liste) { 
                        System.out.println ( "任务名称:" + task.getName ()); 
                        System.out.println ( "任务执行人:" + 
                        System.out.// ensemble des variables de processus 
                       les vacances = vacances nouvelle nouvelle , le Holiday () 
                        holiday.setNum ( 5. ); 
                        taskService.setVariable ( task.getId () , "vacances" , vacances);
                         // tâches de traitement 
                        taskService.complete (task.getId () ); 
                        System.out.println ( "instance de processus ID:" + task.getProcessInstanceId ()); 
                    } 
                }

 


            
  Notez le problème:
                1, si le nom de variable de processus d'expression UEL n'existe paserreur.
                2, si la variable de processus d'expression UEL est NULL null, le processus est d'expression UEL à effectuer, et les extrémités de processus.
                3, si l'expression UEL ne répondent pas aux conditions, le fluxtermine
                4, si vous ne définissez pas les conditions de connexion, le débit sera petit nombre cette ligne

 

 

 


       

Je suppose que tu aimes

Origine www.cnblogs.com/chx9832/p/12643558.html
conseillé
Classement