当前位置:网站首页>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 .
边栏推荐
- 在所有SwiftUI版本(1.0-4.0)中原生实现Charts图表视图之思路
- tornado之目录
- 2022-021ARTS:下半年開始
- 2022 - 021arts: début du deuxième semestre
- rapidjson读写json文件
- Jianmu continuous integration platform v2.2.2 release
- Go learning notes - constants
- 《剑指Offer》第2版——力扣刷题
- Types of references in BibTex
- 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)
猜你喜欢
Used on windows Bat file startup project
Data double write consistency between redis and MySQL
tornado项目之路由装饰器
Splicing plain text into JSON strings - easy language method
Book list | as the technical support Party of the Winter Olympics, Alibaba cloud's technology is written in these books!
Zephyr 学习笔记1,threads
University stage summary
Zephyr 学习笔记2,Scheduling
Vulhub vulnerability recurrence 76_ XXL-JOB
A real penetration test
随机推荐
论文学习——基于极值点特征的时间序列相似性查询方法
Text processing function sorting in mysql, quick search of collection
[C language] open the door of C
Rhcsa the next day
Is l1-029 too fat (5 points)
[Chongqing Guangdong education] National Open University spring 2019 770 real estate appraisal reference questions
Practice (9-12 Lectures)
BUUCTF(3)
L1-026 I love gplt (5 points)
System architecture design of circle of friends
[Android reverse] function interception (use cache_flush system function to refresh CPU cache | refresh CPU cache disadvantages | recommended time for function interception)
【FreeRTOS】FreeRTOS学习笔记(7)— 手写FreeRTOS双向链表/源码分析
The idea of implementing charts chart view in all swiftui versions (1.0-4.0) was born
MYCAT middleware installation and use
Amd RX 7000 Series graphics card product line exposure: two generations of core and process mix and match
[FreeRTOS] FreeRTOS learning notes (7) - handwritten FreeRTOS two-way linked list / source code analysis
MySQL error resolution - error 1261 (01000): row 1 doesn't contain data for all columns
Zabbix agent主动模式的实现
Zephyr 学习笔记1,threads
Mysql database - function constraint multi table query transaction