タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【Metabase】フィールドフィルターの使い方

ピンポイントネタで恐縮です。

BIツールの「Metabase」を使っていて、便利な機能があったのでご紹介しました。

ネイティブクエリを作成するときに使える「フィールドフィルター」になります。

フィールドフィルターとは?

百聞は一見に如かずということで、下記の画像をご覧ください。

f:id:no14141:20211229115139j:plain

このように、あるテーブルにある区分を区分名で検索することができるようになる選択オプションになります。

しかも、単一指定ではなく、複数指定型のオプションなんですよ! サイコー!!

フィールドフィルターの使い方

まずは、ネイティブクエリで下記のようなSQLを書いたとします。

SELECT *
  FROM purchases
 INNER JOIN buyingType ON buyingType.id = purchases.buyingType
 WHERE supplierCode = {{supplierCode}}
 [[AND {{buyingType}}]]

かなり端折っていますが、仕入テーブルに存在している仕入区分(buyingType)と仕入区分名用のテーブル(idとnameのみ)を結合した状態であれば、仕入区分名で仕入テーブルをフィルターできるようになります。

任意でフィルターしたい場合は、下記のように書きます。
[[]] は任意の意味。{{}} は抽出条件の変数名。

 [[AND {{buyingType}}]]

SQL文により、抽出条件の設定は次の通り。
区分IDでも検索するよりも、区分名で検索してもらった方が親切でしょう。

f:id:no14141:20211229115229j:plain

この設定で、フィールドフィルターが使えるようになりました!

注意:テーブルの権限設定が重要

最後にフィールドフィルターを使うにあたっての注意点です。

一般ユーザーさんに説明しようとしたところ、フィールドフィルターが機能しないではありませんか!!

この原因は、テーブルの権限設定が影響していました。

管理者メニューの権限から、テーブルの参照設定を行う必要がありました。

f:id:no14141:20211229115243j:plain

該当テーブルのデータアクセス権を制限なしにしたところ、一般ユーザーでも問題なく、フィールドフィルターの機能を使用することができました!

まとめ

新しいことをやると、やはりいろんな問題にぶち当たりますが、大抵、設定が間違っていたり、権限やセキュリティでブロックされたり、ほぼほぼ似たような問題だったりします。

いろんなサービス、アプリを実際にユーザー目線で使用することは、プラスしかありません。

年寄り発言になりますが、ホント便利な時代になりましたね!!