Atualmente a integração de marcações de ponto do Suricato para o TOTVS HCM ocorre através de uma conexão direta com o banco de dados, atualizando a tabela msa_control_marcac.
Há a necessidade de realizar esta integração através de uma API REST garantindo a integridade da informação e, evitando assim a necessidade de conexão direta com o banco de dados.
HCM (módulo Controle de Frequência): O módulo Controle de Frequência permite de forma prática, segura e automática o controle da apuração de informações referentes à frequência dos funcionários de uma empresa, possibilitando, também, o controle e o acompanhamento do consumo e cobrança de refeições dos funcionários, quando esta é feita em refeitório na empresa.
O objetivo desta integração é permitir a integração das marcações de ponto do Suricato para o Datasul e, este efetue a validação e gravação das marcações na tabela marcac_nova_integr, sem que ocorra acesso direto ao banco de dados por parte do Suricato.
Autenticação do tipo básica.
{protocolo}://{host}/api/rh/v1/recordClockMarkings
A API REST recordClockMarkings será consumida pelo Suricato e poderá receber no método POST os seguintes parâmetros:
| Propriedade | Descrição | Tipo | Obrigatório? |
|---|---|---|---|
| items | Array das marcações | Array | Sim |
| tems.codRelogioExtChave | Código Relógio | Caracter | Não |
| items.codFuncMsa | Código do funcionário | Caracter | Sim |
| items.codNsr | Código NSR | Numérico | Sim |
| items.codPisMsa | Código do PIS | Caracter | Sim |
| items.datMarcacAces | Data da marcação | Caracter | Sim |
| items.numHorarMarcacAces | Hora da marcação em segundos | Numérico | Sim |
| items.codRep | Código do REP | Caracter | Não |
| items.codUnidExtChave | Código da Unidade | Caracter | Sim |
| items.codUsuarExtChave | Código do usuário | Caracter | Sim |
Request da API: Exemplo:
{
"items": [
{
"codRelogioExtChave": "",
"codFuncMsa": "529",
"codNsr": 1,
"codPisMsa": "15423654711",
"datMarcacAces": "2021-10-21 09:30:00.000",
"numHorarMarcacAces": 34200,
"codRep": "5009940099846",
"codUnidExtChave": "10;1",
"codUsuarExtChave": "10;1;529"
},
{
"codRelogioExtChave": "",
"codFuncMsa": "1356",
"codNsr": 2,
"codPisMsa": "15423654711",
"datMarcacAces": "2021-10-23 22:00:00.999",
"numHorarMarcacAces": 79200,
"codRep": "5009940099846",
"codUnidExtChave": "10;1",
"codUsuarExtChave": "10;1"
}
]
}
A API irá retornar a lista com o indicativo individual de sucesso ou erro na gravação. Os retornos possíveis estão na lista abaixo:
| status | errorCode | message |
|---|---|---|
| 200 | Marcação gravada com sucesso. | |
| 400 | 00001 | PIS em formato inválido ou inexistente no cadastro. |
| 400 | 00002 | NSR duplicado. Número já foi importado na tabela marcac_nova_integr . |
| 400 | 00003 | NSR não foi informado e é obrigatório. |
| 400 | 00006 | É obrigatório informar o campo codRelogioExtChave. |
| 400 | 00006 | É obrigatório informar o campo codFuncMsa. |
| 400 | 00006 | É obrigatório informar o campo codPisMsa. |
| 400 | 00006 | É obrigatório informar o campo datMarcacAces. |
| 400 | 00006 | É obrigatório informar o campo numHorarMarcacAces. |
| 400 | 00006 | É obrigatório informar o campo codRep. |
| 400 | 00006 | É obrigatório informar o campo codUnidExtChave. |
| 400 | 00006 | É obrigatório informar o campo codUsuarExtChave. |
| 400 | 00006 | Campo 'codRelogioExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa e do relógio no ERP. |
| 400 | 00006 | Campo 'codNsr' no formato incorreto. Deve ser preenchido como numérico. |
| 400 | 00006 | Campo 'numHorarMarcacAces' no formato incorreto. Deve ser preenchido como numérico. |
| 400 | 00006 | Campo 'codUnidExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa e do estabelecimento no ERP. |
| 400 | 00006 | Campo 'codUsuarExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa, do estabelecimento e matricula do funcionário no ERP. |
| 400 | 00006 | Foi enviado marcações de um relógio que não está cadastrado no ERP |
Exemplo de retorno da API recordClockMarkings:
{
"items": [
{
"codRelogioExtChave": "",
"codFuncMsa": "529",
"codNsr": 1,
"codPisMsa": "17962727770",
"datMarcacAces": "2021-10-21 09:30:00.000",
"numHorarMarcacAces": 34200,
"codRep": "5009940099846",
"codUnidExtChave": "10;1",
"codUsuarExtChave": "10;1;529",
"status": 200,
"errorCode": "",
"message": "Marcação gravada com sucesso"
},
{
"codRelogioExtChave": "",
"codFuncMsa": "1356",
"codNsr": 2,
"codPisMsa": "10699643292",
"datMarcacAces": "2021-10-22 22:00:00.999",
"numHorarMarcacAces": 79200,
"codRep": "5009940099846",
"codUnidExtChave": "10;1",
"codUsuarExtChave": "10;1",
"status": 400,
"errorCode": "00006",
"message": "Campo 'codUsuarExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa, do estabelecimento e matricula do funcionário no ERP."
}
]
}
Itens a serem verificados durante o atendimento: