【问题标题】:MySQL query parameters in a Pentaho CE dashboardPentaho CE 仪表板中的 MySQL 查询参数
【发布时间】:2018-10-30 17:35:54
【问题描述】:

首先,我使用的是 Pentaho CE 8.0。 而且我不是 Pentaho 方面的专家。

这个问题看起来很简单,但我无法让它发挥作用。我正在尝试让仪表板在 MySQL 查询 中为 WHERE 条件使用一个简单的参数。 Bootstrap 布局有 3 列,每个组件(过滤器、文本、表格)一列。

简单参数:

- Name: salesrep_selection  
- Property value: mike 

过滤器组件(选择销售代表):

- Name: salesrep_selection_filter  
- Parameter: salesrep_selection  
- Values Array: [["mike","Mike"],["paul","Paul"],["peter","Peter"]]  
- Value as Id: false  

文本组件:(只是为了检查参数是否设置):

- Name: selection_show_text  
- Listeners: ["salesrep_selection"]  
- Expression: function() {return this.dashboard.getParameterValue("salesrep_selection");} 

表格组件(按销售代表列出的客户):

- Name: customers_list_table  
- Listeners: ["salesrep_selection"]  
- Datasource: customers_list_data  

数据源(MySQL 查询):

- Name: companies_list_data  
- Jndi: business_datawarehouse  
- Query: SELECT customerid,customername FROM customers WHERE salesrep=${salesrep_selection}  
- Parameters: [] (empty) 

当我启动仪表板时,我会得到包含销售代表姓名的选择列表。当我选择一个时,id会显示在文本组件中,但表格仍然为空“表格中没有可用数据”。

如果我硬编码条件"WHERE salesrep='mike'",我会得到客户列表。

使用参数"WHERE salesrep=${salesrep_selection}",MySQL 查询日志显示它得到"WHERE salesrep=null"。所以参数不会发送到查询中。

我也尝试使用[["salesrep_selection","salesrep_selection"]],设置数据源参数,但表仍然为空“表中没有可用数据”,并且MySQL查询日志显示"WHERE salesrep='salesrep_selection'".

我在互联网上搜索了很多,没有很多关于此的文章,但无论如何,我发现的正是我实现的。而且我仍然没有任何工作。

Pentaho CE 8.0 中的参数处理方式是否不同?查询参数也是?

【问题讨论】:

    标签: mysql pentaho pentaho-cde


    【解决方案1】:

    您需要将参数从组件传递到数据源。

    1. 将名为salesrep_selection 且值为salesrep_selection 的参数添加到表组件的属性Parameters。这将在组件中设置参数,并将其值传递给数据源。
    2. 在数据源的属性Parameters 中添加相同的参数。这将在数​​据源中设置参数,并将其值传递给查询。

    表格组件(按销售代表列出的客户):

    - Name: customers_list_table  
    - Listeners: ["salesrep_selection"]  
    - Datasource: customers_list_data  
    - Parameters: [["salesrep_selection", "salesrep_selection"]]
    

    数据源(MySQL 查询):

    - Name: companies_list_data  
    - Jndi: business_datawarehouse  
    - Query: SELECT customerid,customername FROM customers WHERE salesrep=${salesrep_selection}  
    - Parameters: [["salesrep_selection", "salesrep_selection"]]
    

    【讨论】:

    • 非常感谢,mzy!我尝试使用数据源中的参数,但没有尝试在调用组件(此处为 Table 组件)内再次声明参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2012-12-05
    • 1970-01-01
    • 2013-12-25
    • 2017-10-12
    • 2015-03-19
    • 1970-01-01
    相关资源
    最近更新 更多