Winter'22でリリースされた制限ルール(Restriction Rule)ですが、理解が漠然としておりましたので検証してみました。
また個人的に思う「共有ルール」ではなく「制限ルール」を使用するケースなども紹介します。
制限ルールの設定可能なオブジェクトや設定についてはすでに
記事がありますので、こちらでご確認ください。
共有設定と制限ルールの検証
<検証用に準備した内容>
制限ルールテスト(主)オブジェクト・項目:数値項目「番号」
従レコードの金額を集計する積み上げ集計項目「「従レコードの金額の合計」
・レコード:「番号」に1~15をそれぞれ入力した15件のレコードを作成
・番号「15」のレコードの所有者は「東日本 三朗」
制限ルールテスト(従)・項目:主従関係項目「制限ルールテスト(主)」
数値項目「番号」
通貨項目「金額」
・レコード:主レコード15件分に紐づく「番号」に1~15をそれぞれ入力した225件のレコードを作成※金額項目の値はすべて100円
テストユーザ・東日本 三朗(ロール:東日本)
<結果>
検証結果は下表のようになりました。
❶~❺の番号がある結果は実際にテスト時のキャプチャを下に掲載しています。
こちらの結果で意外だったのが、自分が所有するレコードでも制限ルールの条件と一致しない場合は参照できないことです。
ですので、レコード作成時に制限ルールと一致しない条件になる値では保存ができませんでした。
❶~❸の共有設定
❶設定した制限ルールはこちら。
「東日本ロールのユーザは番号が「10」のレコードだけ参照可能にする」です。
結果は番号が「10」のレコードしか参照できなくなりました。
❷設定した制限ルールはこちら。
「東日本ロールのユーザは番号が「15」のレコードだけ参照可能にする」です。
結果は番号が「15」のレコードしか参照できなくなりました。
主レコードは過去に参照していなかったので、この時点で参照可能な番号「10」以外は空白になっており、見えません。
レコード詳細画面でも空白です。
積み上げ集計項目は参照可能な番号「15」だけではなく、紐づくすべての従レコードの金額を合計したものになっています。
❸こちらは主レコードのみ制限ルールが有効な状態です。従レコードはすべて参照可能になりました。
この時点でもまだ制限がかかっている主レコードを参照していなかったので、参照可能な番号「10」以外は空白になっており、見えません。
❹、❺の共有設定
❹共有ルールで主レコードの番号が「10以下」しか参照できなくなっていますので、番号が「1~10」の主レコードに紐づく番号が「15」の従レコードのみ参照可能になっています。
このテスト時は過去に参照可能な状態だったため、主従関係項目は空白になっていませんが、主レコードの制限ルールで番号が「10」しかアクセス権がありませんので、アクセス権がないと表示されます。
こちらはヘルプの
制限ルールの考慮事項に記載のある事象です。
❺従オブジェクトの制限ルールはありませんが、共有ルールで番号が「10以下」しか参照できなくなっていますので番号が「1~10」の主レコードの従レコードのみ参照可能になっています。
制限ルールの「レコード条件」の設定について
システム管理者が気になりそうな箇所をまとめました。
・リレーションの辿りはひとつ
・数式項目は条件に使用できない
・選択リスト値と複数選択リストも条件に使用できない
→しかし、制限ルールの設定画面の項目の一覧から選択リスト項目は選べます。
が、保存時に「選択リストはサポートしていない」とエラーメッセージが出て保存させてくれません。
やはり、選択リスト項目で条件設定したい場合は、選択リスト値を挿入、変更した際にフラグを立てる項目更新の自動化プロセスの設定での対処が必要のようです。
制限ルールを使用するケース
他にもたくさんあると思いますが、以下のような要件の場合は制限ルールが使えそうだなと思いました。
・親レコードの項目で条件指定したいとき
・レコードの項目と現在のユーザの項目で比較させた条件を設定したいとき
・共有設定が公開の主従関係の従オブジェクトにアクセス制限をかけたいとき
おわり