第110回 自分の作ったレコードのみ表示する

こんにちは。エヌ・ケイ・カスタマイズの池村です。

 コロナ感染者数の増加や桜島の噴火活動活発化など、鹿児島では緊張の走る日々を過ごしていますが皆様いかがお過ごしでしょうか

 今回は、検索結果や関連レコードに自分の作ったレコードのみ表示されるようにするという動作について学習しました。
アンケート入力とかで他の人が作ったレコードを参照できないようにするなどに利用できるかなと思いました。

それでは見ていきましょう

サンプル

8月3日時点のとあるメジャーリーグ球団選手の成績を二つのアカウントで生成しました。

完全アクセス権限のAdmin

考え方

 アカウントに割り当てたアクセス権セットのレコードのカスタムアクセス権を、自分のアカウントで作成したレコードのみアクセス権を持つように設定します。

 アクセス権を持たないレコードは検索やリレーションの対象にならないため、自分の作成したレコードのみ表示されるようになります。自分のアカウントで作成したレコードの判定にはデフォルトフィールドの「作成者」を使用します。

関数・スクリプト実装例

1.ファイルのセキュリティオプションを確認します。

 ・利用者のひとつずつのアカウントが割り当てられていることを確認します。[ファイル]→[管理]→セキュリティを選択します。

 ・自動ログインが設定されている場合は解除します。[ファイル]→[ファイルオプション]で確認します。
[次のアカウントを使用してログイン]のチェックをオフにします。

2.自分の作成したレコードのみ表示するアクセス権セットを作ります。

 ・[セキュリティの管理]の[詳細設定]からアクセス権セットを作成します。
  [データ入力のみ]のアクセス権セットを複製して使います。

 ・複製したアクセス権セットの[レコード]に[カスタムアクセス権]を設定します。

 ・[表示]のアクセス権を[制限…]に設定して、表示できる条件を計算式で指定します。[作成者]フィールドの値と『Get( アカウント名 )』が同じ場合に表示できるように設定します。

作成者 = Get ( アカウント名 )

 ・アカウントのアクセス権セットの割り当てを新しく作成したアクセス権セットに変更します。

3.すべてのレコードを表示するボタンを作成する

 ・レイアウトにボタンを配置してすべてのレコードに当てはまる条件で検索するようにボタン設定します(単一ステップ)。

 ここでは [検索実行] スクリプトステップに[ 検索条件の指定]オプションでデフォルトフィールドの [主キー] に値の入ったレコードを検索するように設定します(主キーは空欄不可なのですべてのレコードが該当する)。

実行

ステータスツールバーから「すべてを表示」をクリックしたとき

 他のアカウントで作成されたレコードのフィールドは<アクセス権がありません>と表示されて値が表示されません。

ikemuraで再ログイン
すべてのレコードを表示するためのスクリプトを実行したとき

 自分が作成したレコードのみが表示されます。

ikemuraが全表示をクリック
検索を行ったとき

 自分が作成したレコードのみが対象レコードとして帰ります。

ikemuraが「野手」で検索
他の人のアカウントでログインしているとき

 検索を行うとログインしているアカウントで作成したレコードのみが対象レコードとして帰ります。

nkc1が野手で検索

いかがでしたでしょうか

トレード期限ということもあってチームを去った選手がすでにデータとしてなかったので少し寂しい気持ちになりましたが、アクセス権のセットによって表示の制御ができることを学習しました。

機会があったらお試しください。最後までご覧いただきありがとうございました。



参考文献:Claris FileMaker 公式トレーニング教材 から、「FileMaker 関数・スクリプトガイド」 等を参考にしています
https://content.claris.com/fmb19_reg-ja