Actualice la versión de un cliente a la versión 1.8.0.2, este cliente ya tenía datos de evaluación de desempeño, como en esta versión hubo algunos cambios a nivel de estructura, realice las actualizaciones a las tablas correspondientes.

Pero al consultar una evaluación de desempeño registrada me da el siguiente error:

Object reference not set to an instance of an object.

ERRORSHELPABOUT
System.NullReferenceException
Object reference not set to an instance of an object.

System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper'. ---> System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at ASP.areas_evaluaciondesempenio_views_evaluaciondesempenio_createoredit_aspx.__RenderContent1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.Control.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.Control.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.Mvc.ViewPage.ProcessRequest(HttpContext context)
   at ASP.areas_evaluaciondesempenio_views_evaluaciondesempenio_createoredit_aspx.ProcessRequest(HttpContext context)
   at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass1.<ProcessRequest>b__0()
   at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass4.<Wrap>b__3()
   at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func)
   at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap(Action action)
   at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.ProcessRequest(HttpContext context)
   at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)
   at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)
   at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage)
   at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm)
   at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm)
   at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext)
   at System.Web.Mvc.WebFormView.RenderViewPage(ViewContext context, ViewPage page)
   at System.Web.Mvc.WebFormView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

Estó me da con todas las evaluaciones en estado Registrada, pero las que ya están Finalizadas si las muestra bien. Los empleados tienen objetivos de evaluación pero no tienen objetivos anuales a nivel de base de datos si permite esto no sé si a nivel de aplicación puede dar problema.

¿Alguna idea de que puede estar causando esto?

asked 03 Feb '14, 16:04

Carlos%20Soria's gravatar image

Carlos Soria ♦♦
1.2k131141148
accept rate: 60%


El comportamiento que reportas sobre que las evaluaciones en estado Finalizado se comportan diferente que las evaluaciones en estado Registrado, se debe a que la vista HTML que se muestra es diferente y por eso no da errores.

Cuando actualice los datos de la base de DEMO que usan los comerciales aca en El Salvador, tuve que hacer un script de migración de los datos y tuve que recrear las listas de valores del módulo, ya que se presentaban errores como este.

Te adjunto como muestra el script que use para migrar los datos, quizá te pueda servir para revisar que datos tendrían que estar llenos.

/*
 Este script es una muestra (que medio funciona) de la migración de los objetivos de evaluación de desempeño
 del esquema de base de datos de la versión 1.7.3 a la versión 1.8.0

    TOMESE COMO UN EJEMPLO --- no se espera que funcione al 100%
*/

-- Descripcion del periodo a migrar
-- Sirve para enlazar los objetivos ya existentes con los periodos de evaluación.
declare @descPeriodoAMigrar varchar(max)
set @descPeriodoAMigrar = 'Evaluaciones 2010'

begin transaction

-- select * from eva.bak_oev_objetivos_eval
-- select * from eva.rco_rangos_logro_objs

delete from eva.evo_evals_objetivos
delete from eva.pob_plan_objs_anuales
delete from eva.poa_params_objs_anuales
delete from eva.rco_rangos_logro_objs

SET IDENTITY_INSERT eva.rco_rangos_logro_objs ON;

insert into eva.rco_rangos_logro_objs (rco_codigo, rco_nombre, rco_descripcion, rco_codpev, rco_rango_inicial, rco_rango_final, rco_valor)
select rco_codigo, 
       case when rco_rango_inicial = rco_rango_final then cast(rco_rango_final as varchar)
            else cast(rco_rango_inicial as varchar) + ' a ' + cast(rco_rango_final as varchar) 
       end rco_nombre, null rco_descripcion, rco_codpev, rco_rango_inicial, rco_rango_final, rco_valor
  from eva.bak_rco_rangos_logro_objs

SET IDENTITY_INSERT eva.rco_rangos_logro_objs OFF;

update eva.pev_periodos
   set pev_anio = year(pev_fecha_al),
       pev_usar_sel_rango = 0,
       pev_fd_calc_de_rubros = 0

SET IDENTITY_INSERT eva.poa_params_objs_anuales ON;
insert into eva.poa_params_objs_anuales (poa_codigo, poa_codgrc, poa_anio, poa_fecha_ini_def_obj, poa_fecha_fin_def_obj, poa_permite_reg_obj)
select ROW_NUMBER() over (order by pev_anio), v1.*
  from (
    select distinct pev_codgrc, pev_anio, pev_fecha_del, dateadd(month, 2, pev_fecha_del) - 1 pev_fecha_al, 1 uno from eva.pev_periodos
       ) v1
SET IDENTITY_INSERT eva.poa_params_objs_anuales OFF;

--- Objetivos anuales
insert into eva.pob_plan_objs_anuales
    (pob_codemp_evaluado, pob_codplz_evaluado, pob_codemp_evaluador, pob_codplz_evaluador, pob_codpoa, pob_estado, pob_fecha_cambio_estado, pob_property_bag_data, pob_codigo_workflow, pob_estado_workflow, pob_ingresado_portal, pob_comentario_anulacion)
select distinct obe_codemp, evaluado.emp_codplz, obe_codemp_evaluador, evaluador.emp_codplz, 1, 'Autorizado', getdate(), null, null, 'Autorizado', 1, null
  from eva.bak_obe_objetivos_eval_empleo
  join exp.emp_empleos evaluado on evaluado.emp_codigo = obe_codemp 
  join exp.emp_empleos evaluador on evaluador.emp_codigo = obe_codemp_evaluador

insert into eva.oan_objetivos_anuales
    (oan_peso, oan_objetivo, oan_indicador, oan_metrica, oan_actividades_acordadas, oan_resultados_esperados, oan_fecha_estimada_cumpl, oan_codpob)
select 0, obe_objetivo, cast(obe_codigo as varchar), null, null, null, obe_fecha, pob_codigo
  from eva.pob_plan_objs_anuales
  join eva.bak_obe_objetivos_eval_empleo on pob_codemp_evaluado = obe_codemp and pob_codemp_evaluador = obe_codemp_evaluador and pob_codpoa = 1

update eva.oan_objetivos_anuales
   set oan_peso = peso
  from eva.oan_objetivos_anuales
  join (
        select oan_codpob codpob, num, case when num > 0 then round(100.0 / num, 2) else 0 end peso
          from (
                select oan_codpob, count(*) num
                  from eva.oan_objetivos_anuales
                 group by oan_codpob
               ) vl
       ) v2 on oan_codpob = codpob

update eva.oan_objetivos_anuales
    set oan_peso = oan_peso + (100 - suma)
    from eva.oan_objetivos_anuales
    join (
        select oan_codpob codpob, sum(oan_peso) suma, min(oan_codigo) min_codigo
            from eva.oan_objetivos_anuales
            group by oan_codpob
        having sum(oan_peso) != 100.0
        ) v1 on oan_codpob = codpob and oan_codigo = min_codigo

-- Objetivos de períodos
insert into eva.evo_evals_objetivos
    (evo_codemp_evaluado, evo_codplz_evaluado, evo_codemp_evaluador, evo_codplz_evaluador, evo_codpev, evo_estado, evo_fecha_cambio_estado, evo_property_bag_data, evo_codigo_workflow, evo_estado_workflow, evo_ingresado_portal, evo_comentario_anulacion)
select pob_codemp_evaluado, pob_codplz_evaluado, pob_codemp_evaluador, pob_codplz_evaluador, pev_codigo, 'Autorizado', getdate(), null, null, 'Autorizado', 1, null
  from eva.pob_plan_objs_anuales
  join eva.pev_periodos on pev_descripcion = @descPeriodoAMigrar

insert into eva.obj_objetivos 
    (obj_codevo, obj_orden, obj_peso, obj_objetivo, obj_indicador, obj_metrica, obj_actividades_acordadas, obj_resultados_esperados, obj_fecha_estimada_cumpl, 
     obj_fecha_cumplimiento, obj_codrco, obj_valor, obj_codoan, obj_resultados_alcanzados)
select evo_codigo, 1, oan_peso, oan_objetivo, null, oan_metrica, oan_actividades_acordadas, oan_resultados_esperados, oan_fecha_estimada_cumpl, 
       oan_fecha_estimada_cumpl, oev_codrco, oev_porc_logro, oan_codigo, null
  from eva.bak_obe_objetivos_eval_empleo
  left join eva.bak_oev_objetivos_eval on oev_codobe = obe_codigo
  join eva.pob_plan_objs_anuales on pob_codemp_evaluado = obe_codemp and pob_codemp_evaluador = obe_codemp_evaluador
  join eva.oan_objetivos_anuales on oan_codpob = pob_codigo
  join eva.pev_periodos on pev_descripcion = @descPeriodoAMigrar
  join eva.poa_params_objs_anuales on poa_anio = pev_anio
  join eva.evo_evals_objetivos on pob_codemp_evaluado = evo_codemp_evaluado and pob_codemp_evaluador = evo_codemp_evaluador and pob_codpoa = poa_codigo
 where oan_indicador = cast(obe_codigo as varchar)

update eva.oan_objetivos_anuales set oan_indicador = null

--select * from eva.obj_objetivos
--select * from eva.oan_objetivos_anuales order by oan_codpob
--select * from eva.rco_rangos_logro_objs
--select * from eva.poa_params_objs_anuales
--select * from eva.pob_plan_objs_anuales
-- select * from eva.pev_periodos

commit transaction
link

answered 05 Feb '14, 16:26

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:

×6
×3
×2

Asked: 03 Feb '14, 16:04

Seen: 2,974 times

Last updated: 05 Feb '14, 16:26

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