Tengo tres rutas de autorización: "AutorizaHoraExtra_Jeraquía", "AutorizaHoraExtra_Ventas" y una "AutorizaHoraExtra_ServicioAlCliente". En la entidad HorasExtras, le estoy asignando por defecto la ruta de autorización "AutorizaHoraExtra_Jerarquia" y en las rutas condicionales quiero que cuando el centro de costo sea 9 la ruta de autorización sea "AutorizaHoraExtra_ServicioAlCliente" y cuando el centro de costo sea 7, quiero que la ruta que utilice sea "AutorizaHoraExtra_Ventas".

Al momento de definer la ruta condicional me muestra la lista de propiedades de la entidad, entre la que está "CentroCosto" y en tipo de la propiedad indica "CentroCosto". Al colocar en la condición: Tipo.CentroCosto == 9 me da el siguiente mensaje de error:

La regla de validación no pudo ser evaludada. Favor de verificar la expresión. Mensaje: 'No property or field 'CentroCosto' exists in type 'TipoHoraExtra' (at index 5)'

Si utilizo otro campo para probar, con la siguiente condicion: Tipo.NumeroHoras > 24 "La regla de validación no pudo ser evaludada. Favor de verificar la expresión. Mensaje original: 'No property or field 'NumeroHoras' exists in type 'TipoHoraExtra' (at index 5)'"

Si utilizo otra propiedad por ejemplo Tipo.Codigo == 9 me da el siguiente mensaje: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at lambda_method(Closure , HoraExtra ) --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) at Aseinfo.Infrastructure.Services.ExpressionStringEvaluatorService.EvaluateExpressionTReturn in C:BuildAgentwork5ed3bec7206feb61InfrastructureServicesParsingExpressionStringEvaluatorService.cs:line 21 at Aseinfo.Infrastructure.Services.RutaAutorizacionCondicionalRuleValidator.Validate(RutaAutorizacionCondicional entity) in C:BuildAgentwork5ed3bec7206feb61InfrastructureServicesWorkflowRutaAutorizacionCondicionalRuleValidator.cs:line 73

asked 19 Jun '13, 00:31

Juan%20Carlos%20Soria's gravatar image

Juan Carlos Soria
1.1k174179185
accept rate: 41%


No podes usar Tipo.CentroCosto == 9, porque el tipo de la propiedad es "CentroCosto" no es un valor entero, como el 9 que estas especificando.

Tampoco podes usar Tipo.NumeroHoras porque Tipo se refiere a la entidad Tipo que es de tipo "TipoHoraExtra" y el tipo de hora extra no tiene una propiedad llamada NumeroHoras.

Lo que sí podes usar es "NumeroHoras > 24" porque estas haciendo la comparación con la propiedad de la entidad HoraExtra.

Finalmente, hasta la versión 1.7.0 solo se podían hacer rutas condicionales con las propiedades escalares de la entidad. A partir de la versión 1.7.1, ya se pueden establecer condiciones que involucran entidades relacionadas con la entidad que fluye. Por ejemplo, Tipo.Factor == 2 o Emoleo.Plaza.Puesto.TipoPuesto.Codigo == 5. Siempre y cuando las comparaciones sean con propiedades escalares (int, double, decimal, string).

link

answered 19 Jun '13, 04:27

Fernando%20Paz's gravatar image

Fernando Paz ♦♦
17.3k81635
accept rate: 51%

Para terminar de aclarar esto, en la 1.7.1 para evaluar el centro de costo tendría que colocar: HoraExtra.CentroCosto.Codigo == 9 o CentroCosto.Codigo == 9?

(19 Jun '13, 14:29) Juan Carlos Soria Juan%20Carlos%20Soria's gravatar image
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:

×9
×3

Asked: 19 Jun '13, 00:31

Seen: 2,421 times

Last updated: 19 Jun '13, 14:29

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