データ移行中のトリガーハンドラーのベストプラクティス
トリガーハンドラーは、データの健全性を維持するために重要です。ただし、データ移行中にすべてのトリガーハンドラーを有効にしておくと、パフォーマンスが低下したり、ガバナ制限に達したりする可能性があります。トリガーハンドラーのドキュメントを確認し、各トリガーハンドラーの目的を理解してください。
必要なエディション
| 使用可能なインターフェース: Lightning Experience |
| 使用可能なエディション: Life Sciences Cloud、Life Sciences Cloud for Customer Engagementアドオン ライセンス、Life Sciences Customer Engagement管理パッケージが付属するEnterprise EditionおよびUnlimited Edition。 |
Life Sciences Cloud トリガー ハンドラのバイパス
データ移行中に Life Sciences Cloud トリガー ハンドラをバイパスする方法は 2 つあります。
- Salesforce インテグレーションライセンス種別のユーザーを作成します。ユーザーの [権限セットライセンスの割り当て] で [割り当ての編集] をクリックし、すべてのトリガーハンドラーをスキップする「ライフサイエンストリガーハンドラーをスキップ」権限を含む Salesforce API インテグレーション権限セットライセンスを付与します。これにより、インテグレーションユーザーのトリガーハンドラーのみがスキップされます。他のすべてのユーザーの場合、これらのハンドラーは引き続き実行されます。これにより、データ読み込みのパフォーマンスが大幅に向上する可能性があります。ただし、データ移行中にデータの健全性を確保する責任は顧客に課されます。この方法は、有効なユーザーが存在する環境に最も適しています。
- Life Sciences Commercial アプリケーションの管理コンソールからハンドラーを選択的に無効化します。これにより、システムのすべてのユーザーのトリガーハンドラーが無効になります。この方法は、有効なユーザーがまだいない環境に最適です。
データの読み込み後に実行できる同等のジョブがあるトリガーハンドラーを次に示します。これらのハンドラーは、データの読み込み中に管理コンソールから無効化できます。
| オブジェクト | ハンドラー名 | 説明 | ジョブ |
|---|---|---|---|
| 取引先 | NewAccountSampleLimitInitHandlerforHCO | データの読み込み中は、このトリガーハンドラーを無効にします。ジョブ実行後データが読み込まれ、サンプル制限の設定が完了しました。 | 管理コンソール -> サンプル制限タイル -> サンプル制限ジョブ -> サンプル制限テンプレートの取引先への割り当て |
| 取引先 | NewAccountSampleLimitInitHandler | データの読み込み中は、このトリガーハンドラーを無効にします。ジョブ実行後データが読み込まれ、サンプル制限の設定が完了しました。 | 管理コンソール -> サンプル制限タイル -> サンプル制限ジョブ -> サンプル制限テンプレートの取引先への割り当て |
| ContactPointEmail | ContactPointEmailPopulateHandler | 連絡先メールレコードが作成、変更、削除、復元されるたびに、ヘルスケア提供者レコードを更新して、関連付けられたメールアドレスの正確なリストを維持します。これにより、ヘルスケア提供者レコードの EmailIds 項目に現在の関連メールアドレスが反映され、不要な処理が回避されます。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| ContactPointPhone | ContactPointPhoneHandler | 連絡先電話レコードが作成、変更、削除、復元されるたびに、関連付けられた電話番号の正確なリストを維持するためにヘルスケア提供者レコードを更新します。これにより、ヘルスケア提供者レコードの PhoneNumbers 項目に現在の関連電話番号が反映され、重複処理が回避されます。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| ContactPointSocial | ContactPointSocialPopulateHandler | 連絡先ソーシャルレコードが作成、変更、削除、復元されるたびに、ヘルスケア提供者レコードを更新して、関連付けられたソーシャルメディア処理の正確なリストを維持します。これにより、ヘルスケア提供者レコードの SocialIdentifiers 項目に現在の関連するソーシャルハンドルが反映され、不要な実行が回避されます。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| HealthcareProvider | HealthcareProviderHandler | 作成、復元、または変更後のヘルスケア提供者レコードの更新を管理します。このトリガーは、関連するメールアドレス、電話番号、ソーシャル識別子、専門分野、NPI をそれぞれの関連レコードから取得して更新し、セルフコールによる更新も防止します。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| HealthcareProviderNpi | HealthcareProviderNpiHandler | ヘルスケア提供者 NPI レコードが作成、変更、削除、復元されるたびに、ヘルスケア提供者レコードを更新して正しい国民提供者識別子 (NPI) を維持します。これにより、ヘルスケア提供者レコードの NationalProviderIdentifier 項目に現在関連付けられている NPI が反映され、不要な実行が回避されます。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| HealthcareProviderSpecialty | HealthcareProviderSpecialityHandler | ヘルスケア提供者の専門分野レコードが作成、変更、削除、復元されるたびに、関連付けられた専門分野種別の正確なリストを維持するためにヘルスケア提供者レコードを更新します。これにより、ヘルスケア提供者レコードの [専門分野] 項目に現在の関連専門分野が反映され、重複する処理が回避されます。 | 管理コンソール --> [作成前の検索] --> [一般設定] --> [ジョブの作成前の検索] |
| ProviderVisitChangedEvent | VisitChangedEventShareHandler | 取引先と共有されているユーザーとの訪問共有を作成します。 | 管理コンソール -> テリトリー -> 共有管理ジョブの訪問 |
| ProviderVisitChangedEvent | PVChangedEventUpdateAccountTerrInfo | 提供者訪問の変更イベントを処理し、提供者取引先テリトリー情報レコードの提供者訪問関連項目を更新します。 | 管理コンソール -> [訪問管理] -> [訪問ジョブ] -> [プロバイダー取引先テリトリー情報ジョブ] |
履歴データの読み込みを目的として、これらのトリガーハンドラーを無効にすることを検討してください。
| オブジェクト | ハンドラー名 | 説明 |
|---|---|---|
| ALL | StagePathPermissionsHandler | ライフサイエンスワークフローで定義された権限を適用します。ワークフローパスの現在のフェーズでユーザーがレコードを作成、編集、削除したり、関連ファイルを操作したりできるかどうかを検証します。そのワークフローフェーズでアクションを実行する権限がユーザーにない場合、エラーメッセージを表示します。 |
| ContentDocument | ContentDocumentLockHandler | 申請済み訪問または関連エンティティにリンクされたドキュメントへの削除操作を禁止します。 |
| ContentDocumentLink | ContentDocumentLinkLockHandler | 申請済み訪問または関連エンティティのドキュメントリンクへの挿入/削除操作を禁止します。 |
| 経費 | ExpenseLockHandler | 経費がロックされている場合、経費に対する挿入/更新/削除操作を実行できないようにします。 |
| ExpenseParticipant | ExpenseParticipantLockHandler | ExpenseParticipant/Allocations がロックされている場合、ExpenseParticipant/Allocations に対する挿入/更新/削除操作を禁止します。 |
| LifeScienceEmail | EmailQueueImmediateHandler | 一括処理ジョブからではなく、すぐに送信されるメールを処理します。 |
| ProductDisbursement | ProductDisbursement2d0Handler | 支払が行われると、対応する在庫操作レコードが作成されます。 |
| ProductDisbursement | ProductDisbursementSubmitLockHandler | 関連する訪問レコードがロック状態の場合 (訪問が署名または送信された場合)、商品支払レコードが変更されないようにします。 |
| ProviderVisit | PVUpdateChildFieldsHandler | 子提供者訪問レコードを親提供者訪問レコードと同期することで、グループ訪問のデータの一貫性を維持します。親訪問が変更されると、主要な項目 (訪問予定開始時刻、訪問予定終了時刻、チャネル) が自動的に更新されます。 |
| ProviderVisit | RemoteSessionInvitationPVHandler | ビデオ通話、メール通知、提供者訪問レコードのセッションキーを作成して、リモートセッション招待を管理します。 |
| ProviderVisit | PVLockHandler | データの整合性を維持するために、訪問の状況と署名の状態に基づいて提供者の訪問データを編集できないようにします。 |
| ProviderVisitDtlProductMsg | ProviderVisitDtlProductMsgLockHandler | 訪問が送信または署名されたときに ProviderVisitDtlProductMsg レコードをロックします。 |
| ProviderVisitMarketingItem | ProviderVisitMarketingItemLockHandler | 訪問が送信または署名されたときに ProviderVisitMarketingItem レコードをロックします。 |
| ProviderVisitProdDetailing | ProviderVisitProdDtlLockHandler | 訪問が送信または署名されたときに ProviderVisitProdDetailing レコードをロックします。 |
| ProviderVisitProdDiscussion | ProviderVisitProdDiscussionLockHandler | 訪問が申請または署名されたときに ProviderVisitProdDiscussion レコードをロックします。 |
| ProviderVisitRqstSample | ProviderVisitRqstSampleLockHandler | Visit が送信または署名されたときに ProviderVisitRqstSample レコードをロックします。 |
| TerritoryUserDowntime | TUDBHValidationHandler | 開始時刻と終了時刻が組織の営業時間外であるテリトリーレコードの作成を防止します。 |
| TerritoryUserDowntime | TUDVisitValidationHandler | 訪問中にテリトリー外の休暇が作成されないようにします。 |
| TerritoryUserDowntime | TUDHolidayValidationHandler | 休日に休暇テリトリーレコードが作成されないようにします。 |
| TerritoryUserDowntime | TUDOverlapHandler | 重複するテリトリー外レコードの作成を防止します。 |
| TerritoryUserDowntime | TUDEventValidationHandler | 一般的な行動中にテリトリーを離れる時間が作成されないようにします。 |
| 訪問 | VisitLockHandler | データの整合性を維持するために、状況と署名の状態に基づいて訪問データを編集できないようにします。 |
| 訪問 | VisitTimeOffValidationHandler | 休暇テリトリーと競合する訪問のスケジュールを回避し、スケジュールの効率と正確な訪問レポートをサポートします。 |
| 訪問 | VisitLifeScienceAccountListLinkHandler | ルーチンを適用して作成された訪問で [予定開始時刻] が変更された場合、提供者訪問レコードの [ライフサイエンス取引先リスト] 項目をクリアします。 |
| 訪問 | VisitHolidayValidationHandler | 休日や営業時間外に訪問をスケジュールして、会社のポリシーへのコンプライアンスを維持しないようにします。 |
| 訪問 | VisitPopulateEndTimeHandler | 管理コンソールの [[Set blank date/time in Planned Start Time (予定開始時刻に空白の日付/時間を設定)] 訪問管理設定で定義されたデフォルトの期間を追加して、訪問の計画終了時刻を計算して設定します。 |
| 訪問 | FutureVisitLimitValidationHandler | 管理コンソールの [訪問管理] の [今後の訪問制限 (日数)] 設定で指定された制限を超えて訪問をスケジュールできないようにします。 |
| 訪問 | VisitUpdateChildFieldsHandler | 子訪問レコードを親訪問と同期することで、グループ訪問のデータの一貫性を維持します。親訪問が変更されると、主要な項目 (訪問予定開始時刻、訪問予定終了時刻、チャネル) が自動的に更新されます。 |
| 訪問 | VisitConflictValidationHandler | 同じ日に同じユーザーで同じ取引先の別の訪問をスケジュールして二重予約を回避します。 |
| 訪問 | VisitDelayReasonHandler | ユーザーが訪問日時を変更し、その日付が送信遅延しきい値を超えなくなった場合、以前に入力した遅延の理由をクリアします。 |
| 訪問 | VisitCascadeDeleteHandler | 親グループ訪問が削除されたときに被招集者訪問が自動的に削除され、データの整合性が維持されます。 |
| 訪問 | VisitSurveyInviteCascadeDeleteHandler | 訪問が削除されたときに訪問にリンクされているアンケートへの招待を削除し、データの整合性を維持するために訪問が送信される場合は削除しないようにします。 |
| 訪問 | RemoteSessionInvitationVisitHandler | ビデオ通話、メール通知、訪問レコードのセッションキーを作成して、リモートセッションへの招待を管理します。 |
| 訪問 | VisitMyBestTimeValidationHandler | 取引先の住所とユーザーのテリトリーで定義された最適な時間外に訪問をスケジュールできないようにすることで、スケジュールの効率を高め、取引先の対応可能状況に合わせます。 |
| 訪問者 | VisitorLockHandler | 訪問者がロックされている場合、訪問者に対する挿入/更新/削除操作を禁止します。 |
この記事で問題は解決されましたか?
ご意見をお待ちしております。
