バインド
ステップを定義したら、そのステップをウィジェットにバインドします。
バインドには次の種類があります。
- 選択バインド
- 結果バインド
選択バインド
ユーザがダッシュボードでウィジェットを選択したときに、その選択値を使用して他のステップとウィジェットを更新し、ダッシュボードを対話型にすることができます。このアクションは「facet」と呼ばれます。
ダッシュボードビルダー UI でダッシュボードを作成する場合、デフォルトですべてに facet が実行されます。各ステップの「isFaceted」オプションは、同じデータセットのステップ間の双方向選択バインドを処理します。ただし、ダッシュボード JSON ファイルを直接変更し、さまざまなステップ間のリレーションを手動で指定して次を実現できます。
- 異なるデータセットのステップ間の選択バインド
- 一方向選択バインド
- 静的ステップの選択バインド
結果バインド
結果バインドは、別のステップからの結果値を使用してステップを絞り込むために使用されます。この種類のバインドは通常、複数のデータセットにわたって使用されます。結果バインドは、売上上位の商品によって商談を絞り込むときなどに役立ちます。
1step_all_salesreps:
2 type: "aggregate"
3 em: "opp"
4 query:
5 groups: ["Owner-Name"]
6 filters: [
7 ["StageName", ["5 - Closed-Won"]]
8 ["Products", "{{ results(step_top5_products) }}"]
9 ]
10 measures: [ ["sum", "Amount"] ]次の例では、最初のステップ ("all_miles") の合計マイル結果が平均を計算する 2 番目のステップで使用されています。
1"steps": {
2 "all_miles": {
3 "type": "aggregate",
4 "em": "airline",
5 "query": {
6 "measures": [["sum", "miles"], ["count", "*"]]
7 }
8 },
9 "step_percent": {
10 "type": "aggregate",
11 "em": "airline",
12 "query": {
13 "pigql": "q = load \"airline\";\nq = group q by 'carrier';\nq =
14 foreach q generate 'carrier' as 'carrier', sum('miles')/{{
15 value(results(all_miles, 'sum_miles')) }} * 100 as 'sum_miles',
16 count()/{{ value(results(all_miles, 'count')) }} * 100 as 'count';\nq =
17 order q by 'sum_miles' desc;",
18 "groups": ["carrier"],
19 "order": [
20 [
21 ["sum", "miles"], {
22 "ascending": false
23 }
24 ]
25 ],
26 "measures": [
27 [
28 "sum", "miles", null, {
29 "display": "% of total miles"
30 }
31 ], [
32 "count", "*", null, {
33 "display": "% of total flights"
34 }
35 ]
36 ]
37 }
38 }