このテキストは、Salesforce の自動翻訳システムを使用して翻訳されました。アンケートに回答して、このコンテンツに関するフィードバックを提供し、次に何を表示するかをお寄せください。
自動化 - データ整合性
適切に設計された容易性 → 自動化 → データ整合性 → データ処理の詳細
| Where to look? 商品領域 | ロケーション | What does good look like? (良いものは?) パターン |
|---|---|
| Data 360 | データ辞書 | ✅ すべてのデータソースとデータレークオブジェクトの項目レベルのデータと優先度設定ロジックが存在する |
| Data 360 | 組織 | ✅ 複合キーは、一意の主キーが存在しない場合に作成するために使用されます。データセットに一意の項目が 1 つもない場合に、数式項目を使用してデータセットの複数の項目を結合する |
| Data 360 | 組織 | ✅ CRM コネクタを使用するデータストリームで隔週のフル更新を活用 増分読み込みに CRM コネクタを使用する場合、フル更新は 2 週間ごとに開始されます。これにより、データの取り込みが増加する可能性がありますが、DML トランザクションをトリガーせず、増分読み込みに含まれないメタデータ (数式項目など) のデータの整合性が保護されます。 |
| Data 360 | 組織 | ✅ 個人 ID は、Data 360 のデータを他のシステムに対応付けるために使用されます。たとえば、Marketing Cloud Engagement 登録者キーを Data 360 の個人 ID に対応付ける必要があります。 |
| Data 360 | 組織 | ✅ 完全修飾キーを使用してデータを正確に解釈します。 複数のデータストリームが 1 つのデータモデルオブジェクト (DMO) にハーモナイズされるときに発生する可能性がある競合を回避するために、キー値が含まれるすべての DLO にキー修飾子項目があり、完全修飾キー (FQK) が組織で有効になっています。 |
| Data 360 | 組織 | ✅ 正規化された照合方法は、使用可能な場合に一致ルールで使用されます。完全正規化された照合では、ソースデータが変換され、末尾のスペース、一貫性のない書式、特殊文字などの一般的な一致の問題が解決されます。テスト用に複数のルールセットを設定し、統合率がビジネスニーズを満たしていないことを確認した場合を除き、あいまい一致を使用する代わりに、この方法を使用可能な項目で活用します。 |
| Einstein | ドキュメント | ✅ AI プロジェクト設計の一環としてデータの有用性が文書化されている AI 応答を改善するために、会社のデータの有用性の定義が文書化および運用されている |
| プラットフォーム | Apex | ✅ 今後の Apex は、コールアウトまたはシステム オブジェクト DML に慎重に使用される |
| プラットフォーム | Apex | ✅ 非同期 Apex 呼び出しでは、キュー可能を使用してトランザクション間で複雑な DML を「チェーニング」 |
| プラットフォーム | Apex | ✅ バッチ Apex は大量のデータ専用です。バッチ Apex は大量のデータの処理に最適です。非同期 Apex は、より多くの作業を実行できるように、同期 Apex よりも制限が高くなっています。フロー制御 (キューのフラッディング)、オーバーヘッド、および 1 日あたりの非同期 Apex 制限の枯渇による影響を回避するために、バッチサイズをできる限り小さくしない |
| プラットフォーム | Apex | ✅ 同期 DML ステートメントまたは Database クラスメソッドはすべて before トリガー実行コンテキストで実行されます。 |
| プラットフォーム | Apex | ✅ Bulk API は、大量のデータを処理する必要がある場合にのみ使用します。少量のデータ処理にネイティブ SOAP および REST API を活用 |
| プラットフォーム | データ辞書 | ✅ データレイクオブジェクトからデータモデルオブジェクトへの項目の対応付けが存在する |
| プラットフォーム | フロー | ✅ ユーザーコンテキストで起動されるすべてのフローは、すべてのシステムコンテキストトランザクションを [一時停止] 要素の後に一貫して配置されるサブフローに抽象化して、新しいトランザクションを作成します。 |
| プラットフォーム | フロー | ✅ すべてのレコードトリガーフローにトリガー順序値が入力されている |
| プラットフォーム | フロー | ✅ 外部システムコールアウトや実行時間の長いプロセスが含まれるフローでは、非同期パスが使用されます。 |
| プラットフォーム | フロー | ✅ Orchestrator で関連データ操作の複雑なシーケンスを作成 (モノリシックフロー内で複数のサブフローを呼び出すのではなく) |
| プラットフォーム | 組織 | ✅ ID 解決調整ルールは、データ辞書の優先度ロジックに従います。 |
適切に設計された容易性 → 自動化 → データ整合性 → エラー処理の詳細
| Where to look? 商品領域 | ロケーション | What does good look like? (良いものは?) パターン |
|---|---|
| Einstein | 組織 | ✅ プロンプトでは、期待される出力を指定します。LLM で期待される種類のコンテンツのみを生成するための直接命令が含まれます。 |
| プラットフォーム | Apex | ✅ カスタム例外を使用して高度なエラーメッセージとロジックを作成 |
| プラットフォーム | Apex | ✅ コードは、すべての DML、SOQL、コールアウト、その他の重要なプロセスステップをtry-catchブロックでラップします。 |
| プラットフォーム | Apex | ✅ データベースクラスのメソッドは、すべてのデータ操作に排他的に使用できます (DML の代わりに)。 |
| プラットフォーム | Apex | ✅ 非同期および一括コンテキストでは、DML の代わりに Database クラスのメソッドが使用される |
| プラットフォーム | Aura | ✅ JavaScript ですべてのデータ操作と重要なプロセスステップをtry-catchブロックでラップ |
| プラットフォーム | Aura | ✅ try-catch ブロック内では、ネイティブの JavaScript Errorが throw ステートメントで使用されます ($A.error() は使用されません)。 |
| プラットフォーム | Aura | ✅ リカバリ可能なすべてのエラーロジックがcatchステートメント内に表示され、明確なユーザーメッセージが提供されます。 |
| プラットフォーム | フロー | ✅ データ操作、コールアウト、その他の重要な処理ロジックを含むフローには、すべての主要なアクションの障害パスがあります。 |
| プラットフォーム | フロー | ✅ 画面フローでは一貫して障害コネクタを使用してユーザーにエラーを表示 |
| プラットフォーム | フロー | ✅ 画面に表示されるエラーに対してカスタムエラーメッセージを設定 |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ✅ JavaScript ですべてのデータ操作と重要なプロセス ステップをif ()/else if ()ブロックでラップ |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ✅ すべての@wire関数は、API で提供されるdataおよびerrorプロパティを使用します。 |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ✅ すべてのif (error)/else if (error)ステートメントには、エラーを処理して情報メッセージを提供するロジックが含まれています。 |
適切に設計された容易性 → 自動化 → データ整合性 → データ処理の詳細
| Where to look? 商品領域 | ロケーション | What to avoid? アンチパターン |
|---|---|
| Data 360 | 組織 | ⚠️ サポートされる正規化された照合方法を使用する項目ではあいまい一致を使用 完全正規化された照合方法を使用する項目にはあいまい一致が適用されます。 |
| Data 360 | 組織 | ⚠️ 統合個人 ID は不変であることを前提としています。 統合個人 ID は、残りの組織で使用するマスター ID またはグローバル ID として使用されます。 |
| Data 360 | 組織 | ⚠️ [行動日] が可変の日時値に対応付けられている [行動日] が LastUpdated や LastExtracted などの可変の日時項目に対応付けられている |
| Data 360 | 組織 | ⚠️ [プライマリキー] が一意でない項目に対応付けられている 選択した項目が一意であることを最初に検証せずに、データセットにデータストリームのプライマリキーが存在しない場合は、その項目を選択 |
| Data 360 | 組織 | ⚠️ データを一括で読み込み、リアルタイムで有効化しようとする。たとえば、一般的で欠陥のあるアプローチでは、Amazon S3 バケットから 1 時間ごとにデータを読み込み、データアクションで有効化する |
| プラットフォーム | Apex | ⚠️ DML ステートメントは、トリガー後コンテキストで呼び出されるコードに定期的に表示されます。 |
| プラットフォーム | Apex | ⚠️ Apex 一括処理ジョブの範囲サイズが非常に小さい バッチサイズが非常に小さい (範囲サイズ = 1 など) が使用されている |
| プラットフォーム | Apex | ⚠️ バッチ Apex は外部コールアウトに使用 大量の Salesforce データがバッチ Apex を使用して Salesforce から外部システムに転送される |
| プラットフォーム | Apex | ⚠️ [Publish Immediately (すぐに公開)] プラットフォームイベントは、公開順序の要件やレコードロックリスクに関係なく、[Publish After Commit (Non-realtime) (コミット後に公開 (非リアルタイム)] の代わりにアドホック [Publish Immediately (Real-time) (すぐに公開 (リアルタイム))] イベントが使用されます。 |
| プラットフォーム | Apex | ⚠️ 非同期 Apex 機能が任意に使用されている Future Methods および Queueable Apex が一貫性がないか、交換可能である |
| プラットフォーム | Apex | ⚠️ 非同期 Apex 機能が任意に使用される。開発者は、Future Apex とキュー可能 Apex のどちらを使用するか、DML を一括処理ジョブに渡すタイミングが明確ではない |
| プラットフォーム | Apex | ⚠️ 非同期 Apex はほとんど使用されていない |
| プラットフォーム | Apex | ⚠️ 非同期 Apex 機能が任意に使用されている。データベース操作には、必要に応じて実行を一括処理 Apex に渡すための明確で一貫したロジックがない |
| プラットフォーム | データ辞書 | ⚠️ データレークオブジェクトからデータモデルオブジェクトへの項目の対応付けは含まれません |
| プラットフォーム | データ辞書 | ⚠️ データソースおよびデータレークオブジェクトの項目レベルデータと優先度ロジックは含まれません |
| プラットフォーム | フロー | ⚠️ 画面コンポーネントからの出力であるコレクションを使用して DML を実行する 作成、更新、削除要素で [レコードまたはレコードコレクションの ID とすべての項目値を使用] 設定を活用する (そのコレクションが画面コンポーネントからの出力の場合) |
| プラットフォーム | フロー | ⚠️ レコードトリガーフローでトリガー順序属性がまったく使用されていない、またはトリガー順序値が一貫して使用されていない |
| プラットフォーム | フロー | ⚠️ 非同期パスが一貫して使用されていない、またはまったく使用されていない |
| プラットフォーム | フロー | ⚠️ 大規模なモノリシックフローでは、関連するデータ操作の複雑なシーケンスを調整します (サブフローの有無は問いません)。 |
| プラットフォーム | 組織 | ⚠️ ID 解決調整ルールがデータ辞書の優先度ロジックに従っていない |
適切に設計された容易性 → 自動化 → データ整合性 → エラー処理の詳細
| Where to look? 商品領域 | ロケーション | What to avoid? アンチパターン |
|---|---|
| プラットフォーム | Apex | ⚠️ DML、SOQL、コールアウト、その他の重要なプロセスステップが一貫して try-catch ブロックでラップされていない |
| プラットフォーム | Apex | ⚠️ Database クラスのメソッドが使用されていない |
| プラットフォーム | Apex | ⚠️ データ操作は DML でのみ行われます。 |
| プラットフォーム | Apex | ⚠️ System.debugステートメントは本番コードに表示されます (コメントアウトされません)。 |
| プラットフォーム | Aura | ⚠️ JavaScript では、データ操作と重要なプロセスステップが一貫してtry-catchブロックでラップされない |
| プラットフォーム | Aura | ⚠️ コンポーネントは$A.error()を使用 |
| プラットフォーム | Aura | ⚠️ リカバリ可能なエラーロジックが catch ステートメント内に一貫して表示されず、ユーザーへのエラーメッセージが明確でない |
| プラットフォーム | フロー | ⚠️ フローで障害パスが一貫して使用されていない、またはまったく使用されていない |
| プラットフォーム | フロー | ⚠️ カスタムエラーメッセージが使用されないため、ユーザーにはデフォルトの「このフローで未対応の障害が発生しました」メッセージが表示されます。 |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ⚠️ @wire 関数は、API で提供されるdataおよびerrorプロパティを使用しない (または一貫して使用しない) |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ⚠️ まったく使用しない場合、if (error)/else if (error) ステートメントにはエラーを処理して有益なエラーメッセージを提供するロジックは実際には含まれていません。 |
| プラットフォーム | LWC(Lightning Web コンポーネント) | ⚠️ JavaScript は、データ操作や重要なプロセスステップで一貫して if ()/else if () ブロックを使用しない |