Árvore de páginas

Versões comparadas

Chave

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


01. DADOS GERAIS

Produto:

Solucoes_totvs_cross
SolucaoCrossTOTVS RH

Linha de Produto:

Linhas_totvs
SegmentoDistribuição
RegionConstrução Projetos
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoRH

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

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 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
titleImportante

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/2021.

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.

...

06
Deck of Cards
startHiddenfalse
iddicionario
Card
defaulttrue
idsix
labelSIX
titleÍndices

Criação de índices na tabela RR1:

OrdemChave
1RR1_CODUNI+RR1_LOGIP+DTOS(RR1_DATMAR)
2RR1_CODUNI+DTOS(RR1_DATMAR)
3RR1_CODREP+RR1_LOGIP+DTOS(RR1_DATMAR)
4RR1_CODREL+RR1_LOGIP+DTOS(RR1_DATMAR)
5RR1_CODREL+STR(RR1_CODNSR,9)
6STR(RR1_VALCON,16)+RR1_CODREL+STR(RR1_CODNSR,9)
7RR1_CODREP+STR(RR1_CODNSR,9)
8STR(RR1_VALCON,16)+RR1_CODREP+STR(RR1_CODNSR,9)
Card
idsx2
labelSX2
titleTabela

Criação da tabela RR1:

ArquivoNomeCompartilhamento FilialCompartilhamento Unidade de NegócioCompartilhamento EmpresaX2_UNICO
RR1990Integração de marcaçõesCCCRR1_VALCON
04
Card
idsx3
labelSX3
titleCampos

Criação de campos na tabela RR1:

OrdemCampoTipoTamanhoDecimalFormatoContextoPropriedadeTítuloDescriçãoHelp
01RR1_FILIALCaracter20
RealAlterarFilialFilial

Filial

02RR1_VALCONNumérico160@E 9,999,999,999,999,999RealAlterarControl. MarControle Marcação

Código de controle da marcação

03
RR1_CODPRECaracter200RealAlterarCod. Id. PreCod. ID Previd. Social

Código ID Previdência Social

RR1_CODRELCaracter1000
RealAlterarCod. RelógioCódigo Relógio

Código do relógio

05RR1_NUMDANumérico2099RealAlterarDireção AcesDireção Acesso

Direção de acesso

04RR1_CODFUNCaracter1000
RealAlterarCod. Func.Código do funcionário

Código do funcionário

07RR1_CODFEDCaracter500RealAlterarCod. Fed.Código da Federação

Código da federação

08RR1_CODHASCaracter2540RealAlterarCod. HashCódigo hash

Código do hash

05RR1_
09RR1_11
LOGIPCaracter10
RealAlterarLog Import.Log de importação

Log de importação do registro

10RR1_CODLOTCaracter1000RealAlterarCod. LoteCódigo do lote

Código do lote

06
RR1_CODNSRNumérico90@E 999,999,999RealAlterarCod. NSRCódigo NSR

Código NSR

12
07RR1_CODPISCaracter120
RealAlterarCod. PISCódigo do PIS

Código do PIS

13RR1_VALPERNumérico80@E 99,999,999RealAlterarPerfil AcessPerfil de acesso

Perfil de acesso

14
08RR1_DATMARData80
RealAlterarData Marc.Data da marcação

Data da marcação

15
09RR1_NUMMARNumérico60@E 999,999RealAlterarNum Hor Mar.Número da hora marcação

Número com o horário da marcação

16
10RR1_CODREPCaracter170
RealAlterarCod. REPCódigo do REP

Código do REP

17
11RR1_CODUNICaracter1000
RealAlterarCod. Unid.Código da Unidade

Código da unidade

18
12RR1_CODUSUCaracter1000
RealAlterarCod. UsuarioCódigo do usuário

Código do usuário

Card
idsx6
labelSX6
titleParâmetros

Criação de parâmetro:

NomeTipoDescriçãoConteúdo padrão
MV_APISURLógico

Define se a integração do Suricato com o Protheus ocorre por API (.T.) ou direto no banco (.F.) 

.F.
Dica
titleObservação

O parâmetro MV_APISUR somente será avaliado na integração com o Suricato e serve para indicar se o Suricato já foi atualizado e está configurado para efetuar a integração das marcações via API.

...

Informações
titleInformação

Segue um de X para da tabela MSA_CONTROL_MARCAC para a tabela RR1

De (MSA_CONTROL_MARCAC)Para (RR1)Observação

RR1_FILIALNunca será validado e sempre será gravado sem conteúdo.
VAL_CONTROL_MARCACRR1_VALCONNão há.COD_ID_PREVID_SOCIALRR1_CODPRENão há.
COD_RELOGIO_EXT_CHAVERR1_CODRELNão há.NUM_DIRECAO_ACESRR1_NUMDANão há.
COD_FUNC_MSARR1_CODFUNNão há.
COD_ID_FEDERRR1_CODFEDNão há.
COD_HASHRR1_CODHASNão há.
LOG_IMPORT_PRODUTRR1_LOGIPNão há.
COD_LOTERR1_CODLOTNão há.COD_NSRRR1_CODNSRNão há.
COD_PIS_MSARR1_CODPISNão há.VAL_PERF_ACESRR1_VALPERNão há.
DAT_MARCAC_ACESRR1_DATMARSomente irá conter a data. A hora do registro não será importada, já que tal informação também é gravada no campo RR1_NUMMAR.
NUM_HORAR_MARCAC_ACESRR1_NUMMARNão há.
COD_REPRR1_CODREPNão há.
COD_UNID_EXT_CHAVERR1_CODUNINão há.
COD_USUAR_EXT_CHAVERR1_CODUSUNão há.

...

PROPRIEDADEDESCRIÇÃOTIPOObrigatório?
itemsArray das marcaçõesArraySim
items.codRelogioExtChaveCódigo RelógioCaracterNão
items.codFuncMsaCódigo do funcionárioCaracterSim
items.codNsrCódigo NSRNuméricoSim
items.codPisMsaCódigo do PISCaracterSim
items.datMarcacAcesData da marcaçãoCaracterSim
items.numHorarMarcacAcesNúmero da hora marcaçãoNuméricoSim
itensitems.codRepCódigo do REPCaracterNão
itensitems.codUnidExtChaveCódigo da UnidadeCaracterSim
itensitems.codUsuarExtChaveCódigo do usuárioCaracterSim

...

Exemplo de Request da API recordClockMarkings:

Bloco de código
{
	"companyId": "T2",
	"branchId" : "L MG 01",
	"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"
				}
		]
}

...

ErroMensagemSolução
400A 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.
500Ocorreu 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:

StatuserrorCodemessage
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
Algum(ns) registro(s) não foi(ram) gravado(s).
"00003""NSR não foi informado e é obrigatório"
400"00006""Não foi informado algum dos campos obrigatórios: 'codRelogioExtChave', 'codFuncMsa', 'codPisMsa',
Revise o preenchimento dos parâmetros 
'datMarcacAces', 'numHorarMarcacAces', 'codRep', 'codUnidExtChave' ou 'codUsuarExtChave'."
400"00006""Campo '
codNsr', 'codPisMsa', 'codRep' e 'codRelogioExtChave'.500Ocorreu 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.
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",
					"datMarcacAces": "2020-10-16 08:30:00.000",
					"numHorarMarcacAces": 30600,
					"codUnidExtChave": "T2L MG 01",
					"codUsuarExtChave": "T2L MG 01 400425",
					"status": 400,
					"errorCode": "000006",
					"message": "Não foi informado algum dos campos obrigatórios: 'codRelogioExtChave', 'codFuncMsa', 'codPisMsa', 'datMarcacAces', 'numHorarMarcacAces', 'codRep', 'codUnidExtChave' ou 'codUsuarExtChave'."
				},
				{
					"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",
					"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.

...