Tutoriais Camunda

Avaliação do Usuário: 5 / 5

Estrela ativaEstrela ativaEstrela ativaEstrela ativaEstrela ativa
 

Camunda Community é uma excelente solução para automação de fluxos usando metodologia BPM (com suporte a notações BPMN, DMN e CMMN). O Camunda permite os usuários atuar com decisão e fluxo de trabalho, operar modelos implantados na produção e permitir que os usuários executem tarefas de fluxo de trabalho a eles atribuídas.A versão Community do Camunda é totalmente open Source e com uma boa documentação oficial e com suporte a Português do Brasil.

O Problema

Ao tentar consultar as tabelas tradicionais de banco de dados que registram tarefas do Camunda ou os serviços tradicionais de REST API do Camunda não conseguimos visualizar dados referentes a os tipos de tarefas externas (Service task) e tarefas de mensagens (Send Task e Receive Task), não conseguimos recuperar o histórico destes tipos de tarefas! Então como recuperar estes dados?

A Solução

A solução está em uma questão conceitual do Camunda, estes tipos de tarefas que fazem comunicação com o mundo externo ficam em localidades diferentes por não terem pessoas atribuídas e outras característica de uma tarefa atribuída. Mas sim estas informação são armazenadas se a auditoria do Camunda Default (FULL) estiver ativa.

Podemos recuperar estes dados pela API REST ou também pelo banco de dados.

Recuperando os dados pela API REST do Camunda

  • A API REST do Camunda pode ser acessada em /engine-rest
  • O serviço que devolve todos os históricos as tarefas externas ( Send Task) é o /engine-rest/history/external-task-log
  • deve ser requisitado com o método HTTP POST
    MÉTODO POST
    http://localhost:8080/engine-rest/history/external-task-log
  • Sua resposta será similar a esta a segui , variando com a quantidade de tarefas já realizada:
    [{
    "id": "57030e51-072e-11eb-9053-02421a39bd81",
    "timestamp": "2020-10-05T14:15:17.464-0300",
    "removalTime": null,
    "externalTaskId": "57030e50-072e-11eb-9053-02421a39bd81",
    "topicName": "charge-card",
    "workerId": null,
    "priority": 0,
    "retries": null,
    "errorMessage": null,
    "activityId": "Activity_SendTaskDocAction",
    "activityInstanceId": "Activity_SendTaskDocAction:57030e4f-072e-11eb-9053-02421a39bd81",
    "executionId": "5702e73e-072e-11eb-9053-02421a39bd81",
    "processInstanceId": "41b0393b-072e-11eb-9053-02421a39bd81",
    "processDefinitionId": "SendAndReceiveTask:1:3c64f01a-072e-11eb-9053-02421a39bd81",
    "processDefinitionKey": "SendAndReceiveTask",
    "tenantId": null,
    "rootProcessInstanceId": "41b0393b-072e-11eb-9053-02421a39bd81",
    "creationLog": true,
    "failureLog": false,
    "successLog": false,
    "deletionLog": false
    }]
  • Para recuperar acão de elementos do tipo Receive Task devemos consultar as Activiti Instances atraves do End point /history/activity-instance
MÉTODO: POST http://localhost:8080/engine-rest/history/activity-instance
  • A resposta será similar a esta:
[{
  "id": "9538f752-073d-11eb-9700-02421a39bd81",
  "parentActivityInstanceId": "825eea7d-073d-11eb-9700-02421a39bd81",
  "activityId": "Activity_ReceiveTask",
  "activityName": "Recebe\nPlano Finalizado ",
  "activityType": "receiveTask",
  "processDefinitionKey": "SendAndReceiveTask",
  "processDefinitionId": "SendAndReceiveTask:1:79a99b5c-073d-11eb-9700-02421a39bd81",
  "processInstanceId": "825eea7d-073d-11eb-9700-02421a39bd81",
  "executionId": "9538d040-073d-11eb-9700-02421a39bd81",
  "taskId": null,
  "calledProcessInstanceId": null,
  "calledCaseInstanceId": null,
  "assignee": null,
  "startTime": "2020-10-05T16:04:24.289-0300",
  "endTime": "2020-10-05T16:06:21.734-0300",
  "durationInMillis": 117445,
  "canceled": false,
  "completeScope": false,
  "tenantId": null,
  "removalTime": null,
  "rootProcessInstanceId": "825eea7d-073d-11eb-9700-02421a39bd81"
}]

Recuperado os dados via banco de dados do Camunda

  • As tabelas a seguir são relacionadas respectivamente na mesma ordem da apresentação dos endpoint da API REST acima.
  • Tarefas como Service task pode ser encontradas na tabela act_hi_ext_task_log, e pode usar o campo topic_name_ como filtro , ele listará o topic informado na execução da tarefa externa (External task).

  • Histórico dos Elementos Receive Task só podem ser encontrados na tabela act_hi_ext_actinst onde também outros tarefas estarão juntas.

 

O artigo foi executado e validado através da versão 7.13 do Camunda Community

Caso precise de treinamentos em Camunda acesse nossa grade em http://www.ambientelivre.com.br/treinamento/camunda/fundamental.html

Sobre a Ambiente Livre

Ambiente LivreAmbiente Livre é especialista em Open Source e Free Software e tem uma divisão especialista em ECM e BPM. Fornece implantação, integração, suporte, consultoriatreinamento em ECM e BPM com as plataformas Alfresco, ActivitiFlowableCamunda e Operaton.

Já capacitou centenas de empresas para trabalhar com Business Intelligence, ECM, BPM, CRM e Big Data e usa uma metodologia própria de ensino.

Conheça também as divisões de Business IntelligenceCRM e CMS e Big Data e Data Science.

 

Autor

Marcio Junior Vieira

 

  • 22 anos de experiência em informática, vivência em desenvolvimento e análise de sistemas de gestão empresarial e ciência de dados.
  • CEO da Ambiente Livre atuando como Cientista de Dados, Engenheiro de Dados e Arquiteto de Software.
  • Professor dos MBAs em Big Data & Data Science, Inteligência Artificial e Business Intelligence da Universidade Positivo.
  • Professor de BPM no MBA de Business Intelligence da Universidade Positivo.
  • Professor do MBA Artificial Intelligence e Machine Learning da FIAP.
  • Pesquisador pela Universidade de Brasília no Laboratório de Tecnologias da Tomada de Decisão - UnB/LATITUDE.
  • Graduado em Tecnologia em Informática(2004) e pós-graduado em Software Livre(2005) ambos pela UFPR.
  • Palestrante FLOSS em: FISL, The Developes Conference, Latinoware, Campus Party, Pentaho Day, Ticnova, PgDay e FTSL.
  • Organizador Geral: Pentaho Day 2017, 2015, 2019 e apoio nas ed. 2013 e 2014.
  • Data Scientist, instrutor e consultor de Big Data e Data Science com tecnologias abertas.
  • Ajudou a capacitar equipes de Big Data na IBM, Accenture, Tivit, Sonda, Serpro, Dataprev, Natura, MP, Netshoes, Embraer entre outras.
  • Especialista em implantação e customização de Big Data com Hadoop, Spark, Pentaho, Cassandra e MongoDB.
  • Contribuidor de projetos open sources ou free software internacionais, tais como Pentaho, Apache Hop, LimeSurveySuiteCRM e Camunda.
  • Especialista em implantação e customização de ECM com Alfresco e BPM com ActivitiFlowable e Camunda.
  • Certificado (Certified Pentaho Solutions) pela Hitachi Vantara (Pentaho inc).
  • Ganhou o prêmio Camunda Champion em 2022 em reconhecimento a suas contribuições com o projeto Open Source Camunda.
  • Membro da The Order Of de Bee (Comunidade Alfresco trabalhando para desenvolver o ecossistema Alfresco independente)

 

Log in