Ce texte a été traduit en utilisant le système de traduction automatisé de Salesforce. Répondez à notre sondage pour nous faire part de vos commentaires sur ce contenu et nous dire ce que vous aimeriez voir ensuite.

Automatisé - Intégrité des données

En savoir plus sur Bien archivé FacileAutomatiséIntégrité des donnéesTraitement des données

Où chercher ?
Domaine de produit | Emplacement
À quoi ressemble le bien ?
Modèle
Data 360 | Dictionnaire de données✅ Données au niveau du champ et logique de priorisation pour toutes les sources de données et objets lac de données existe
Data 360 | Organisation✅ Les clés composées sont utilisées pour construire une clé primaire unique si elle n'existe pas Utiliser un champ de formule pour joindre plusieurs champs de votre jeu de données lorsqu'il n'y a pas un seul champ unique dans le jeu de données
Data 360 | Organisation✅ Les flux de données qui utilisent le connecteur CRM exploitent l'actualisation complète toutes les deux semaines Lors de l'utilisation du connecteur CRM pour des charges incrémentielles, une actualisation complète est initiée toutes les deux semaines. Bien que cela puisse augmenter l'ingestion de données, cela protège l'intégrité des données pour les métadonnées (telles que les champs de formule), qui ne déclenchent pas de transaction DML et qui, par conséquent, ne sont pas incluses dans les charges incrémentielles
Data 360 | Organisation✅ L'ID d'individu est utilisé pour mapper des données Data 360 avec d'autres systèmes Mapper des individus dans Data 360 avec d'autres systèmes en utilisant l'ID d'individu. Par exemple, la Clé d'abonné Marketing Cloud Engagement doit être mappée avec l'ID d'individu de Data 360
Data 360 | Organisation✅ Les clés complètes sont utilisées pour interpréter avec précision les données. Tous les objets lac de données qui contiennent une valeur de clé ont un champ de qualificateur de clé et les clés complètes (FQK) sont activées dans l'organisation afin d'éviter les conflits qui peuvent se produire lorsque plusieurs flux de données sont harmonisés dans un seul objet modèle de données (DMO)
Data 360 | Organisation✅ Les méthodes de correspondance normalisées sont utilisées dans les règles de correspondance lorsqu'elles sont disponibles. La correspondance normalisée exacte transforme les données sources pour résoudre les problèmes courants de correspondance, notamment les espaces de fin, la mise en forme incohérente et les caractères spéciaux. Tirez parti de cette méthode dans les champs où elle est disponible au lieu d'utiliser la correspondance partielle, sauf si vous avez configuré plusieurs jeux de règles pour les tests et confirmé que le taux de consolidation ne répond pas aux besoins métiers
Einstein | Documentation✅ L'utilité des données est documentée dans le cadre de la conception de projets IA La définition de l'utilité des données de votre entreprise est documentée et opérationnelle pour améliorer les réponses IA
Plate-forme | Apex✅ Future Apex est utilisé avec parcimonie, pour les appels externes ou l'objet système DML
Plate-forme | Apex✅ Les invocations Apex asynchrones utilisent fileable pour « enchaîner » les DML complexes entre les transactions
Plate-forme | Apex✅ Apex par lot est utilisé exclusivement pour les volumes de données importants Apex par lot est le meilleur pour traiter de grandes quantités de données. Apex asynchrone a des limites plus élevées que Apex synchrone de sorte que plus de travail peut être fait. Évitez les très petites tailles de lot lorsque possible afin d'éviter les conséquences du contrôle de flux (inondation de file d'attente), des frais généraux et de l'épuisement de la limite Apex asynchrone quotidienne
Plate-forme | Apex✅ Toutes les instructions DML synchrones ou méthodes de classe Database sont exécutées dans des contextes d'exécution avant le déclenchement
Plate-forme | Apex✅ L'API de transfert en masse est utilisée uniquement lorsque de grandes quantités de données doivent être traitées. Les API SOAP et REST natives sont exploitées pour de plus petites quantités de traitement des données
Plate-forme | Dictionnaire de données✅ Le mappage de champs entre un objet lac de données et un objet modèle de données existe
Plate-forme | Flux✅ Tous les flux lancés dans le contexte de l'utilisateur extraient toutes les transactions du contexte système dans des flux secondaires, qui sont régulièrement placés après un élément Interrompre, pour créer une transaction
Plate-forme | Flux✅ Tous les flux déclenchés par un enregistrement ont des valeurs d'ordre de déclenchement remplies
Plate-forme | Flux✅ Les flux impliquant des appels système externes ou des processus longs utilisent des chemins asynchrones
Plate-forme | Flux✅ Des séquences complexes d'opérations de données associées sont créées avec Orchestrateur (au lieu d'invoquer plusieurs flux secondaires dans un flux monolithique)
Plate-forme | Organisation✅ Les règles de réconciliation de résolution de l'identité suivent la logique de priorisation dans votre dictionnaire de données

En savoir plus sur Bien archivé FacileAutomatiséIntégrité des donnéesGestion des erreurs

Où chercher ?
Domaine de produit | Emplacement
À quoi ressemble le bien ?
Modèle
Einstein | Organisation✅ Les invites spécifient la sortie attendue Inclure des instructions directes pour le grand livre afin de générer uniquement le type de contenu attendu.
Plate-forme | Apex✅ Les exceptions personnalisées sont utilisées pour créer un message d'erreur avancé et une logique
Plate-forme | Apex✅ Le code encapsule toutes les étapes DML, SOQL, appels externes et autres étapes de processus critiques dans des blocs de try-catch
Plate-forme | Apex✅ Les méthodes de classe de base de données peuvent être utilisées exclusivement pour toutes les opérations de données (au lieu de DML)
Plate-forme | Apex✅ Dans des contextes asynchrones et en masse, des méthodes de classe Database sont utilisées au lieu de DML
Plate-forme | Aura✅ JavaScript regroupe toutes les opérations de données et les étapes critiques du processus dans des blocs de try-catch
Plate-forme | Aura✅ Dans les blocs try-catch, la Error JavaScript native est utilisée dans les instructions throw (pas d'utilisation de $A.error())
Plate-forme | Aura✅ Toute la logique d'erreur récupérable est affichée dans les instructions catch et fournit des messages utilisateur clairs
Plate-forme | Flux✅ Les flux avec des opérations de données, des appels externes et d'autres logiques de traitement critiques ont des chemins de défaut pour toutes les actions clés
Plate-forme | Flux✅ Les flux d'écran utilisent régulièrement des connecteurs de défaut pour afficher les erreurs aux utilisateurs
Plate-forme | Flux✅ Les messages d'erreur personnalisés sont configurés pour les erreurs affichées à l'écran
Plate-forme | Composants Web Lightning (LWC)✅ JavaScript encapsule toutes les opérations de données et les étapes critiques du processus dans if ()/else if () blocs
Plate-forme | Composants Web Lightning (LWC)✅ Toutes les fonctions de @wire utilisent les propriétés data et error fournies par l'API
Plate-forme | Composants Web Lightning (LWC)✅ Tous les if (error)/else if (error) relevés contiennent une logique de traitement des erreurs et fournissent des messages informatifs

En savoir plus sur Bien archivé FacileAutomatiséIntégrité des donnéesTraitement des données

Où chercher ?
Domaine de produit | Emplacement
Qu'éviter ?
Anti-Pattern
Data 360 | Organisation⚠️ Les champs avec des méthodes de correspondance normalisées prises en charge utilisent la correspondance partielle La correspondance partielle est appliquée aux champs qui offrent des méthodes de correspondance normalisées exactes
Data 360 | Organisation⚠️ L’ID d’individu unifié est supposé immuable L’ID d’individu unifié est utilisé en tant qu’ID principal ou ID global à utiliser par le reste de l’organisation
Data 360 | Organisation⚠️ La date de l’événement est mappée avec une valeur DateHeure modifiable La date de l’événement est mappée avec un champ DateHeure modifiable tel que LastUpdated ou LastExtracted
Data 360 | Organisation⚠️ La clé primaire est mappée avec un champ qui n’est pas unique Choix d’un champ comme clé primaire pour votre flux de données s’il n’en existe pas dans votre jeu de données sans avoir au préalable validé que le champ sélectionné est unique
Data 360 | Organisation⚠️ Chargement des données par lots puis tentative d’activation en temps réel. Par exemple, une approche courante mais imparfaite peut impliquer le chargement de données toutes les heures à partir d'un compartiment Amazon S3, puis son activation via des actions de données
Plate-forme | Apex⚠️ Les instructions DML apparaissent régulièrement dans un code qui sera invoqué dans les contextes after trigger
Plate-forme | Apex⚠️ Les tâches Apex par lot ont une taille de lot très petite On utilise des tailles de lot très petites (telles que la taille de la portée = 1)
Plate-forme | Apex⚠️ Apex par lot est utilisé pour les appels externes Des volumes importants de données Salesforce sont poussés hors de Salesforce vers un système externe en utilisant Apex par lot
Plate-forme | Apex⚠️ Publier immédiatement Les événements de plate-forme sont utilisés ad hoc Des événements Publier immédiatement (en temps réel) sont utilisés au lieu de Publier après validation (en temps non réel), quels que soient les exigences de commande de publication ou les risques de verrouillage d'enregistrement.
Plate-forme | Apex⚠️ Les fonctionnalités Apex asynchrones sont utilisées arbitrairement Future Methods et Queueable Apex sont utilisées de façon incohérente ou interchangeable
Plate-forme | Apex⚠️ Les fonctionnalités Apex asynchrones sont utilisées arbitrairement ; on ne sait pas trop quand les développeurs savent quand utiliser Apex futur vs file d’attente, quand remettre le DML aux tâches par lot
Plate-forme | Apex⚠️ Apex asynchrone est rarement utilisé
Plate-forme | Apex⚠️ Les fonctionnalités Apex asynchrones sont utilisées arbitrairement Les opérations de base de données n’ont pas de logique claire et cohérente pour transmettre l’exécution à Apex Batch en cas de besoin
Plate-forme | Dictionnaire de données⚠️ Le mappage de champs entre des objets lac de données et des objets modèle de données n’est pas inclus
Plate-forme | Dictionnaire de données⚠️ Les données au niveau du champ et la logique de priorisation des sources de données et des objets lac de données ne sont pas incluses
Plate-forme | Flux⚠️ Exécution de DML en utilisant une collection qui est une sortie d’un composant d’écran Exploitation du paramètre « Utiliser les ID et toutes les valeurs de champ d’un enregistrement ou d’une collection d’enregistrements » dans un élément créer, mettre à jour ou supprimer, lorsque cette collection est une sortie d’un composant d’écran
Plate-forme | Flux⚠️ Les flux déclenchés par un enregistrement n’utilisent pas du tout les attributs d’ordre de déclenchement ou n’utilisent pas de façon cohérente les valeurs d’ordre de déclenchement
Plate-forme | Flux⚠️ Les parcours asynchrones ne sont pas utilisés de façon cohérente ou du tout
Plate-forme | Flux⚠️ Les grands flux monolithiques tentent de coordonner des séquences complexes d’opérations de données associées (avec ou sans flux secondaire)
Plate-forme | Organisation⚠️ Les règles de réconciliation de résolution de l’identité ne suivent pas la logique de priorisation dans le dictionnaire de données

En savoir plus sur Bien archivé FacileAutomatiséIntégrité des donnéesGestion des erreurs

Où chercher ?
Domaine de produit | Emplacement
Qu'éviter ?
Anti-Pattern
Plate-forme | Apex⚠️ DML, SOQL, appels externes ou autres étapes critiques du processus ne sont pas toujours encapsulés dans des blocs try-catch
Plate-forme | Apex⚠️ Aucune méthode de classe Database n’est utilisée
Plate-forme | Apex⚠️ Les opérations sur les données se font exclusivement avec DML
Plate-forme | Apex⚠️ Les instructions de System.debug apparaissent dans le code de production (et ne sont pas commentées)
Plate-forme | Aura⚠️ JavaScript n’enveloppe pas de façon cohérente les opérations de données et les étapes critiques du processus dans des blocs de try-catch
Plate-forme | Aura⚠️ Les composants utilisent $A.error()
Plate-forme | Aura⚠️ La logique d’erreur récupérable n’est pas toujours affichée dans les instructions de catch, et les messages d’erreur aux utilisateurs ne sont pas clairs
Plate-forme | Flux⚠️ Les flux n’utilisent pas de chemins de défaut cohérents ou du tout
Plate-forme | Flux⚠️ Les messages d'erreur personnalisés ne sont pas utilisés. Par conséquent, les utilisateurs affichent le message par défaut « Une erreur non gérée s'est produite dans ce flux »
Plate-forme | Composants Web Lightning (LWC)⚠️ Les fonctions de @wire n’utilisent pas les propriétés data et error fournies par l’API (ou ne les utilisent pas de façon cohérente)
Plate-forme | Composants Web Lightning (LWC)⚠️ Si elles sont utilisées, les instructions if (error)/else if (error) ne contiennent pas réellement de logique pour traiter les erreurs et fournir des messages d’erreur utiles
Plate-forme | Composants Web Lightning (LWC)⚠️ JavaScript n’utilise pas if ()/else if () blocs de façon cohérente avec des opérations sur les données ou des étapes de processus critiques