ログインユーザーごとに、表示するデータを制御したいと思ったことはありませんか。例えば「関西」に所属するユーザーには関西のデータのみを表示させる、といったケースです。
部門別・拠点別に同じボードを使い回したい場合、この設定を行うことで、ユーザーごとに適切なデータのみを表示できます。ユーザーごとにボードを分けるのではなく、「1つのボードを使い回しながら表示範囲だけを制御する」ことが、運用設計の観点では重要になります。

Dr.Sum認証でMotionBoardをお使いの場合は、Dr.Sumの環境変数を利用してデータ制御が可能です。
一方、ローカル認証など環境変数を直接利用できない場合でも、ログインIDと表示対象を紐づけたマスタデータを活用することで、同様の制御を実現できます。
本記事では、環境変数を利用できないケースでも応用可能な、汎用的な設定方法をご紹介します。
今回はサンプルとして、ログインIDとブロック名、ブロックコードを紐づけた「ログインマスタ」を準備しました。CSVファイルとして準備し、アップロードして使用します。
| user1 | 関西 | 01 |
| user2 | 関東 | 02 |
| user3 | 中部 | 03 |
| user4 | 九州 | 04 |
| user5 | 北海道 | 05 |
| user6 | 東北 | 06 |
Dr.Sumの環境変数については以下の記事でご紹介しております。
それでは、実際に設定手順を確認していきます。まずは、ログインユーザーごとの表示対象を取得するためのデータソースを作成します。
準備:ユーザーIDを使った検索用データソースの作成
「ブロック名検索用DS」の作成
まず、ログインマスタを参照したデータソース「ブロック名検索用DS」を作成します。
- 画面右上の[ボード管理]をクリックし、[リソース管理]をクリック
- 画面右上の[新規作成]をクリック
※今回は先ほど準備したCSVファイル「ログインマスタ」をアップロードし、データソースとします。

「ブロック名検索用DS」検索条件の設定
次に、「ブロック名検索用DS」の検索条件を設定します。
行・列・集計項目は、項目を配置する必要はありません。[その他]をクリックし、「データソースフィルター」をクリックします。

[フィルター項目]に「ログインID」を配置し、以下のように設定します。
- [比較条件]から「等しい」を選択
- [値の取得元]から「直接入力」を選択
- [値]の[<>]をクリックし、[変数選択]画面を表示
- 検索ボックスに「user」を入力し、[システム変数]から「user_id」を選択

※今回利用したシステム変数「user_id」については、以下マニュアルをご参照ください。
実装:データ制御したいアイテムの設定
最後に、データ制御を行いたいアイテム(チャートや明細表)のデータソースに対して、検索条件を設定しましょう。
データ制御を行いたいアイテムの[データソース定義を編集]を開き、[その他]から「データソースフィルター」をクリックします。
[フィルター項目]に「ブロック名」を配置し、以下のように設定します。
- [比較条件]から「いずれかに等しい」を選択
- [値の取得元]から「他データソース定義項目の値」を選択
- [データソース定義]の[選択]から「専用/ブロック名検索用DS」を選択
- 「他のデータソース定義に設定されたデータソースフィルターを実行した結果を利用する」にチェックを入れる
- [項目名]で「ブロック名」を指定

この設定により、ログイン中のユーザーIDに紐づくブロック名だけを検索用データソースから取得できます。
まとめ

上記の設定を行うことで、ログインユーザーによって見せるデータを制御したボード運用が可能になります。
ボードをユーザーごとに分けるのではなく、共通ボードを前提に表示範囲のみを制御することで、管理コストの削減やメンテナンス性の向上にもつながります。またユーザー数が増えた場合でも、マスタデータを更新するだけで対応できるため、拡張性の高い設計といえます。
同じボードを使い回しつつ、部門別・拠点別に見せる範囲だけを変えたいといったケースで、ぜひ活用してみてください。