Automação de processos de negócios da empresa Trello usando tecnologia de modelagem semântica

Nos últimos anos, o Trello tem sido cada vez mais comentado como uma excelente ferramenta para organização e planejamento. Há 3 anos, usamos o Trello em nossa empresa para planejar muitos processos, desde férias, viagens de negócios e aprovações de contratos até o gerenciamento de projetos.

Infelizmente, nem tudo é tão bonito no Trello. Você não pode executar um fluxo de trabalho personalizado. Ou seja, precisamos ocupar um funcionário que arraste os cartões com as mãos em vários quadros. Como tornar possível a transferência desse funcionário para outro trabalho mais interessante e criativo?

É claro que você pode escrever um script que fará tudo isso por nós. Mas há um problema. Um script só pode ser escrito por um programador ou por uma pessoa que entenda como fazer isso. Ele terá que manter o script. Encontramos uma solução mais simples e lógica - essa é a modelagem semântica.

A modelagem semântica permite que você escreva toda a lógica do quadro no Trello em linguagem natural.

Coordenação de viagens e férias


Adote o processo mais simples: combinar viagens e férias. De acordo com nossos regulamentos, todo funcionário que planeja tirar férias ou fazer uma viagem de negócios publica uma solicitação ao Trello. O aplicativo cai na folha "Para aprovação".



Assim que o pedido é aprovado (na verdade, isso significa que o chefe do funcionário e / ou o representante do departamento financeiro marcou a caixa de seleção), eles são movidos para a lista "Viagens acordadas". Um pedido de licença se enquadra, respectivamente, em "Licença aprovada", etc. Depois disso, você precisa notificar o funcionário que seu pedido foi aceito.

Suponha que desejamos automatizar esse processo para que, após a aprovação, o aplicativo seja movido automaticamente para a planilha desejada e o funcionário receba uma notificação sobre a alteração no status do aplicativo. Considere o que precisamos para isso.

Ferramentas necessárias


Para desenvolver o modelo, escolhemos o ide do Jetbrains MPS (Meta Programming System). Como linguagem para modelagem, é usada a linguagem d0SL - linguagem semântica Delta0, criada com base em modelos semânticos (lógicos).

Todo o processo de instalação do Jetbrains MPS e os plug-ins necessários estão descritos aqui: https://d0sl.imtqy.com/en/quick/installation/ .

Você pode instalar o modelo de placa Trello finalizado no link: https://d0sl.imtqy.com/en/quick/trello/ .

Modelo semântico. O que aconteceu?


Vamos ver como é o modelo semântico resultante das placas do Trello. Ele contém nossas regras:

  • A caixa de seleção está marcada - verifica se a caixa de seleção denominada requiredCheckBoxName está marcada no cartão com o id cardId. Dessa forma, podemos verificar se nosso Aplicativo é aprovado ou não.
  • moveCard - Move o cartão cardId para a lista e adiciona um comentário ao aplicativo para o usuário



O modelo possui um checkBoard predicado, que é chamado para cada cartão no tabuleiro. O identificador do cartão, o nome do usuário que executou a última operação com o cartão, a planilha da qual o cartão foi movido e a planilha em que está localizado atualmente são transferidos para ele. Além disso, no checkBoard, podemos definir as regras pelas quais planejamos processar nossos aplicativos.



Observe que a modelagem semântica permite colocar todas as regras de negócios lógicas em um documento e gravá-las no idioma da área de assunto, o "idioma nativo" para os usuários do modelo.

A capacidade de fazer algo com o cartão é fornecida pelo modelo básico do TrelloBoard, que se parece com isso:



Se executarmos o modelo, assim que o aplicativo na folha "Para aprovação" passar no processo de aprovação,



O sistema o moverá para a seção apropriada e notificará o fabricante do cartão sobre a alteração no status do aplicativo.



Se, no entanto, um aplicativo que não foi aceito para ser tentado manualmente, o sistema o enviará ao local e escreverá um comentário irritado.

E o que há sob o capô?


O modelo básico do TrelloBoard é essencialmente uma interface que implementamos em Java (neste caso, na classe com.gav.semanticTrelloBoard.TrelloBoardDSL).

É assim:



Definimos nomes de funções usando decoradores e os implementamos.
Também temos a classe AiTrelloBoard, que nos permite trabalhar com o Trello. Ele contém implementações java de funções como start:



No arquivo trelloBoard.properties, mantemos todos os parâmetros da API do trello (como application_key, board_id etc.) e last_update_timestamp - registro de data e hora da última atualização.

Portanto, com o custo de pouco esforço, podemos automatizar os processos de negócios necessários no Trello. Usar e manter esta solução é muito mais conveniente que o código do programa.

Obviamente, as possibilidades da modelagem semântica não se limitam à solução desse problema. De fato, se na abordagem clássica para resolver problemas o analista primeiro cria especificações, com base nas quais os desenvolvedores implementam a arquitetura e escrevem o código posteriormente, ao usar a linguagem de modelagem semântica d0sl, o analista pode criar especificações para tarefas em uma linguagem lógica formal que são transformadas em código executável sem intervenção humana. Isso pode reduzir significativamente o custo de desenvolvimento, implantação e teste de novos serviços.

Criamos a solução para trabalhar com o Trello aberta e a colocamos no github .
Queríamos não apenas fornecer uma ferramenta para modernização de processos no Trello, mas também demonstrar com este exemplo simples as vantagens de usar uma abordagem tão moderna como a modelagem semântica. Teremos o maior prazer em poder adicionar algo seu a este caso e compartilhar sua experiência no uso de nossa solução.

Links úteis


Leia mais sobre a linguagem de modelagem semântica d0sl aqui .
Os fundamentos matemáticos da modelagem semântica são descritos aqui .

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


All Articles