Forum
See question

Erro a migrar BD para a V10   

44 views
0
0

Estou a ter o erro que envio abaixo a  migrar uma base de dados para a V10.

Erros na atualização por script

Versão inicial
Versão final
Comando
Código
Descrição

07.81001
07.81002
ver
x0
ExecuteNonQuery failed for Database ‘PRIJMW’. An exception occurred while executing a Transact-SQL statement or batch. Arithmetic overflow error converting float to data type numeric. The statement has been terminated.

 

O erro deve se À seguinte query:

— Documentos Internos

INSERT INTO [INV_Origens]

(

Id, IdTipoOrigem, IdChave1, IdChave2, NumLinha, Moeda, Cambio, CambioMBase, CambioMAlt

, ValorUnitario, ValorAdicional, ValorAbater, Quantidade, Unidade, FactorConv

, ActualizaStock, ActualizaCusto, ActualizaPCU, ActualizaDUE, ActualizaDUS

, Data, Documento, Filial, Chave1, Chave2, NumChave1

, IDProjecto, WBSItem

)

SELECT Id = NEWID()

, IdTipoOrigem = tori.Id

, IdCabecOrig = ls.IdCabecOrig

, IdLinhaOrig = CASE WHEN ls.Modulo = ‘S’ THEN ls.Id ELSE ls.IdLinhaOrig END

, NumLinha = ls.NumLinha

, Moeda = cori.Moeda

, Cambio = ISNULL(cori.Cambio, 1)

, CambioMBase = ISNULL(cori.CambioMBase, 1)

, CambioMAlt = ISNULL(cori.CambioMAlt, 1)

, ValorUnitario = ABS(ISNULL(ls.PrecUnit, 0))

, ValorAdicional = ISNULL(ls.DespesaAdicionalCompra, 0)

, ValorAbater = ISNULL(ls.DescontoComercial, 0)

, Quantidade = ls.Quantidade

, Unidade = ls.Unidade

, FactorConv = CASE WHEN ISNULL(ls.FactorConv, 0) = 0 THEN 1 ELSE ls.FactorConv END

, ActualizaStock = 1

, ActualizaPC = ls.ActPCM

, ActualizaPCU = CASE WHEN ISNULL(ds.TipoDocumento, -1) IN (2, 9) THEN 0 ELSE ls.ActPCU END

, ActualizaDUE = CASE WHEN ISNULL(ds.TipoDocumento, -1) IN (2, 9) THEN 0 ELSE ls.ActUltEntrada END

, ActualizaDUS = CASE WHEN ISNULL(ds.TipoDocumento, -1) IN (0, 1, 8) THEN 0 ELSE ls.ActUltSaida END

, Data = ls.Data

, Documento = cori.TipoDoc + ‘ ‘ + cori.Serie + ‘/’ + CAST(cori.NumDoc AS NVARCHAR(15))

, Filial = cori.Filial

, Chave1 = cori.TipoDoc

, Chave2 = cori.Serie

, NumChave1 = cori.NumDoc

, IDProjecto = ls.ObraID

, WBSItem = ls.WBSItem

FROM LinhasSTK ls

INNER JOIN CabecInternos cori ON ls.IdCabecOrig = cori.Id

INNER JOIN INV_TiposOrigem tori ON tori.Apl = ‘INT’

LEFT JOIN INV_Origens ori ON ls.IdCabecOrig = ori.IdChave1 AND ((ls.Modulo <> ‘S’ AND ls.IdLinhaOrig = ori.IdChave2) OR (ls.Modulo = ‘S’ AND ls.Id = ori.IdChave2))

LEFT JOIN DocumentosStk ds ON ls.Modulo = ‘S’ AND ls.TipoDoc = ds.Documento

WHERE ls.Artigo IS NOT NULL

AND ori.Data IS NULL

 

Alguém me pode ajudar a entender resolver o problema?

 

Muito Obrigado

 

Faça login para poder traduzir
ERP v9
Primavera
Marked as spam
Criado há 3 anos e 11 meses brunomanuelfortunatonbrega
1 answers
0
Private answer

Recomendo a leitura do artigo no Fórum de Suporte:  https://supportforum.ila.cegid.com/questions/erro-migrar-arithmetic-overflow-error-converting-float-to-data-type-numeric/ e a consulta da anomalia BID: 60741 (https://partnerspace.primaverabss.com/pesquisa-de-anomalias#collapseAnomalia-60741_ERP110AP_TFS)

Faça login para poder traduzir
Marked as spam
Criado há 3 anos e 11 meses armandogonalves
armandogonalves Most Valuable Professional