Páginas filhas
  • Totvs - Dashboard RH - Ponto Eletrônico

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

(Acesse a documentação aqui)

API

Para que o Dashboard consiga trazer todos os indicadores, foi necessário o desenvolvimento de 4 APIs, onde cada API será responsável por trazer um ou mais indicadores, ou as filiais para serem utilizadas no filtro 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.

Totvs custom tabs box
tabsFiliais,Gestores,Controle do Ponto ERP,Integração Clock In, E-mail,Excel
idsfiliais,gestores,ponto,clockin,email,excel
Totvs custom tabs box items
defaultyes
referenciafiliais

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.

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  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 "
    ]
}

Image RemovedImage Added

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}://{

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/DbHrAttendanceControlDbHrManagers

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)"
    ]
}

Image Added

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.
Image Added

Totvs custom tabs box items
defaultno
referenciapontogestores

Filiais Ponto Completo e Incompleto - api/rh/v1/DbHrAttendanceControlDbHrManagers

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). Na semana o funcionário trabalha de segunda à sexta, então teremos 5 dias trabalhados, onde cada dia o funcionário precisa bater o ponto 4 vezes, totalizando 20 marcações na semana. Se o funcionário possuir 20 ou mais marcações o sistema irá contabilizar como ponto completo, caso o funcionário tenha menos de 20 marcações na semana, será considerado como ponto incompleto.
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.

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

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.

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 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çõesconsultar todos os gestores cadastrados para serem utilizadas no filtro do Dashboard RH.

Cadastro

Esta API contempla as consultas do cadastro de funcionários, turnos, tabela de horário padrão e marcações realizadas pelo funcionáriosapenas a consulta dos gestores cadastrados.

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çõestodos os gestores.

Como realizar a chamada da API REST

  • Preenchimento do EndPoint da API PONAPIDSB;
  • Utilizar a chamada do método Post e GET e do Serviço api/rh/v1/DbHrAttendanceControl;Preenchimento dos parâmetros obrigatórios da APIDbHrManagers;

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição
startDate 2022-11-01SimDateBodyData inicial do período.
endDate2022-11-11SimDateBodyData final do período.
branches["D MG 01"]
["D MG 01","M SP 01"]
["todas"]
SimArrayBodyFiltro da filial.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader

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

Totvs custom tabs box items
defaultno
referenciaponto

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.

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição
startDate 2024-01-01SimDateBodyData inicial do período.
endDate2024-01-08SimDateBodyData final do período.
branches["D MG 01"]
["D MG 01","M SP 01"]
["todas"]
SimArrayBodyFiltro da filial.

managers

["GESTOR FINANCEIRO D MG (D MG 01 - 000001)"]
["GESTOR FINANCEIRO D MG (D MG 01 - 000001)","GESTOR RH M SP (M SP 01 - 000001)"]
["todos"]

SimArrayBodyGestores selecionados no filtro.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader


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

Bloco de código
titleResposta API
{
    "1": {
        "branch": "Todas as Filiais
Bloco de código
titleResposta API
{
    "1": {
        "branch": "Todas as Filiais",
        "totalEmployees": 6,
        "totalDetails": [
            {
                "branch": "D MG 01 ",
                "registration": "003921",
                "name": "DRHJORNPRT-3921 PT COMPLETO",
                "department": "DEPARTAMENTO 1 RH"
            },
            {
                "branch": "D MG 01 ",
                "registration": "003922",
                "name": "DRHJORNPRT-3921 PT INCOMPLETO",
                "department": "DEPARTAMENTO 1 RH"
            },
            {
                "branch": "D MG 01 ",
                "registration": "003923",
                "name": "DRHJORNPRT-3921 SEM MARCACOES",
                "department": "DEPARTAMENTO 1 RH"
            },
            {
                "branch": "M SP 01 ",
                "registration": "003921",
                "name": "DRHJORNPRT-3921 PT INCOMPLETO",
                "department": "GPE001- OPERACIONAL - SP"
            },
            {
                "branch": "M SP 01 ",
                "registration": "003922",
                "name": "DRHJORNPRT-3921 SEM MARCACOES",
                "department": "GPE001- OPERACIONAL - SP"
            },
            {
                "branch": "M SP 01 ",
                "registration": "003923",
                "name": "DRHJORNPRT-3921 PT COMPLETO",
                "department": "GPE001- OPERACIONAL - SP"
            }
        ],
        "clockMarkingsComplete": 2,
        "completeDetails": [
            {
                "branch": "D MG 01 ",
                "registration": "003921",
                "name": "DRHJORNPRT-3921 PT COMPLETO",
                "department": "DEPARTAMENTO 1 RH"
            },
            {
                "branch": "M SP 01 ",
                "registration": "003923",
                "name": "DRHJORNPRT-3921 PT COMPLETO",
                "department": "GPE001- OPERACIONAL - SP"
            }
        ],
        "clockMarkingsIncomplete": 2,
        "incompleteDetails": [
            {
                "branch": "D MG 01 ",
                "registration": "003922",
                "name": "DRHJORNPRT-3921 PT INCOMPLETO",
                "department": "DEPARTAMENTO 1 RH",
        "totalEmployees": 9,
        "dateTimetotalDetails": "01/03/2023",[
                "reason": "2 Marcaões faltantes",{
                "estimatedbranch": "09:00D -MG 12:00 - 13:00 - 18:0001 ",
                "performedregistration": "09:00 - 12:00"000003",
            },
    "name": "DASH PNT      {COMPLETO FINANCEIRO",
                "branchdepartment": "DFINANCEIRO MG 01 ",
                "registration": "003922",
                "namemanager": "DRHJORNPRT-3921 PT INCOMPLETOGESTOR FINANCEIRO D MG        ",
                "departmentmanagerId": "DEPARTAMENTO 1 RH",
D MG 01  - 000001"
            },
           "dateTime": "02/03/2023", {
                "reasonbranch": "DiaD MG sem01 marcação",
                "estimatedregistration": "09:00 - 12:00 - 13:00 - 18:00000004",
                "performedname": "DASH PNT INCOMPLET FINANCEIRO",
            },
    "department": "FINANCEIRO       {
             ",
       "branch": "M SP 01 ",
     "manager": "GESTOR FINANCEIRO D MG       "registration": "003921",
                "namemanagerId": "DRHJORNPRT-3921 PT INCOMPLETO",
D MG 01  - 000001"
            },
        "department": "GPE001- OPERACIONAL - SP",{
                "dateTimebranch": "01/03/2023D MG 01 ",
                "reasonregistration": "Dia sem marcação000005",
                "estimatedname": "09:00DASH -PNT 12:00SEM - 13:00 - 18:00MARC FINANCEIRO",
                "performeddepartment": ""
FINANCEIRO            },
            {",
                "branchmanager": "MGESTOR SPFINANCEIRO 01 ",
        D MG        "registration": "003921",
                "namemanagerId": "DRHJORNPRT-3921 PT INCOMPLETO"D MG 01  - 000001"
            },
            {
    "department            "branch": "GPE001-D OPERACIONALMG -01 SP",
                "dateTimeregistration": "02/03/2023000006",
                "reasonname": "1DASH PNT MarcaçãoCOMPLETO faltanteTI",
                "estimateddepartment": "09:00 - 12:00 - 13:00 - 18:00TI                            ",
                "performedmanager": "12:00 - 13:00 - 18:00"
GESTOR TI D MG                }",
        ],
        "withoutClockMarkingsmanagerId": 2, "D MG 01  - 000002"
        "withoutDetails": [    },
            {
                "branch": "D MG 01 ",
                "registration": "003923000007",
                "name": "DRHJORNPRT-3921 SEM MARCACOESDASH PNT INCOMPLETO TI",
                "department": "DEPARTAMENTO 1 RH"
      TI      },
            {
                "branch": "M SP 01 ",
                "registrationmanager": "003922",
GESTOR TI D MG             "name": "DRHJORNPRT-3921 SEM MARCACOES",
                "departmentmanagerId": "GPE001- OPERACIONALD MG 01  - SP000002"
            },
        ]
    },{
    "2": {
            "branch": "D MG 01 ",
        "totalEmployees        "registration": 3"000008",
        "totalDetails": [
       "name": "DASH PNT SEM MARC {TI",
                "branchdepartment": "D MG 01 ",
TI                           "registration": "003921",
                "namemanager": "DRHJORNPRT-3921GESTOR PT COMPLETO",
 TI D MG               "department": "DEPARTAMENTO 1 RH ",
                "managerId": "D MG 01  - 000002"
            },
            {
                "branch": "DM MGSP 01 ",
                "registration": "003922000002",
                "name": "DRHJORNPRT-3921 PT INCOMPLETODASH PNT COMPLETO RH",
                "department": "DEPARTAMENTORH   1 RH"
            },
            {",
                "branchmanager": "DGESTOR MGRH 01M ",
SP                "registration": "003923",
                "namemanagerId": "DRHJORNPRT-3921M SEM MARCACOES",
SP 01  - 000001"
             "department": "DEPARTAMENTO 1 RH"},
            }{
        ],
        "clockMarkingsCompletebranch": 1,
"M SP 01 ",
     "completeDetails": [
            {"registration": "000003",
                "branchname": "DDASH MGPNT 01INCOMPLETO RH",
                "registrationdepartment": "003921",
RH                 "name": "DRHJORNPRT-3921 PT COMPLETO           ",
                "departmentmanager": "DEPARTAMENTO 1 RH"
GESTOR RH M SP                }",
        ],
        "clockMarkingsIncompletemanagerId": 1,
 "M SP 01  - 000001"
           "incompleteDetails": [ },
            {
                "branch": "DM MGSP 01 ",
                "registration": "003922000004",
                "name": "DRHJORNPRT-3921 PT INCOMPLETODASH PNT SEM MARC RH",
                "department": "DEPARTAMENTO 1 RH",
RH                           "dateTime": "01/03/2023",
                "reasonmanager": "2GESTOR Marcaões faltantes",
 RH M SP               "estimated": "09:00 - 12:00 - 13:00 - 18:00",
                "performedmanagerId": "09:00M SP 01  - 12:00000001"
            },
        ],
    {
    "clockMarkingsComplete": 3,
            "branchcompleteDetails": "D MG 01 ",[
                "registration": "003922",{
                "namebranch": "DRHJORNPRT-3921 PT INCOMPLETOD MG 01 ",
                "departmentregistration": "DEPARTAMENTO 1 RH000003",
                "dateTimename": "02/03/2023DASH PNT COMPLETO FINANCEIRO  ",
                "reasondepartment": "DiaFINANCEIRO sem marcação",
                "estimated": "09:00 - 12:00 - 13:00 - 18:00",
                "performedmanager": ""
GESTOR FINANCEIRO D MG         }",
        ],
        "withoutClockMarkingsmanagerId": 1,
"D MG 01  - 000001"
           "withoutDetails": [ },
            {
                "branch": "D MG 01 ",
                "registration": "003923000006",
                "name": "DRHJORNPRT-3921 SEM MARCACOES",
DASH PNT COMPLETO TI          ",
                "department": "DEPARTAMENTOTI   1 RH"
            }
        ]
    }",
     "3": {
           "branchmanager": "M SP 01",
GESTOR TI D MG                ",
                "totalEmployeesmanagerId": 3,"D MG 01  - 000002"
        "totalDetails": [    },
            {
                "branch": "M SP 01 ",
                "registration": "003923000002",
                "name": "DRHJORNPRT-3921DASH PTPNT COMPLETO RH          ",
                "department": "GPE001-RH  OPERACIONAL - SP"
            },
            {",
                "branchmanager": "GESTOR RH M SP 01 ",
                "registration": "003921",
                "namemanagerId": "DRHJORNPRT-3921 PT INCOMPLETO",M SP 01  - 000001"
            }
    "department": "GPE001- OPERACIONAL - SP"
       ],
        "clockMarkingsIncomplete": 3,
         },"incompleteDetails": [
            {
                "branch": "MD SPMG 01 ",
                "registration": "003922000004",
                "name": "DRHJORNPRT-3921 SEM MARCACOESDASH PNT INCOMPLET FINANCEIRO ",
                "department": "GPE001- OPERACIONAL - SP"
FINANCEIRO             }
        ]",
        "clockMarkingsComplete": 1,
        "completeDetailsmanager": [
"GESTOR FINANCEIRO D MG         {",
                "branchdateTime": "M SP 01 05/01/2024",
                "registrationreason": "003923Dia sem marcação",
                "nameestimated": "DRHJORNPRT-3921 PT COMPLETO09:00 - 12:00 - 13:00 - 18:00",
                "departmentperformed": "GPE001- OPERACIONAL - SP"
",
                 }
  "managerId": "D MG 01  - 000001"
   ],
        "clockMarkingsIncomplete": 1},
        "incompleteDetails": [    {
                "branch": "D MG 01 {",
                "branchregistration": "M SP 01 000007",
                "registrationname": "003921DASH PNT INCOMPLETO TI        ",
                "namedepartment": "DRHJORNPRT-3921 PT INCOMPLETOTI                            ",
                "departmentmanager": "GPE001- OPERACIONAL - SPGESTOR TI D MG                ",
                "dateTime": "03/01/03/20232024",
                "reason": "Dia1 semMarcação marcaçãofaltante",
                "estimated": "09:00 - 12:00 - 13:00 - 18:00",
                "performed": ""
 09:00  - 12:00  - 13:00     },
              {
                "branch": "M SP 01 ",
                "registration": "003921",
                "name": "DRHJORNPRT-3921 PT INCOMPLETO    ",
                "departmentmanagerId": "GPE001- OPERACIONALD MG 01  - SP000002",
            },
     "dateTime": "02/03/2023",       {
                "reasonbranch": "1M SP Marcação01 faltante",
                "estimatedregistration": "09:00 - 12:00 - 13:00 - 18:00000003",
                "performedname": "12:00 - 13:00 - 18:00"
DASH PNT INCOMPLETO RH        ",
       }
        ],
   "department": "RH      "withoutClockMarkings": 1,
        "withoutDetails": [
            {",
                "branchmanager": "GESTOR RH M SP 01 ",
                "registration": "003922",
                "namedateTime": "DRHJORNPRT-3921 SEM MARCACOES04/01/2024",
                "departmentreason": "GPE001-Dia OPERACIONALsem - SPmarcação",
            }
    "estimated": "08:00 - 13:00 ]
- 14: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:

Bloco de código
{
- 17:00",
       "1": {
        "branchperformed": "Todas as Filiais",
        "totalEmployees": 0,
        "totalDetailsmanagerId": [],
  "M SP 01  - 000001"
   "clockMarkingsComplete": 0,
        "completeDetails": [],}
        "clockMarkingsIncomplete": 0],
        "incompleteDetailswithoutClockMarkings": []3,
        "withoutClockMarkingswithoutDetails": 0,[
        "withoutDetails": []    {
    },
    "2": {
        "branch": "FilialD MG 01 A",
        "totalEmployees": 0,
        "totalDetailsregistration": []"000005",
        "clockMarkingsComplete": 0,
        "completeDetailsname": [] "DASH PNT SEM MARC FINANCEIRO  ",
        "clockMarkingsIncomplete": 0,
        "incompleteDetailsdepartment": [],
 "FINANCEIRO           "withoutClockMarkings": 0,
        "withoutDetails": [],
    },
    "3": {
        "branchmanager": "Filial B",
GESTOR FINANCEIRO D MG        "totalEmployees": 0,
        "totalDetails": [],
        "clockMarkingsCompletemanagerId": 0,
"D MG 01  - 000001"
   "completeDetails": [],
        "clockMarkingsIncomplete": 0},
        "incompleteDetails": [],
     {
       "withoutClockMarkings": 0,
        "withoutDetailsbranch": []"D MG 01 ",
    }
}

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:

Image Removed

Possíveis situações no envio dos filtros

Bloco de código
titleTodas as filiais
{
            "startDateregistration": "2023-03-01000008",
         "endDate":"2023-03-31",
       "branchesname":[
 "DASH PNT SEM MARC TI   "todas"
    ]
}
Bloco de código
titleApenas 1 filial
{
    "startDate":"2023-03-01",
    "endDate            "department":"2023-03-31 "TI                            ",
    "branches":[
               "manager": "GESTOR TI D MG     "D  MG 01"
    ]
}
Bloco de código
titleDuas ou mais filiais
{
    "startDate":"2023-03-01",
                "endDatemanagerId":"2023-03-31",
    "branches":[ "D MG 01  - 000002"
        "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ódigoErroDetalhe

400

"Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados."

Totvs custom tabs box items
defaultno
referenciaclockin

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.

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição
startDate 2022-05-01SimDateBodyData inicial do período.
endDate2022-05-31SimDateBodyData final do período.
branches

["D MG 01"]
["D MG 01","M SP 01"]
["todas"]

SimArrayBodyFiltro da filial.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader
Bloco de código
titleResposta API
{
    "1": {
        "branch": "Todas"{
                "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          ",
        "totalClockMarkings": 7,
        "totalDetailsdepartment": [
"TI            {
                "cnpj": "99999999999999",
                "cpfmanager": "44379500039",
 GESTOR TI D MG               "pis": "61743152540",
                "branchmanagerId": "Filial A",D MG 01  - 000002"
            },
    "name": "Func A",        {
                "devicebranch": "dispositivoD MG 01 A",
                "nsrregistration": 1"000004",
                "dateTimename": "01/03/2023 09:00"
   DASH PNT INCOMPLET FINANCEIRO ",
         },
       "department": "FINANCEIRO    {
                "cnpj": "99999999999999",
                "cpfmanager": "44379500039GESTOR FINANCEIRO D MG        ",
                "pismanagerId": "61743152540",D MG 01  - 000001"
            },
    "branch": "Filial A",        {
                "namebranch": "FuncD MG 01 A",
                "deviceregistration": "dispositivo A000007",
                "nsrname": 2 "DASH PNT INCOMPLETO TI        ",
                "dateTimedepartment": "01/03/2023 12:00"
TI                },
            {",
                "cnpjmanager": "99999999999999",
 GESTOR TI D MG               "cpf": "44379500039",
                "pismanagerId": "61743152540",
D MG 01  - 000002"
           "branch": "Filial A" },
                "name": "Func A",{
                "devicebranch": "dispositivoD MG 01 A",
                "nsrregistration": 3"000005",
                "dateTimename": "01/03/2023 13:00"
    DASH PNT SEM MARC FINANCEIRO  ",
        },
        "department": "FINANCEIRO   {
                "cnpj": "99999999999999",
                "cpfmanager": "44379500039",
 GESTOR FINANCEIRO D MG        ",
       "pis": "61743152540",
        "managerId": "D MG 01  - 000001"
    "branch": "Filial A",
      },
          "name": "Func A",{
                "devicebranch": "dispositivoD MG 01 A",
                "nsrregistration": 0"000008",
                "dateTimename": "01/03/2023 18:00"
  DASH PNT SEM MARC TI          }",
            {
    "department": "TI           "cnpj": "99999999999999",
                "cpf": "88888888888",
                "pismanager": "77777777777",
  GESTOR TI D MG              "branch": "Filial B",
                "namemanagerId": "Func B",D MG 01  - 000002"
            }
    "device": "dispositivo B"    ],
        "clockMarkingsComplete": 2,
        "nsrcompleteDetails": 1,[
            {
    "dateTime": "01/03/2023 09:00"
            "branch": "D MG 01 }",
            {
                "cnpj"registration": "99999999999999000003",
                "cpfname": "88888888888",
DASH PNT               "pis": "77777777777"COMPLETO FINANCEIRO  ",
                "branchdepartment": "Filial B",
FINANCEIRO                  "name": "Func B",
                "devicemanager": "dispositivo B",
      GESTOR FINANCEIRO D MG          "nsr": 2,
                "dateTimemanagerId": "01/03/2023 12:00D MG 01  - 000001"
            },
            {
                "cnpjbranch": "99999999999999D MG 01 ",
                "cpfregistration": "88888888888000006",
                "pisname": "77777777777DASH PNT COMPLETO TI          ",
                "branchdepartment": "Filial B",
TI                  "name": "Func B          ",
                "devicemanager": "dispositivo B",
GESTOR TI D MG                "nsr": 0,
                "dateTimemanagerId": "01/03/2023 13:00D MG 01  - 000002"
            }
        ],
        "totalIntegratedclockMarkingsIncomplete": 32,
        "integratedDetailsincompleteDetails": [
            {
                "cnpjbranch": "99999999999999D MG 01 ",
                "cpfregistration": "44379500039000004",
                "pisname": "61743152540DASH PNT INCOMPLET FINANCEIRO ",
                "branchdepartment": "Filial A",
FINANCEIRO                  "name": "Func A",
                "devicemanager": "dispositivo AGESTOR FINANCEIRO D MG        ",
                "nsrdateTime": 1"05/01/2024",
                "dateTimereason": "01/03/2023 09:00"Dia sem marcação",
            },
    "estimated": "09:00 - 12:00 - 13:00   {- 18:00",
                "cnpjperformed": "99999999999999",
                "cpfmanagerId": "44379500039",
D MG 01  - 000001"
           "pis": "61743152540" },
                "branch": "Filial A",{
                "namebranch": "FuncD MG 01 A",
                "deviceregistration": "dispositivo A000007",
                "nsrname": 2,
"DASH PNT INCOMPLETO TI        ",
     "dateTime": "01/03/2023 12:00"
         "department": "TI  },
            {
                "cnpj": "99999999999999",
                "cpfmanager": "88888888888",
 GESTOR TI D MG               "pis": "77777777777",
                "branchdateTime": "Filial B03/01/2024",
                "namereason": "Func1 Marcação Bfaltante",
                "deviceestimated": "dispositivo B09:00 - 12:00 - 13:00 - 18:00",
                "nsrperformed": 1,
" 09:00  - 12:00      - 13:00       "dateTime": "01/03/2023 09:00"
            }
        ],
        "totalToBeIntegrated": 2,
        "toBeIntegratedDetails": [
            {
                "cnpj": "99999999999999",
                "cpfmanagerId": "44379500039",
D MG 01  - 000002"
           "pis": "61743152540", }
        ],
        "branchwithoutClockMarkings": "Filial A"2,
        "withoutDetails": [
       "name": "Func A",     {
                "devicebranch": "dispositivoD MG 01 A",
                "nsrregistration": 3"000005",
                "dateTimename": "01/03/2023 13:00"
    DASH PNT SEM MARC FINANCEIRO  ",
        },
        "department": "FINANCEIRO   {
                "cnpj": "99999999999999",
                "cpfmanager": "88888888888GESTOR FINANCEIRO D MG        ",
                "pismanagerId": "77777777777",
D MG 01  - 000001"
           "branch": "Filial B" },
                "name": "Func B",{
                "devicebranch": "dispositivoD MG 01 B",
                "nsrregistration": 2"000008",
                "dateTimename": "01/03/2023 12:00"
   DASH PNT SEM MARC TI         }
        ] ",
        "totalWhitoutNSR": 2,
        "whitoutnsrDetailsdepartment": [
"TI            {
                "cnpj": "99999999999999",
                "cpfmanager": "44379500039",
 GESTOR TI D MG               "pis": "61743152540",
                "branchmanagerId": "Filial A",
 D MG 01  - 000002"
            "name": "Func A",}
        ]
    },
    "device3": {
 "dispositivo A",
       "branch": "M SP 01",
        "nsrtotalEmployees": 03,
        "totalDetails": [
       "dateTime": "01/03/2023 18:00"
    {
        },
        "branch": "M SP 01 {",
                "cnpjregistration": "99999999999999000002",
                "cpfname": "88888888888",
DASH PNT COMPLETO  RH            "pis": "77777777777",
                "branchdepartment": "Filial B",
RH                          "name": "Func B",
                "devicemanager": "dispositivo B",
GESTOR RH M SP                "nsr": 0,
                "dateTimemanagerId": "01/03/2023 18:00M SP 01  - 000001"
            },
        ]
    },{
       "2": {
        "branch": "Filial AM SP 01 ",
        "totalClockMarkings": 4,
        "totalDetailsregistration": ["000003",
            {
    "name": "DASH PNT INCOMPLETO RH        "cnpj": "99999999999999",
                "cpfdepartment": "44379500039",
RH                "pis": "61743152540",
                "branch": "Filial A",
                "namemanager": "Func A",
  GESTOR RH M SP              "device": "dispositivo A",
                "nsrmanagerId": 1,
"M SP 01              "dateTime": "01/03/2023 09:00"- 000001"
            },
            {
                "cnpjbranch": "99999999999999M SP 01 ",
                "cpfregistration": "44379500039000004",
                "pisname": "61743152540",
DASH PNT SEM MARC RH            "branch": "Filial A",
                "namedepartment": "Func A",
RH                   "device": "dispositivo A         ",
                "nsrmanager": 2,
   "GESTOR RH M SP              "dateTime": "01/03/2023 12:00",
            },
    "managerId": "M SP 01  - 000001"
   {
         }
       "cnpj": "99999999999999" ],
        "clockMarkingsComplete": 1,
        "cpfcompleteDetails": "44379500039",[
                "pis": "61743152540",{
                "branch": "FilialM SP 01 A",
                "nameregistration": "Func A000002",
                "devicename": "dispositivo A",
     DASH PNT COMPLETO RH           "nsr": 3,
                "dateTimedepartment": "01/03/2023 13:00"
RH                },
            {",
                "cnpjmanager": "99999999999999",
 GESTOR RH M SP               "cpf": "44379500039",,
                "pismanagerId": "61743152540",
M SP 01  - 000001"
           "branch": "Filial A", }
        ],
        "nameclockMarkingsIncomplete": "Func A"1,
        "incompleteDetails": [
          "device": "dispositivo A",{
                "nsrbranch": 0 "M SP 01 ",
                "dateTimeregistration": "01/03/2023 18:00"000003",
            }
    "name": "DASH PNT INCOMPLETO ],
RH        "totalIntegrated": 2,
                "integratedDetailsdepartment": [
"RH            {
                "cnpj": "99999999999999",
                "cpfmanager": "44379500039",
 GESTOR RH M SP               "pis": "61743152540",
                "branchdateTime": "Filial A04/01/2024",
                "namereason": "FuncDia sem Amarcação",
                "deviceestimated": "dispositivo A08:00 - 13:00 - 14:00 - 17:00",
                "nsrperformed": 1"",
                "dateTimemanagerId": "01/03/2023 09:00M SP 01  - 000001"
            },
        ],
    {
    "withoutClockMarkings": 1,
           "cnpjwithoutDetails": "99999999999999",[
                "cpf": "44379500039",{
                "pisbranch": "61743152540M SP 01 ",
                "branchregistration": "Filial A000004",
                "name": "Func A",
        DASH PNT SEM MARC RH        "device": "dispositivo A",
                "nsrdepartment": 2,
"RH                "dateTime": "01/03/2023 12:00"
            }",
        ],
        "totalToBeIntegratedmanager": 1,
"GESTOR RH M  SP    "clockMarkings": [
            {",
                "cnpjmanagerId": "99999999999999",
M SP 01  - 000001"
           "cpf": "44379500039", }
        ]
    }
}

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:

Bloco de código
{
    "pis1": "61743152540",{
                "branch": "FilialTodas as AFiliais",
        "totalEmployees": 0,
        "nametotalDetails": "Func A"[],
        "clockMarkingsComplete": 0,
        "devicecompleteDetails": "dispositivo A"[],
        "clockMarkingsIncomplete": 0,
        "nsrincompleteDetails": 3[],
        "withoutClockMarkings": 0,
        "dateTimewithoutDetails": "01/03/2023 13:00"[]
    },
    "2": {
   }
     "branch": "Filial  ]A",
        "totalWhitoutNSRtotalEmployees": 10,
        "whitoutnsrDetailstotalDetails": [],
        "clockMarkingsComplete": 0,
   {
        "completeDetails": [],
        "cnpjclockMarkingsIncomplete": "99999999999999"0,
        "incompleteDetails": [],
        "cpfwithoutClockMarkings": "44379500039"0,
        "withoutDetails": []
    },
    "pis3": "61743152540",
    {
            "branch": "Filial AB",
        "totalEmployees": 0,
        "nametotalDetails": "Func A"[],
        "clockMarkingsComplete": 0,
        "devicecompleteDetails": "dispositivo A"[],
                "nsr"clockMarkingsIncomplete": 0,
        "incompleteDetails": [],
        "dateTimewithoutClockMarkings": "01/03/2023 18:00"
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:

Image Added

Possíveis situações no envio dos filtros de filiais

Bloco de código
titleTodas as filiais
{
    }"startDate":"2024-01-01",
    "3endDate": {
    "2024-01-05",
    "branchbranches": "Filial B",[
        "totalClockMarkingstodas": 3,
    ],
    "totalDetailsmanagers": [
        "todos"
    ]
}
Bloco de código
titleApenas 1 filial
{
    "startDate":"2024-01-01",
            "cnpj"endDate": "999999999999992024-01-05",
    "branches":[
        "D MG   "cpf": "88888888888",01"
            ],
    "pismanagers": "77777777777",[
        "todos"
    ]
}
Bloco de código
title2 ou mais filiais
{
    "branchstartDate": "Filial B"2024-01-01",
                "name"endDate": "Func B"2024-01-05",
    "branches":[
        "D MG   "device": "dispositivo B",01",
		"M SP 01"
    ],
            "nsr": 1,"managers":[
                "dateTime": "01/03/2023 09:00"
            },
            {"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

Bloco de código
titleTodos os Gestores
{
    "startDate":"2024-01-01",
    "endDate":"2024-01-05",
    "branches":[
        "todas"
    ],
    "managers":[
        "todos"
    ]
}
Bloco de código
titleApenas 1 gestor
{
    "cnpjstartDate": "999999999999992024-01-01",
                "cpf"endDate": "888888888882024-01-05",
    "branches":[
        "todas"
    "pis": "77777777777"],
    "managers":[
		"GESTOR FINANCEIRO D MG (D MG 01 - 000001)"
	]
}
Bloco de código
title2 ou mais Gestores
{
    "branchstartDate": "Filial B"2024-01-01",
                "nameendDate": "Func B"2024-01-05",
                "device": "dispositivo B","branches":[
       "todas"
    ],
     "nsrmanagers":[
		"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ódigoErroDetalhe

400

"Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados."


Totvs custom tabs box items
defaultno
referenciaclockin

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.

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição
startDate 2022-05-01SimDateBodyData inicial do período.
endDate2022-05-31SimDateBodyData final do período.
branches

["D MG 01"]
["D MG 01","M SP 01"]
["todas"]

SimArrayBodyFiltro da filial.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader

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

Bloco de código
titleResposta API
{
    "1": {
 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",
                "namebranch": "Func BTodas",
        "totalClockMarkings": 7,
        "devicetotalDetails": "dispositivo B", [
            {
                "nsrcnpj": 1"99999999999999",
                "dateTimecpf": "01/03/2023 09:00"
44379500039",
                "pis": "61743152540",
                "branch": "Filial A",
                }
 "name": "Func A",
            ]    "device": "dispositivo A",
        "totalToBeIntegrated        "nsr": 1,
                "toBeIntegratedDetailsdateTime": ["01/03/2023 09:00"
            },
            {
                "cnpj": "99999999999999",
                "cpf": "8888888888844379500039",
                "pis": "7777777777761743152540",
                "branch": "Filial BA",
                "name": "Func BA",
                "device": "dispositivo BA",
                "nsr": 2,
                "dateTime": "01/03/2023 12:00"
            },
        ],
    {
      "totalWhitoutNSR": 1,
        "whitoutnsrDetails": [
            {
                "cnpj": "99999999999999",
                "cpf": "8888888888844379500039",
                "pis": "7777777777761743152540",
                "branch": "Filial BA",
                "name": "Func BA",
                "device": "dispositivo BA",
                "nsr": 03,
                "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:

Bloco de código
{
    "1": {
            "branchcnpj": "Todas as Filiais99999999999999",
        "totalClockMarkings": 0,
        "totalDetailscpf": []"44379500039",
        "totalIntegrated": 0,
        "integratedDetailspis": []"61743152540",
        "totalToBeIntegrated": 0,
        "toBeIntegratedDetailsbranch": [] "Filial A",
        "totalWhitoutNSR": 0,
        "whitoutNsrDetailsname": []"Func A",
    },
	"2": {
            "branchdevice": "Filialdispositivo A",
        "totalClockMarkings": 0,
        "totalDetailsnsr": []0,
        "totalIntegrated": 0,
        "integratedDetailsdateTime": [],
"01/03/2023 18:00"
          "totalToBeIntegrated": 0  },
        "toBeIntegratedDetails": [],    {
        "totalWhitoutNSR": 0,
        "whitoutNsrDetailscnpj": []
"99999999999999",
       },
	"3": {
        "branchcpf": "Filial B88888888888",
        "totalClockMarkings": 0,
        "totalDetailspis": []"77777777777",
        "totalIntegrated": 0,
        "integratedDetailsbranch": []"Filial B",
        "totalToBeIntegrated": 0,
        "toBeIntegratedDetailsname": [] "Func B",
        "totalWhitoutNSR": 0,
          "whitoutNsrDetailsdevice": []"dispositivo B",
    }
}

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:
Image Removed

Possíveis situações no envio dos filtros

Bloco de código
titleTodas as filiais
{
    "startDate":"2023-03-01",
    "endDate":"2023-03-31",
    "branchesnsr":[ 1,
        "todas"
    ]
}
Bloco de código
titleApenas 1 filial
{
    "startDatedateTime": "2023-03-01",
01/03/2023 09:00"
     "endDate":"2023-03-31",
    "branches":[
       },
            {
                "cnpj": "99999999999999",
                "cpf": "88888888888",
          "D MG 01"      "pis": "77777777777",
    ]
}
Bloco de código
titleDuas ou mais filiais
{
            "startDatebranch":"2023-03-01 "Filial B",
         "endDate       "name":"2023-03-31 "Func B",
       "branches":[
         "device"D: MG"dispositivo 01B",
        "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ódigoErroDetalhe

400

"Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados."

 "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:

Bloco de código
{
    "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:
Image Added

Possíveis situações no envio dos filtros

Bloco de código
titleTodas as filiais
{
    "startDate":"2024-01-01",
    "endDate":"2024-01-05",
    "branches":[
        "todas"
    ]
}
Bloco de código
titleApenas 1 filial
{
    "startDate":"2024-01-01",
    "endDate":"2024-01-05",
    "branches":[
        "D MG 01"
    ]
}
Bloco de código
titleDuas ou mais filiais
{
    "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ódigoErroDetalhe

400

"Parâmetros inválidos: Verifique se os parâmetros startDate, endDate e filial foram enviados."


Totvs custom tabs box items
defaultno
referenciaemail

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.

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição

lastUpdate

09:31 (02/05/2023)SimStringBodyData da última atualizado do Dashboard.

startDate

2023-04-30SimDateBodyData Inicial do filtro.

endDate

2023-05-01SimDateBodyData final do filtro.

branches

["todas"]


ArrayBodyFiliais selecionadas no filtro

managerIsEmpty

false
BooleanBodyIndica se existe a hierarquia de gestores

sendToManager

false
BooleanBodyIndica se o e-mail deve ser disparado apenas para o gestor

managers

["todos"]
ArrayBodyGestores 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": []
            }
          ]
        }
      ]
    }
  ]
SimObjectBodyArray dados dos indicadores.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader


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:
Image Added

Json completo com o parâmetro sendToManager = true

View file
namesendToManager = true.txt
height250

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:
Image Added

Exemplo 2º posição:
Image Added


sendToManager envio do e-mail para o parâmetro (não para os gestores):
Image Added

Json completo com o parâmetro sendToManager = false

View file
namesendToManager = false.txt
height250

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ódigoErroDetalhe

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."


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."
}

Image Removed

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

"Parâmetros inválidos: Verifique se todos os parâmetros foram enviados corretamente."

Totvs custom tabs box items
defaultno
referenciaexcel

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.

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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição
managerIsEmptyfalseSimBooleanBodyIndica 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": []
            }
          ]
        }
      ]




acceptapplication/jsonSimStringHeader
content-typeapplication/jsonSimStringHeader

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).

Image Added

Exemplo do retorno da API:

View file
nameRetorno DbHrGetExcel.txt
height250

Totvs custom tabs box items
defaultno
referenciaemail

Integrações Clock In - api/rh/v1/DbHrEmail

API responsável por enviar um e-mail com as informações do dashboard.

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.

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 por e-mail.

Cadastro

Esta API contempla os resultados das informações exibidas no Dashboard, no caso o resultado das APIs anteriores. 

Processos

O Dashboard RH realizará o consumo da API para enviar um e-mail, contendo um HTML do Dashboard 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âmetroValor de ExemploObrigatórioTipoParâmetroDescrição

updatedDate

09:31 (02/05/2023)SimStringBodyData da última atualizado do Dashboard.

startDate

2023-04-30SimDateBodyData Inicial do filtro.

endDate

2023-05-01SimDateBodyData final do filtro.
detailsdetails:
    details[1]:
        branch (String): "Indicadores de funcionários - Todas as Filiais"
        informations (Array):
            informations[1] (totalEmployees): 6
            informations[2] (clockMarkingsComplete): 2
            informations[3] (clockMarkingsIncomplete): 2
            informations[4] (withoutClockMarkings): 2
    details[2]:    
        branch (String): "Indicadores de marcações do Clock In - Todas as Filiais"
        informations (Array):
            informations[1] (totalClockMarkings): 10
            informations[2] (totalIntegrated): 6
            informations[3] (totalToBeIntegrated): 2
            informations[4] (totalWhitoutNSR): 2
    details[3]:
        branch (String): "Indicadores de funcionários - D MG 01"
        informations (Array):
            informations[1] (totalEmployees): 3
            informations[2] (clockMarkingsComplete): 1
            informations[3] (clockMarkingsIncomplete): 1
            informations[4] (withoutClockMarkings): 1
    details[4]:    
        branch (String): "Indicadores de marcações do Clock In - D MG 01"
        informations (Array):
            informations[1] (totalClockMarkings): 5
            informations[2] (totalIntegrated): 3
            informations[3] (totalToBeIntegrated): 1
            informations[4] (totalWhitoutNSR): 1
    details[5]:
        branch (String): "Indicadores de funcionários - M SP 01"
        informations (Array):
            informations[1] (totalEmployees): 3
            informations[2] (clockMarkingsComplete): 1
            informations[3] (clockMarkingsIncomplete): 1
            informations[4] (withoutClockMarkings): 1
    details[6]:    
        branch (String): "Indicadores de marcações do Clock In - M SP 01"
        informations (Array):
            informations[1] (totalClockMarkings): 5
            informations[2] (totalIntegrated): 3
            informations[3] (totalToBeIntegrated): 1
            informations[4] (totalWhitoutNSR): 1
SimArrayBodyArray com os números dos indicadores.

accept

application/json

SimStringHeader

content-type

application/json

SimStringHeader
CódigoErroDetalhe

400

"Falha no envio do e-mail, verifique as configurações do sistema para o envio de e-mails."

401