Aller au contenu

Transformer le modèle en Salesforce

Aussi en 28 langues

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Deutsch (Schweiz)

A white card model rising from the plan it was drawn on, built from repeated standard window pieces with one curved wooden wall, the rest of the plan still bare.
Image générée par IA

Module 6 sur 6 du chapitre Modéliser les données pour leur sens, chapitre 2 du cours Data Architect. Chaque module se suffit à lui-même. Précédent : Concevoir en troisième forme normale, puis prendre du recul · Suivant : le guide d’étude du chapitre, puis le chapitre suivant : l’architecture de données Salesforce

La question à laquelle répond ce module : comment un modèle de données logique devient-il un modèle de données physique Salesforce ?

Nous allons enfin parler de Salesforce. Si vous résistiez à l’envie de transformer chaque boîte en objet, vous pouvez maintenant y aller. Mais remarquez l’ordre dans lequel nous sommes arrivés ici : nous avons compris le métier, décrit les données, mis chaque fait à sa place, et décidé où nous l’infléchirions volontairement. C’est seulement maintenant que je demande comment Salesforce doit le mettre en œuvre. C’est la progression que je veux que vous reteniez : conceptuel → logique → physique. Le modèle conceptuel décrit le métier. Le modèle logique décrit les données. Le modèle physique décrit comment nous allons réellement le construire.

L’étape physique se voit le plus facilement sur quelque chose de petit, alors les animaux passent en premier.

Qui sont les entreprises et les personnes ? L’éleveur est une entreprise, il devient donc un compte avec le type d’enregistrement Éleveur. Le propriétaire est aussi un compte, ou un compte personnel, avec le type d’enregistrement Propriétaire. Deux sortes du même objet standard, côte à côte en haut du diagramme, exactement là où elles sont depuis le module 1.

Qu’est-ce qui n’a pas de place standard ? Animal, Race, Tour, Tour de l’animal et Évaluation de tour deviennent des objets personnalisés. Et vous vous souvenez de l’espèce que nous avons copiée sur l’animal au module 5 ? Ici, elle reçoit son rôle : elle devient le type d’enregistrement de l’Animal, Chien ou Chat. Un seul objet avec deux types d’enregistrement, chacun avec sa propre présentation de page et ses propres valeurs de liste de sélection, au lieu d’un objet Chien et d’un objet Chat.

Quelles relations sont principal-détails ? J’utilise principal-détails uniquement là où l’enfant ne changera jamais de parent. Un Tour de l’animal appartient à son animal pour la vie, et chaque Évaluation de tour appartient à son Tour de l’animal, donc les deux sont principal-détails. Cela paie tout de suite : c’est la relation principal-détails qui permet à l’animal de garder un champ de récapitulatif de cumul de ses Tours de l’animal, pour que le compteur Tours connus du module 5 reste synchronisé tout seul. Les animaux changent de foyer, en revanche, donc le Propriétaire est une relation de référence.

Lesquelles sont des relations de référence ? Salesforce ne recommande pas plus de 10 000 enfants sur un seul parent. Un tour populaire comme « Assis », une race courante ou un gros éleveur pourraient facilement dépasser ce seuil, donc Tour de l’animal pointe vers son Tour par une relation de référence, et l’animal pointe de la même façon vers sa Race et son Éleveur. Et évitez les relations polymorphes quand vous le pouvez, celles où un même champ peut pointer vers plusieurs types d’objets. Elles sont pratiques le premier jour et plus difficiles pour tout ce qui doit les lire ensuite : rapports, intégrations, et maintenant les agents.

Qu’est-ce qui reste hors de la plateforme ? Si l’animal porte un collier GPS qui signale où il se trouve, cette position n’a pas du tout besoin d’être copiée. Elle peut être un objet externe, lu en direct depuis le système de suivi du collier.

Le modèle des animaux dans Salesforce Le modèle des animaux en objets Salesforce. En haut, deux comptes (Account) : l'un avec le type d'enregistrement Propriétaire, l'autre avec le type d'enregistrement Éleveur. Pet__c, en dessous, a les types d'enregistrement Chien et Chat, le numéro de puce électronique comme ID externe, des relations de référence vers le propriétaire, l'éleveur et Breed__c, et Tricks_Known__c en champ de récapitulatif de cumul. Pet_Trick__c est en relation principal-détails avec Pet__c et a une relation de référence vers Trick__c, avec son niveau de maîtrise et sa date d'apprentissage. Trick_Assessment__c est en relation principal-détails avec Pet_Trick__c. Breed__c a son espèce, son nom et sa taille ; Trick__c, son nom et sa difficulté. référence référence référence principal détails référence principal détails Account (Propriétaire) Id ID D'ENREGISTREMENT Type d'enregistrement : Propriétaire Name Phone Account (Éleveur) Id ID D'ENREGISTREMENT Type d'enregistrement : Éleveur Name Pet__c Id ID D'ENREGISTREMENT Types d'enregistrement : Chien, Chat Microchip_Number__c ID EXTERNE Owner__c RÉFÉRENCE Breeder__c RÉFÉRENCE Breed__c RÉFÉRENCE Name Birth_Date__c Tricks_Known__c CUMUL Breed__c Id ID D'ENREGISTREMENT Species__c Name Size__c Pet_Trick__c Id ID D'ENREGISTREMENT Pet__c PRINCIPAL-DÉTAILS Trick__c RÉFÉRENCE Skill_Level__c Date_Learned__c Trick__c Id ID D'ENREGISTREMENT Name Difficulty__c Trick_Assessment__c Id ID D'ENREGISTREMENT Pet_Trick__c PRINCIPAL-DÉTAILS Date__c Skill_Level__c Assessed_By__c exactement un zéro ou un un ou plusieurs zéro ou plusieurs © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Chaque décision de ce diagramme remonte à quelque chose que nous avons décidé plus tôt, et c’est tout l’intérêt. Maintenant, la même étape pour Steve Trucking.

Notre modèle logique de Steve Trucking contient maintenant Partenaire distributeur, Centre de distribution, Manifeste, Livraison, Article de livraison, Destinataire, Tournée, Arrêt, Équipe, Camion et Affectation d’équipe. Ce sont des concepts métier, et je peux maintenant commencer à les transposer dans Salesforce.

Un partenaire distributeur pourrait être un compte. Une livraison pourrait correspondre à quelque chose que Salesforce propose déjà pour le travail planifié sur le terrain, ou devenir un objet personnalisé. Rien de standard ne convient à un manifeste, donc il deviendra probablement personnalisé. Et le destinataire est une question vraiment difficile : un compte personnel, un contact, ou simplement des informations sur la livraison ? Nous y répondrons correctement au chapitre suivant.

Le mot important reste pourrait. Ne supposez pas la mise en œuvre juste parce qu’un concept métier ressemble à un objet Salesforce. C’est pourquoi nous avons d’abord construit le modèle logique : il nous donne de quoi éprouver la conception Salesforce.

Une entité métier ne veut pas automatiquement dire un objet personnalisé

Section intitulée « Une entité métier ne veut pas automatiquement dire un objet personnalisé »

Voici un piège que je veux que les administrateurs évitent : « Nous avons identifié onze entités, donc il nous faut onze objets personnalisés. » Non. Une entité logique nous dit que le concept métier compte. Elle ne dicte pas comment Salesforce doit le stocker. Un concept peut devenir un objet standard, un objet personnalisé, une relation entre objets, un champ ou quelques champs, une valeur gérée en configuration, ou des données qui vivent entièrement hors de Salesforce (les photos de livraison de Steve Trucking sont un bon candidat). C’est dans le modèle physique que ces choix se font, et c’est exactement pourquoi nous ne les avons pas faits lors du premier appel.

La même transition se produit avec les attributs. Notre camion logique a un numéro de parc, un VIN, une marque, un modèle, une année, une plaque d’immatriculation et un statut. Nous décidons maintenant comment ils existent physiquement : quel objet les détient, quels types de champ ils utilisent, lesquels sont obligatoires, lesquels doivent être uniques, lesquels sont des identifiants externes, lesquels ont besoin d’une validation, lesquels sont dérivés plutôt que stockés, et lesquels sont sensibles. Au niveau logique, nous avons demandé ce que signifie Camion. Au niveau physique, nous demandons comment Salesforce va représenter Camion. Des questions différentes.

Camion : de l'entité logique à l'objet Salesforce Deux fiches, ligne à ligne. Logique, Camion, ce que signifie Camion : ID du camion, numéro de parc, VIN, marque, modèle, année du modèle, plaque d'immatriculation, statut. Physique, Truck__c, comment Salesforce le représentera : Id, l'ID d'enregistrement Salesforce ; Name, texte, qui contient le numéro de parc ; VIN__c, texte de 17 caractères, unique et ID externe ; Make__c, une liste de sélection ; Model__c, texte de 40 ; Model_Year__c, un nombre à quatre chiffres ; License_Plate__c, texte de 10 ; Status__c, une liste de sélection, obligatoire. Une note en dessous : le logique demande ce que signifie Camion ; le physique demande comment Salesforce le représentera. Logique : Camion ce que signifie Camion ID du camion Numéro de parc VIN Marque Modèle Année du modèle Plaque d'immatriculation Statut Physique : Truck__c comment Salesforce le représentera Id : l'ID d'enregistrement Salesforce Name : texte, le numéro de parc VIN__c : texte(17), unique, ID externe Make__c : liste de sélection Model__c : texte(40) Model_Year__c : nombre(4) License_Plate__c : texte(10) Status__c : liste de sélection, obligatoire Le logique demande ce que signifie Camion. Le physique demande comment Salesforce le représentera. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Les relations deviennent des décisions de plateforme

Section intitulée « Les relations deviennent des décisions de plateforme »

Tout le temps passé sur les relations est récompensé ici. Nous savons déjà si chacune est un-à-un, un-à-plusieurs ou plusieurs-à-plusieurs, obligatoire ou facultative, et si son historique compte. Nous décidons maintenant comment Salesforce la met en œuvre : une relation de référence, une relation principal-détails ou un objet de jonction Salesforce (Salesforce Junction Object), et peut-être une jonction avec ses propres attributs, parce que, comme nous l’avons vu, la relation elle-même peut avoir un sens métier.

Repensez à l’affectation d’équipe. Nous aurions pu commencer ce chapitre en disant : « Créons un objet de jonction Salesforce entre équipe et camion. » Regardez ce que nous aurions sauté : pourquoi la relation existe, si elle a besoin d’une date et d’une tournée, si elle a un statut, et si une réclamation pour dommage des semaines plus tard a besoin de son historique. Ces questions métier nous disent ce qu’est une affectation d’équipe. Ce n’est qu’ensuite que nous devrions décider comment Salesforce la construit, et si Salesforce a déjà quelque chose qui fait ce travail.

Le schéma change encore. Le modèle conceptuel montrait des concepts métier et des traits simples. Le modèle logique a ajouté des attributs, des clés, la cardinalité et les entités cachées dans les relations. Maintenant, le modèle physique commence à ressembler à Salesforce : objets standard, objets personnalisés, champs, types de relation, et ce qui vit hors de la plateforme.

Le même métier à trois niveaux Trois panneaux, la même tranche à trois niveaux. Conceptuel, ce qui existe : un partenaire distributeur, le distributeur pour qui nous livrons, envoie des livraisons, et chaque livraison, une commande pour un destinataire, contient des articles de livraison, un produit d'une livraison. Logique, comment les données sont structurées : les trois mêmes avec des ID d'enregistrement et quelques champs ; la livraison est aussi connue par le numéro de commande du partenaire ; l'article de livraison porte l'ID du produit et une quantité. Physique, comment Salesforce le construira : le partenaire distributeur est un compte standard (Account) avec un type d'enregistrement Retail Partner ; la livraison est un objet personnalisé, Delivery__c, avec le numéro de commande du partenaire comme ID externe et une relation de référence vers le compte ; l'article de livraison est un objet personnalisé, Delivery_Item__c, en relation principal-détails avec sa livraison, avec une quantité. Une note en dessous : métier, conceptuel, logique, physique ; désignez n'importe quoi à droite et remontez-le jusqu'à la gauche. CONCEPTUEL : QU'EST-CE QUI EXISTE ? LOGIQUE : COMMENT LES DONNÉES SONT-ELLES STRUCTURÉES ? PHYSIQUE : COMMENT SALESFORCE LE CONSTRUIRA-T-IL ? envoie contient envoie contient référence principal détails Partenaire distributeur le distributeur pour qui nous livrons Livraison une commande pour un destinataire Article de livraison un produit d'une livraison Partenaire distributeur ID du partenaire distributeur ID D'ENREGISTREMENT Nom Statut Livraison ID de la livraison ID D'ENREGISTREMENT Numéro de commande du partenaire AUSSI APPELÉ Date de livraison Statut Article de livraison ID de l'article de livraison ID D'ENREGISTREMENT ID du produit Quantité Account (standard) Id ID D'ENREGISTREMENT Type d'enregistrement : Retail Partner Name Delivery__c Id ID D'ENREGISTREMENT Partner_Order_Number__c ID EXTERNE Retail_Partner__c RÉFÉRENCE Delivery_Item__c Id ID D'ENREGISTREMENT Delivery__c PRINCIPAL-DÉTAILS Quantity__c Métier → conceptuel → logique → physique : désignez n'importe quoi à droite et remontez-le jusqu'à la gauche. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Je veux que vous puissiez mettre ces trois schémas côte à côte et voir la progression : pas trois schémas sans rapport, mais le même métier à trois niveaux.

Un mot sur la façon dont je les dessine, car la mise en page fait partie du message. Je place l’objet principal au milieu, un peu en bas. S’il a des objets parents, je les place un peu au-dessus, pour qu’on lise le modèle de haut en bas, de gauche à droite, comme le métier y pense. Les données de référence vont sur le côté. La couleur a aussi un sens : je mets toujours Salesforce en bleu, et je choisis une couleur pour les systèmes propres à l’entreprise, généralement le vert, parce que le vert est une couleur agréable et amicale. Je n’utilise pas le rouge, et les jaunes sont un peu agressifs. Quand un modèle est disposé ainsi, il me parle. Beaucoup des schémas que vous trouverez sont en réalité de la gestion d’espace : comment garer toutes mes voitures dans mon garage encombré ? Je préfère peindre une image logique que l’esprit peut saisir.

Le modèle physique doit respecter la plateforme

Section intitulée « Le modèle physique doit respecter la plateforme »

Salesforce n’est pas une base de données relationnelle générique. Il a ses propres principes sur les relations, la propriété, la sécurité et les rapports. Il a des limites, un comportement de requête et de l’automatisation, et une architecture qui influence le comportement d’un modèle à grande échelle. Un modèle logique qui paraît parfait sur un tableau blanc peut donc devoir changer en devenant physique. Ce n’est pas Salesforce qui vous gêne. Cela veut dire que la plateforme a une forme, et que les bons architectes comprennent cette forme. C’est exactement le sujet du chapitre suivant.

Parfois aussi, le modèle physique différera volontairement du modèle logique propre à cause des décisions de dénormalisation prises au module 5. Ce n’est pas un problème, tant que nous pouvons expliquer pourquoi.

Il y a une habitude que je veux vous voir perdre si vous l’avez : commencer votre architecture de données par Configuration → Gestionnaire d’objets → Nouvel objet personnalisé et trouver le modèle au fil de l’eau. Salesforce rend incroyablement facile de créer des choses ; c’est l’une de ses forces, et l’une des raisons pour lesquelles les modèles de données faibles apparaissent si vite. Quelques clics et vous avez un objet, quelques autres et vous avez des champs et une relation. Puis les données arrivent, des flows sont construits, des rapports sont créés, des intégrations en dépendent, et l’objet créé en cinq minutes devient très coûteux à changer. C’est le test de réversibilité du chapitre 1. Alors, avant de cliquer sur Nouvel objet personnalisé, dessinez le modèle.

Il y a une autre raison pour laquelle je garde les trois modèles séparés : la technologie change. Aujourd’hui, une partie des données de Steve Trucking vit sur le cœur de Salesforce. Demain, une partie pourra vivre dans Data 360, un entrepôt, ou un système que nous n’avons pas encore choisi, et l’assistant d’IA a besoin de sa propre représentation. L’architecture physique peut changer, alors que les concepts métier restent remarquablement stables : les partenaires distributeurs, les livraisons et les destinataires existent toujours. C’est ce qui donne sa valeur au modèle logique. C’est une description durable du métier, qui n’est pas liée à la mise en œuvre d’aujourd’hui.

Quand je transforme un modèle logique en modèle physique Salesforce, je décide :

  • Quelles entités métier correspondent à des capacités standard de Salesforce, et lesquelles ont besoin d’objets personnalisés ou d’une autre représentation.
  • Comment les attributs logiques deviennent des champs physiques, et comment les relations sont mises en œuvre sur la plateforme.
  • Où la dénormalisation délibérée a sa place dans la conception physique.
  • Quelles données ont leur place sur Salesforce, et lesquelles ailleurs.
  • Quelles caractéristiques de la plateforme obligent le modèle physique à différer du modèle logique.

Surtout, je veux pouvoir faire remonter chaque décision. Si vous montrez quelque chose dans mon modèle physique en demandant « Pourquoi c’est là ? », je dois pouvoir vous ramener à travers le modèle logique et le modèle conceptuel jusqu’à quelque chose dont le métier a réellement besoin : métier → conceptuel → logique → physique.

Au-delà de l’examen : ce que l’IA change. L’IA peut maintenant passer d’un cahier des charges à des objets et des champs Salesforce en un seul saut. Cela rend la séquence plus importante, pas moins : si elle saute des exigences à la configuration, demandez-lui de montrer ce qui s’est passé entre les deux : ce qu’elle a considéré comme une entité, quelles clés elle a choisies, quelles relations elle a supposées, et où elle a dénormalisé. Ce sont des décisions d’architecture, et l’architecte a toujours besoin de les voir.

Nous avons commencé ce chapitre lors d’un premier appel, en écoutant les noms, et nous le terminons avec un modèle physique que nous pouvons faire remonter jusqu’au métier. Maintenant que nous avons choisi de construire sur Salesforce, la question suivante va plus loin : sur quel type de plateforme de données construisons-nous réellement ?