Históricos de Tarefas de Serviço Externo (Service Task) e Tarefas de Mensagens (Send Task e Receive Task) do Camunda
- Escrito por Marcio Junior Vieira
- Publicado em Tutoriais Camunda BPM
- Hits: 2101
O 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"
}]
- Conheça mais sobre estes endpoints de históricos
https://docs.camunda.org/manual/7.8/reference/rest/history/task/get-task-query/
https://docs.camunda.org/manual/7.8/reference/rest/history/external-task-log/get-external-task-log-query/
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
A Ambiente Livre é especialista em Open Source e Free Software e tem uma divisão especialista em ECM e BPM. Fornece implantação, integração, suporte, consultoria e treinamento em ECM e BPM com as plataformas Alfresco, Activiti, Flowable, Camunda 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 Intelligence, CRM 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, LimeSurvey, SuiteCRM e Camunda.
- Especialista em implantação e customização de ECM com Alfresco e BPM com Activiti, Flowable 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)
