Creo que este problema lo había reportado antes, lo que he detectado es que al guardar y enviar a autorizar el procedimiento antes de guardar se llama dos veces; la primera vez como insert (como se espera) y la segunda vez como update (lo cual no se espera). El problema se da cuando en la segunda vez (cuando hace update) entra a una validación y le coloca valor a @mensaje_validacion


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.Estructura.Controllers.PuestoController.SavePuesto(Puesto entity, Int32 codigoGrupoCorporativo, Nullable`1 codigoCategoriaPuesto, Nullable`1 codigoNivelComportamiento, Boolean inserting, Nullable`1 iniciaFlujo, List`1 aliasPuesto) in C:h4VH4EstructuraControllersPuestoController.cs:line 1030 at Aseinfo.VH4.Estructura.Controllers.PuestoController.Create(Puesto entity, Int32 codigoGrupoCorporativo, Nullable`1 codigoCategoriaPuesto, Nullable`1 codigoNivelComportamiento, Nullable`1 iniciaFlujo, List`1 aliasPuesto) in C:h4VH4EstructuraControllersPuestoController.cs:line 362 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<begininvokesynchronousactionmethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<invokeactionmethodfilterasynchronouslyrecursive>b__3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<begininvokeaction>b__1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<begininvokeaction>b__1e(IAsyncResult asyncResult)

Esta es la validación que entra cuando le doy guardar y autorizar al puesto:


IF @accion='Update'
    BEGIN
        IF EXISTS (SELECT 1 FROM eor.pue_puestos WHERE pue_codigo=@codigo AND pue_estado_workflow != 'Pendiente')
            SET @mensaje_validacion = 'No es permitido modificar el puesto porque el estado del flujo no es Pendiente'
    END

ya lo he resuelto pero sugiero que no omita la segunda llamada al procedimiento.

asked 19 Sep '17, 13:17

Jimy%20Tobar's gravatar image

Jimy Tobar ♦♦
(suspended)
accept rate: 56%

edited 19 Sep '17, 13:18


Dado que la infraestructura de llamado del procedimiento es genérica y está puesta en lo más interno de las actualizaciones de base de datos que hace Evolution, es bien dificil que no se llame dos veces.

Igual ya esta puesto un Issue para ver si se puede hacer algo al respecto.

link

answered 25 Sep '17, 15:34

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

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:

×15
×6
×1

Asked: 19 Sep '17, 13:17

Seen: 548 times

Last updated: 25 Sep '17, 15:34

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