当前位置:网站首页>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ées
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:
deploymentId Déploiement du processus ID
resource_namePouract_ge_bytearrayDans le tableauNAME_Valeur de la colonne
UtiliserrepositoryServiceDegetDeploymentResourceNames 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 .
边栏推荐
- The crackdown on Huawei prompted made in China to join forces to fight back, and another enterprise announced to invest 100 billion in R & D
- The cloud native programming challenge ended, and Alibaba cloud launched the first white paper on application liveliness technology in the field of cloud native
- Rhcsa day 3
- Unity 从Inspector界面打开资源管理器选择并记录文件路径
- L1-024 the day after tomorrow (5 points)
- Recursive Fusion and Deformable Spatiotemporal Attention for Video Compression Artifact Reduction
- Zephyr study notes 2, scheduling
- Technical experts from large factories: common thinking models in architecture design
- 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
- OKR vs. KPI 一次搞清楚这两大概念!
猜你喜欢
It's healthy to drink medicinal wine like this. Are you drinking it right
Guoguo took you to write a linked list, and the primary school students said it was good after reading it
win10微软拼音输入法输入文字时候下方不出现中文提示
How to send mail with Jianmu Ci
【森城市】GIS数据漫谈(一)
Vulhub vulnerability recurrence 77_ zabbix
The crackdown on Huawei prompted made in China to join forces to fight back, and another enterprise announced to invest 100 billion in R & D
Introduction to deep learning Ann neural network parameter optimization problem (SGD, momentum, adagrad, rmsprop, Adam)
window上用.bat文件启动项目
Two years ago, the United States was reluctant to sell chips, but now there are mountains of chips begging China for help
随机推荐
Detailed introduction to the big changes of Xcode 14
MySQL中的文本處理函數整理,收藏速查
When JDBC connects to es query, is there a God who meets the following situation?
Directory of tornado
How does dataframe calculate the average value of each row as another column
Introduction to rce in attack and defense world
The number of patent applications in China has again surpassed that of the United States and Japan, ranking first in the world for 11 consecutive years
Boosting the Performance of Video Compression Artifact Reduction with Reference Frame Proposals and
"Sword finger offer" 2nd Edition - force button brush question
[Mori city] random talk on GIS data (I)
tornado项目之路由装饰器
Paddleocr prompt error: can not import AVX core while this file exists: xxx\paddle\fluid\core_ avx
[untitled] notice on holding "2022 traditional fermented food and modern brewing technology"
Zephyr 學習筆記2,Scheduling
2022-021ARTS:下半年開始
Introduction to deep learning Ann neural network parameter optimization problem (SGD, momentum, adagrad, rmsprop, Adam)
Zephyr 学习笔记2,Scheduling
Zabbix agent主动模式的实现
[Android reverse] function interception (use cache_flush system function to refresh CPU cache | refresh CPU cache disadvantages | recommended time for function interception)
Routing decorator of tornado project