Mi recomendación es que actives el Profiler de Evolution o el el trace de SQLProfile, para ver las instrucciones select que ejecuta, ya que el error claramente dice donde sucede.
La línea de código que genera el error es:
asignacionesEvaluador.ForEach(asigEva => asigEva.PlazaEvaluada.Empleos
.Where(emp =>
emp.Estado == EstadoEmpleo.Activo &&
(asigEva.DireccionEvaluacion.ReglaAplicaGeneracionPorEstructura != ReglaAplicacionDireccionEvaluacion.AutoEvaluacion ||
(empleos.Any(empleo => empleo.Codigo == emp.Codigo) && asigEva.DireccionEvaluacion.ReglaAplicaGeneracionPorEstructura == ReglaAplicacionDireccionEvaluacion.AutoEvaluacion)) &&
!evaluacionesRealizadas.Any(s => s.EvaluacionConsolidada.Empleo.Codigo == emp.Codigo && s.EvaluacionConsolidada.Empleo.Plaza.Codigo == emp.Plaza.Codigo)).ToList()
.ForEach(emp => evaluaciones.Add(new EvaluacionDesempenioModel
{
Codigo = 0,
CodigoEmpleo = emp.Codigo,
CodigoEmpleoEvaluador = empleoEvaluador.Codigo,
CodigoDireccion = asigEva.DireccionEvaluacion.Codigo,
CodigoPeriodo = asigEva.Periodo.Codigo,
Direccion = asigEva.DireccionEvaluacion.Descripcion,
Estado = this.GetLocalized("EstadoEvaluacionDesempenioPendiente"),
Fecha = null,
NombreCompania = emp.Plaza.Compania.Descripcion,
NombreEmpleado = emp.Expediente.ApellidosNombres,
NombrePlaza = emp.Plaza.Nombre,
NombreUnidad = emp.Plaza.Unidad.Descripcion
})));
Sin embargo es muy dificil intuir cual de todos los datos que Evolution espera, le está retornando NULL.
Entonces tendrías que verificar cada utilización de Propiedades o Clases hijas que se da sobre la instrucción anterior.
Las condiciones principales que verifica son:
- La plaza del Evaluado tiene empleos
- Los empleos que tiene están activos
- Si la dirección de la evaluación es 'autoevaluación' verifica que el evaluado y el evaluador sean el mismo empleo y que la evaluación no exista previamente.
- Para otras direcciones, no verifica nada, sino que confía en la asignación de evaluador/evaluado.
Con esta validaciones, crea una nueva evaluación con la siguiente información:
- El codigo de empleo del evaluado y del evaluador
- El código y la descripción de la dirección
- El código del período
- El nombre de la empresa dle evaluado
- El nombre del evaluado
- El nombre de la plaza del evaluado
- La descripción de la unidad a la que pertenece el evaludo.
Con esta información inicia el registro de la evaluación.
answered
11 Oct '16, 14:35
Fernando Paz ♦♦
17.3k●8●16●35
accept rate:
51%
¿Que versión de Evolution estas usando?
es la version 1.10.0.6, SQL