各都道府県に営業所があり、所長、副所長、部長、課長、一般職の役職が在籍している場合以下の要件が求められる場合があります。
- 所長は自分が所属している営業所の全データを参照したい。
- 部長は自分が所属している営業所の、部長以下の役職のデータを参照したい。
- 一般職は自分のデータだけ参照。
このような場合、役職や営業所などで 「階層」 を作成してあげることで、実現が可能です。
サンプルデータ
|社員ID|アカウント|担当拠点|部署|役職|
|:----|----|----|----|----|---:|
|2001|Asan@contoso.onmicrosoft.com|名古屋|営業部・AA課|課長|
|1002|Bsan@contoso.onmicrosoft.com|名古屋|営業部・AA課|部長|
|1003|Csan@contoso.onmicrosoft.com|関東|営業部・BB課|部長|
|2004|Dsan@contoso.onmicrosoft.com|関東|営業部・BB課|課長|
|3005|Esan@contoso.onmicrosoft.com|関東|営業部・BB課|主任|
※ 社員マスタ
日付 | 担当者 | 顧客 | 売上(千) | 拠点 |
---|---|---|---|---|
2019年5月1日 | Csan@contoso.onmicrosoft.com | 〇〇株式会社 | 500 | 関東 |
2019年5月1日 | Asan@contoso.onmicrosoft.com | 株式会社ABC | 250 | 名古屋 |
2019年5月2日 | Bsan@contoso.onmicrosoft.com | グローバル XYZ | 300 | 名古屋 |
2019年5月3日 | Dsan@contoso.onmicrosoft.com | ▼▼商店 | 50 | 関東 |
2019年5月4日 | Bsan@contoso.onmicrosoft.com | Contoso KK | 700 | 名古屋 |
2019年5月5日 | Csan@contoso.onmicrosoft.com | DDD 株式会社 | 400 | 関東 |
2019年5月6日 | Asan@contoso.onmicrosoft.com | 〇〇株式会社 | 300 | 名古屋 |
2019年5月8日 | Csan@contoso.onmicrosoft.com | 株式会社ABC | 200 | 関東 |
2019年5月10日 | Asan@contoso.onmicrosoft.com | グローバル XYZ | 150 | 名古屋 |
2019年5月11日 | Bsan@contoso.onmicrosoft.com | ▼▼商店 | 400 | 名古屋 |
2019年5月11日 | Dsan@contoso.onmicrosoft.com | Contoso KK | 350 | 関東 |
2019年5月12日 | Bsan@contoso.onmicrosoft.com | DDD 株式会社 | 800 | 名古屋 |
2019年5月13日 | Csan@contoso.onmicrosoft.com | ▼▼商店 | 50 | 関東 |
2019年5月15日 | Asan@contoso.onmicrosoft.com | Contoso KK | 500 | 名古屋 |
2019年5月16日 | Esan@contoso.onmicrosoft.com | 〇〇商店 | 200 | 名古屋 |
※ 成績マスタ |
社員マスタの加工
最初の社員マスタのままでは、階層を作成するためのデータが無いため [上司] という列を作成します。
※ 部長が一番上と設定しているので、部長の上司は空白です。
※ 上司は、自分より 1つ上の役職を設定します。
|社員ID|アカウント|担当拠点|部署|役職|上司|
|:----|----|----|----|----|----|---:|
|2001|Asan@contoso.onmicrosoft.com|名古屋|営業部・AA課|課長|1002|
|1002|Bsan@contoso.onmicrosoft.com|名古屋|営業部・AA課|部長||
|1003|Csan@contoso.onmicrosoft.com|関東|営業部・BB課|部長||
|2004|Dsan@contoso.onmicrosoft.com|関東|営業部・BB課|課長|1003|
|3005|Esan@contoso.onmicrosoft.com|関東|営業部・BB課|主任|2004|
# 役職の階層作成
社員マスタに [新しい列] にて、以下の計算式を追加します。
役職階層 = PATH([社員ID],[上司])
主任さんを例にすると、自分の ID が一番後ろに存在する状態です。
部長さんは、一番前且つ、自分のみ。
ロールの計算式
ロールの管理より、名簿に対し、下記の DAX 式を追加します。
PATHCONTAINS(
'名簿1'[役職階層],
LOOKUPVALUE('名簿'[社員ID],'名簿'[アカウント],USERPRINCIPALNAME()))
結果
あとがき
細かい設定については、以下リンク先を見ていただければと思います。
Power BI 勉強帳:行レベルセキュリティ(RLS)