La definición del informe se ha quedado obsoleta

Photo by Nicate Lee on Unsplash

La definición del informe se ha quedado obsoleta

Un mensaje de error de Salesforce que no me había encontrado hasta ahora, saltó ayer justo a última hora: un usuario entra en el sistema, y en el primer informe que entra aparece este mensaje:

image.png Alt text: "No hemos podido completar su solicitud. Solicite ayuda a su administrador de Salesforce. Detalles de error: La definición del informe se ha quedado obsoleta. El administrador ha desactivado todos los informes del objeto de cliente, o han cambiado sus relaciones".

Buscando el mensaje en inglés ("obsolete report"), y haciendo algo de scroll (la doc oficial no es el primer resultado), la documentación de Salesforce dice que esto puede deberse a varios factores.

  • Uno de los objetos del informe ya no está disponible para reporting. Comprobar esto es relativamente sencillo; hay que ver qué objetos se usan en el informe (a partir del report type) y desde ahí acceder a Setup > Object Manager > Objeto. En la pantalla principal se muestra si el objeto está activado para reporting. ¡OJO! En los objetos estándar no me aparece la marca, aunque sí estén disponibles.

image.png

  • Una relación de lookup usada en los objetos del informe se ha eliminado o modificado. Comprobar esto puede ser un poco más complicado, ya que hay que tirar de historial de cambios / control de versiones (si tienes suerte). En mi caso no había ningún cambio, aunque sí se habían añadido algunos campos mediante lookup al report type, estos no eran la causa. ¡OJO! En reddit un usuario menciona que cambiar un campo de lookup a master-detail (o vice versa) genera este error.

  • Un objeto en el informe se ha eliminado. Esto era obvio que no, el objeto custom relacionado con Contact lleva desplegado varias semanas, y el informe se sigue diariamente, de hecho con el perfil de admin y con el perfil de usuario de negocio se veía correctamente el informe...oh wait...

  • El usuario no tiene permiso de lectura sobre un objeto del informe. Y aquí estaba el problema... resultó que el perfil de usuario no se había actualizado cuando se implementó el objeto custom, y no se había actualizado. Como el usuario no accede al informe ni al objeto custom normalmente, no se identificó el problema hasta mucho después.

En fin, un día escribiré un libro sobre gestión y despliegue de perfiles, pero cuando lo haga la mjeor práctica será usar conjuntos de permisos y grupos de conjuntos de permisos y todo será mas fácil, ¿Verdad? ¿Verdad?