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 a mais de 10 anos.

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.

 

Log in