Skip to main content

コードを作成せずにセッションベースの権限セットを有効化

学習の目的

この単元を完了すると、次のことができるようになります。

  • セッションベースの権限セットを有効化する方法を挙げる。
  • 宣言型ツールを使用してセッションベースの権限セットを有効化する理由を説明する。
  • コードを作成せずにセッションベースの権限セットを有効化する。

一緒にトレイルを進みましょう

エキスパートの説明を見ながらこのステップを実行したい場合は、次の動画をご覧ください。これは「Trail Together」(一緒にトレイル) シリーズの一部です。

(巻き戻して最初から見直したい場合、このクリップは 11:24 分から開始されます。)

アクセシビリティ

この単元には、スクリーンリーダーユーザー向けの追加の説明が用意されています。この単元のスクリーンリーダーバージョンを利用する場合は、以下のリンクをクリックしてください。

Trailhead スクリーンリーダーの説明を開く

セッションベースの権限セットの有効化オプション

セッションベースの権限セットを作成しました。この権限セットを使用できるようにしましょう。そのためには、権限セットのセッションを有効化する必要があります。わざわざ API を使用してコードを作成する道を選ぶと言うのであれば、止めはしません。Soap API の PermissionSet オブジェクトには、HasActivationRequired という項目があります。この Boolean 項目は、権限セットにアクティブセッションを関連付ける必要があるか (true) または必要がないか (false) を指定します。SessionPermSetActivation オブジェクトに、有効化を行うセッション ID と権限セットを組み合わせたレコードを挿入します。

コードの作成方法をご存じなくても、問題ありません。Salesforce は、便利な宣言型ツールである「Flow Builder」を提供しています。もうご利用された経験があるかも知れませんね。フローを使用することで、コードの作成方法を知らなくても、スムーズにセッションを有効化できます。

使用開始

開始する前に、Flow Builder に慣れておくと役に立ちます。フローに慣れていなくても問題ありません。今からシンプルなフローを作成します。このフローはわずか 1 ステップのみで機能します。ご推察の通り、Trailhead では詳しい説明も用意しており、お読み頂くことをお勧めします。「Flow Builder を使用したフローの作成」トレイルを参照してください。ただし、続行するにはフローへのアクセス権限が必要です。さっそく権限を調べましょう。

  1. 自分のプロファイルを開きます。[Setup (設定)] で [Users (ユーザー)] を選択し、自分のプロファイルを選択します。おそらくはシステム管理者プロファイルを使用していると思われます。
  2. 「フローの管理」を探して、選択されていることを確認します。

後ほどセッションベースの権限セットをテストするのですが、その際、別のユーザーとしてログインすることになります。今のうちに Salesforce システム管理者が別のユーザーとしてログインできるようにしておきましょう。

  1. [Setup (設定)] で、[Login Access Policies (ログインアクセスポリシー)] に移動します。
  2. [Administrators Can Log in as Any User (管理者は任意のユーザーでログインできる)] を有効にします。
  3. [Save (保存)] をクリックします。

では、セッションベースの権限セットのフローに戻りましょう。

  1. [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに Flows (フロー) と入力し、[Flows (フロー)] を選択して [New Flow (新規フロー)] をクリックします。
  2. [Start from Scratch (最初から開始)] が選択されていることを確認し、[Next (次へ)] をクリックします。
  3. [画面フロー] を選択して、[作成] をクリックします。
  4. ドロップダウンリストで、[Auto-Layout (自動レイアウト)][Freeform (自由形式)] に変更します。
  5. ツールボックスの [要素] タブから、[アクション] をキャンバスにドラッグします。
  6. [Search All actions... (すべてのアクションを検索...)] で、Activate (有効化) と入力を開始し、[Activate Session-Based Permission Set (セッションベースの権限セットを有効化)] を選択します。
  7. [Label (表示ラベル)] に、Activate Employment Contracts Access (雇用契約アクセスを有効化) と入力します。[API 参照名] はデフォルトで「Activate_Employment_Contracts_Access」になります。
  8. [Permission Set Name (権限セット名)] の [Set Input Values (入力値を設定)] で、Employment_Contracts_Access と入力します。(この値は権限セットの API 参照名です)。
  9. [Done (完了)] をクリックします。
  10. [開始] の下部にあるコネクタノードを [アクション] にドラッグします。
  11. フローを [Activate Contracts Access as a Screen Flow (契約アクセスを画面フローとして有効化)] という名前で保存します。
メモ

アクションがどこにも接続されていないというメッセージが表示される場合があります。このメッセージは、今のところは無視しても構いません。

フローは次のようになります。

Flow Builder 画面。セッションベースの権限セットを有効にするアクションが 1 つ示されています。

フローの作成は簡単だったでしょう? あまりにも簡単なため、フローの経験があるユーザーなら「1 ステップフローより高度なものができるのでは?」と考えると思います。はい、できます。ですが、今はセッションベースの権限セットの使い方の学習ですので、先に進みましょう。[実行] をクリックして、Flow Builder からフローを実行します。フローを実行すると、権限セットが有効化されます。ただし、[実行] をクリックするとエラー画面が表示されます。おっと。すぐにメールを確認してください。

何を? 「メールを確認」ですって?

そうです。その理由は、Salesforce で発生したエラーを説明するメッセージがメールで届くからです。どうやら、Employment Contracts Access (雇用契約アクセス) 権限セットには誰も割り当てられていないことが原因のようです。フローでの作業で問題が発生した場合は、エラーに関するメールが届いていないかを確認してください。今は、権限セット、ユーザー割り当て、そしてフローという 3 つの異なるトピックを扱っていることを忘れないようにしてください。メールに記載されている詳細情報により、すばやくトラブルシューティングを行うことができます。たとえば、存在しない権限セット名をフローで参照したり、フローに論理的な問題があったり、あるいはフローで参照されている権限セットをどのユーザーにも割り当てていなかったりする場合には、エラーが発生します。そして、ユーザーが割り当てられていないことについての詳細が含まれる次のようなメールが届きます。

エラーが発生しました: 権限セットを有効にする場合は、事前にユーザーに割り当てる必要があります。

以前に、このフローは作成している途中であるため、警告は無視しても構わないとお伝えしたことを思い出してください。同じように、このエラーも無視して構いません。(次に権限セットをユーザーに割り当てます。)通常は、最初にユーザーを権限セットに割り当てます。ですが、新しい従業員を権限セットに割り当てることを忘れたとしましょう。この従業員がフローを実行しようとしたらどうなるでしょう? もうおわかりですね。

一部のエラーは簡単に解決できるということを覚えておきましょう。次はフローを有効にします。Flow Builder 戻り、[有効化] をクリックします。権限セットにユーザーを割り当てずにフローを有効化しても実害はありません。ただし、権限セットに誰かを割り当てるまで、フローは必要な操作を実行できません。

セッションベースの権限セットが有効になっている場合に、ユーザーが契約を作成および編集できるようにしたいと考えています。このユーザーは採用担当マネージャーであり、契約者の雇用契約にアクセスする必要があります。契約オブジェクトに対しては参照のみ (作成および編集不可) のアクセス権を持つようにします。また、フローを実行できる必要があります。

最初の単元のハンズオン Challenge で作成した Lynda Herman というユーザーがいましたね。このユーザーを使いましょう。先に進む前に、いくつか権限を有効にする必要があります。

  1. [Setup (設定)] で、[Profiles (プロファイル)] に移動します。[Minimum Access - Salesforce Clone (最小アクセス - Salesforce のコピー)] を選択します (このプロファイルは、前の単元で作成して Lynda に割り当てたものです)。[Edit (編集)] をクリックします。
  2. [Administrative Permissions (システム管理者権限)] で、[Lightning Experience User (Lightning Experience ユーザー)] を有効にします。
  3. [General User Permissions (一般ユーザー権限)] で、[Manage Flow (フローを管理)] を有効にします。
  4. [Standard Object Permissions (標準オブジェクト権限)] で、[Contracts (契約)] の [Read (参照)] 権限を有効にします。
  5. [Save (保存)] をクリックします。
  6. [Setup (設定)] で、[Permission Sets (権限セット)] に移動します。
  7. 以前に作成した [Employment Contracts Access (雇用契約アクセス)] 権限セットを Lynda に割り当てます。

次に、Lynda としてサインインして、契約オブジェクトにアクセスします。契約が表示されます。ただし、この時点では [New (新規)] ボタンがないため、新しい契約を作成することはできません。

[New (新規)] ボタンが表示されていない契約リストビュー。

Lynda としてログインしたまま、[Setup (設定)] から [Flows (フロー)] を選択し、「Activate Contracts Access (雇用契約アクセスを有効化)」フローを実行します。契約オブジェクトに再びアクセスすると、[New (新規)] ボタンが表示されていて、契約を作成できるようになっています。

[New (新規)] ボタンが表示されている契約リストビュー。

メモ

[New (新規)] ボタンが表示されない場合は、画面を更新するか、Salesforce Classic に切り替えてから Lightning Experience に戻ります。

現在のセッション中、このユーザーには契約オブジェクトへの「参照」、「作成」、「編集」、「削除」権限と、[契約名]、[契約開始日]、および [契約期間 (月)] への「編集」権が付与されます。ただし、ユーザーが契約を作成または変更したいと思うたびに [設定] からフローを実行するというのは少し不便です。次の単元では、このプロセスをすべてのユーザーにとってもっと簡単にします。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む