Skip to main content

Définition des Big Objects personnalisés

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Créer un Big Object personnalisé
  • Construire un index personnalisé
  • Déployer un Big Object personnalisé
  • Renseigner les Big Objects
Remarque

Remarque

Vous souhaitez apprendre en français ? Dans ce badge, les validations de défi pratique Trailhead se font en anglais. Les traductions sont fournies entre parenthèses à titre de référence. Veillez à copier/coller les valeurs en anglais, puis à définir la langue de votre Trailhead Playground sur Anglais et les paramètres régionaux sur États-Unis. Suivez les instructions ici.

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

Définition des Big Objects personnalisés

Vous avez pu découvrir des cas d’utilisation des Big Objects personnalisés, ou même en inventer un vous-même. Maintenant, il est temps d’en construire un !

Vous pouvez définir un Big Object personnalisé dans Configuration. Vous pouvez également le faire en utilisant l’API de métadonnées, mais la procédure est beaucoup plus simple dans Configuration. Pour commencer, connectez-vous à votre Trailhead Playground et accédez à Configuration. Voici globalement comment définir un Big Object.

  1. Cliquez sur Icône sous forme d’engrenage de l’option Configurer et sélectionnez Setup (Configuration).
  2. Saisissez Big Objects dans la zone Recherche rapide, puis sélectionnez Big Objects.
  3. Créez un Big Object et ajoutez-y quelques informations de base.
  4. Ajoutez des champs personnalisés. Ils stockent les données sur votre Big Object.
  5. Ajoutez un index. L’index définit la clé primaire composite d’un Big Object et sert à interroger et à filtrer ses données.
  6. Enregistrez le Big Object et modifiez son statut pour le définir sur Déployé.

Examinons maintenant ces étapes plus en détail.

Les Big Objects personnalisés sont semblables aux objets standard et personnalisés, mais certains paramètres sont spécifiques aux Big Objects, et certains ne s’appliquent pas à eux. Les noms d'objets doivent être uniques parmi tous les Big Objects externes, personnalisés et standards de votre organisation.

Détails de définition d’un Big Object

Lorsque vous définissez un Big Object, vous devez d’abord renseigner quelques informations de base.

Nom du champ

Description

Étiquette

Ce nom est utilisé pour faire référence à l’objet dans l’interface utilisateur.

Étiquette au pluriel

Nom de l’objet au pluriel.

Commence par une voyelle

Selon la langue par défaut de votre organisation, indiquez si l’étiquette doit être précédée du déterminant « an » ou « a ».

Nom de l’objet

Nom d’API unique du Big Object. Dans les packages gérés, ce nom évite les conflits de nommage avec les installations de packages. Utilisez uniquement des caractères alphanumériques et des traits de soulignement. Le nom doit commencer par une lettre et ne doit pas inclure d’espaces. Il ne peut pas se terminer par un trait de soulignement ni comporter deux traits de soulignement consécutifs.

Une fois enregistré, le nom d’API d’un Big Object est identifié par le suffixe « __b », alors que l’objet personnalisé utilise le suffixe « __c ».

Description

Une description claire et précise vous aide à vous rappeler des différences entre les objets lorsque vous les consultez dans une liste.

Configuration de l’aide contextuelle

Définit l’URL qui s’affiche lorsqu’un utilisateur clique sur Aide sur cette page à partir des pages d’accueil (vue d’ensemble), de modification et de détails de l’enregistrement d’objet, ainsi que depuis les vues de liste et les listes associées. Ce paramètre n’affecte pas le lien d’aide situé en haut des pages : ce dernier ouvre toujours la fenêtre d’aide.

Statut de déploiement

Lorsque vous créez un Big Object, son statut est défini sur En cours de développement. Vous ne pouvez pas déployer un Big Object tant qu’il ne comporte pas un index contenant au moins un champ personnalisé. Seuls des champs personnalisés obligatoires peuvent être utilisés dans un index. Quand un index est créé, un deuxième statut Déployé s’affiche. Dès que vous êtes prêt à autoriser les utilisateurs à y accéder, changez son statut sur Déployé.

Champs personnalisés des Big Objects

Une fois votre Big Object défini, ajoutez-y des champs personnalisés. Ces derniers servent à stocker les données propres à votre Big Object. Vous pouvez également créer des champs de relations personnalisés pour associer votre Big Object à un autre objet dans Salesforce. Vous pouvez ajouter des champs personnalisés à un Big Object de la même manière que vous ajouteriez des champs personnalisés à n’importe quel autre objet de Salesforce. Les Big Objects acceptent les champs suivants :

  • Relation de recherche
  • Date/heure
  • Un e-mail
  • Numéro
  • Téléphone
  • Texte
  • Zone de texte (longue)
  • URL

Pour créer un index pour votre Big Object, au moins un champ personnalisé doit être marqué comme obligatoire.

Définition de l’index d'un Big Object personnalisé

C’est important ! Comme indiqué précédemment, l’index définit la clé primaire composite pour un objet volumineux. Les champs définis dans l’index d’un objet volumineux déterminent son identité et sa capacité à être interrogé. Les champs définis dans votre index doivent être ceux qui seront les plus pertinents pour vos requêtes, donc un peu de prévoyance et de planification sont de mise. L’ordre dans lequel vous définissez les champs joue également un rôle important. Si vous utilisez SOQL pour interroger votre Big Object, vous pouvez uniquement interroger les champs qui composent votre index, dans l’ordre dans lequel vous les aurez définis. Placez en tête de votre index le champ que vous utiliserez le plus souvent dans un filtre de requête. Aussi, vous ne pouvez utiliser que certains opérateurs de comparaison, en fonction de la position du champ dans votre requête.

Gardez ces points en tête lorsque vous définissez l’index.

  • Un index doit contenir entre un et cinq champs personnalisés.
  • Les champs personnalisés inclus dans l’index doivent être définis comme étant obligatoires.
  • Vous ne pouvez pas inclure de champs de zone de texte longue dans l’index.
  • Les champs de texte d’un index ne peuvent pas comporter plus de 100 caractères au total.
  • Une fois que vous avez créé un index, vous ne pouvez ni le modifier ni le supprimer. Pour le modifier, créez un autre Big Object avec un nouvel index.

Détails de l’index d’un Big Object

Ils définissent les champs composant l’index de votre Big Object personnalisé et déterminent les champs et l’ordre de tri.

Nom du champ

Description

Étiquette

L’étiquette sert à faire référence à l’index dans l’interface utilisateur.

Nom

Nom de l’API de l’index.

Champs d’index

Définit la position et la direction d’index de chaque champ personnalisé inclus dans l’index. L’ordre des champs défini ici détermine leur ordre dans l’index. Définissez la position d’index sur 1 s’il s’agit du paramètre de filtrage le plus fréquemment utilisé. Les valeurs valides pour la direction d’index sont Croissant et Décroissant.

Exemple d’un Big Object personnalisé

Maintenant que vous connaissez les éléments nécessaires à l’élaboration d’un Big Object personnalisé, essayez d’en créer un. Imaginons que vous avez développé un super jeu, SFORCE-COM: U.F.B.O. Defense, dans lequel les joueurs doivent défendre la Terre contre un Big Object volant non identifié. Vous souhaitez pouvoir stocker toutes les interactions effectuées par vos joueurs au cours d’une session de jeu. Lors de chaque session, vous enregistrez dans votre Big Object personnalisé, nommé Customer_Interaction__b, les informations suivantes :

  • Le nombre d’achats effectués par le joueur dans In_Game_Purchase__c
  • Le niveau le plus élevé qu’il a atteint dans Level_Achieved__c
  • Le nombre de vies qu’il lui reste dans Lives_This_Game__c
  • La plate-forme dans Game_Platform__c
  • Son score dans Score_This_Game__c
  • Le nom de son compte dans Account__c
  • La date de sa session de jeu dans Play_Date__c
  • Son temps de jeu dans Play_Duration__c

Votre jeu étant très populaire, chaque joueur génère plusieurs interactions par jour. Ces dernières, multipliées par la taille importante de votre communauté de joueurs, représentent un nombre assez impressionnant d’enregistrements. Ah, les affres de la réussite !

Vous définissez tous ces champs sur le Big Object personnalisé. Ensuite, vous définissez les champs composant l’index. Le nom du compte de chaque joueur est unique, donc vous avez choisi Account__c comme premier champ de votre index. Le champ suivant de votre index est la plate-forme de jeu du joueur, enregistrée dans Game_Platform__c, puis la date de la session dans Play_Date__c. Cet ordre précis vous permet d’effectuer des requêtes basées uniquement sur les comptes, ou sur les comptes et les plates-formes, ou sur les comptes, les plates-formes et les dates de jeu.

Utilisez les valeurs exactes de ces exemples pour créer un Big Object personnalisé comprenant huit champs personnalisés et un index. Si un champ et une valeur ne sont pas répertoriés dans la table, ignorez-les ou laissez-les comme valeurs par défaut.

Détails de définition d’un Big Object

Nom du champ

Valeur

Étiquette

Customer Interaction

Étiquette au pluriel

Customer Interactions

Nom de l’objet

Customer_Interaction

Description

Laissez vide

Statut de déploiement

En développement

Champs personnalisés des Big Objects

  • In-Game Purchase
    • Type de données : Texte
    • Étiquette du champ : In-Game Purchase
    • Longueur : 16
    • Nom du champ : In_Game_Purchase
    • Obligatoire : Non
  • Level Achieved
    • Type de données : Texte
    • Étiquette du champ : Level Achieved
    • Longueur : 16
    • Nom du champ : Level_Achieved
    • Obligatoire : Non
  • Lives Used This Game
    • Type de données : Numéro
    • Étiquette du champ : Lives Used This Game
    • Longueur : 18
    • Décimales : 0
    • Nom du champ : Lives_This_Game
    • Obligatoire : Non
  • Platform
    • Type de données : Texte
    • Étiquette du champ : Platform
    • Longueur : 16
    • Nom du champ : Game_Platform
    • Obligatoire : Oui
  • Score This Game
    • Type de données : Texte
    • Étiquette du champ : Score This Game
    • Longueur : 16
    • Nom du champ : Score_This_Game
    • Obligatoire : Non
  • Compte
    • Type de données : Référence
    • Associé à : Compte
    • Étiquette du champ : Compte
    • Nom du champ : Compte
    • Obligatoire : Oui
  • Date of Play
    • Type de données : Date/heure
    • Étiquette du champ : Date of Play
    • Nom du champ : Play_Date
    • Obligatoire : Oui
  • Play Duration
    • Type de données : Numéro
    • Étiquette du champ : Play Duration
    • Longueur : 16
    • Décimales : 2
    • Nom du champ : Play_Duration
    • Obligatoire : Non

Vous disposez maintenant de huit champs pour suivre toutes les interactions de vos joueurs. Bravo !

Champs personnalisés du Big Object

Détails de l’index d’un Big Object

Nom du champ

Valeurs

Étiquette

Customer Interactions Index

Nom

CustomerInteractionsIndex

Champs d’index

Position d’index 1: Account__c, Décroissant

Position d’index 2: Game_Platform__c, Croissant

Position d’index 3: Play_Date__c, Décroissant

Déploiement des Big Objects

Maintenant que vous avez défini votre Big Object personnalisé, vous êtes prêt à le déployer. Cliquez sur Modifier sur le Big Object et définissez son statut de déploiement sur Déployé.

Les Big Objects tels qu’ils apparaissent dans la Configuration

Vous êtes maintenant prêt à commencer à utiliser votre nouveau Big Object personnalisé.

Un Big Object personnalisé dans la Configuration.

De là, vous pouvez modifier les étiquettes et les noms de votre Big Object personnalisé et de ses champs, mais vous ne pouvez ni modifier ni supprimer l’index. Pour le modifier, recommencez avec un nouveau Big Object. Vous pouvez aussi supprimer un Big Object personnalisé depuis la Configuration. Les Big Objects personnalisés supprimés sont conservés pendant 15 jours. Pendant cette période, vous pourrez les restaurer ou les supprimer définitivement, mais ensuite, les Big Objects seront définitivement supprimés de toute façon.

Renseignement des Big Objects

Il existe deux méthodes pour remplir un Big Object. Vous pouvez soit utiliser un fichier .csv avec Data Loader ou l’API, soit le faire entièrement via Apex.

Lorsque vous utilisez un fichier .csv, la première ligne de votre fichier doit contenir les étiquettes des champs utilisés pour mapper les données .csv avec votre Big Object personnalisé. Chargez les données dans le Big Object à l’aide de Data Loader ou via l’API de transfert en masse ou l’API SOAP. Voici le fichier .csv que nous utilisons pour charger les données vers notre Big Object Customer_Interaction__b. Un Big Object peut prendre en charge bien plus de données que celles que nous avons fournies ici à titre d’exemple.

Date of Play,In-Game Purchase,Level Achieved,Lives Used This Game,Platform,Play Duration,Score This Game,Account

2015-01-01T23:01:01Z,A12569,57,7,PC,25,55736,001R000000302D3
2015-01-03T13:22:01Z,B78945,58,7,PC,35,61209,001R000000302D3
2015-01-04T15:16:01Z,D12156,43,5,iOS,45,36148,001R000000302D3

Si vous voulez utiliser Apex pour remplir Customer_Interaction__b, utilisez la méthode insertImmediate.

// Define the record

Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = 3;
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
// Insert the record, which creates a new record
database.insertImmediate(bo);

// Define the record
Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = 3;
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
// Modify a field in the index
bo.Game_Platform__c = 'Mac';
// Insert the record, creating a new record because the primary key has changed
database.insertImmediate(bo);

// Define the record
Customer_Interaction__b bo = new Customer_Interaction__b();
bo.Account__c = '001R000000302D3';
bo.Game_Platform__c = 'PC';
bo.Play_Date__c = DateTime.newInstance(2018, 2, 5);
bo.In_Game_Purchase__c = 'A12569';
bo.Level_Achieved__c = '45';
bo.Lives_This_Game__c = 3;
bo.Score_This_Game__c = '5500';
bo.Play_Duration__c = 25;
// Modify a field not included in the index
bo.Level_Achieved__c = '1';
// Insert the record, which updates the second record because the index is the same
database.insertImmediate(bo);


Avertissement

Avertissement

Les tests Apex utilisant des appels DML mixtes ne sont pas autorisés et échouent. Si vous n’écrivez qu’au Big Object, le test insère des données de mauvaise qualité dans le Big Object cible que vous devez supprimer manuellement. Pour placer des appels DML de test vers le Big Object cible, utilisez plutôt une infrastructure de test avec l’API Apex stub.

Réinsérer un enregistrement avec le même index mais des données différentes produit des résultats similaires à une opération de mise à jour/insertion. Si un enregistrement existe à cet index, l’insertion écrase ses valeurs avec les nouvelles données. L’insertion est idempotente, donc insérer des données déjà existantes ne produit pas de doublons. La réinsertion est utile pour télécharger des millions d’enregistrements. Si une erreur se produit, la réinsertion renvoie les téléchargements ratés sans dupliquer les données. Pendant la réinsertion, un nouvel enregistrement est inséré si aucun n’existe à l’index donné.

Ressources

Formez-vous gratuitement !
Créez un compte pour continuer.
Qu’est-ce que vous y gagnez ?
  • Obtenez des recommandations personnalisées pour vos objectifs de carrière
  • Mettez en pratique vos compétences grâce à des défis pratiques et à des questionnaires
  • Suivez et partagez vos progrès avec des employeurs
  • Découvrez des opportunités de mentorat et de carrière