当前位置:网站首页>Relations courantes de la fiche de données d'exploitation pour les activités

Relations courantes de la fiche de données d'exploitation pour les activités

2022-07-04 07:35:00 M. json - architecte

1.Définition du processus après le déploiementactivitiDe3Le tableau est le suivant::

  • act_re_deployment Définition du processus tableau de déploiement,Ajouter un enregistrement par déploiement

  • act_re_procdef Tableau de définition du processus,Le déploiement de chaque nouvelle définition de processus ajoute un enregistrement à ce tableau

  • act_ge_bytearray Tableau des ressources du processus

Attention!

act_re_deploymentEtact_re_procdefUne à plusieurs relations,Un déploiement à la fois génère un enregistrement dans le tableau de déploiement du processus,Mais plusieurs définitions de processus peuvent être déployées à la fois,Chaque définition de processus génère un enregistrement dans le tableau de définition de processus.Chaque processus est défini dansact_ge_bytearrayIl y aura deux enregistrements de ressources,bpmnEtpng.

Suggestion:Déployer un processus à la fois,De cette façon, le tableau de déploiement et le tableau de définition du processus sont un à un,Faciliter l'accès à l'information sur le déploiement des processus et la définition des processus.

2.Démarrer la Feuille de données d'action de l'Instance de processus

  • act_hi_actinst Historique d'exécution de l'Instance de processus

    act_hi_actinstAvecact_hi_identitylinkAdoptionPROC_INST_IDLiens

  • act_hi_identitylink Historique de l'utilisateur participant au processus

  • act_hi_procinst Historique de l'Instance de processus,Les affairesIDPar ici.BUSINESS_KEY_

    Attention!PROC_INST_ID_EtPROC_DEF_ID_Champ

  • act_hi_taskinst Historique des tâches de processus

  • act_ru_execution Information sur l'exécution du processus,Les affairesIDPar ici.BUSINESS_KEY_

  • act_ru_identitylink Information des utilisateurs participants au processus

  • act_ru_task Informations sur la Mission

3.Démarrer l'Instance de processus et ajouterBusinesskey(Identification de l'entreprise)

Définition du processus déployée àactivitiAprès,Pour passer à travers le systèmeactivitiPour gérer l'exécution du processus,Le processus d'exécution représente une seule exécution du processus.

Par exemple, après le déploiement du processus de déplacement du système,Si un utilisateur demande un voyage d'affaires, ce processus doit être exécuté,Si un autre utilisateur demande également un voyage d'affaires, le processus doit également être exécuté,Chaque exécution n'affecte pas l'autre,Chaque exécution est une instance de processus distincte.

Lors du démarrage de l'Instance de processus,Désignationbusinesskey,Et ce seraact_ru_execution #Stocké dans le tableau d'exécution de l'Instance de processusbusinesskey.

Businesskey:Identification de l'entreprise,Habituellement la clé primaire de la table d'affaires,L'id d'entreprise correspond à l'Instance de processus une par une.L'id d'entreprise provient du système d'entreprise.L'id d'entreprise de stockage est utilisé pour associer et interroger les données du système d'entreprise en fonction de l'ID d'entreprise.

Par exemple,:Processus de voyage démarrer une instance de processus,Vous pouvez faire un voyage d'affairesidStocké comme ID d'entreprise àactivitiMoyenne,Demandes futuresactivitiL'information sur l'Instance de processus peut être obtenue à partir deidAinsi, l'information sur la Feuille de voyage peut être obtenue en interrogeant la base de données du système d'affaires.

    /** * Démarrer l'Instance de processus,AjouterbusinessKey */
    @Test
    public void addBusinessKey(){
    
// 1、Je l'ai.ProcessEngine
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 2、Je l'ai.RunTimeService
        RuntimeService runtimeService = processEngine.getRuntimeService();
// 3、Démarrer l'Instance de processus, Spécifiez également l'ID d'entreprise businessKey, C'est - à - dire le formulaire de demande de voyage d'affaires id,Ici.1001
        ProcessInstance processInstance = runtimeService.
                startProcessInstanceByKey("myEvection","1001");
// 4、ProduitsprocessInstancePropriétés connexes
        System.out.println("Les affairesid=="+processInstance.getBusinessKey());

    }

ActivitiDeact_ru_execution Stocker l'ID d'entreprise dans :

Fonctionnement des tables de base de données

Démarrer l'Instance de processus, Utilisez la table de base de données suivante :

  • SELECT * FROM act_ru_execution # Tableau d'exécution de l'Instance de processus , Enregistrer l'exécution de l'Instance de processus actuelle

    Description:

    Exécution de l'Instance de processus , Si vous n'avez actuellement qu'une seule branche , Une instance de processus n'a qu'un seul enregistrement et exécute la clé primaire de la table idEt des exemples de processusidMême chose., S'il y a actuellement plus d'une branche en cours d'exécution, il y a plus d'un enregistrement dans le tableau d'exécution , Il existe des clés primaires et des instances de processus pour les tables d'exécution id Différents enregistrements . La clé primaire et l'Instance de processus d'une table d'exécution qui a toujours un enregistrement indépendamment des branches actuelles idMême chose.

    Exécution d'une instance de processus terminée , Suppression des enregistrements liés aux instances de processus dans ce tableau .

  • SELECT * FROM act_ru_task # Tableau d'exécution des tâches , Enregistrer les tâches actuellement exécutées

    Description:Démarrer l'Instance de processus, Le processus est actuellement exécuté au premier noeud de tâche , Ce tableau insère un enregistrement indiquant l'exécution de la tâche en cours , Supprimer l'enregistrement si la tâche est terminée .

  • SELECT * FROM act_ru_identitylink #Participants à la Mission, Enregistre les utilisateurs ou les groupes qui participent actuellement à la tâche

  • SELECT * FROM act_hi_procinst #Historique des instances de processus

    Démarrage de l'Instance de processus, Un enregistrement est inséré dans ce tableau , L'enregistrement d'achèvement de l'exécution de l'Instance de processus ne sera pas supprimé non plus. .

  • SELECT * FROM act_hi_taskinst #Tableau historique des tâches, Enregistrer toutes les tâches

    Commencez une mission,Pas seulement dansact_ru_taskTable Insert record, Un enregistrement est également inséré dans la table des tâches historiques , La clé primaire de la table d'historique des tâches est la tâche id, Tâche terminée cet enregistrement de table n'est pas supprimé .

  • SELECT * FROM act_hi_actinst # Tableau historique des activités , Enregistrer toutes les activités

    Les activités comprennent des tâches , Donc ce tableau n'enregistre pas seulement les tâches , D'autres activités du processus d'exécution du processus sont également documentées. , Comme démarrer un événement 、Fin de l'événement.

    Processus d'acquisitionbusinessKey(Identification de l'entreprise )

    String businessKey = processInstance.getBusinessKey();

    InactivitiDeact_ru_executionTableau,ChampBUSINESS_KEY C'est le stockage des affaires KEYDe.

4. Suppression du processus

public void deleteDeployment() {
    
		// Déploiement des processusid
		String deploymentId = "1";
		
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    //  Obtenu par le moteur de processus repositoryService
		RepositoryService repositoryService = processEngine
				.getRepositoryService();
		//Supprimer la définition du processus,Erreur lors de la suppression si la définition du processus a déjà commencé une instance de processus
		repositoryService.deleteDeployment(deploymentId);
		//Paramètrestrue Cascade supprimer la définition du processus,Le processus peut être supprimé même s'il a une instance de processus qui démarre,Set tofalseMéthode de suppression hors niveau, Si le processus 
		//repositoryService.deleteDeployment(deploymentId, true);
	}

Description:

  1.   UtiliserrepositoryServiceSupprimer la définition du processus, Les informations du tableau historique ne seront pas supprimées 
    
  2.    S'il n'y a pas de processus en cours d'exécution sous cette définition de processus , Peut être supprimé en général .
    

S'il y a un processus en cours d'exécution sous cette définition de processus , Utiliser la suppression normale pour signaler les erreurs , Le processus et les enregistrements connexes peuvent être supprimés en cascade. .

Supprimer d'abord le noeud de processus incomplet , Enfin, vous pouvez supprimer complètement les informations de définition de processus

L'opération de suppression conjointe de niveau intermédiaire pour le développement de projets n'est généralement ouverte qu'aux super administrateurs. .

5.Téléchargement des ressources du processus

Nos fichiers de ressources de processus sont maintenant téléchargés dans la base de données ,Si d'autres utilisateurs veulent voir ces fichiers de ressources, Les fichiers de ressources peuvent être téléchargés localement à partir de la base de données .

Les solutions sont::

1、jdbcC'est exact.blobType,clob Type de données lues ,Enregistrer dans un répertoire de fichiers

2、UtiliseractivitiDeapiPour réaliser

Utilisercommons-io.jar RésolutionIOFonctionnement

Introductioncommons-ioPaquets dépendants

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

Obtenir des ressources de définition de processus à partir d'objets de définition de processus ,AccèsbpmnEtpng

import org.apache.commons.io.IOUtils;

	@Test
    public void deleteDeployment(){
    
// Obtenir le moteur
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// AccèsrepositoryService
        RepositoryService repositoryService = processEngine.getRepositoryService();
// Selon le déploiementid  Supprimer les informations de déploiement , Si vous voulez supprimer en cascade ,Vous pouvez ajouter un deuxième paramètre,true
        repositoryService.deleteDeployment("1");
    }

    public void  queryBpmnFile() throws IOException {
    
// 1、 Obtenir le moteur 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 2、AccèsrepositoryService
        RepositoryService repositoryService = processEngine.getRepositoryService();
// 3、 Obtenez le chercheur :ProcessDefinitionQuery,.Définir les critères de requête, Obtenir la définition de processus souhaitée 
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .processDefinitionKey("myEvection")
                .singleResult();
// 4、Définir l'information par le processus, Déploiement ID
        String deploymentId = processDefinition.getDeploymentId();
// 5、AdoptionrepositoryServiceMéthode, Permet de lire les informations de l'image et bpmnInformation
// png Flux d'images 
        InputStream pngInput = repositoryService.getResourceAsStream(deploymentId, processDefinition.getDiagramResourceName());
// bpmnFlux de fichiers
        InputStream bpmnInput = repositoryService.getResourceAsStream(deploymentId, processDefinition.getResourceName());
// 6、StructureOutputStreamFlow
        File file_png = new File("d:/evectionflow01.png");
        File file_bpmn = new File("d:/evectionflow01.bpmn");
        FileOutputStream bpmnOut = new FileOutputStream(file_bpmn);
        FileOutputStream pngOut = new FileOutputStream(file_png);
// 7、Flux d'entrée,Conversion du flux de sortie
        IOUtils.copy(pngInput,pngOut);
        IOUtils.copy(bpmnInput,bpmnOut);
// 8、Fermer le flux
        pngOut.close();
        bpmnOut.close();
        pngInput.close();
        bpmnInput.close();
    }

Description:

  1.   deploymentId Déploiement du processus ID
    
  2.   resource_namePouract_ge_bytearrayDans le tableauNAME_Valeur de la colonne
    
  3.   UtiliserrepositoryServiceDegetDeploymentResourceNames Méthode pour obtenir les noms de tous les fichiers sous le déploiement spécifié 
    
  4.   UtiliserrepositoryServiceDegetResourceAsStream Méthode de déploiement entrant ID Et le nom de l'image de la ressource obtient le flux d'entrée du fichier nommé sous déploiement 
    

Enfin, la sortie des ressources d'image dans le flux d'entrée .

原网站

版权声明
本文为[M. json - architecte]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/185/202207040733538841.html