1. Se ha configurado una entidad adicional (catálogo) con tabla anexa.
  2. Ya se hicieron pruebas de insert, update y delete de manera exitosa.
  3. Se ha configurado un "proceso antes de guardar" para implementar validaciones sin embargo cuando se hace la prueba, aparece el siguiente mensaje de error en lugar de mostrarse el mensaje de validacion definido en el procedimiento:

System.Transactions.TransactionAbortedException: The transaction has aborted. at System.Transactions.TransactionStatePromotedAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState) at System.Transactions.CommittableTransaction.Commit() at System.Transactions.TransactionScope.InternalDispose() at System.Transactions.TransactionScope.Dispose() at Aseinfo.VH4.Solicitudes.Controllers.InstanciaEntidadAdicionalController.SaveSolicitudGenerica(InstanciaEntidadAdicional entity, Boolean inserting, Nullable1 iniciaFlujo, Nullable1 codigoEmpleo, Nullable1 codigoConfiguracionEntidadAdicional, Nullable1 codigoEmpleoSolicitante, Nullable1 fechaInicio, Nullable1 fechaFin, FormularioDinamicoData formData, List1 camposData, List1 parametros, List1 parametrosValueLists) in C:\work\c1b9e225ed0e36b6\VH4\Solicitudes\Controllers\InstanciaEntidadAdicionalController.cs:line 910 at Aseinfo.VH4.Solicitudes.Controllers.InstanciaEntidadAdicionalController.GuardarDatosFormulario(InstanciaEntidadAdicional entity, Boolean inserting, Nullable1 codigoEmpleo, Nullable1 codigoConfiguracionEntidadAdicional, Nullable1 codigoEmpleoSolicitante, Nullable1 fechaInicio, Nullable1 fechaFin, FormularioDinamicoData formData, List1 camposData, List1 parametros, Nullable1 iniciaFlujo, List1 parametrosValueLists) in C:workc1b9e225ed0e36b6VH4SolicitudesControllersInstanciaEntidadAdicionalController.cs:line 783 at Aseinfo.VH4.Solicitudes.Controllers.InstanciaEntidadAdicionalController.Create(InstanciaEntidadAdicional entity, Nullable1 codigoEmpleo, Nullable1 codigoConfiguracionEntidadAdicional, Nullable1 codigoEmpleoSolicitante, Nullable1 fechaInicio, Nullable1 fechaFin, FormularioDinamicoData formData, List1 camposData, List1 parametros, Nullable1 iniciaFlujo, List1 parametrosValueLists) in C:\work\c1b9e225ed0e36b6\VH4\Solicitudes\Controllers\InstanciaEntidadAdicionalController.cs:line 605 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<invokeactionmethodfilterasynchronouslyrecursive>b3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass21.<>cDisplayClass2b.<begininvokeaction>b1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass21.<begininvokeaction>b1e(IAsyncResult asyncResult)

NOTA: Cabe mencionar que se ha revisado la secuencia de lo que se ejecuta a nivel de base de datos, en el profiler.

1- SE HACE UNA INSERCION ENLA TABLA SVE.IEA_INST_ENTIDAD_ADIC

exec sp_executesql N'INSERT [sve].iea_inst_entidad_adic VALUES (@0, @1, NULL, NULL, NULL, NULL, @2, @3, @4, @5, @6, NULL, NULL, @7, @8, @9, @10, @11, NULL, NULL, @12, @13, NULL, NULL) SELECT [iea_codigo] FROM [sve].[iea_inst_entidad_adic] WHERE @@ROWCOUNT > 0 AND [iea_codigo] = scope_identity()',N'@0 int,@1 int,@2 int,@3 nvarchar(max) ,@4 nvarchar(max) ,@5 varchar(15),@6 datetime2(7),@7 varchar(15),@8 bit,@9 bit,@10 varchar(50),@11 datetime2(7),@12 int,@13 int',@0=24,@1=5032549,@2=5060023,@3=N'<documentelement> <tiposemergencia> <tie_codigo_visual>test1</tie_codigo_visual> <tie_descripcion>test1</tie_descripcion> </tiposemergencia> </documentelement>',@4=N'<documentelement> <environmentvariables> <user>admin</user> <codusr>1</codusr> <culture>es-SV</culture> <uiculture>es</uiculture> <codexp>5060023</codexp> <codcia>1</codcia> <codgrc>1</codgrc> </environmentvariables> </documentelement>',@5='Pendiente',@6='2019-08-27 09:22:06.8571599',@7='Pendiente',@8=1,@9=1,@10='admin',@11='2019-08-27 09:22:06.8727370',@12=0,@13=0

2- SE EJEUTA EL SP SVE.EJeUTA_ANTES_GUARDAR_SGE con la accion INSERT

declare @p4 varchar(4000) set @p4=NULL exec sve.ejecuta_antes_guardar_sge @codigo='936',@entitysetname='InstanciasEntidadesAdicionales',@accion='Insert',@mensaje_validacion=@p4 output select @p4

3- SE HACE UPDATE A LA TABLA SVE.IEA_INST_ENTIDAD_ADIC ASIGNANDO NULL AL CAMPO DATA FORMULARIO

exec sp_executesql N'UPDATE [sve].[iea_inst_entidad_adic] SET [iea_data_formulario] = NULL, [iea_usuario_modificacion] = @0, [iea_fecha_modificacion] = @1 WHERE ([iea_codigo] = @2) ',N'@0 varchar(50),@1 datetime2(7),@2 int',@0='admin',@1='2019-08-27 09:22:06.8883793',@2=936

4- SE EJECUTA EL PROCESO SVE.EJECUTA_ANTES_DE_GUARDAR_SGE CON LA ACCION UPDATE

declare @p4 varchar(4000) set @p4=NULL exec sve.ejecuta_antes_guardar_sge @codigo='936',@entitysetname='InstanciasEntidadesAdicionales',@accion='Update',@mensaje_validacion=@p4 output select @p4

5- SE EJECUTA EL PROCESO DE INSERCIÓN DEFINIDO EN LA CONFIGURACION DE LA ENTIDAD ADICIONAL PARA LA TABLA ANEXA

declare @p7 xml set @p7=convert(xml,N'<documentelement><tiposemergencia><tie_codigo_visual>test1</tie_codigo_visual><tie_descripcion>test1</tie_descripcion></tiposemergencia></documentelement>') exec tecli.insert_tipos_emergencia @codiea=936,@codemp_sujeto=5032549,@codemp_solicitante=NULL,@fecha_inicio=NULL,@fecha_fin=NULL,@comentarios=NULL,@data_formulario=@p7

6- SE ACTUALIZA LA TABLA SVE.IEA_INST_ENTIDAD_ADIC ASIGNANDO EL ESTADO DE WORKFLOW Y LA FECHA DE MODIFICACION

exec sp_executesql N'UPDATE [sve].[iea_inst_entidad_adic] SET [iea_estado_workflow] = @0, [iea_fecha_modificacion] = @1 WHERE ([iea_codigo] = @2) ',N'@0 varchar(15),@1 datetime2(7),@2 int',@0='Autorizado',@1='2019-08-27 09:22:06.9665132',@2=936

7- SE INSERTA UN REGISTRO EN LA TABLA DE PROCESOS

exec sp_executesql N'INSERT [cfg].pro_procesos VALUES (@0, @1, @2, @3, @4, @5, @6, @7, NULL, NULL) ',N'@0 varchar(36),@1 varchar(50),@2 varchar(150),@3 varchar(150),@4 varchar(1),@5 datetime2(7),@6 datetime2(7),@7 varchar(50)',@0='e21f3a20-8429-48ef-bdaf-a8abca06d662',@1='InstanciasEntidadesAdicionales',@2='936',@3='Finalización de Instancias de Entidades Adicionales (936)',@4='A',@5='2019-08-27 09:22:08.9196964',@6='2019-08-27 09:22:06.9665132',@7='admin'

8- SE INSERTAN LOS REGISTROS RESPECTIVOS EN LA TABLA DE EMPLEOS INTERESADOS EN LOS PROCESOS PARA LAS NOTIFICACIONES

exec sp_executesql N'INSERT [cfg].eip_emp_interesados_procesos VALUES (@0, @1) ',N'@0 varchar(36),@1 int',@0='e21f3a20-8429-48ef-bdaf-a8abca06d662',@1=3827

exec sp_executesql N'INSERT [cfg].eip_emp_interesados_procesos VALUES (@0, @1) ',N'@0 varchar(36),@1 int',@0='e21f3a20-8429-48ef-bdaf-a8abca06d662',@1=4771

exec sp_executesql N'INSERT [cfg].eip_emp_interesados_procesos VALUES (@0, @1) ',N'@0 varchar(36),@1 int',@0='e21f3a20-8429-48ef-bdaf-a8abca06d662',@1=5401

exec sp_executesql N'INSERT [cfg].eip_emp_interesados_procesos VALUES (@0, @1) ',N'@0 varchar(36),@1 int',@0='e21f3a20-8429-48ef-bdaf-a8abca06d662',@1=5032549

9- SE EJECUTA EL PROCESO ANTES DE GUARDAR CONFIGURADO EN LA PANTALLA DE LA ENTIDAD ADICIONAL

declare @p4 varchar(4000) set @p4='El tipo de emergencia con codigo: test1 y descripcion: test1 ya existe para este grupo corporativo.' exec sve.ejecuta_antes_guardar_sge @codigo='936',@entitysetname='InstanciasEntidadesAdicionales',@accion='Update',@mensaje_validacion=@p4 output select @p4

/***************/

BASE DE DATOS: Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Oct 20 2015 15:36:27 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.2 <x64> (Build 9200: ) (Hypervisor)

VERSION EVOLUTION: 1.11.2.1

Se agrega este el link para que se pueda ver el Trace de sql.

asked 27 Aug '19, 10:05

Julio%20Flores's gravatar image

Julio Flores
(suspended)
accept rate: 42%

Se hizo la prueba con la versión 1.11.2.4, y el comportamiento es el mismo

(29 Aug '19, 09:07) Julio Flores Julio%20Flores's gravatar image

La infraestructura de validación de Evolution funciona correctamente. El problema se originaba por un error en la lógica y definición del procedimiento almacenado de validación.

link

answered 06 Sep '19, 11:06

Julio%20Flores's gravatar image

Julio Flores
(suspended)
accept rate: 42%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Evolution en BitBucket

En este sitio puede acceder al código fuente, centro de descargas y reportar bugs, propuestas y mejoras para Evolution.

Evolution en JIRA

En este sitio puedes sugerir nueva funcionalidad para Evolution, o puedes votar por la funcionalidad ya propuesta por otros usuarios.

Tags:

×32
×13

Asked: 27 Aug '19, 10:05

Seen: 534 times

Last updated: 06 Sep '19, 11:06

[Acerca de] [Preguntas Frecuentes] [Privacidad] [Soporte] [Contacto]
Copyright 2013-2018. Asesores en Informática