Category Archives: Apex

Apexコールアウトのテストクラスの書き方

概要 実際のApexCalloutが外部のエンドポイントに対してHTTP Requestを送信するのに対して、ApexCalloutのTestでは疑似的なエンドポイントをMock Classのインスタンス化によって作成し、そこに対してHTTP Requestを送信するというかたちを取ります。 以下、コードサンプルです。… Read More »

Apexでテスト実行時だけコードをスキップor実行する方法

結論 Apexテスト実行時だけコードを実行したい場合↓ Apexテスト実行時だけコードをスキップしたい場合↓ テスト時だけコード実行のユースケース ・catch文のテスト&カバレッジ確保のためにカスタムでエラーを投げたい場合 ・テスト時にのみ求められる謎のValidationなどをカバーするためのデータの準備が必要な場合… Read More »

Apexでのレコード共有について(初心者向け)

Apexでのレコード共有とはどういうものか? 例えば、ユーザAに特定の取引先レコードBへの参照権限を付与したい場合、ユーザと取引先をそれぞれ参照するAccountShareレコードをInsertすることでユーザAに取引先Bの参照権限を付与することができる。 いつ使うのか? OWD・ロール・共有ルールといった設定ベースでのアクセス権付与では対応しきれないとき。 例えば、レコードを共有したいユーザが共有元レコードの親の親である場合、共有ルールでは対応できないため、Apexによる共有レコードの自動作成がベストプラクティスとなる。 あるいはまた例えば、従業員1万人超えのエンタープライズ企業で毎日のように自社社員・契約社員などの入社やチーム異動がある場合、ユーザの作成・ロールの作成・公開グループの作成・ロールの変更・公開グループの変更・ロールに対する共有ルールの作成・公開グループに対する共有ルールの作成などを管理者が毎回手動で行うのは現実的ではないし、ささいな操作ミスで重大なインシデントに発展しかねない。… Read More »

権限セットを自動で割り当てるロジック

結論 ・権限セットのユーザへの自動割り当ては「ユーザ(User)」と「権限セット(PermissionSet)」の中間オブジェクトである「権限セット割り当て(PermissionSetAssignment)」のレコードを作成することで可能。 ・PermissionSetAssignmentレコードInsertのロジックはApexまたはFlowで作成可能 ・基本的にApexでの作成はアンチパターン(Flowでの作成が推奨) 本記事で紹介する事例 ・「特定のプロファイルのユーザを作成した際」or「ユーザのプロファイルを特定のものに変更した際」に当該ユーザに権限セットを自動で割り当てるロジックを作成する… Read More »

Experience Cloud(コミュニティ)のメンテナンスモードについて

前書き Experience Cloud(コミュニティ)のメンテナンス時に、ログイン画面ではなくメンテナンス画面が表示されるようにする方法についてご紹介しますノ 設定手順1(Salesforce標準のメンテナンス画面) ①対象サイトのワークスペースにおいて、「管理」>「ログイン&登録」を順にクリック ②「ログインページ設定」までスクロールし、ログインページ種別を「Visualforceページ」に変更した上で”InMaintenance”を選択… Read More »