Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||
Segmento: |
| ||||||||
Módulo: | SIGAPON | ||||||||
Função: | PONAPI01 PONAPIRR1 PONA030 | ||||||||
Requisito/Story/Issue (informe o requisito relacionado) : | DRHPAG-40173 DRHPAG-40184 DRHPAG-40185 DRHPAG-44762 DRHPAG-44973 |
02. SITUAÇÃO/REQUISITO
Atualmente o sistema trabalha com a tabela MSA_CONTROL_MARCAC quando é efetuado a integração com a Carol ou Suricato.
...
Como a tabela MSA_CONTROL_MARCAC não possui estrutura de dicionário de dados padrão e no caso do Suricato é efetuado um acesso direito ao banco de dados, houve a necessidade de criação de uma tabela padrão do Protheus existente no dicionário de dados e a criação de uma API para que o Suricato efetue a integração das marcações, evitando assim a necessidade de conexão direta com o banco de dados..
03. SOLUÇÃO
Ao Ajuste ao iniciar o processo de importação das marcações , para integração com a Carol , e o processo de leitura de marcações (PONM010) , para integração com o Suricato , será iniciado para iniciar a migração automática dos dados da tabela MSA_CONTROL_MARCAC para a tabela RR1. A partir dessa migração, o sistema somente passará a validar a tabela RR1.
...
Informações | ||
---|---|---|
| ||
As alterações estão incluídas no pacote de Expedição Contínua do RH disponível na Central de Downloads liberado a partir de XX27/XX12/XXXX2021. Foram necessárias alterações no dicionário, listadas abaixo, que serão aplicadas na base com a execução do UPDDISTR com o dicionário diferencial liberado no pacote de expedição contínua do RH. |
...
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...
|
- Para a integração com a Carol, a substituição do uso da tabela MSA_CONTROL_MARCAC será automática, desde que o dicionário de dados esteja atualizado. Dessa forma, quando for executado a integração para a importação das marcações, o sistema irá primeiro migrar os dados da tabela MSA_CONTROL_MARCAC para a tabela RR1 e as novas marcações já serão gravadas na tabela RR1.
- Para a integração com o Suricato, a substituição do uso da tabela MSA_CONTROL_MARCAC será automática, desde que o dicionário de dados esteja atualizado e o parâmetro MV_APISUR esteja ativo (configurado com .T.). Dessa forma, quando for executado o processo de leitura de marcações, o sistema irá primeiro migrar os dados da tabela MSA_CONTROL_MARCAC para a tabela RR1.
Informações | ||
---|---|---|
| ||
Segue um de X para da tabela MSA_CONTROL_MARCAC para a |
...
tabela RR1 |
...
|
...
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Informações | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Segue um de X para da tabela MSA_CONTROL_MARCAC para a tabela RR1
|
A API REST recordClockMarkings será consumido pelo Suricato e poderá receber no método POST os seguintes parâmetros:
...
A API REST recordClockMarkings será consumido 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 |
items.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 | Número da hora marcação | 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 |
Informações | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
Segue um de X para da API recordClockMarkings para a tabela RR1
|
Exemplo de Request da API recordClockMarkings:
Bloco de código |
---|
{
"items": [
{
"codRelogioExtChave": "",
"codFuncMsa": "400425",
"codNsr": 1,
"codPisMsa": "012076853075",
"datMarcacAces": "2020-10-16 08:30:00.000",
"numHorarMarcacAces": 30600,
"codRep": "00000000000000001",
"codUnidExtChave": "T2L MG 01",
"codUsuarExtChave": "T2L MG 01 400425"
},
{
"codRelogioExtChave": "",
"codFuncMsa": "400426",
"codNsr": 2,
"codPisMsa": "012047284033",
"datMarcacAces": "2020-10-16 08:30:00.999",
"numHorarMarcacAces": 30600,
"codRep": "00000000000000001",
"codUnidExtChave": "T2L MG 01",
"codUsuarExtChave": "T2L MG 01 400426"
}
]
} |
Retornos da API recordClockMarkings:
Erro | Mensagem | Solução |
---|---|---|
400 | A tabela RR1 não existe no dicionário de dados. É necessário a atualização do sistema para utilizar este serviço. | Efetue a execução do UPDDISTR para criação da tabela RR1 no dicionário de dados. |
500 | Ocorreu uma falha no retorno da informação: [descrição do erro] | Houve algum erro interno do servidor. Contate o administrator do sistema para mais detalhes. |
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 | "Gravação efetuada com sucesso." | |
400 | "00001" | "PIS em formato inválido ou inexistente no cadastro." |
400 | "00002" | "NSR duplicado. Número já foi importado na tabela" |
400 | "00003" | "NSR não foi informado e é obrigatório" |
400 | "00006" | "Não foi informado algum dos campos obrigatórios: 'codRelogioExtChave', 'codFuncMsa', 'codPisMsa', 'datMarcacAces', 'numHorarMarcacAces', 'codRep', 'codUnidExtChave' ou 'codUsuarExtChave'." |
400 | "00006" | "Campo 'codRelogioExtChave' no formato incorreto. Deve ser preenchido como texto." |
400 | "00006" | "Campo 'codFuncMsa' no formato incorreto. Deve ser preenchido como texto." |
400 | "00006" | "Campo 'codNsr' no formato incorreto. Deve ser preenchido como numérico." |
400 | "00006" | "Campo 'codPisMsa' no formato incorreto. Deve ser preenchido como texto." |
400 | "00006" | "Campo 'datMarcacAces' no formato incorreto. Deve ser preenchido como data." |
400 | "00006" | "Campo 'numHorarMarcacAces' no formato incorreto. Deve ser preenchido como numérico." |
400 | "00006" | "Campo 'codRep' no formato incorreto. Deve ser preenchido como texto." |
400 | "00006" | "Campo 'codUnidExtChave' no formato incorreto. Deve ser preenchido como texto." |
400 | "00006" | "Campo 'codUsuarExtChave' no formato incorreto. Deve ser preenchido como texto." |
400 | "00007" | "Foi enviado marcações de um relógio que não está cadastrado no ERP." |
400 | "99999" | "Erro interno no lock da tabela RR1. Registro não foi gravado" |
Exemplo de retorno da API recordClockMarkings:
Bloco de código |
---|
{
"items": [
{
"codFuncMsa": "400425",
"codNsr": 1,
"codPisMsa": "012076853075 |
...
title | Informação |
---|
Segue um de X para da API recordClockMarkings para a tabela RR1
...
Exemplo de Request da API recordClockMarkings:
Bloco de código |
---|
{ "companyId": "T2", "branchId" : "L MG 01", "items": [ { "codIdPrevidSocial": "1", "codRelogioExtChave": "", "numDirecaoAces": 0, "codFuncMsa": "400425", "codIdFeder": "0", "codHash": "050C9CD87C9BBF6C165EAF1DCB5E", "logImportProdut": 0, "codLote": "000001", "codNsr": 1, "codPisMsa": "012076853075", "valPerfAces": 1, "datMarcacAces": "2020-10-16 08:30:00.000", "numHorarMarcacAces": 30600, "codRep": "00000000000000001", "codUnidExtChave": "T2L MG 01", "codUsuarExtChave": "T2L MG 01 400425" }, { "codIdPrevidSocial": "2", "codRelogioExtChavedatMarcacAces": "2020-10-16 08:30:00.000", "numDirecaoAcesnumHorarMarcacAces": 030600, "codFuncMsacodUnidExtChave": "400426 "T2L MG 01", "codIdFedercodUsuarExtChave": "0T2L MG 01 400425", "codHashstatus": "050C9CD87C9BBF6C165EAF1DCB5Z"400, "logImportProduterrorCode": 0"000006", "codLotemessage": "000001", "codNsr": 2, "codPisMsa": "012047284033", "valPerfAces": 1, "datMarcacAces": "2020-10-16 08:30:00.999"Não foi informado algum dos campos obrigatórios: 'codRelogioExtChave', 'codFuncMsa', 'codPisMsa', 'datMarcacAces', 'numHorarMarcacAces', 'codRep', 'codUnidExtChave' ou 'codUsuarExtChave'." }, "numHorarMarcacAces": 30600,{ "codRepcodRelogioExtChave": "00000000000000001", "codUnidExtChavecodFuncMsa": "T2L MG 01400426", "codUsuarExtChavecodNsr": "T2L MG 01 400426" 2, } ] } |
Retornos da API recordClockMarkings:
...
"codPisMsa": "012047284033",
"datMarcacAces": "2020-10-16 08:30:00.999",
"numHorarMarcacAces": 30600,
"codRep": "00000000000000001",
"codUnidExtChave": "T2L MG 01",
"codUsuarExtChave": "T2L MG 01 400426",
"status": 400,
"errorCode": "00002",
"message": "NSR duplicado. Número já foi importado na tabela"
}
]
} |
04. DEMAIS INFORMAÇÕES
Não há.
05. ASSUNTOS RELACIONADOS
Integração Protheus x Carol - Importação de Batidas.
...