Automatisation des processus d'affaires de la société Trello à l'aide de la technologie de modélisation sémantique

Ces dernières années, Trello a été de plus en plus considéré comme un excellent outil d'organisation et de planification. Depuis 3 ans, nous utilisons Trello dans notre entreprise pour planifier de nombreux processus, depuis les vacances, les voyages d'affaires et l'approbation des accords jusqu'à la gestion de projet.

Malheureusement, tout n'est pas si beau à Trello. Vous ne pouvez pas y faire de workflow personnalisé. Autrement dit, nous devons occuper un employé qui fera glisser des cartes avec ses mains dans divers tableaux. Comment transférer cet employé dans un autre travail, plus intéressant et créatif?

Bien sûr, vous dites que vous pouvez écrire un script qui fera tout cela pour nous. Mais il y a un problème. Un script ne peut être écrit que par un programmeur ou une personne qui comprend comment procéder. Il devra maintenir le script. Nous avons trouvé une solution plus simple et plus logique - c'est la modélisation sémantique.

La modélisation sémantique vous permet d'écrire toute la logique du tableau en Trello en langage naturel.

Coordination des voyages et des vacances


Prenez le processus le plus simple: faire correspondre les voyages et les vacances. Conformément à nos réglementations, chaque employé qui envisage de prendre des vacances ou de partir en voyage d'affaires publie une demande à Trello. La demande tombe dans la feuille «Pour approbation».



Dès que la candidature est approuvée (en fait, cela signifie que le chef de l'employé et / ou le représentant du service financier ont coché la case), ils sont déplacés vers la liste «Voyages convenus». Une demande de congé relève respectivement de «Congé convenu», etc. Après cela, vous devez informer l'employé que sa demande a été acceptée.

Supposons que nous souhaitons automatiser ce processus de sorte que, après approbation, l'application passe automatiquement à la feuille souhaitée et que l'employé reçoive une notification concernant la modification du statut de l'application. Considérez ce dont nous avons besoin pour cela.

Outils nécessaires


Pour développer le modèle, nous avons choisi l'ide du Jetbrains MPS (Meta Programming System). En tant que langage de modélisation, le langage d0SL est utilisé - le langage sémantique Delta0, créé sur la base de modèles sémantiques (logiques).

L'ensemble du processus d'installation de Jetbrains MPS et des plug-ins nécessaires est décrit en détail ici: https://d0sl.imtqy.com/en/quick/installation/ .

Vous pouvez installer le modèle de carte Trello fini sur le lien: https://d0sl.imtqy.com/en/quick/trello/ .

Modèle sémantique. Que s'est-il passé?


Voyons à quoi ressemble le modèle sémantique résultant des cartes Trello. Il contient nos règles:

  • Est-ce que la case est cochée - Vérifie si la case nommée requiredCheckBoxName est cochée dans la carte avec id cardId. De cette façon, nous pouvons vérifier si notre demande est approuvée ou non.
  • moveCard - Déplace la carte cardId dans la liste et ajoute un commentaire à l'application pour l'utilisateur



Le modèle a un chèque de prédicat, qui est appelé pour chaque carte du tableau. L'identifiant de la carte, le nom de l'utilisateur qui a effectué la dernière opération avec la carte, la feuille d'où la carte a été déplacée et la feuille dans laquelle elle se trouve actuellement lui sont transférés. Plus loin dans checkBoard, nous pouvons définir les règles selon lesquelles nous prévoyons de traiter nos demandes.



Notez que la modélisation sémantique vous permet de mettre toutes les règles métier logiques dans un seul document et d'écrire ces règles dans la langue du domaine, «langue maternelle» pour les utilisateurs du modèle.

La possibilité de faire quelque chose avec la carte est fournie par le modèle de base TrelloBoard, qui ressemble à ceci:



Si nous exécutons le modèle, dès que la demande dans la feuille «Pour approbation» réussit le processus d'approbation,



Le système le déplacera dans la section appropriée et informera le fabricant de la carte de la modification de l'état de l'application.



Si, toutefois, une application qui n'a pas été acceptée pour être essayée manuellement, le système l'enverra à l'endroit et rédigera un commentaire en colère.

Et qu'est-ce qui se cache sous le capot?


Le modèle de base TrelloBoard est essentiellement une interface que nous implémentons en Java (dans ce cas, dans la classe com.gav.semanticTrelloBoard.TrelloBoardDSL).

Cela ressemble à ceci:



Nous définissons les noms de fonctions à l'aide de décorateurs et les implémentons.
Nous avons également la classe AiTrelloBoard, qui nous permet de travailler avec Trello. Il contient des implémentations java de fonctions telles que start:



Dans le fichier trelloBoard.properties, nous conservons tous les paramètres de l'api trello (tels que application_key, board_id, etc.) et last_update_timestamp - horodatage de la dernière mise à jour.

Ainsi, au prix de pas trop d'efforts, nous pouvons automatiser les processus métier nécessaires dans Trello. L'utilisation et la maintenance de cette solution sont beaucoup plus pratiques que le code de programme.

Évidemment, les possibilités de modélisation sémantique ne se limitent pas à résoudre ce problème. En effet, si dans l'approche classique de résolution des problèmes, l'analyste crée d'abord des spécifications, sur la base desquelles les développeurs implémentent ensuite l'architecture et écrivent le code, puis lors de l'utilisation du langage de modélisation sémantique d0sl, l'analyste peut créer des spécifications pour les tâches dans un langage logique formel qui sont transformées en code exécutable sans intervention humaine. Cela peut réduire considérablement le coût de développement, de déploiement et de test de nouveaux services.

Nous avons ouvert la solution pour travailler avec Trello et l'avons mise sur github .
Nous voulions non seulement fournir un outil pour la modernisation des processus dans Trello, mais aussi démontrer avec cet exemple simple les avantages d'utiliser une approche aussi moderne que la modélisation sémantique. Nous serons heureux si vous pouvez ajouter quelque chose à vous dans ce cas et partager votre expérience dans l'utilisation de notre solution.

Liens utiles


En savoir plus sur le langage de modélisation sémantique d0sl ici .
Les fondements mathématiques de la modélisation sémantique sont présentés ici .

Source: https://habr.com/ru/post/fr453492/


All Articles