Error de Report validation failed

Hola Marcos, nuevamente estoy por aquí molestando.
te cuento que estoy definiendo los usuarios que usaran el pentaho.
genero los roles Presupuestarios, Académicos y Personales.
agrego los usuarios generados a los roles y pruebo, me funciona bien la habilitación/deshabilitación de carpetas para consultar los reportes.
pero a la hora de consultar con un usuario que sea del rol Presupuestario por ejemplo me devuelve el Report validation failed en el momento de mostrar la información. Lo que no me pasa con un Usuario dentro del rol Admin como es el mio.
te adjuntos los logs e imágenes.


logs.zip (24.6 KB)

Report validation failed.png

Report validation failed.png

Report validation failed_hint.png

Report validation failed_hint.png

Hola Rodrigo,
para poder configurar los roles correctamente hay un documento donde explica como hacerlo para filtrar los datos del Portal Gerencial por roles. Miralo y avisame cualquier inconveniente. El link es (http://repositorio.siu.edu.ar/trac/dw_pentaho/wiki/InstalacionGestión de usuarios y roles en SIU-Wichi 4.x con Pentaho).

El error que te esta dando seguramente tenga que ver que falta configurar los roles en los cubos del portal gerencial.

Saludos,

Marcos

Marcos.
te adjunto los archivos de lo que hablamos y además una captura de pantalla donde se ven los registros sin asignar a unidades académicas genéricas.
saludos.


UnidadesGenericasyEsquemaWichi.zip (28.8 KB)

registros_sin_unidades_academicas.png

registros_sin_unidades_academicas.png

Hola Rodrigo, te hago unas consultas porque hay algunas cosas que no me quedan claras:

  • Vos estás intentando acceder a datos Presupuestarios?
  • En la página de asignación de Unidad Académica Genérica (para el Pilagá [Presupuestario]) figuran 2877 registros sin asignar).
  • Presionaste el botón que está a la derecha (“Actualizar Pilagá”) ?
  • Si lo hiciste y aún quedan 2877 registros significa que te faltan asignar a alguna dependencia la UAGenerica correspondiente.
  • Si no lo hiciste deberías ejecutarlo y luego verificar que te quede esta cantidad en cero.
    Esperamos tus comentarios,
    saludos.
    Hernán

Hola Hernan.
Claro que si ejecute las acciones de Actualizar Pilagá y Actualizar Mapuche. Pero no hace nada. Queda procesando un tiempo pero no cambia nada.
Gracias.

Perfecto, entonces lo que ocurre es que hay registros en la tabla “int_dw_d_unidad” que no tienen asignada unidadgenerica_id para la fuente_id=3 (Pilaga).
Podrías hacer el siguiente query: SELECT * FROM int_dw_d_unidad WHERE fuentedatos_id=3 ORDER BY unidadgenerica_id;

Te da registros con unidadgenerica_id = 0 o nulo?
Si hay registros con esa característica hay que poner el número de unidadgenerica_id que le corresponde a cada una.

Hernan.
No tengo ningún registro con unidadgenerica_id = 0 o nulo.
Como te muestro en el adjunto que el campo unidadgenerica_id va desde 1 correlativamente hasta 59.
Saludos.


SinRegistrosNulos.png

SinRegistrosNulos.png

Veamos esto por favor:
La consulta que muestra la cantidad de registros sin asignar es la siguiente:
– Cantidad de registros de Pilaga sin Unidades Academica Generica asignada
SELECT (SELECT count() FROM pentaho.financiera_ft_detcom WHERE
unidadgenerica_id = 0) +
(SELECT count(
) FROM pentaho.financiera_ft_liquid WHERE
unidadgenerica_id = 0) +
(SELECT count() FROM pentaho.financiera_ft_liqdet WHERE
unidadgenerica_id = 0) +
(SELECT count(
) FROM pentaho.financiera_ft_recaud WHERE
unidadgenerica_id = 0) +
(SELECT count() FROM pentaho.financiera_ft_codepa WHERE
unidadgenerica_id = 0) +
(SELECT count(
) FROM pentaho.financiera_ft_salcre WHERE
unidadgenerica_id = 0) +
(SELECT count() FROM pentaho.financiera_ft_salcrecodepa WHERE
unidadgenerica_id = 0) +
(SELECT count(
) FROM pentaho.financiera_ft_liquid WHERE
unidadgenerica_id = 0) as “Registros de Pilaga sin Unidades Academica Generica asignada”;

Podés ejecutarla y verificar que te da el mismo número que la página?

Luego, la que actualiza los datos (el botón) es la siguiente:
– Actualizar Pilaga
Select pentaho.actualizagenericas_pilaga();

Podés ejecutarla y ver que termine correctamente? Luego podés volver a ejecutar la primera y verificar que el número continúa estando (2877)

Si todo esto se dió te pido que ejecutes la siguiente query:
SELECT pentaho.cargaunidadesfaltantes();

Luego de ejecutarlo la consulta que te había dado en la respuesta anterior debería dar registros en cero, la consulta es:
SELECT * FROM int_dw_d_unidad WHERE fuentedatos_id=3 ORDER BY unidadgenerica_id;

Ahora te da registros en cero? Si es así podrás entrar de nuevo a la página, ejecutar el botón de actualización y luego ver si te quedan registros?

Gracias,
Hernán

Hola Hernan, Buenos Días.
Estoy viendo las Query que me indicas y paso a comentarte:
En la query que calcula la Cantidad de registros de Pilaga sin Unidades Académica Genérica asignada me tira 2877 registros.
Luego cuando ejecuto la Función pentaho.actualizagenericas_pilaga(); me retorna un False.
Con la Función pentaho.cargaunidadesfaltantes(); me da este error:

ERROR: inserción o actualización en la tabla «int_dw_d_unidad» viola la llave foránea «int_dw_d_unidad_unidadgenerica_id_fkey»
DETAIL: La llave (unidadgenerica_id)=(0) no está presente en la tabla «int_dw_d_unidadgenerica».
CONTEXT: sentencia SQL: «INSERT INTO public.int_dw_d_unidad (unidadgenerica_id, fuentedatos_id, unidad_desc) SELECT DISTINCT 0, 2, nombre FROM pentaho.personal_d_unidadacad WHERE (2, nombre) NOT IN (SELECT fuentedatos_id,unidad_desc FROM public.int_dw_d_unidad)»
PL/pgSQL function “cargaunidadesfaltantes” line 8 at sentencia SQL
********** Error **********
ERROR: inserción o actualización en la tabla «int_dw_d_unidad» viola la llave foránea «int_dw_d_unidad_unidadgenerica_id_fkey»
SQL state: 23503
Detail: La llave (unidadgenerica_id)=(0) no está presente en la tabla «int_dw_d_unidadgenerica».
Context: sentencia SQL: «INSERT INTO public.int_dw_d_unidad (unidadgenerica_id, fuentedatos_id, unidad_desc) SELECT DISTINCT 0, 2, nombre FROM pentaho.personal_d_unidadacad WHERE (2, nombre) NOT IN (SELECT fuentedatos_id,unidad_desc FROM public.int_dw_d_unidad)»
PL/pgSQL function “cargaunidadesfaltantes” line 8 at sentencia SQL

Fijandome interiormente en la función pentaho.cargaunidadesfaltantes() veo que hace unos Insert desde unos SELECT DISTINCT.
Lo primer que hace es Insertar datos desde un SELECT DISTINCT con datos desde Araucano con fuentedatos_id=4, pero no manejamos datos academicos por el momento.
Después Inserta datos desde un SELECT DISTINCT con fuentedatos_id=2, ejecuto el SELECT DISTINCT pero sin el Insert y me devuelve esto:

0;2;“SEC.DE PLMTO,OBRAS y SERVICIOS”
0;2;“RECT-CENTRO UNIVERS.AGUILARES”
0;2;“Instituto Tecnico Aguilares”
0;2;“Dependencia no definida”
0;2;“RESIDENCIAS Y COMEDORES”
0;2;“FAC. EDUCACION FISICA”
0;2;“RECT-EDICIONES RECTORADO”
0;2;“FAC.ARTES-AGUILARES.-I.PLASTIC”
0;2;“FAC. DE DERECHO”
0;2;“Esc.Univer.de Cine, Video y Te”
0;2;“RECT-UNIDAD DE NEGOCIOS”
0;2;“DIR.CONSTRUCCIONES UNIV.”
0;2;“COMPLEJO DICKENS”
0;2;“FAC.MEDICINA-ENFER-AGUILARES”
0;2;“SERV.AUTOMOTORES”
0;2;“DIR.UNIV. DE SALUD”
0;2;“SEC.BIENESTAR EST.Y COMUNIC.”

Y de igual forma cuando ejecuto el SELECT DISTINCT con fuentedatos_id=3 me devuelve esto:

0;3;“UNIVERSIDAD DE JUJUY”
0;3;“UNIVERSIDAD DE SANTIAGO DEL ESTERO”
0;3;“UNIVERSIDAD DE CATAMARCA”
0;3;“ESCUELA DE CINE, VIDEO Y TV.”
0;3;“FOMEC DEUDA EXTERNA”
0;3;“UNIVERSIDAD DE SALTA”
0;3;“FOMEC - CONTRAPARTIDA”

Espero ser claro con mi respuesta.
Muchas gracias desde ya.
Saludos.

Hola Rodrigo, por alguna razón veo que te falta un registro (el que va cargado inicialmente) en la tabla de UnidadAcadémicaGenerica. Este registro es el que tiene como clave el 0 y es el que se le asigna inicialmente a las UAs nuevas para determinar que aún no tienen genérica asociada. El paso para resolverlo es ejecutar el siguiente insert:

INSERT INTO int_dw_d_unidadgenerica
VALUES (0,
1,
‘(Unidad Academica sin definir o desconocida)’,
‘(rol de usuario sin definir)’);

Si este insert te da error porque dice que no existe la clave 1 en la tabla int_dw_d_instituciones deberías primero ejecutar el insert que figura a continuación y luego intentar de nuevo con el anterior. Una vez que esto funcione deberías probar de ejecutar de nuevo el script que te daba error y debería haber quedado resuelto.

INSERT INTO int_dw_d_instituciones
VALUES (1, ‘(Ingrese el codigo SAF)’,
‘(Ingrese el codigo ONA)’,
‘(Ingrese Sigla de la Universidad)’,
‘(Ingrese el nombre de su Universidad)’);

Saludos,
Hernán

Hola Hernan. Buenos Días.
Te comento que pude solucionar el problema que tenia con los usuarios que no sean administradores. ya puedo ver informacion de dependencias asignadas a usuarios.
Con respecto al otro problema de las Unidades Genericas solo me quedo un solo registro que me aparece como:


Id Unidad Fuente de información
726 Dependencia no definida SIU-Mapuche


y en la Actualización de Unidades Academicas Genericas pude Incorporar los 861.957 registros que tenia para SIU-Mapuche.
Pero para SIU-Pilaga me quedaron 545 registros sin incorporar de los 2877 que tenia al comienzo.

Viendo un poco la Query que hace toda la sumatoria de registros, llego a que en la tabla pentaho.financiera_ft_liquid tengo 1 registro con unidadgenerica_id = 0, esta es sumada dos veces dentro del query de toda la sumatoria de registros sin unidad generica asignados. Y en la tabla pentaho.financiera_ft_recaud tengo 543 registros con unidadgenerica_id = 0.

Saludos y Muchas gracias.


RegistrosSinUnidad.png

RegistrosSinUnidad.png

Hola Rodrigo, la verdad es que no puedo reproducir el problema, necesitaría me pases los datos de las tablas d_unidad y d_unidad_generica así comprendo como están configurados los roles. Podrías subir dos archivos de texto o sql con los datos de estas tablas?
Gracias,
Hernán

Hola Hernan. Buenos Días.
Te adjunto los datos de las tablas int_dw_d_unidad y int_dw_d_unidadgenerica.
Muchas Gracias y estamos en ctto.
Saludos


UnidadesyUnidadesGenericas.zip (5.5 KB)

Hola Rodrigo, vamos por parte:

Tema SIU-Mapuche
Efectivamente parece que desde SIU-Mapuche viene una dependencia llamada “Dependencia no definida” y vos no le has asignado una genérica asociada. Esto no es un problema porque si luego el contador de UAs Genericas sin asignar del Mapuche te da cero (es decir que incorporaste/asignaste los 861.957 registros que antes quedaban sin asignar) esta “Dependencia no definida” no está usada y por lo tanto no te generará problemas.

Tema SIU-Pilaga
No encontré ningún problema en las tablas unidad y unidad_generica.
Por lo tanto lo primero a hacer es encontrar qué UA tienen los 543 registros que no están cargadas en la tabla unidad.
Podrás ejecutar el siguiente query y decirme qué resultados te da?
SELECT DISTINCT nombre
FROM pentaho.financiera_d_depcia
WHERE (idanio, coddep, subdep) IN (
SELECT DISTINCT idanio, coddep, min(subdep)
FROM pentaho.financiera_d_depcia
WHERE coddep<>0
GROUP BY idanio, coddep)
AND (3, nombre) NOT IN (SELECT fuentedatos_id,unidad_desc FROM public.int_dw_d_unidad);

Hola Rodrigo, nos surgió otra duda, podrás ejecutar este query y decirlos qué te devuelve?
SELECT * FROM pentaho.financiera_d_depcia WHERE coddep=0 AND subdep=0;

Hola Hernan. Buenos Días.
Te comento que la primer Query de ayer, la del SELECT DISTINCT nombre … no me devuelve nada.
La que si me retorna 9 registros es la segunda Query del SELECT * FROM pentaho.financiera_d_depcia WHERE coddep=0 AND subdep=0.
te adjunto una imagen.
Muchas Gracias che por todo.


resultado.png

resultado.png

Hola Rodrigo, creo que encontramos el problema, necesitaríamos que ejecutes este archivo que adjunto en la base de datos (es un script de actualización de una función).
Comentanos los resultados por favor.


patch_19_4_2013_cargaunidadesfaltantes.sql (1.81 KB)

Hola Hernan. Buenos Días.
Ejecute el script que actualiza la función para cargar unidades cargaunidadesfaltantes() y luego ejecute la función, la cual no me devuelve nada, solo el resultado del return en falso.
también hice internamente el SELECT sin el INSERT de la parte de Pilaga:

SELECT DISTINCT 0, 3, nombre
FROM pentaho.financiera_d_depcia
WHERE (idanio, coddep, subdep) IN (
SELECT DISTINCT idanio, coddep, min(subdep)
FROM pentaho.financiera_d_depcia
– (Comentado el 19/4/2013) WHERE coddep<>0
GROUP BY idanio, coddep)
AND (3, nombre) NOT IN (SELECT fuentedatos_id,unidad_desc FROM public.int_dw_d_unidad);

lo cual no me devuelve ningún registro tampoco.
estamos en cttp y saludos.

PD:Mariano esta aquí al lado mio y te manda saludos.

Hola, podrán ejecutar el siguiente query y decirme qué responde?
SELECT DISTINCT coddep, subdep, nombre
FROM pentaho.financiera_ft_recaud r,pentaho.financiera_d_depcia d
WHERE r.unidadgenerica_id = 0 AND r.iddepcia=d.iddepcia;

Hola Hernan.
El query me devuelve un solo registro con:
coddep = 0, subdep = 0 y el nombre en NULL.

Saludos.