Workflow intégré de la plate-forme de développement d'applications - pratique d'intégration du moteur de workflow

mode intégré

Camunda prend en charge trois modes moteur avec les caractéristiques suivantes :

  1. Moteur géré par conteneur : le moteur de processus s'exécutera dans la JVM en tant que composant indépendant, géré par le conteneur CAMUNDA, c'est-à-dire que le système de gestion officiel l'accompagne.
  2. Moteur intégré : le moteur de processus sera intégré à votre application et géré directement par l'application, afin que vous puissiez obtenir un meilleur contrôle et de meilleures performances.
  3. Moteur distant : le moteur de processus s'exécutera dans une autre JVM en tant que composant indépendant, s'exécutera en tant que serveur BPM distant et interagira avec le moteur distant via une communication RMI ou HTTP.

La première méthode est en fait une pratique générale de composants fonctionnels à grande échelle, c'est-à-dire qu'elle a non seulement des fonctions de base, mais aussi des fonctions auxiliaires telles que la gestion et la surveillance pour former un système qui peut fonctionner de manière indépendante et atteindre l'objectif de sortie. de la boîte.
La troisième méthode consiste à s'exécuter en tant que service indépendant, ce qui équivaut à une intégration superficielle et n'est appelé que via l'API restante. Il convient aux piles technologiques non Java (telles que c#) ou aux architectures de micro-services et reste relativement indépendant.
La deuxième méthode est souvent appelée intégration profonde, qui intègre le moteur dans le programme d'application, de sorte que les performances sont les meilleures, le contrôle est plus fort, et la méthode Java locale peut être directement appelée, et la table de bibliothèque de Camunda peut être directement accessible, ce qui convient à certains complexes Dans le cas des entreprises, écrivez des instructions sql pour interroger ou écrire des données dans des tables.

En résumé, l'intégration de plateforme adopte le second mode, l'intégration profonde.

initialisation

nouveau module

Créez d'abord un nouveau module fonctionnel, suivez les règles de nommage unifiées de la plate-forme, nommez-le platform-workflow et héritez de la plate-forme

<parent>
  <groupId>tech.abc</groupId>
  <artifactId>abc-development-platform</artifactId>
  <version>2.0.0</version>
</parent>
<groupId>tech.abc</groupId>
<artifactId>platform-workflow</artifactId>
<packaging>jar</packaging>
<version>2.0.0</version>
<name>platform-workflow</name>
<description>工作流</description>

Modifier le fichier pom du projet et inclure le module dans le projet

<modules>
      <module>platform-common</module>
      <module>platform-system</module>
      <module>platform-framework</module>
      ……
       <!--本次新增-->
      <module>platform-workflow</module>
      ……
      <module>platform-boot-starter</module>
     
  </modules>

ajouter des dépendances

Vérifiez la dernière version actuelle, qui est la 7.19. La 7.13 utilisée dans l'intégration il y a trois ans, la différence de version n'est pas grande, utilisez la dernière version, ajoutez la dépendance sur Camunda,

<!-- 工作流 -->
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.19.0</version>
</dependency>

Le flux de travail impliquera le personnel du service, les groupes d'utilisateurs, etc., et ajoutera une dépendance au module plateforme-système

<dependency>
    <groupId>tech.abc</groupId>
    <artifactId>platform-system</artifactId>
</dependency>

résoudre un conflit

Analysez le pom et trouvez les conflits de paquets jar
image.png
Considérant que d'une part, la version mise à jour est utilisée en premier, et d'autre part, mybatis-plus a un impact plus large, donc des exclusions sont utilisées

<!-- 工作流 -->
<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.19.0</version>
    <exclusions>
        <exclusion>
            <artifactId>mybatis</artifactId>
            <groupId>org.mybatis</groupId>
        </exclusion>
    </exclusions>
</dependency>

Incorporer le début

Modifiez le fichier pom du projet d'agrégation platform-boot-starter et ajoutez le module de workflow afin que le moteur de workflow démarre au démarrage du système.

<dependencies>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-framework</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-entity-config</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-cip-api</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-cip-message</artifactId>
    </dependency>
    <dependency>
        <groupId>tech.abc</groupId>
        <artifactId>platform-workflow</artifactId>
    </dependency>
</dependencies>

ajouter une configuration

Modifier le fichier de configuration application-platform.yml de platform-boot-starter

#工作流配置
camunda:
  bpm:
    database:
      type: mysql
      schema-update: true

Le focus est sur le nœud de la base de données, type spécifie que le type de la base de données est mysql et schema-update a quatre valeurs :

  1. false : valeur par défaut, comparez la version enregistrée dans la table de la base de données au démarrage, s'il n'y a pas de table ou si la version ne correspond pas, une exception sera levée.
  2. true : toutes les tables de la base de données seront mises à jour. Si la table n'existe pas, elle est automatiquement créée.
  3. create_drop : crée une table lorsque l'activité démarre et supprime la table lorsqu'elle est fermée (le moteur doit être arrêté manuellement pour supprimer la table).
  4. drop-create : supprimez l'ancienne table d'origine au démarrage de l'activité, puis créez une nouvelle table (inutile d'arrêter manuellement le moteur).

Le premier type est uniquement destiné à l'inspection et à aucun traitement, et est généralement utilisé dans l'environnement de production ; les trois derniers sont utilisés pour l'environnement de développement, et 3 et 4 équivalent à un retour automatique à l'état initial de l'environnement.
Habituellement, lors de la première exécution, définissez cette valeur sur true pour générer automatiquement la table de bibliothèque, puis ajustez la valeur sur false pour supprimer la vérification et accélérer le démarrage.

courir

Démarrez springboot, vous pouvez voir dans le journal de sortie que camunda a été chargé, et la partie boîte rouge est également affichée, le script sql d'initialisation est appelé, la table de base de données est créée pour afficher la base de données et 49 tables sont automatiquement créées (
image.png
le la figure suivante fait partie de la table de la base de données, incomplète)
image.png

Informations sur la plateforme de développement

Nom de la plate-forme : One Two Three Development Platform
Introduction : plate-forme de développement générale au niveau de l'entreprise
Informations sur la conception : colonne csdn
Adresse open source : Protocole open source Gitee : MIT open source n'est pas facile, bienvenue dans les favoris, comme, commenter.

Je suppose que tu aimes

Origine blog.csdn.net/seawaving/article/details/131668334
conseillé
Classement