Versões comparadas

Chave

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

...

Produto:

RM

Linha de Produto:

Linhas_totvs
LinhaLinha RM

Segmento:

Segmentos_totvs
SegmentoRH

Função:Permitir a Exclusão do Abono utilizando a API de Abono AllowanceControl
País:Brasil
Requisito/Story/Issue:DRHJORNRM-8674

02. SITUAÇÃO/REQUISITO

Ao excluir um abono no Quírons a exclusão não é reproduzida efetivada no RM e não retorna mensagem para o usuário.

...

Adequado o método Delete da API  Allowancede Abono AllowanceControl .

04. VERSÕES

12.1.2510 e superiores2502.216

12.1.2506.XXX (ainda não disponível).165

12.1.2502.XXX (ainda não disponível)2510.100  e superiores.

05. UTILIZAÇÃO

Deck of Cards
id1
http://localhost:8051/api

Para a realização de testes foi utilizado a ferramenta POSTMAN . A  requisição deverá ser semelhante a imagem abaixo:

{protocolo}://{host}/{api}/rh/v1/allowanceControl

/1;2;3|00004;2025-10-03;03:00;1|0005

{allowanceId}

Image AddedResposta:


O abono será excluído e demonstrará a seguinte mensagem 204 No Content.

Image Removed

Ao visualizar o espelho do funcionário o abono foi excluído.

Image Modified



Card
id1
labelExemplo 1 : Excluindo Abono

Funcionário possui Abono cadastrado na data 0310202503/10/2025

Image Modified

No Postman foi criado um método Delete 

Bloco de código
languagebash
themeConfluence

{protocolo}://{host}

:

/{

porta

api}/

api/

rh/

v2/recordClockMarkings/integracaobatidasLembrando que o host e a porta devem ser configurados de acordo com o ambiente utilizado.
Exemplo de endpoint configurado corretamente:
Card
id2
labelExemplo 2 : Excluindo Abono Inexistente

Funcionário não possui Abono cadastrado.
Image Modified

Bloco de código
languagebash
themeConfluence
http://localhost:8051/api/rh/v1/allowanceControl/1;2;3|00004;2025-10-03;03:00;1|0005

Resposta: Será demonstrada a mensagem 

Image Removed

Card
id2
labelSuricato

Para a realização de testes foi utilizado a ferramenta POSTMAN . A  requisição deverá ser semelhante a imagem abaixo:

Como realizar a chamada da API REST

Endpoint:

Deve ser configurado da seguinte forma: 
Bloco de código
languagebash
themeConfluence
Bloco de código
languagebash
themeConfluence
http://localhost:8051/api/rh/v2/recordClockMarkings/integracaobatidas

Método:

O método disponibilizado pela API é POST, sendo obrigatório o preenchimento do corpo (body). Segue um exemplo de como enviar o body:

Bloco de código
languagebash
themeConfluence
titleBody
{ 
    "items" :[
        {
            "codRelogioExtChave": "1;1A", 
            "codFuncMsa": "00001",
            "codNsr": 5000,
            "datMarcacAces": "2025-09-05",
            "numHorarMarcacAces": 28800,
            "codRep": "55551234567895287",
            "codUsuarExtChave": "1;00001",
            "codPisMsa": "59008268339",
            "codCPF": "51427362653",
            "codFuso": "-0300",
            "inscrEmp": "01234567891234",
            "codCCT":"12345678914258778",
            "numVersLayout": "3"
        },
        {
            "codRelogioExtChave": "1;1A", 
            "codFuncMsa": "00001",
            "codNsr": 6000,
            "datMarcacAces": "2025-09-06",
            "numHorarMarcacAces": 43200,
            "codRep": "55551234567895287",
            "codUsuarExtChave": "1;00001",
            "codPisMsa": "59008268339",
            "codCPF": "51427362653",
            "codFuso": "-0300",
            "inscrEmp": "01234567891234" ,
            "codCCT":"12345678914258778",
            "numVersLayout": "3"
        }
    ]
 }

Resposta:

  • O retorno da API será em JSON. Segue um exemplo de resposta:

    Bloco de código
    languagebash
    themeConfluence
    titleResponse
    {
        "items": [
            {
                "codRelogioExtChave": "1;1A",
                "codFuncMSA": "00001",
                "codNSR": 6000,
                "datMarcacAces": "2025-09-06",
                "numHorarMarcacAces": 43200,
                "codRep": "55551234567895287",
                "codUsuarExtChave": "1;00001",
                "codPisMSA": "59008268339",
                "codCPF": "51427362653",
                "codFuso": "-0300",
                "inscrEmp": "01234567891234",
                "codCCT": "12345678914258778",
                "numVersLayout": 3,
                "status": 200,
                "errorCode": "",
                "message": "Gravação efetuada com sucesso"
            },
            {
                "codRelogioExtChave": "1;1A",
                "codFuncMSA": "00001",
                "codNSR": 5000,
                "datMarcacAces": "2025-09-05",
                "numHorarMarcacAces": 28800,
                "codRep": "55551234567895287",
                "codUsuarExtChave": "1;00001",
                "codPisMSA": "59008268339",
                "codCPF": "51427362653",
                "codFuso": "-0300",
                "inscrEmp": "01234567891234",
                "codCCT": "12345678914258778",
                "numVersLayout": 3,
                "status": 400,
                "errorCode": "00002",
                "message": "NSR duplicado. Número já foi importado na tabela"
            }
        ]
    }

Mensagens de Erro:

Table FilterfixedColstotalrow,,hidelabelsfalseddSeparatorsparkNameSparklinehidePanetruecustomNoTableMsgTextlimitHeightsparklinefalsedefaultisFirstTimeEntertruecell-widthhideColumnsfalsetotalRowNametotalColNamecustomNoTableMsgfalsedisabledfalseenabledInEditorfalseglobalFilterfalseid1759176505240_480190944iconfilterorderhideControlsfalseinversenumberingdatefiltercolumnsortstatus ⇧totalcoldisableSavefalserowsPerPageseparatorPoint (.)labelsthousandSeparatorignoreFirstNrowsddOperatoruserfilterdatepatterndd/mm/yynumberfilterheightValuehideFiltersupdateSelectOptionsfalseworklog365|5|8|y w d h m|y w d h misORANDshowNRowsifNotFilteredstatuserrorCodemessage200"Gravação efetuada com sucesso."400"00001""PIS em formato inválido ou inexistente no cadastro."400"00001""CPF em formato inválido ou inexistente no cadastro."400"00002""NSR duplicado. Número já foi importado na tabela"400"00002""NSR duplicado. Número já foi importado na InscrEmp informada." Obs: (Essa validação só é feita se o campo "CodRelogioExtChave" estiver com o valor PONTOWEB )400"00003""NSR não foi informado e é obrigatório"400"00006""Não foi informado o campo obrigatório: CodRelogioExtChave"400"00006""Não foi informado o campo obrigatório: codFuncMsa"400"00006""Não foi informado o campo obrigatório: numHorarMarcacAces"400"00006""Código do REP é obrigatório"400"00006""Não foi informado o campo obrigatório: codUsuarExtChave"400"00006""Data da marcação é obrigatória"400"00006""Campo 'datMarcacAces' no formato incorreto. Deve ser preenchido como data."400"00006""Tamanho do campo InscrEmp inválido. O campo permite a quantia de caracteres 11 ou 14 apenas."400"00006""Campo codRelogioExtChave no formato inválido. Deve ser preenchido para o Suricato: Coligada;Código do Terminal de Coleta ou para Ahgora: PONTOWEB."400"00006""Não foi informado o campo obrigatório: InscrEmp." Obs: (Essa validação só é feita se o campo "CodRelogioExtChave" estiver com o valor PONTOWEB )400"00007""Terminal de coleta não está cadastrado no ERP."400"99999""Erro interno na tabela. Registro não foi gravado."

06. ASSUNTOS RELACIONADOS

...

v1/allowanceControl{allowanceId}


Image Added




Card
id2
labelExemplo 3 : Mensagens de Validação
Nota
titleImportante

As mensagens de validações serão retornadas sempre que algum campo passado que seja obrigatório não tenha sido informado na requisição ou esteja informado erroneamente.

Retorno APIMensagem
204- No Content"Abono foi excluido com sucesso"
404- Not Found"Abono não encontrado na base de dados"
500- Internal Server Error"Os parâmetros da requisição não foram informados corretamente"