Gonexa University

Requête personnalisée (Objet secondaire)

Les requêtes personnalisées permettent de pouvoir naviguer dans le modèle d'objet Salesforce sans forcément avoir un lien avec le contexte de départ.

Pré-requis
✓ Avoir déjà fait la configuration d'un modèle principal
✓ Avoir un objet principal configuré
✓ Maîtriser les notions de bases des requêtes SOQL

Qu'est-ce que c'est ?

Qu'est ce qu'une requête personnalisée ?

La requête personnalisée ajoute un second point d'entrée dans le data model, en plus de l'objet principal. Elle permet d'accéder à des objets sans lien direct avec lui. C'est utile dans de rares cas où le data model ne permet pas de remonter jusqu'à la donnée souhaitée.

Pourquoi faire une Requête personnalisée ?

etude de cas

Quand utiliser une requête personnalisée ?

Dans le cas ou vous souhaiter afficher des données d'un objet inaccessible depuis l'objet principal, c'est à dire sans lien avec l'objet principal.

Si l'objet principal est Contact on peut accéder à certains objets sans contrainte, mais d'autres sont isolés et impossible à atteindre :

✅ Son compte (objet parent)
✅ Ses requêtes (objet enfant)
✅ Le propriétaire du compte (objet parent)
❌ La session de formation
❌ Les opportunités du compte

DATA MODEL SANS OBJET PERSONNALISÉ


Solution : Ajouter une requête personnalisée, qui va créer un 2e point de départ c'est à dire un nouvel objet principal qui permettra d'accéder aux informations inaccessibles.

Créer une requête personnalisée avec un seul résultat

Cas #1

Exemple de requête personnalisée en lien avec l'objet principal

CAS D'EXEMPLE
Récupérer le contact décisionnaire lié à mon compte

Si l'objet principal est Compte et que nous souhaitons récupérer le contact de type décisionnaire pour afficher son nom et prénom dans le document généré

  • Depuis votre modèle de document, rendez-vous dans le composant “Assistant Gonexa”
  • Cliquez sur “Requête personnalisée”
  • Choisissez l'objet Salesforce concerné. Dans notre cas il s'agit de "Contact"
  • L'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
  • Sélectionnez "Uniquement le premier enregistrement"
  • Rédiger la requête de récupération de l’ID, cette requête SOQL vous permet de récupérer l’enregistrement que vous souhaitez selon la manière suivante :

Comment rédiger une Requête qui ne renvoie qu'un seul résultat avec un lien avec l'objet principal

La syntaxe SELECT Id FROM [objet] WHERE [critère1] AND [critère2] permet de récupérer un record précis répondant aux critères définis

Paramètres :
[objet] = l'objet sur lequel porte la requête (ex. : Contact)
[critère1] = critère obligatoire permettant de récupérer uniquement les enregistrements liés à l'objet principal. Il doit faire le lien avec le {RecordId} (ex. : AccountId = {RecordId}).
[critère2] = (optionnel) : critère supplémentaire permettant de cibler plus précisément l'enregistrement recherché (ex. : Type__c = 'Décisionnaire')


Exemple de requête personnalisée sans lien avec l'objet principal

Dans le cas où on souhaite afficher des informations sur la Session de formation, objet isolé, initialement inaccessible. On ajoutera une requête personnalisée "Session de formation" qui renvoie un seul résultat comme la date de la prochaine session de formation.

DATA MODEL AVEC UN OBJET PERSONNALISÉ
  • Depuis votre modèle de document, rendez-vous dans le composant “Assistant Gonexa”
  • Cliquez sur “Requête personnalisée”
  • Choisissez l'objet Salesforce concerné. Dans notre cas il s'agit de "Session de formation"
  • L'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
  • Sélectionnez "Uniquement le premier enregistrement"
  • Rédiger la requête de récupération de l’ID, cette requête SOQL vous permet de récupérer l’enregistrement que vous souhaitez selon la manière suivante :

Comment rédiger une Requête qui ne renvoie qu'un seul résultat sans lien avec l'objet principal

La syntaxe SELECT Id FROM [objet] WHERE [critère] permet de récupérer un record précis répondant au critère défini

Paramètres :
[objet] = l'objet sur lequel porte la requête (ex. : Session__c)
[critère] = critère selon lequel récupérer le bon record  (ex. : Name = 'Formation')

Pour exemple
Dans notre exemple, on veut récupérer la session de formation nommée "Formation Gonexa" créé le plus récemment. La requête sera sera SELECT Id FROM Session__c WHERE Name = 'Formation Gonexa' ORDER BY CreatedDate Asc

Astuce
Utilisez Salesforce Inspector pour trouver la requête qui permet de renvoyer le bon record.


Créer l'objet enfant de la requête personnalisée "Session de formation"

Dans le cas où on souhaite afficher les certifications de la session de formation, on ajoutera un objet enfant à l'objet secondaire.

DATA MODEL AVEC UN OBJET PERSONNALISÉ et UN OBJET ENFANT
  • Toujours depuis la configuration du modèle de document et dans le bloc "Assistant Gonexa" cliquez sur "Objet enfant" en dessous de votre requête personnalisée
  • Paramétrez l'objet comme d'habitude en suivant la procédure de création de tableau qui est similaire à l'objet principal


Créer une requête personnalisée avec plusieurs résultats

cas #2

Dans le cas d’une requête personnalisée avec plusieurs résultats, l’objet choisi peut ou non être lié à l’objet principal. Il se trouvera dans un tableau dans le document.

  • Rendez-vous dans le composant Assistant Gonexa, et cliquez sur “Requête personnalisée”
  • Choisissez l’objet Salesforce concerné, l'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
  • Sélectionnez “Tous les enregistrements”, quelques champs apparaissent en plus. Si l’objet que vous souhaitez utiliser est lié à l’objet principal du modèle de document, renseignez le champ de liaison entre les deux dans le champ “Lien avec l’objet principal”. S’il n’y a pas de lien vous pouvez laisser ce champ vide
  • Vous pouvez ensuite ajouter un filtre et un tri sur les enregistrements à récupérer si cela est nécessaire


Exemple de requête personnalisée en lien avec l'objet principal

CAS D'EXEMPLE
Ajouter un tableau dans le Doc sur un objet lié

Si l'objet principal est Compte et que nous souhaitons afficher les membres de campagnes correspondant aux contacts du compte. 

  • Choisissez l'objet "Membre de champagne"
  • Sélectionnez "Tous les enregistrements"
  • Dans "Lien avec l'objet principal", remontez la relation poru sélectionner "compte"
  • Depuis l'objet "Membre de campagne" remontez sur l'objet "Contact" pour arriver au "Compte"
  • Ajoutez un tableau dans votre modèle de document et insérez-y les balises


Exemple de requête personnalisée sans lien avec l'objet principal

CAS D'EXEMPLE
Ajouter un tableau filtré

Dans le cas où on souhaite afficher tous les produits de type Options disponibles dans Salesforce et les ajouter dans un tableau.

  • Choisissez l'objet "Produit"
  • Sélectionnez "Tous les enregistrements"
  • Puisqu'on souhaite afficher tous les produits disponible, laissez le champ "Lien avec l'objet principal" vide
  • Dans la section "Filtrer" ajoutez un filtre sur le type = "Options"
  • Ajoutez un tableau dans votre modèle de document et insérez-y les balises