I want to generate a new record on a database duplicating an existing record. what's wrong with my code bellow?
FMaterialOrigem := THelperConnection.GetManager(CNREPEATABLEREAD).Find
.Where(Linq['CODIGOMATERIAL'] = FNivel)
.UniqueResult;
vManagerLocal := TObjectManager.Create(THelperConnection.SnapshotConnectionPool.GetConnection);
try
vCadMaterial := vManagerLocal.Find.Where
(Linq['CODIGOMATERIAL'] = FMaterialOrigem.CODIGOMATERIAL)
.UniqueResult;
vCadMaterial.CODIGOMATERIAL := FProximoCodigo;
vCadMaterial.NIVEL := '9';
vCadMaterial.CODIGOAUXILIAR := FCodigoAuxiliar;
vCadMaterial.CODIGOTABELAPRECOITEM := FProximoCodigo;
vCadMaterial.DESCRICAO := pDescricao;
vCadMaterial.STATUS := pStatus;
vCadMaterial.UNIDADESAIDA := FMaterialOrigem.UNIDADESAIDA;
if pCodigoClasse <> '' then
vCadMaterial.CODIGOCLASSTERAPEUTICA := pCodigoClasse;
if pApresentacao <> '' then
vCadMaterial.APRESENTACAO := pApresentacao;
vCadMaterial.CODIGOGENERO := vManagerLocal.Find<TCADGENEROMATERIALSERVICO>(Copy(NCM, 1, 2)) ;
vCadMaterial.CODIGONCM := vManagerLocal.Find<TCADGENEROMATERIALSERVICO>(NCM);
vCadMaterial.OBSERVACAO.AsUnicodeString := RetornaObservacaoMat(pNumeroOrdemProduto, pCodigoAuxiliar, pNumeroNF, pNomeFor, pValorProduto);
if pCodigoAuxiliar = '' then
vCadMaterial.CODIGOAUXILIAR := pCodigoAuxiliar;
vCadMaterial.IDMATERIAL := 0; //My ID Property
THelperConnection.GetManager(CNREPEATABLEREAD).Replicate<TCADMATERIAL>(vCadMaterial);
THelperConnection.GetManager(CNREPEATABLEREAD).Save(vCadMaterial);
Result := vCadMaterial;
Error Message: First chance exception at $00007FFB43DE4ED9. Exception class EAssertionFailed with message 'Assertion failure (C:\Users\Desenvolvedor\Documents\tmssoftware\TMS Aurelius\source\core\Aurelius.Engine.ObjectMap.pas, line 380)'. Process InformServerXD.exe (2736)