Versões comparadas

Chave

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

01. DADOS GERAIS

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 AllowanceAllowanceControl
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 no RM e não retorna mensagem para o usuário.

03. SOLUÇÃO

Adequado o método Delete da API  Allowance .

04. VERSÕES

12.1.2510 e superiores.

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

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

05. UTILIZAÇÃO

Deck of Cards
id1
Card
id1
labelExemplo 1 :

Funcionário possui Abono cadastrado na data 03102025

Image Added

No Postman foi criado um método Delete 

Como realizar a chamada da API REST

Endpoint:

Deve ser configurado da seguinte forma: 

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

Resposta:

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


    Image Added


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

Image Added

  • Card
    id2
    labelExemplo 2 :
    recordClockMarkings/integracaobatidasLembrando que o host e a porta devem ser configurados de acordo com o ambiente utilizado.
    Exemplo de endpoint configurado corretamente:
    Bloco de código
    languagebash
    theme

    Funcionário não possui Abono.
    Image Added

    Bloco de código
    languagebash
    theme
    Confluence
    http://localhost:8051/api/rh/
    v2
    v1/
    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": "PONTOWEB", 
            "codFuncMsa": "00001",
            "codNsr": 1,
            "datMarcacAces": "2025-09-02",
            "numHorarMarcacAces": 28800,
            "codRep": "55551234567895287",
            "codUsuarExtChave": "1;00001",
            "codPisMsa": "59008268339",
            "codCPF": "51427362653",
            "codFuso": "-0300",
            "inscrEmp": "01234567891234",
            "codCCT":"12345678914258778",
            "numVersLayout": "3"
        },
        {
            "codRelogioExtChave": "PONTOWEB", 
            "codFuncMsa": "00001",
            "codNsr": 2,
            "datMarcacAces": "2025-09-02",
            "numHorarMarcacAces": 43200,
            "codRep": "55551234567895287",
            "codUsuarExtChave": "1;00001",
            "codPisMsa": "59008268339",
            "codCPF": "51427362653",
            "codFuso": "-0300",
            "inscrEmp": "01234567891234" ,
            "codCCT":"12345678914258778",
            "numVersLayout": "3"
        }
    ]
 }
  • allowanceControl/1;2;3|00004;2025-10-03;03:00;1|0005

    Resposta: Será demonstrada a mensagem 

    Image Added

Resposta:

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

    Bloco de código
    languagebash
    themeConfluence
    titleResponse
    {
        "items": [
            {
                "codRelogioExtChave": "PONTOWEB",
                "codFuncMSA": "00001",
                "codNSR": 1,
                "datMarcacAces": "2025-09-02",
                "numHorarMarcacAces": 28800,
                "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": "PONTOWEB",
                "codFuncMSA": "00001",
                "codNSR": 1,
                "datMarcacAces": "2025-09-02",
                "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 InscrEmp informada."
            }         
        ]
    }
    { "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" } ] }


    Card
    id2
    labelExemplo 2 :

    Como realizar a chamada da API REST

    Endpoint:

    Deve ser configurado da seguinte forma: 
    Bloco de código
    languagebash
    themeConfluence
    {protocolo}://{host}:{porta}/api/rh/v2/recordClockMarkings/integracaobatidas
    Lembrando que o host e a porta devem ser configurados de acordo com o ambiente utilizado.
    Exemplo de endpoint configurado corretamente:
    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
Card
id2
labelSuricato

Como realizar a chamada da API REST


Endpoint:

  • Deve ser configurado da seguinte forma: 

    Bloco de código
    languagebash
    themeConfluence
    {protocolo}://{host}:{porta}/api/rh/v2/recordClockMarkings/integracaobatidas

    Lembrando que o host e a porta devem ser configurados de acordo com o ambiente utilizado.

  • Exemplo de endpoint configurado corretamente:

    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:

Uma marcação com dados errados ou incompletos não impede que outras marcações corretas sejam integradas. O motivo do erro será retornado na resposta da chamada, na propriedade "message".
Table Filter
fixedCols
totalrow,,
hidelabelsfalse
ddSeparator
sparkNameSparkline
hidePanetrue
customNoTableMsgText
limitHeight
sparklinefalse
default
isFirstTimeEntertrue
cell-width
hideColumnsfalse
totalRowName
totalColName
customNoTableMsgfalse
disabledfalse
enabledInEditorfalse
globalFilterfalse
id1759176505240_480190944
iconfilter
order
hideControlsfalse
inverse
numbering
datefilter
column
sortstatus ⇧
totalcol
disableSavefalse
rowsPerPage
separatorPoint (.)
labels
thousandSeparator
ignoreFirstNrows
ddOperator
userfilter
datepatterndd/mm/yy
numberfilter
heightValue
hideFilters
updateSelectOptionsfalse
worklog365|5|8|y w d h m|y w d h m
isORAND
showNRowsifNotFiltered
statuserrorCodemessage
200
"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."
Aviso
titleImportante



06. ASSUNTOS RELACIONADOS

Campos da API recordClockMarkings/integracaobatidas