行ごとに複数のメールアドレスでフィルタする

メールアドレスによるフィルタは、ログインしている閲覧者のアドレスと、有効なメールアドレスを含むデータソースのフィールドを比較することによって行われます。つまり、閲覧者のメールアドレスが、データの各行にあるアドレスに一致するかどうかが確認されます。

次のようなデータがあるとします。

メール データ
alan@example.com abc
mary@example.com cde
alan@example.com efg
mary@example.com ghi

メールアドレスでデータをフィルタしている場合、ユーザー alan@example.com がフィルタされたレポートを閲覧すると、abcefg のデータのみが表示されます。別のユーザー mary@example.com が同じレポートを表示すると、cdeghi のデータが表示されます。

このアプローチは、閲覧者とデータが 1 対 1 の関係にある場合に有効です。では、ユーザー manager@example.com にもデータを表示したい場合はどうすればよいでしょうか。つまり、複数のデータ行を、複数のユーザーに表示したい場合です(多対多の関係)。

メールアドレスによるフィルタは、1 行に含まれるメールアドレスが 1 件だけの場合にのみ機能します。そのため、単純にメールアドレスのフィールドに複数のメールアドレスを挿入することはできません。たとえば、次のように [メールアドレス] フィールドにメールアドレスのリストを指定しても、機能しません。

メール データ
alan@example.com, manager@example.com, vp@example.com, bigwig@customer.com abc

解決策: データの統合を使用する

共通のフィールドを結合キーとして使用してメールアドレスのテーブルとデータを結合することによって、メールアドレスとデータの間に多対多の関係を作ることができます。

果物店の例

あなたは、果物を生産する会社を経営しており、営業担当者がそれぞれの担当している複数の果物店での営業成績を自身で確認できるようにしたいと考えています。各営業担当者は複数の店舗を担当でき、1 店舗に複数の担当者がいる場合もあります。営業担当者が各自のデータだけを閲覧できるようフィルタするには、次の方法が使用できます。

ステップ 1: アクセス制御リストのテーブルを作成する

このステップでは、アクセス権を与える営業担当者のメールアドレスと、データ統合の結合キーとして使用するデータ フィールド(果物店の名前)を対応させた、アクセス制御リスト(ACL)のテーブルを作成します。

営業担当者のメールアドレス 結合キー
salesrep1@example.com 果物店 A
salesrep2@example.com 果物店 A
salesrep1@example.com 果物店 B

salesrep2@example.com

果物店 C

アクセス制御リスト(ACL)のテーブル

ユーザー salesrep1@example.com は果物店 A と果物店 B のデータを表示でき、ユーザー salesrep2@example.com は果物店 A と果物店 C のデータを表示できます。

ステップ 2: データテーブルを作成する

データテーブルは、営業担当者による各果物店への販売数を記録したものです。

果物店 フルーツ セールス
果物店 A Apple 50
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A Pear 93
果物店 B Apple 98
果物店 B バナナ 86
果物店 B オレンジ 7
果物店 B 洋ナシ 85
果物店 C Apple 21
果物店 C バナナ 61
果物店 C オレンジ 3
果物店 C 洋ナシ 78

データ表

ステップ 3: ACL テーブルにメールフィルタを適用する

ACL テーブルにメールフィルタを適用する手順は次のとおりです。

  1. ACL テーブルのデータソースを編集します。
  2. [メールアドレスでフィルタ] をクリックします。
  3. フィルタに [営業担当者のメールアドレス] フィールドを選択します。

ステップ 4: ACL テーブルとデータテーブルを統合する

最後に、ACL テーブルとデータテーブルを統合します。営業担当者のメールアドレスをデータテーブルに列として効果的に追加するには、データテーブルから始めて ACL テーブルを左結合します。

メールフィルタを適用しないと、両方の営業担当者のレコードがすべて表示されます。一方、メールフィルタを適用して ACL テーブルとデータテーブルを統合すると、レポートを閲覧している営業担当者が誰であるかによってデータがフィルタされます。各営業担当者には、レポートは次のように表示されます。

営業担当者 1 の場合:

データ 果物 セールス
果物店 A Apple 50
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A 洋ナシ 93
果物店 B Apple 98
果物店 B バナナ 86
果物店 B オレンジ 7
果物店 B 洋ナシ 85

営業担当者 2 の場合:

データ 果物 セールス
果物店 A バナナ 26
果物店 A オレンジ 20
果物店 A Apple 50
果物店 A 洋ナシ 93
果物店 C バナナ 61
果物店 C オレンジ 3
果物店 C Apple 21
果物店 C 洋ナシ 78