Ocorrência
Ao alterar um cadastro de funcionário múltiplo vínculo, ocorre o erro:
Cannot insert duplicate key row in object 'dbo.SRA010' with unique index 'SRA010_UNQ'. The duplicate key value is
THREAD ERROR ([17648], 29/07/2019 10:48:59
SRA010: DB error (Update): -29 File: SRA010 - Error : 2601 (23000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot insert duplicate key row in object 'dbo.SRA010' with unique index 'SRA010_UNQ'. The duplicate key value is (01, 001941, 0).
( From tISAMFile::Update )
Thread ID [4560] User [Administrador] IO [3505] Tables [49] MaxTables [50] Comment [GPEA011 - TCPIP - ThreadID(17648)] SP [ ] Traced [No] SQLReplay [No] InTran [Yes] DBEnv [MSSQL/DADOSADV] DBThread [(SPID 272,458)] Started [29/07/2019 10:48:19] IP [10.25.192.184:18000] IDLE [ ] InTransact [4 s.] Memory [261688] Running [ROP_UPDATE] RCV [442122] SND [1116325] TCBuild [20180606-20180904] TCVersion [18.1.1.3] ARCH [64] OS [WINDOWS] BUILD [RELEASE]
UPDATE dbo.SRA010 SET RA_MAT = ?,RA_ENDEREC = ?,RA_COMPLEM = ?,RA_BAIRRO = ?,RA_MUNICIP = ?,RA_CODFUNC = ?,RA_CARGO = ?,RA_SENHA = ?,RA_USERLGA = ?,RA_DIVOCU = ?,RA_PARTAVA = ? WHERE R_E_C_N_O_ = ?
-- Binded Parameters List --
#1 [C] [001941]
#2 [C] [RUA VISCONDE ]
#3 [C] [APTO. 1 ]
#4 [C] [VILA ]
#5 [C] [JUNDIAI ]
#6 [C] [02125]
#7 [C] [004585]
#8 [C] [90598]
#9 [C] [ 0# 0@ 00 00< ]
#10 [C] [UNI]
#11 [C] [S]
#12 [N] [1006.000000]
on OPENSXS(APLIB100.PRW) 15/02/2019 09:01:25 line : 2346
[TOTVS build: 7.00.131227A-20180920 NG]
Called from OPENSXS(APLIB100.PRW) 15/02/2019 09:01:25 line : 2346
Called from RETFULLNAME(APLIB070.PRW) 15/02/2019 09:01:25 line : 2468
Called from EQUALFULLNAME(SIGAVLD.PRX) 13/08/2018 17:14:13 line : 1996
Called from EMPCHANGETABLE(SIGAVLD.PRX) 13/08/2018 17:14:13 line : 2023
Called from ENTUPDATERD0(SIGAVLD.PRX) 13/08/2018 17:14:13 line : 1401
Ambiente
TOTVS RH - TOTVS RH (Linha Protheus) - Gestão de Pessoal - Todas as versões
Causa
Esse incidente ocorre, pois a parametrização do arquivo msrelrdz.ini está com campos que são chave da tabela e não podem ser alterados devido a integridade dos dados e de acordo com o funcionamento das rotinas envolvidas.
Solução
Manter o arquivo padrão ou caso seja necessário editá-lo, realizar uma avaliação prévia.
Por exemplo: Para os em casos onde se tem múltiplos vínculos, teremos apenas um registro na tabela RD0, para mais de uma matricula na tabela SRA e com isto não é possível configurar RA_MAT=RD0_LOGIN, levando em conta que o campo RA_MAT é único.
O arquivo padrão contém a seguinte configuração:
[SRA]
!RA_FILIAL+RA_MAT
RA_NOME=RD0_NOME
RA_BITMAP=RD0_BITMAP
RA_SEXO=RD0_SEXO
RA_NASC=RD0_DTNASC
RA_CIC=RD0_CIC
RA_ADMISSA=RD0_DTADMI
RA_ENDEREC=RD0_END
RA_COMPLEM=RD0_CMPEND
RA_CEP=RD0_CEP
RA_BAIRRO=RD0_BAIRRO
RA_MUNICIP=RD0_MUN
RA_ESTADO=RD0_UF
RA_TELEFON=RD0_FONE
RA_CC=RD0_CC
RA_EMAIL=RD0_EMAIL
RA_MSBLQL=RD0_MSBLQL
RA_SENHA=RD0_SENHA
@{ |cAlias,aFields| SraUpdtSr9( cAlias , aFields ) }
Saiba Mais
Artigos Gestão de Pessoal
0 Comentários