Contexto de negócio
Cada vez mais o mercado exige que as operações complexas de dados sejam ainda mais ágeis e com custos reduzidos. Com o RH não é diferente, os processos cada vez mais complexos e com muitas variáveis a serem analisadas no que tange as informações do ponto eletrônico os profissionais de RH precisam de agilidade na hora de controlar processos funcionais da empresa.
Com essa necessidade e a importância desta área dentro da empresa, surgiu a necessidade da criação de um produto que possibilite a visualização de indicadores de funcionários que realizam o ponto eletrônico e marcações integradas com o Clock In. Para isso foi desenvolvido o Dashboard RH. Nele estarão presentes 8 indicadores no total, sendo eles:
- Total de funcionários que utilizam o ponto eletrônico
- Total de funcionários com o ponto completo
- Total de funcionários com o ponto incompleto
- Total de funcionários sem marcações
- Total de marcações no Clock In
- Total de marcações integradas
- Total de marcações pendentes de integração
- Total de Marcações sem NSR no Clock In
Pré requisitos, configuração serviço REST
API
No total foram desenvolvidas 6 APIs para atender o Dashboard RH, sendo elas:
1 - DbHrBranches para listar as filiais que serão utilizadas no filtro.
2 - DbHrManagers para listar os gestores que serão utilizados no filtro.
3 - DbHrAttendanceControl para trazer os indicadores do ponto dos funcionários.
4 - DbHrClockin para trazer as marcações do Clock In e seus status referente a intregração com o Clock In.
5 - DbHrEmail para o envio do e-mail contendo as informações do Dashboard RH.
6 - DbHrGetExcel para gerar uma planilha do Excel com as informações do Dashboard RH.
Filiais - api/rh/v1/DbHrBranches
API responsável por trazer todas as filiais para serem utilizadas no filtro do Dashboard RH. Assim será possível ter uma visão macro da empresa ou apenas de uma filial em específico.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para consultar todas as filiais cadastradas para serem utilizadas no filtro do Dashboard RH.
Cadastro
Esta API contempla apenas a consulta das filiais cadastradas.
Processos
O Dashboard RH realizará o consumo da API para buscar todas as filiais.
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método GET e do Serviço api/rh/v1/DbHrBranches;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
Por ser uma API que retorna todas as filiais, não existe qualquer parâmetro que precisa ser enviado.
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrBranches
Response da API:
Application/json
{
"branches": [
"D MG 01 ",
"D MG 02 ",
"D RJ 01 ",
"D RJ 02 ",
"M PR 01 ",
"M PR 02 ",
"M SP 01 ",
"M SP 02 ",
"M SP 03 "
]
}
Filiais - api/rh/v1/DbHrManagers
API responsável por trazer todos os gestores para serem utilizados no filtro do Dashboard RH. Assim será possível realizar filtros dos funcionários separados por gestor ou gestores.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para consultar todos os gestores cadastrados para serem utilizadas no filtro do Dashboard RH.
Cadastro
Esta API contempla apenas a consulta dos gestores cadastrados.
Processos
O Dashboard RH realizará o consumo da API para buscar todos os gestores.
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método GET e do Serviço api/rh/v1/DbHrManagers;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
Por ser uma API que retorna todos os gestores, não existe qualquer parâmetro que precisa ser enviado.
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrManagers
Response da API:
Application/json
{
"managers": [
"GESTOR FINANCEIRO D MG (D MG 01 - 000001)",
"GESTOR RH M SP (M SP 01 - 000001)",
"GESTOR TI D MG (D MG 01 - 000002)"
]
}
Observações:
1 - Para que o Dashboard RH consiga localizar corretamente os funcionários que percentem à um gestor é necessário informar a filial e matrícula (separados por espaço + "-" + espaço) dos gestores entre parênteses. Exemplo: Gestor A (M SP 01 - 000001), Gestor B (M SP 01 - 000002) e Gestor C (M SP 01 - 000003).
2 - Caso o ERP não possua uma hierarquia ou não foram encontrados os gestores, o retorno a API deverá ser um Array vazio. Enviado um Array vazio o Dashboard RH irá desativar o filtro por gestor e o botão de enviar e-mail para os gestores.
Ponto Completo e Incompleto - api/rh/v1/DbHrAttendanceControl
API responsável por retornar o total de funcionários, funcionários com o ponto completo, incompleto e sem marcações, que não foram demitidos antes do período selecionado ou os funcionários demitidos dentro do período selecionado. Basicamente esta API irá verificar a quantidade de marcações realizadas no período pelo funcionário e irá validar com a quantidade em que o funcionário deveria realizar de acordo com o seu turno. Por exemplo um funcionário precisa realizar a marcação do ponto 4 vezes ao dia (entrada jornada, saída para o almoço, volta do almoço e saída da jornada). Se o funcionário possuir 4 ou mais marcações o sistema irá contabilizar como ponto completo, caso o funcionário tenha menos de 4 marcações, será considerado como ponto incompleto e se o funcionário não possuir marcações no dia, será contabilizado com funcionário sem marcação, com exceção dos finais de semandas, feriados ou em dias em que o funcionário não trabalha. Quando for selecionado um período de 30 dias, por exemplo, a validação do ponto completo será realizada diariamente, ou seja, se o funcionário tiver 4 marcações todos os dias do período selecionado ele será considerado como ponto completo. Se no período existir pelo menos 1 dia com marcações faltantes, ele será considerado ponto incompleto e se o funcionário não possuir marcações no período selecionado, será considerado como funcionário sem marcações.
Observação: O dia da demissão do funcionário contará como dia trabalhado, caso o funcionário seja demitido no dia 19/08/2022 e o filtro do período é de 01/08/2022 à 19/08/2022, a quantidade de marcações do dia 19/08/2022 será contabilizado normalmente.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para trazer o total de funcionários, funcionários que estão com o ponto completo, incompleto e sem marcações
Cadastro
Esta API contempla as consultas do cadastro de funcionários, turnos, tabela de horário padrão e marcações realizadas pelo funcionários.
Processos
O Dashboard RH realizará o consumo da API para buscar e exibir a quantidade total de funcionários, funcionários que estão com o ponto completo, incompleto e sem marcações
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método POST e do Serviço api/rh/v1/DbHrAttendanceControl;
- Preenchimento dos parâmetros obrigatórios da API;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
As Entradas de dados tipo data(Date) acompanham o formato padrão YYYY-MM-DD
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Parâmetro | Descrição |
---|---|---|---|---|---|
startDate | 2024-01-01 | Sim | Date | Body | Data inicial do período. |
endDate | 2024-01-08 | Sim | Date | Body | Data final do período. |
branches | ["D MG 01"] ["D MG 01","M SP 01"] ["todas"] | Sim | Array | Body | Filtro da filial. |
managers | ["GESTOR FINANCEIRO D MG (D MG 01 - 000001)"] | Sim | Array | Body | Gestores selecionados no filtro. |
accept | application/json | Sim | String | Header | |
content-type | application/json | Sim | String | Header |
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrAttendanceControl
Response da API:
Application/json
{ "1": { "branch": "Todas as Filiais", "totalEmployees": 9, "totalDetails": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ], "clockMarkingsComplete": 3, "completeDetails": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ], "clockMarkingsIncomplete": 3, "incompleteDetails": [ { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "dateTime": "05/01/2024", "reason": "Dia sem marcação", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": "", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "dateTime": "03/01/2024", "reason": "1 Marcação faltante", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": " 09:00 - 12:00 - 13:00 ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "dateTime": "04/01/2024", "reason": "Dia sem marcação", "estimated": "08:00 - 13:00 - 14:00 - 17:00", "performed": "", "managerId": "M SP 01 - 000001" } ], "withoutClockMarkings": 3, "withoutDetails": [ { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, "2": { "branch": "D MG 01", "totalEmployees": 6, "totalDetails": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" } ], "clockMarkingsComplete": 2, "completeDetails": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" } ], "clockMarkingsIncomplete": 2, "incompleteDetails": [ { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "dateTime": "05/01/2024", "reason": "Dia sem marcação", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": "", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "dateTime": "03/01/2024", "reason": "1 Marcação faltante", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": " 09:00 - 12:00 - 13:00 ", "managerId": "D MG 01 - 000002" } ], "withoutClockMarkings": 2, "withoutDetails": [ { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" } ] }, "3": { "branch": "M SP 01", "totalEmployees": 3, "totalDetails": [ { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ], "clockMarkingsComplete": 1, "completeDetails": [ { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ], "clockMarkingsIncomplete": 1, "incompleteDetails": [ { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "dateTime": "04/01/2024", "reason": "Dia sem marcação", "estimated": "08:00 - 13:00 - 14:00 - 17:00", "performed": "", "managerId": "M SP 01 - 000001" } ], "withoutClockMarkings": 1, "withoutDetails": [ { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] } }
Observação
Caso os indicadores não possuam dados a serem exibido, será necessário enviar no retorno da API as propriedades da resposta com 0 e o detalhamento com um array vazio. Exemplo:
{ "1": { "branch": "Todas as Filiais", "totalEmployees": 0, "totalDetails": [], "clockMarkingsComplete": 0, "completeDetails": [], "clockMarkingsIncomplete": 0, "incompleteDetails": [], "withoutClockMarkings": 0, "withoutDetails": [] }, "2": { "branch": "Filial A", "totalEmployees": 0, "totalDetails": [], "clockMarkingsComplete": 0, "completeDetails": [], "clockMarkingsIncomplete": 0, "incompleteDetails": [], "withoutClockMarkings": 0, "withoutDetails": [] }, "3": { "branch": "Filial B", "totalEmployees": 0, "totalDetails": [], "clockMarkingsComplete": 0, "completeDetails": [], "clockMarkingsIncomplete": 0, "incompleteDetails": [], "withoutClockMarkings": 0, "withoutDetails": [] } }
Observação
Caso seja selecionada 2 ou mais filiais, a primeira posição da resposta obrigatoriamente será o totalizador, para a demais posições serão as filiais e suas informações.
Se for selecionado apenas 1 filial no filtro só haverá 1 posição na resposta da API.
Chamada API:
Possíveis situações no envio dos filtros de filiais
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "todas" ], "managers":[ "todos" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "D MG 01" ], "managers":[ "todos" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "D MG 01", "M SP 01" ], "managers":[ "todos" ] }
Observação
1 - Para o filtro de gestor caso selecionado todos os gestores deverá ser retornado todos os funcionários, independemente se o funcionário possui ou não um gestor direto.
2 - Quando selecionado 1 ou mais gestores apenas os funcionários que respondem diretamente aos gestores selecionados deverão ser listados.
3 - Não há quebra dos indicadores separados por gestor, como existe na quebra por filial.
Possíveis situações no envio dos filtros de filiais
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "todas" ], "managers":[ "todos" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "todas" ], "managers":[ "GESTOR FINANCEIRO D MG (D MG 01 - 000001)" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "todas" ], "managers":[ "GESTOR FINANCEIRO D MG (D MG 01 - 000001)", "GESTOR RH M SP (M SP 01 - 000001)" ] }
Situações de Erros Tratados
O envio de dados inesperados nos parâmetros de entrada da API REST pode ocasionar alguns erros. Desta forma, foram criados alguns tratamentos de erros listados abaixo, cada um com sua respectiva mensagem e solução.
Mensagens de Pré-Validação
Código | Erro | Detalhe |
---|---|---|
400 | "Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados." |
Integrações Clock In - api/rh/v1/DbHrClockin
API responsável por retornar o total de marcações no Clock In, total de marcações integradas, total de marcações a serem integradas e o total de marcações sem NSR gerada.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para trazer o total de funcionários que estão com o ponto completo e o total de funcionários com o ponto incompleto.
Cadastro
Esta API contempla as consultas de marcações do Clock In e marcações integradas com o ERP.
Processos
O Dashboard RH realizará o consumo da API para buscar e exibir a quantidade total de marcações no Clock In, total de marcações integradas, total de marcações a serem integradas e o total de marcações sem NSR gerada.
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método POST e do Serviço api/rh/v1/DbHrClockin;
- Preenchimento dos parâmetros obrigatórios da API;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
As Entradas de dados tipo data(Date) acompanham o formato padrão YYYY-MM-DD
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Parâmetro | Descrição |
---|---|---|---|---|---|
startDate | 2022-05-01 | Sim | Date | Body | Data inicial do período. |
endDate | 2022-05-31 | Sim | Date | Body | Data final do período. |
branches | ["D MG 01"] | Sim | Array | Body | Filtro da filial. |
accept | application/json | Sim | String | Header | |
content-type | application/json | Sim | String | Header |
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrClockin
Response da API:
Application/json
{ "1": { "branch": "Todas", "totalClockMarkings": 7, "totalDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 2, "dateTime": "01/03/2023 12:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 3, "dateTime": "01/03/2023 13:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 0, "dateTime": "01/03/2023 18:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 2, "dateTime": "01/03/2023 12:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 0, "dateTime": "01/03/2023 13:00" } ], "totalIntegrated": 3, "integratedDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 2, "dateTime": "01/03/2023 12:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 1, "dateTime": "01/03/2023 09:00" } ], "totalToBeIntegrated": 2, "toBeIntegratedDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 3, "dateTime": "01/03/2023 13:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 2, "dateTime": "01/03/2023 12:00" } ], "totalWhitoutNSR": 2, "whitoutNsrDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 0, "dateTime": "01/03/2023 18:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 0, "dateTime": "01/03/2023 18:00" } ] }, "2": { "branch": "Filial A", "totalClockMarkings": 4, "totalDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 2, "dateTime": "01/03/2023 12:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 3, "dateTime": "01/03/2023 13:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 0, "dateTime": "01/03/2023 18:00" } ], "totalIntegrated": 2, "integratedDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 2, "dateTime": "01/03/2023 12:00" } ], "totalToBeIntegrated": 1, "clockMarkings": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 3, "dateTime": "01/03/2023 13:00" } ], "totalWhitoutNSR": 1, "whitoutNsrDetails": [ { "cnpj": "99999999999999", "cpf": "44379500039", "pis": "61743152540", "branch": "Filial A", "name": "Func A", "device": "dispositivo A", "nsr": 0, "dateTime": "01/03/2023 18:00" } ] }, "3": { "branch": "Filial B", "totalClockMarkings": 3, "totalDetails": [ { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 1, "dateTime": "01/03/2023 09:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 2, "dateTime": "01/03/2023 12:00" }, { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 0, "dateTime": "01/03/2023 13:00" } ], "totalIntegrated": 1, "integratedDetails": [ { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 1, "dateTime": "01/03/2023 09:00" } ], "totalToBeIntegrated": 1, "toBeIntegratedDetails": [ { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 2, "dateTime": "01/03/2023 12:00" } ], "totalWhitoutNSR": 1, "whitoutNsrDetails": [ { "cnpj": "99999999999999", "cpf": "88888888888", "pis": "77777777777", "branch": "Filial B", "name": "Func B", "device": "dispositivo B", "nsr": 0, "dateTime": "01/03/2023 13:00" } ] } }
Observação
Caso os indicadores não possuam dados a serem exibido, será necessário enviar no retorno da API as propriedades da resposta com 0 e o detalhamento com um array vazio. Exemplo:
{ "1": { "branch": "Todas as Filiais", "totalClockMarkings": 0, "totalDetails": [], "totalIntegrated": 0, "integratedDetails": [], "totalToBeIntegrated": 0, "toBeIntegratedDetails": [], "totalWhitoutNSR": 0, "whitoutNsrDetails": [] }, "2": { "branch": "Filial A", "totalClockMarkings": 0, "totalDetails": [], "totalIntegrated": 0, "integratedDetails": [], "totalToBeIntegrated": 0, "toBeIntegratedDetails": [], "totalWhitoutNSR": 0, "whitoutNsrDetails": [] }, "3": { "branch": "Filial B", "totalClockMarkings": 0, "totalDetails": [], "totalIntegrated": 0, "integratedDetails": [], "totalToBeIntegrated": 0, "toBeIntegratedDetails": [], "totalWhitoutNSR": 0, "whitoutNsrDetails": [] } }
Observação
Caso seja selecionada 2 ou mais filiais, a primeira posição da resposta obrigatoriamente será o totalizador, para a demais posições serão as filiais e suas informações.
Se for selecionado apenas 1 filial no filtro só haverá 1 posição na resposta da API.
Chamada API:
Possíveis situações no envio dos filtros
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "todas" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "D MG 01" ] }
{ "startDate":"2024-01-01", "endDate":"2024-01-05", "branches":[ "D MG 01", "M SP 01" ] }
Situações de Erros Tratados
O envio de dados inesperados nos parâmetros de entrada da API REST pode ocasionar alguns erros. Desta forma, foram criados alguns tratamentos de erros listados abaixo, cada um com sua respectiva mensagem e solução.
Mensagens de Pré-Validação
Código | Erro | Detalhe |
---|---|---|
400 | "Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados." |
Integrações Clock In - api/rh/v1/DbHrEmail
API responsável por enviar um e-mail com um HTML que é uma cópia do Dashboard e uma planilha do excel contendo os dados dos indicadores.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para enviar as informações exibidas no Dashboard RH por e-mail.
Cadastro
Esta API contempla os resultados das informações exibidas no Dashboard RH, no caso o resultado das APIs anteriores (DbHrAttendanceControl e DbHrClockin).
Processos
O Dashboard RH realizará o consumo da API para enviar um e-mail, contendo um HTML do Dashboard RH anexa.
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método POST e do Serviço api/rh/v1/DbHrEmail;
- Preenchimento dos parâmetros obrigatórios da API;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
As Entradas de dados tipo data(Date) acompanham o formato padrão YYYY-MM-DD
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Parâmetro | Descrição |
---|---|---|---|---|---|
lastUpdate | 09:31 (02/05/2023) | Sim | String | Body | Data da última atualizado do Dashboard. |
startDate | 2023-04-30 | Sim | Date | Body | Data Inicial do filtro. |
endDate | 2023-05-01 | Sim | Date | Body | Data final do filtro. |
branches | ["todas"] | Array | Body | Filiais selecionadas no filtro | |
managerIsEmpty | false | Boolean | Body | Indica se existe a hierarquia de gestores | |
sendToManager | false | Boolean | Body | Indica se o e-mail deve ser disparado apenas para o gestor | |
managers | ["todos"] | Array | Body | Gestores selecionados no filtro | |
data | "data": [ { "manager": "", "grpIndicators": [ { "indicatorGroup": "Indicadores de funcionários - Todas as Filiais", "indicators": [ { "indicatorBranch": "Todas as Filiais", "title": "Total de funcionários", "classTitle": "totalCard_title", "amount": 9, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "funcionários com pontos completos", "classTitle": "accomplishedCard_title", "amount": 3, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000006", "name": "DASH PNT COMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "funcionários com pontos incompletos", "classTitle": "attentionCard_title", "amount": 3, "details": [ { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "dateTime": "05/01/2024", "reason": "Dia sem Marcação", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": "", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000007", "name": "DASH PNT INCOMPLETO TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "dateTime": "03/01/2024", "reason": "1 Marcação faltante", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": " 09:00 - 12:00 - 13:00 ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "dateTime": "04/01/2024", "reason": "Dia sem Marcação", "estimated": "08:00 - 13:00 - 14:00 - 17:00", "performed": "", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "funcionários sem marcações", "classTitle": "criticalCard_title", "amount": 3, "details": [ { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000008", "name": "DASH PNT SEM MARC TI ", "department": "TI ", "manager": "GESTOR TI D MG ", "managerId": "D MG 01 - 000002" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] } ] }, { "indicatorGroup": "Indicadores de marcações do Clock In - Todas as Filiais", "indicators": [ { "indicatorBranch": "Todas as Filiais", "title": "Total de marcações no período", "classTitle": "totalCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "marcações processadas", "classTitle": "accomplishedCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "marcações existentes para integração", "classTitle": "attentionCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "marcações sem NSR", "classTitle": "criticalCard_title", "amount": 0, "details": [] } ] } ] } ] | Sim | Object | Body | Array dados dos indicadores. |
accept | application/json | Sim | String | Header | |
content-type | application/json | Sim | String | Header |
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrEmail
Response da API:
Application/json
{
"Response": "E-mail enviado com sucesso."
}
Para o envio do e-mail com os dados do Dashboard será necessário verificar se o e-mail deverá ser enviado para o gestor ou não, através do parâmetro sendToManager, caso ele esteja true o e-mail deverá ser separado por gestor, assim como os dados do dashboard, caso ele esteja com false o e-mail será enviado para um único destinatário, configurado no parâmetro do Protheus.
sendToManager envio do e-mail para os gestores:
Json completo com o parâmetro sendToManager = true
Observação
Quando o parâmetro sendToManager estiver com true o parâmetro "data" será um array, onde cada posição é referente ao dados de 1 gestor. Por exemplo, se for selecionado dois gestores, a 1º posição terá os dados do Gestor A, a 2º posição terá os dados do Gestor B. Dessa maneira na hora de montar a planilha do excel ou o HTML com os dados do Dashboard RH, não será necessário realizar qualquer filtro, o Dashboard RH enviará os dados já separados por gestor.
Exemplo 1º posição:
Exemplo 2º posição:
sendToManager envio do e-mail para o parâmetro (não para os gestores):
Json completo com o parâmetro sendToManager = false
Observação
Quando o parâmetro sendToManager estiver com false o parâmetro "data" será um único array contendo os dados do Dashboard RH.
Situações de Erros Tratados
O envio de dado inesperado no parâmetro de entrada da API REST pode ocasionar alguns erros. Desta forma, foram criados alguns tratamentos de erros listados abaixo, cada um com sua respectiva mensagem e solução.
Mensagens de Pré-Validação
Código | Erro | Detalhe |
---|---|---|
400 | "Falha no envio do e-mail, verifique as configurações do sistema para o envio de e-mails." | |
401 | "Parâmetros inválidos: Verifique se todos os parâmetros foram enviados corretamente." |
Filiais - api/rh/v1/DbHrGetExcel
API responsável por gerar os dados do Dashboard RH em uma planilha do Excel.
Ativação/Desativação da API
Por padrão esta API estará no sistema, porém será necessário realizar a devida configuração do serviço REST.
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância da linha Protheus.
Suporte
O suporte aos recursos da API será de responsabilidade da linha Protheus onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta API traz a funcionalidade exclusivamente para gerar uma planilha do Excel contendo os dados do Dashboard RH.
Cadastro
Esta API contempla os resultados das informações exibidas no Dashboard RH, no caso o resultado das APIs anteriores (DbHrAttendanceControl e DbHrClockin).
Processos
O Dashboard RH irá enviar para a API os dados dos indicadores e terá como retorno uma planilha do Excel.
Como realizar a chamada da API REST
- Preenchimento do EndPoint da API PONAPIDSB;
- Utilizar a chamada do método POST e do Serviço api/rh/v1/DbHrGetExcel;
- Preenchimento dos parâmetros obrigatórios da API;
Internamente o Protheus identifica automaticamente o endereço do servidor REST, porém para que isso aconteça será necessário habilitar a porta multiprotocolo do Appserver. Para mais informações sobre a porta multiprotocolo acesse o link abaixo:
https://tdn.totvs.com/x/jIUoI
Formatos de Data
As Entradas de dados tipo data(Date) acompanham o formato padrão YYYY-MM-DD
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Parâmetro | Descrição |
---|---|---|---|---|---|
managerIsEmpty | false | Sim | Boolean | Body | Indica se existe gestor, em caso de true criar a coluna Gestor com o nome do gestor, caso false não criar a coluna Gestor no Excel. |
data | "manager": "", "grpIndicators": [ { "indicatorGroup": "Indicadores de funcionários - Todas as Filiais", "indicators": [ { "indicatorBranch": "Todas as Filiais", "title": "Total de funcionários", "classTitle": "totalCard_title", "amount": 6, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "Funcionários com pontos completos", "classTitle": "accomplishedCard_title", "amount": 2, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "Funcionários com pontos incompletos", "classTitle": "attentionCard_title", "amount": 2, "details": [ { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "dateTime": "05/01/2024", "reason": "Dia sem marcação", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": "", "managerId": "D MG 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "dateTime": "04/01/2024", "reason": "Dia sem marcação", "estimated": "08:00 - 13:00 - 14:00 - 17:00", "performed": "", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "Todas as Filiais", "title": "Funcionários sem marcações", "classTitle": "criticalCard_title", "amount": 2, "details": [ { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] } ] }, { "indicatorGroup": "Indicadores de marcações do Clock In - Todas as Filiais", "indicators": [ { "indicatorBranch": "Todas as Filiais", "title": "Total de marcações no período", "classTitle": "totalCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "Marcações processadas", "classTitle": "accomplishedCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "Marcações existentes para integração", "classTitle": "attentionCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "Todas as Filiais", "title": "Marcações sem NSR", "classTitle": "criticalCard_title", "amount": 0, "details": [] } ] }, { "indicatorGroup": "Indicadores de funcionários - D MG 01", "indicators": [ { "indicatorBranch": "D MG 01", "title": "Total de funcionários", "classTitle": "totalCard_title", "amount": 3, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" }, { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" } ] }, { "indicatorBranch": "D MG 01", "title": "Funcionários com pontos completos", "classTitle": "accomplishedCard_title", "amount": 1, "details": [ { "branch": "D MG 01 ", "registration": "000003", "name": "DASH PNT COMPLETO FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" } ] }, { "indicatorBranch": "D MG 01", "title": "Funcionários com pontos incompletos", "classTitle": "attentionCard_title", "amount": 1, "details": [ { "branch": "D MG 01 ", "registration": "000004", "name": "DASH PNT INCOMPLET FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "dateTime": "05/01/2024", "reason": "Dia sem marcação", "estimated": "09:00 - 12:00 - 13:00 - 18:00", "performed": "", "managerId": "D MG 01 - 000001" } ] }, { "indicatorBranch": "D MG 01", "title": "Funcionários sem marcações", "classTitle": "criticalCard_title", "amount": 1, "details": [ { "branch": "D MG 01 ", "registration": "000005", "name": "DASH PNT SEM MARC FINANCEIRO ", "department": "FINANCEIRO ", "manager": "GESTOR FINANCEIRO D MG ", "managerId": "D MG 01 - 000001" } ] } ] }, { "indicatorGroup": "Indicadores de marcações do Clock In - D MG 01", "indicators": [ { "indicatorBranch": "D MG 01", "title": "Total de marcações no período", "classTitle": "totalCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "D MG 01", "title": "Marcações processadas", "classTitle": "accomplishedCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "D MG 01", "title": "Marcações existentes para integração", "classTitle": "attentionCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "D MG 01", "title": "Marcações sem NSR", "classTitle": "criticalCard_title", "amount": 0, "details": [] } ] }, { "indicatorGroup": "Indicadores de funcionários - M SP 01", "indicators": [ { "indicatorBranch": "M SP 01", "title": "Total de funcionários", "classTitle": "totalCard_title", "amount": 3, "details": [ { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" }, { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "M SP 01", "title": "Funcionários com pontos completos", "classTitle": "accomplishedCard_title", "amount": 1, "details": [ { "branch": "M SP 01 ", "registration": "000002", "name": "DASH PNT COMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "M SP 01", "title": "Funcionários com pontos incompletos", "classTitle": "attentionCard_title", "amount": 1, "details": [ { "branch": "M SP 01 ", "registration": "000003", "name": "DASH PNT INCOMPLETO RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "dateTime": "04/01/2024", "reason": "Dia sem marcação", "estimated": "08:00 - 13:00 - 14:00 - 17:00", "performed": "", "managerId": "M SP 01 - 000001" } ] }, { "indicatorBranch": "M SP 01", "title": "Funcionários sem marcações", "classTitle": "criticalCard_title", "amount": 1, "details": [ { "branch": "M SP 01 ", "registration": "000004", "name": "DASH PNT SEM MARC RH ", "department": "RH ", "manager": "GESTOR RH M SP ", "managerId": "M SP 01 - 000001" } ] } ] }, { "indicatorGroup": "Indicadores de marcações do Clock In - M SP 01", "indicators": [ { "indicatorBranch": "M SP 01", "title": "Total de marcações no período", "classTitle": "totalCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "M SP 01", "title": "Marcações processadas", "classTitle": "accomplishedCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "M SP 01", "title": "Marcações existentes para integração", "classTitle": "attentionCard_title", "amount": 0, "details": [] }, { "indicatorBranch": "M SP 01", "title": "Marcações sem NSR", "classTitle": "criticalCard_title", "amount": 0, "details": [] } ] } ] | ||||
accept | application/json | Sim | String | Header | |
content-type | application/json | Sim | String | Header |
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta Postman e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}:{porta}/{endereço Rest}/api/rh/v1/DbHrGetExcel
Response da API:
Application/json
{
"fileName": "dashboard_rh.xlsx",
"file":"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"
}
Observação
1 - O "fileName" será o nome do arquivo que será feito donwload.
2 - O "file" deverá ser um arquivo convertido no formato base 64 (BLOB).
Exemplo do retorno da API: