コードを作成せずにセッションベースの権限セットを有効化
学習の目的
一緒にトレイルを進みましょう
エキスパートと一緒にこの手順を進めますか? 次の動画をご覧ください。これは「Trail Together」(一緒にトレイル) シリーズの一部です。
(巻き戻して最初から見直したい場合、このクリップは 11:24 分から開始されます。)
セッションベースの権限セットの有効化オプション
セッションベースの権限セットを作成しました。この権限セットを使用できるようにしましょう。そのためには、権限セットのセッションを有効化する必要があります。わざわざ API を使用してコードを作成する道を選ぶと言うのであれば、止めはしません。Soap API の PermissionSet オブジェクトには、HasActivationRequired という項目があります。この Boolean 項目は、権限セットにアクティブセッションを関連付ける必要があるか (true) または必要がないか (false) を指定します。SessionPermSetActivation オブジェクトに、有効化を行うセッション ID と権限セットを組み合わせたレコードを挿入します。
コードの作成方法をご存じなくても、問題ありません。Salesforce は、便利な宣言型ツールである「フロー」を提供しています。もうご利用された経験があるかも知れませんね。フローを使用することで、コードの作成方法を知らなくても、スムーズにセッションを有効化できます。
使用開始
開始する前に、フローに慣れておくと役に立ちます。フローに慣れていなくても問題ありません。今からシンプルなフローを作成します。このフローはわずか 1 ステップのみで機能します。ご推察の通り、Trailhead では詳しい説明も用意しており、お読み頂くことをお勧めします。「Flow Builder を使用したフローの作成」トレイルを参照してください。ただし、続行するにはフローへのアクセス権限が必要です。さっそく権限を調べましょう。
- 自分のプロファイルを開きます。[設定] で [ユーザー] を選択し、自分のプロファイルを選択します。おそらくはシステム管理者プロファイルを使用していると思われます。
- 「フローの管理」を探して、選択されていることを確認します。
では、セッションベースの権限セットのフローに戻りましょう。
- [設定] で、[クイック検索] ボックスに「フロー」と入力して、[フロー] を選択し、[新規フロー] をクリックします。
- [画面フロー] を選択して、[作成] をクリックします。
- ドロップダウンリストで、[自動レイアウト] を [自由形式] に変更します。
- ツールボックスの [要素] タブから、[アクション] をキャンバスにドラッグします。
- [すべてのアクションを検索...] で、「有効化」と入力を開始し、[セッションベースの権限セットを有効化] を選択します。
- [表示ラベル] に、「Activate Employment Contracts Access」(雇用契約アクセスを有効化) を使用します。[API 参照名] はデフォルトで「Activate_Employment_Contracts_Access」になります。
- [権限セット名] の [入力値を設定] で、「Employment_Contracts_Access」と入力します。(この値は権限セットの API 参照名です)。
- [完了] をクリックします。
- [開始] の下部にあるコネクタノードを [アクション] にドラッグします。
- フローを「Activate Contracts Access」(雇用契約アクセスを有効化) という名前の画面フローとして保存します。
フローは次のようになります。
フローの作成は簡単だったでしょう? あまりにも簡単なため、フローの経験があるユーザーなら「1 ステップフローより高度なものができるのでは?」と考えると思います。はい、できます。ですが、今はセッションベースの権限セットの使い方の学習ですので、先に進みましょう。[実行] をクリックして、Flow Builder からフローを実行します。フローを実行すると、権限セットが有効化されます。ただし、[実行] をクリックするとエラー画面が表示されます。おっと。すぐにメールを確認してください。
何を? 「メールを確認」ですって?
そうです。その理由は、Salesforce で発生したエラーを説明するメッセージがメールで届くからです。どうやら、Employment Contracts Access (雇用契約アクセス) 権限セットには誰も割り当てられていないことが原因のようです。フローでの作業で問題が発生した場合は、エラーに関するメールが届いていないかを確認してください。今は、権限セット、ユーザー割り当て、そしてフローという 3 つの異なるトピックを扱っていることを忘れないようにしてください。メールに記載されている詳細情報により、すばやくトラブルシューティングを行うことができます。たとえば、存在しない権限セット名をフローで参照したり、フローに論理的な問題があったり、あるいはフローで参照されている権限セットをどのユーザーにも割り当てていなかったりする場合には、エラーが発生します。そして、ユーザーが割り当てられていないことについての詳細が含まれる次のようなメールが届きます。
エラーが発生しました: 権限セットを有効にする場合は、事前にユーザーに割り当てる必要があります。
以前に、このフローは作成している途中であるため、警告は無視しても構わないとお伝えしたことを思い出してください。同じように、このエラーも無視して構いません。これから権限セットをユーザーに割り当てますが、そのユーザーはまだ組織には存在しません。そのユーザーを次に作成します。通常は、最初にユーザーを権限セットに割り当てます。ですが、新しい従業員を権限セットに割り当てることを忘れたとしましょう。この従業員がフローを実行しようとしたらどうなるでしょう? もうおわかりですね。
一部のエラーは簡単に解決できるということを覚えておきましょう。次はフローを有効にします。Flow Builder 戻り、[有効化] をクリックします。権限セットにユーザーを割り当てずにフローを有効化しても実害はありません。ただし、権限セットに誰かを割り当てるまで、フローは必要な操作を実行できません。
- 契約オブジェクトに対しては参照のみ (編集不可) のアクセス権で、ユーザーをプロファイルに割り当てます。このユーザーはフローを実行する必要があります。たとえば、最小アクセス - Salesforce プロファイルのコピーをユーザーに割り当て、契約オブジェクトへの参照アクセス権を付与して、「フローの実行」権限を有効にします。
- Employment Contracts Access (雇用契約アクセス) 権限セットをユーザーに割り当てます。
![[新規] ボタンが表示されていない契約リストビュー。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/session_based_perms/session_based_activate/images/ja-JP/71def125b2e4b755c7a1bda11f987d45_no-create.jpg)
現在のユーザーとしてログインしたまま、[設定] から [フロー] を選択し、「Activate Contracts Access (雇用契約アクセスを有効化)」フローを実行します。契約オブジェクトに再びアクセスすると、[新規] ボタンが表示されていて、契約を作成できるようになっています。
![[新規] ボタンが表示されている契約リストビュー。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/session_based_perms/session_based_activate/images/ja-JP/c15159f42a63c5225ef90b21a17a0097_create.jpg)