首先,我在pentaho ce 8.0上。我不是宾托舞的Maven。
这个问题似乎很简单,但我无法解决。我正在尝试让 Jmeter 板为mysql查询中的where条件使用一个简单的参数。引导布局有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)
当我启动 Jmeter 板时,我会得到包含销售代表姓名的选择列表。当我选择其中一个时,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中的参数处理是否不同?查询参数也是?
1条答案
按热度按时间1yjd4xko1#
您需要将参数从组件传递到数据源。
添加调用的参数
salesrep_selection
有价值的salesrep_selection
表组件的属性Parameters
. 这将在组件中设置参数,并将其值传递给数据源。在数据源的属性中添加相同的参数
Parameters
. 这将在数据源中设置参数,并将其值传递给查询。表组件(按销售代表列出的客户列表):
数据源(mysql查询):