当前位置:网站首页>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:
UtiliserrepositoryServiceSupprimer la définition du processus, Les informations du tableau historique ne seront pas suppriméesS'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:
deploymentId Déploiement du processus IDresource_namePouract_ge_bytearrayDans le tableauNAME_Valeur de la colonneUtiliserrepositoryServiceDegetDeploymentResourceNames Méthode pour obtenir les noms de tous les fichiers sous le déploiement spécifié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 .
边栏推荐
- L1-030 one gang one (15 points)
- MySQL storage engine
- Zephyr 學習筆記2,Scheduling
- Blue Bridge Cup Quick sort (code completion)
- In the era of low code development, is it still needed?
- Routing decorator of tornado project
- 论文学习——基于极值点特征的时间序列相似性查询方法
- 21个战略性目标实例,推动你的公司快速发展
- Amd RX 7000 Series graphics card product line exposure: two generations of core and process mix and match
- How to buy financial products in 2022?
猜你喜欢
![[web security] nodejs prototype chain pollution analysis](/img/b6/8eddc9cbe343f2439da92bf342b0dc.jpg)
[web security] nodejs prototype chain pollution analysis

The idea of implementing charts chart view in all swiftui versions (1.0-4.0) was born

Node connection MySQL access denied for user 'root' @ 'localhost' (using password: yes

Pangu open source: multi support and promotion, the wave of chip industry

Two years ago, the United States was reluctant to sell chips, but now there are mountains of chips begging China for help

window上用.bat文件启动项目

Zephyr study notes 2, scheduling

Four sets of APIs for queues

Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool

Unity opens the explorer from the inspector interface, selects and records the file path
随机推荐
2022 - 021arts: début du deuxième semestre
Summary of MySQL common judgment functions!! Have you used it
Life planning (flag)
L1-026 I love gplt (5 points)
[kubernetes series] kubesphere is installed on kubernetes
A real penetration test
[freertos] freertos Learning notes (7) - written freertos bidirectionnel Link LIST / source analysis
MySQL 数据库 - 函数 约束 多表查询 事务
One of the general document service practice series
Electronic Association C language level 1 35, bank interest
The idea of implementing charts chart view in all swiftui versions (1.0-4.0) was born
Literature collation and thesis reading methods
[C language] open the door of C
Cell reports: Wei Fuwen group of the Institute of zoology, Chinese Academy of Sciences analyzes the function of seasonal changes in the intestinal flora of giant pandas
[untitled] notice on holding "2022 traditional fermented food and modern brewing technology"
L1-027 rental (20 points)
The frost peel off the purple dragon scale, and the xiariba people will talk about database SQL optimization and the principle of indexing (primary / secondary / clustered / non clustered)
[MySQL transaction]
Solution of running crash caused by node error
The IP bound to the socket is inaddr_ The meaning of any htonl (inaddr_any) (0.0.0.0 all addresses, uncertain addresses, arbitrary addresses)