Параметры запросов MySQL на панели инструментов Pentaho CE - PullRequest
0 голосов
/ 21 мая 2018

Во-первых, я нахожусь на Pentaho CE 8.0. И я не эксперт по Pentaho .

Вопрос кажется простым, но я не могу его получитьза работой.Я пытаюсь, чтобы панель инструментов использовала простой параметр для условия WHERE в запросе MySQL .Макет 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) 

Когда я запускаю панель мониторинга,Я получаю свой список выбора с именами торговых представителей.Когда я выбираю один, идентификатор отображается в текстовом компоненте, но таблица остается пустой «Нет данных в таблице».

Если я жестко закодирую условие "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 Ответ

0 голосов
/ 21 мая 2018

Вам необходимо передать параметр из компонента в источник данных.

  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"]]
...