PDA

View Full Version : Parámetros en informes



mariomg
09-20-2007, 07:33 AM
Hola a todos. Voy a exponer mi problema, a ver si alguien puede ayudarme o aconsejarme sobre como hacerlo.

Estoy haciendo pruebas con una base de datos PostgreSQL, en concreto con una tabla que contiene datos personales (nombre, apellidos, etc). Puedo conectarme perfectamente a la base de datos desde el portal, etc.

El problema es que me gustar

Maria Roldan
09-20-2007, 11:41 AM
Mario,
He hecho reportes con parametros. Todo lo armo en el xaction, ya sea pidiendo la informacion en listas desplegables, combos o programando en javascript.
Si me explicas un poco a que te refieres con "una lista generada dinamicamente" quizas te pueda ayudar mejor

suerte,

mariomg
09-20-2007, 12:00 PM
Hola Mar

Maria Roldan
09-20-2007, 12:44 PM
Si, se entiende perfecto. Asi es como deberias hacer:

La lista la puedes construir con un "Process Actions: Relational".
Ahi pones los datos de conexion a la base, escribes el query que te trae la lista de personas (Ej: SELECT ID, NOMBRE FROM PERSONA), le pones un nombre ("Result Set Name") y completas los datos de las columnas del query ("Result Set Columns")
Luego armas un "Prompt/Secure Filter" para pedir al usuario la seleccion de la persona. Los datos que debes completar son:
- Prompt Style: list, pulldown, etc.
- Source of Choices: eliges el nombre del result set
- Column Containing Choice Values: eliges el nombre de la columna del query que quieres pasar como parametro al reporte (por ej el ID)
Column Containing Choice Names: eliges el nombre de la columna del query que quieres que se visualicen en la lista (ej NOMBRE)

Luego para usar el dato elegido como parametro del query que alimenta al reporte, hay que ponerlo dentro del query de esta manera {PREPARE:ID} (suponiendo que el dato se llama ID)
Si en cambio el dato lo necesitas como parametro del reporte, lo debes poner en la lista "Report Parameters" del "Process Action: Pentaho Report".

Espero que esto resuelva tus dudas.
Suerte!

mariomg
09-21-2007, 03:55 AM
Muchas gracias por contestar tan rápido. Seguro que me sirve, voy a probarlo ahora mismo.

Gracias!

Mario.

mariomg
09-21-2007, 06:38 AM
Hola. Acabo de probar la solución con los pasos de Mar�*a (perfectamente explicados, por cierto), pero a la hora de ejecutar el informe obtengo el siguiente error:


[es_161] Error: RuntimeContext.ERROR_0018 - [es_39] The requested parameter nombre could not be fulfilled (org.pentaho.core.runtime.RuntimeContext)
[es_161] Error: RuntimeContext.ERROR_0013 - [es_29] Parameters could not be resolved (org.pentaho.core.runtime.RuntimeContext)Creo que he seguido todos los pasos correctamente, pero lo explico por si sirve de algo:

He utilizado la conexión a la base de datos que ya estaba creada por defecto en el .xaction.
Sobre esta conexión, he realizado la consulta "SELECT nombre FROM datos_personales". He llamado "resultado" al result-set, y en las columnas del result-set he añadido "nombre" de tipo String.
He añadido a la query de la que obtiene los datos el informe la l�*nea "WHERE "datos_personales"."nombre"={PREPARE:nombre}", para utilizar el parámetro nombre.
En Prompt/Secure Filter, he añadido nombre en el campo "Prompt for". Como "Source of choices" he elegido "resultado" y como "Column containing choice values" y "Column containing choice names" he añadido "nombre" en ambos.Creo que los pasos son correctos. Las únicas dudas que tengo es si el nombre de la columna del result-set debe coincidir con el de la columna de la base de datos. Tampoco sé si es necesario añadir algún Process Input.

Gracias y perdón por el mensaje tan largo.

Mario.

mariomg
09-21-2007, 06:49 AM
Acabo de solucionar el problema. Efectivamente, hab

Maria Roldan
09-21-2007, 09:02 AM
me alegro que haya funcionado,
cualquier duda estamos hablando
slds,

jdoval
01-23-2008, 07:57 AM
Hola,

Estoy en el paso de creación de parametros en los reports y al seguir todos los pasos que comentais me aparece el siguiente error:

[es_161] Error: SQLBaseComponent.ERROR_0007 - [es_258] Connection to data source is not valid (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_21] Starting execute of //prueba 2.xaction (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: [es_30] Getting runtime context and data (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: [es_33] Loading action sequence definition file (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: SolutionRepository.DEBUG_FILE_PATH - [es_35] getFile path=C:\pentaho\bi-server\pentaho-solutions\prueba 2.xaction (org.pentaho.repository.filebased.solution.SolutionRepository)
[es_116] Debug: [es_23] Adding variable source request to parameter fullname (org.pentaho.repository.filebased.solution.SolutionRepository)
[es_116] Debug: [es_17] Adding default value of "" to parameter fullname (org.pentaho.repository.filebased.solution.SolutionRepository)
[es_116] Debug: [es_34] audit: instanceId=34601f1b-c9aa-11dc-b0c8-4b5c2ac3d029, objectId=org.pentaho.core.runtime.RuntimeContext, messageType=action_sequence_start (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_1] validateComponent validating component SecureFilterComponent (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action prueba 2.xaction (org.pentaho.plugin.core.SecureFilterComponent)
[es_116] Debug: [es_1] validateComponent validating component SQLLookupRule (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action prueba 2.xaction (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_1] validateComponent validating component JFreeReportComponent (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action prueba 2.xaction (org.pentaho.plugin.jfreereport.JFreeReportComponent)
[es_116] Debug: [es_75] Validating component for action prueba 2.xaction (org.pentaho.plugin.jfreereport.components.JFreeReportValidateParametersComponent)
[es_116] Debug: [es_42] Executing action sequence (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_24] Executing action definition: Iteration 0 (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=34601f1b-c9aa-11dc-b0c8-4b5c2ac3d029, objectId=SecureFilterComponent, messageType=component_execution_started (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_3] execute pre-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_21] Setting component log level to DEBUG (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_11] Initializing component (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_4] executeComponent starting audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: SolutionRepository.DEBUG_FILE_PATH - [es_35] getFile path=C:\pentaho\bi-server\pentaho-solutions (org.pentaho.repository.filebased.solution.SolutionRepository)
[es_116] Debug: [es_94] execute validation=true (org.pentaho.plugin.core.SecureFilterComponent)
[es_116] Debug: [es_15] executeComponent finished audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_19] execute post-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=34601f1b-c9aa-11dc-b0c8-4b5c2ac3d029, objectId=SecureFilterComponent, messageType=component_execution_ended (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=34601f1b-c9aa-11dc-b0c8-4b5c2ac3d029, objectId=SQLLookupRule, messageType=component_execution_started (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_3] execute pre-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_21] Setting component log level to DEBUG (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_11] Initializing component (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_4] executeComponent starting audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: SolutionRepository.DEBUG_FILE_PATH - [es_35] getFile path=C:\pentaho\bi-server\pentaho-solutions (org.pentaho.repository.filebased.solution.SolutionRepository)
[es_116] Debug: [es_94] execute validation=true (org.pentaho.plugin.sql.SQLLookupRule)
[es_14] Error: ConnectFactory.ERROR_0001 - [es_1] Database connection could not be established to: MondrianFoodMart - javax.naming.NameNotFoundException: MondrianFoodMart not bound (org.pentaho.plugin.sql.SQLLookupRule)
[es_161] Error: SQLBaseComponent.ERROR_0007 - [es_258] Connection to data source is not valid (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_15] executeComponent finished audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_161] Error: RuntimeContext.ERROR_0012 - [es_33] ActionDefinition for SQLLookupRule did not execute successfully (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=34601f1b-c9aa-11dc-b0c8-4b5c2ac3d029, objectId=org.pentaho.core.runtime.RuntimeContext, messageType=action_sequence_failed (org.pentaho.core.runtime.RuntimeContext)
[es_161] Error: SolutionEngine.ERROR_0007 - [es_27] Action sequence execution failed (org.pentaho.core.solution.SolutionEngine)


He seguido todos vuestros pasos per al ejecutar los parametros me aparece este error:
¿Sabeis como se soluciona?

Muchas gracias!

Saludos

mariomg
01-24-2008, 04:51 AM
Hola.

Ese error se debe a que no tienes definida correctamente la conexión con tu base de datos.

Si estás utilizando JNDI, comprueba que tienes correctamente definidos los parámetros de conexión en el archivo server.xml del servidor.

Si estás utilizando JDBC, comprueba lo mismo, pero en la definición del archivo .xaction.

Espero que te ayude.

Saludos.

cabanur
03-26-2008, 08:21 AM
Hola Mario,
Querria incluir unos parametros en mis reportes pero no encuentro en la wiki la documentacion que haga referencia a esto. Como en tu post dices que ha visto algo sobre esto me podrias facilitar el link, o decirme como encontrarla??

Gracias y un saludo
Nuria

davidgonzalez
03-25-2009, 03:10 AM
Hola,
Creo que hay algo que se me escapa o no entiendo.
Siguiendo los pasos que indicáis y que también aparecen en el wiki (son idénticos), en mi caso cuando intento seleccionar el "Source Of Choices" en el "Secure Filter Description", sólo me aparecen los inputs de tipo List, property-map-list y result-set, pero nunca el "Result Set Name" incluido en "Relational" de las "Process Actions".
Es decir, siguiendo los pasos indicado, al generar el Prompt/Secure Filter, nunca me deja seleccionar en "Source Of Choices" el result set indicado el paso anterior de generación de la acción "Relational".
¿Podrían indicarme qué puedo estar haciendo mal o si me falta algún detalle?
Gracias por adelantado,
David

tdidomenico
03-25-2009, 09:18 AM
Si no entiendo mal, lo estás armando al revés.

La idea es que el Secure Filter te cargue el valor de un parámetro en una variable, que luego usarás en el "Relational". El Secure Filter viene antes...

carolina_ib4
04-03-2009, 10:04 AM
Hola a todos... Estoy tratando de pasar un parámetro en un Process Action:Relational.

He seguido todos los pasos que estan en el foro pero me da el siguiente error:

[es_161] Error: RuntimeContext.ERROR_0012 - [es_33] ActionDefinition for SQLLookupRule did not execute successfully (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_21] Starting execute of samples/senres/sueldos.xaction (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: [es_30] Getting runtime context and data (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: [es_33] Loading action sequence definition file (org.pentaho.core.solution.SolutionEngine)
[es_116] Debug: [es_23] Adding variable source request to parameter p_institucion (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_17] Adding default value of "" to parameter p_institucion (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_23] Adding variable source request to parameter p_regimen (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_17] Adding default value of "" to parameter p_regimen (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_23] Adding variable source request to parameter outputType (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_17] Adding default value of "pdf" to parameter outputType (com.pentaho.repository.dbbased.solution.SolutionRepository)
[es_116] Debug: [es_34] audit: instanceId=15f031e3-2057-11de-9fb2-3df380da7509, objectId=org.pentaho.core.runtime.RuntimeContext, messageType=action_sequence_start (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_1] validateComponent validating component SQLLookupRule (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action sueldos.xaction (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_1] validateComponent validating component SQLLookupRule (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action sueldos.xaction (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_1] validateComponent validating component SecureFilterComponent (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action sueldos.xaction (org.pentaho.plugin.core.SecureFilterComponent)
[es_116] Debug: [es_1] validateComponent validating component BIRTReportComponent (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_75] Validating component for action sueldos.xaction (org.pentaho.plugin.eclipsebirt.BIRTReportComponent)
[es_116] Debug: [es_42] Executing action sequence (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_24] Executing action definition: Iteration 0 (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=15f031e3-2057-11de-9fb2-3df380da7509, objectId=SQLLookupRule, messageType=component_execution_started (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_3] execute pre-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_21] Setting component log level to DEBUG (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_11] Initializing component (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_4] executeComponent starting audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_94] execute validation=true (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: Ejecutando consulta - select i.ins_codigo as codigo, i.ins_nombre as nombre from sch_senres_olap.d_instituciones i (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: Executing query with timeout value of [0] (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_15] executeComponent finished audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_19] execute post-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=15f031e3-2057-11de-9fb2-3df380da7509, objectId=SQLLookupRule, messageType=component_execution_ended (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=15f031e3-2057-11de-9fb2-3df380da7509, objectId=SQLLookupRule, messageType=component_execution_started (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_3] execute pre-audit (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_21] Setting component log level to DEBUG (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_11] Initializing component (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_4] executeComponent starting audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_94] execute validation=true (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: Ejecutando consulta - select distinct rp.rgp_codigo, rp.rgp_regimen from sch_senres_olap.d_reg_personal rp where rp.rgp_inst_id=? (org.pentaho.plugin.sql.SQLLookupRule)
[es_14] Error: SQLBaseComponent.ERROR_0006 - [es_122] Could not execute sueldos.xaction - org.postgresql.util.PSQLException: ERROR: operator does not exist: bigint = character varying (org.pentaho.plugin.sql.SQLLookupRule)
[es_116] Debug: [es_15] executeComponent finished audited execute (org.pentaho.core.runtime.RuntimeContext)
[es_161] Error: RuntimeContext.ERROR_0012 - [es_33] ActionDefinition for SQLLookupRule did not execute successfully (org.pentaho.core.runtime.RuntimeContext)
[es_116] Debug: [es_34] audit: instanceId=15f031e3-2057-11de-9fb2-3df380da7509, objectId=org.pentaho.core.runtime.RuntimeContext, messageType=action_sequence_failed (org.pentaho.core.runtime.RuntimeContext)
[es_161] Error: SolutionEngine.ERROR_0007 - [es_27] Action sequence execution failed (org.pentaho.core.solution.SolutionEngine)


Por favor si me pueden ayudar les agradecería mucho..:)
3975

Adjunto mi .xaction..

tdidomenico
04-03-2009, 10:16 AM
Aquí está la línea donde te dice cual es el error:



[es_14] Error: SQLBaseComponent.ERROR_0006 - [es_122] Could not execute sueldos.xaction - org.postgresql.util.PSQLException: ERROR: operator does not exist: bigint = character varying (org.pentaho.plugin.sql.SQLLookupRule)
El problema es en la consulta al Postgres, porque estás intentando comparar un bigint con un character varying. Supongo entonces que será esta consulta la que falla:



select distinct rp.rgp_codigo, rp.rgp_regimen
from sch_senres_olap.d_reg_personal rp
where rp.rgp_inst_id={PREPARE:p_institucion}
Imagino que rgp_inst_id es un bigint y el parámetro p_institucion viene como varchar.

Para solucionarlo vas a tener que convertir a alguno de los dos campos al tipo de datos del otro.

¡Saludos!

carolina_ib4
04-03-2009, 10:27 AM
Muchas gracias por la rápida respuesta..

Si eso mismo era... le hice un cast a ese campo y funciono perfecto...

Gracias por la ayuda...

Saludos

Carolina :)

carolina_ib4
04-03-2009, 12:10 PM
Disculpen tantas preguntas.. pero ya funciono la primera parte del reporte..
Lo que quiero es que mi reporte se pueda filtrar por "institucion" y segun la institucion que haya escogido en el segundo filtro solo aparezcan los "regimen de personal" para esa institucion...

Es por eso que le estoy pasando en el segundo "process action relacional" el parametro p_institucion..

Al momento de correr el reporte me aparecen los filtros el de "Instituciones" funciona bien pero al momento de escoger el "Regimen" no me presenta ninguna informacion...

Talvez tengo que utilizar algun otro paso???

Gracias por la ayuda...

tdidomenico
04-03-2009, 12:35 PM
Hay un ejemplo de lo que querés hacer en la instalación preconfigurada de la plataforma, en "BI Developer Examples > Reporting > Dependent Parameters Example".

Como podés ver en el directorio que contiene al ejemplo, hace falta un template html especial.

La única forma más fácil de hacer esto sería concatenar más de un secure filter. No es muy elegante pero es más sencillo.

¡Saludos!

jatoru
04-29-2009, 07:48 AM
hola,

a q t refieres con concatenar mas de un secure filter, puedes mandar un ejemplo??

gracias
un saludo