Prérequis de la formation
Pourquoi une requête personnalisée ?
Une requête personnalisée permet d'obtenir un 2ème point de départ différent de l'objet principal pour permettre d'aller chercher des données dans un autre objet qui n'a pas de lien direct avec mon objet principal.
Exemple
Vous êtes sur un objet principal au niveau d'un contact, vous pourriez avoir le besoin d'afficher la liste des opportunités en cours sur le compte du contact en question.
Le modèle d'objet ressemblerait à ça :
Créer un objet secondaire avec un seul résultat
#1
Nous souhaitons ici récupérer un seul résultat qui est un compte
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 "Account"]
L'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
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.
Requête de récupération dans notre exemple : SELECT AccountId FROM Contact WHERE id = {RecordId}
SELECT AccountId
AccountId est le nom API du champ précis sur l'Objet Contact. Attention, si vous êtes sur un lookup personnalisé, le champ aurait pu s'appeler "Compte__c"
FROM Contact
On indique simplement l'objet principal ici à partir duquel on fait la requête
WHERE id = {RecordId}
Cela permet d'identifier le compte qui est lié au contact. La balise {RecordId} est bien à formaliser précisément de cette manière.
Créer l'objet enfant de l'objet secondaire "Opportunity"
Après avoir créé un objet secondaire en faisant une requête personnalisée, vous pouvez à présent créer des objets enfants exactement de la même manière qu'à partir d'un objet principal
Depuis le composant Assistant Gonexa, l'objet secondaire Account apparaît en rouge au même titre qu'un objet principal
Autres exemples de requête de récupération d'ID
Objet principal est un Devis et je souhaite faire un Objet secondaire Compte
Requête de récupération : SELECT AccountId FROM Quote WHERE id = {RecordId}
Objet principal est une Session de Formation et je souhaite faire un Objet secondaire Compte
Requête de récupération : SELECT Compte__c FROM Session_Formation__c WHERE id = {RecordId}
Objet principal est une Opportunité et je souhaite faire un Objet secondaire Compte Partenaire du Compte
Dans ce cas on créé une requête SOQL imbriquée
Requête de récupération : SELECT Compte_partenaire__c FROM Account WHERE Id IN (SELECT AccountId FROM Opportunity WHERE Id = {RecordId})
💡 L'astuce du Support, prenez Salesforce Inspector pour trouver la requête qui permet de renvoyer le bon record qui correspond à l'objet Principal.
Créer un objet secondaire avec plusieurs résultats
#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, et doit être 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 1 : Objet secondaire avec un lien avec l'objet principal
L'objet principal est Compte, nous souhaitons afficher les membres de campagnes correspondant aux contacts du compte.
Exemple 2 : Objet secondaire sans lien avec l'objet principal
Nous souhaitons afficher tous les produits de type Options disponibles dans notre Salesforce et les ajouter dans notre document
Dans ce cas, nous choisissons l’objet “Produit”
Il est possible de renommer l'étiquette de l'objet en "Options" pour plus de clarté dans le document
On sélectionne “Tous les enregistrements”
Etant donné que nous voulons tous les produits disponibles dans notre Salesforce, il n’est pas nécessaire de remplir le champ “Lien avec l’objet principal”, laissons le vide
Une fois cela effectué, nous pouvons ajouter nos balises à notre document. Nous récupérons plusieurs produits, les balises doivent donc être dans un tableau, au même titre qu’un objet enfant