IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

SOQL - jointure


Sujet :

Salesforce.com

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut SOQL - jointure
    Bonjour,

    Je souhaite créer une requête qui me permettra de récupérer les info d'un case et des informations du champ personnalisé compte qui lui est affecté.
    Je souhaite pouvoir avoir ces info dans une seul ligne, je fais donc la requête pour tester:

    Select c.RecordTypeId, c.AgenceId__r.FirstName, c.AgenceId__r.Name, c.AgenceId__c From Case c
    where Id ='500xxxxxxxxxxx'

    Cela va me donner (via l'environnement eclipse) cela:
    Nom : Capture.PNG
Affichages : 1635
Taille : 38,4 Ko

    Moi ce que je souhaite c'est de pouvoir avoir le name qui s'affiche à la place du champ agenceid__r. En effet je suis obligé de cliquer sur Account pour m'afficher le name.

    Est ce possible?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Citation Envoyé par max33370 Voir le message

    Moi ce que je souhaite c'est de pouvoir avoir le name qui s'affiche à la place du champ agenceid__r. En effet je suis obligé de cliquer sur Account pour m'afficher le name.

    Est ce possible?

    Merci
    Pas vraiment, mais tu as acces à l'information directement depuis l'objet Case que te retourne la requete
    case.AgenceId__r.Name

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Pas vraiment, mais tu as acces à l'information directement depuis l'objet Case que te retourne la requete
    case.AgenceId__r.Name
    Oui ça je sais, mais moi j'en ai besoin pour mon client. Il veut que je lui livre une requête qui lui permette de récupérer (via dataloader) ces données sur une ligne.

    Donc c'est pas possible!? Et par data loader non plus?

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Citation Envoyé par max33370 Voir le message
    Oui ça je sais, mais moi j'en ai besoin pour mon client. Il veut que je lui livre une requête qui lui permette de récupérer (via dataloader) ces données sur une ligne.
    Donc c'est pas possible!? Et par data loader non plus?
    Pourquoi ne pas passer par un Report et l'export en fichier (xls ou csv) ?

    sinon il y a un outil "developper" le workbench
    https://workbench.developerforce.com
    il faut activer l'option "Allows SOQL Parent Relationship Queries" dans les settings mais tu devrais voir le resultat de ta requete

    mais je te déconseille ça pour un client ...

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci

    Je suis donc passé par workbench pour tester:
    J'ai fait cette requête (qui passe):
    Select c.RecordTypeId, c.Adresse_bien__c, c.IsClosed, c.Id, c.EmprunteurId__c, c.EmprunteurId__r.Id,
    c.EmprunteurId__r.GotApport_TEC__c, c.Co_emprunteurId__c, c.Co_emprunteurId__r.GotApport_TEC__c ,
    c.Co_emprunteurId__r.Id, c.Adresse__c, c.Adresse_co__c, (Select Id, WhatId From Tasks) From Case c

    Puis celle là, plus simple mais qui marche pas, pourquoi?
    Select c.Id, (Select Id, WhatId From Tasks) From Case c

    Message d'erreur:
    Parent relationship queries are disabled in Workbench: c.Id

    Due to issues rendering query results, parent relationship queries are disabled by default. If you understand these limitations, parent relationship queries can be enabled under Settings. Alternatively, parent relationship queries can be run with REST Explorer under the Utilities menu without issue.
    Ca ressemble à un bug salesforce, qu'en penses tu?
    Par contre quand j'active Allows SOQL Parent Relationship Queries ça marche.


    Je vais maintenant essayer de le créer via l'outil rapport.
    Encore un grand merci pour ton aide

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Alors en passant par les apports permettant de faire des 'rapports' je constate que l'on ne peut avoir accès à des champs personnalisé.
    Exemple je créé un champ personnalisé dans l'objet Case (appelé requête aussi):
    Agence AgenceId__c Référence(Compte)

    Et bien dans les rapports je ne pourrai pas avoir accès aux champs de cet objet personnalisé compte.
    Ou alors il y a quelque chose que je n'ai pas compris.

    Je me trompe?

    Merci

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Oui tu te trompes,
    (enfin presque pas, par defaut c'est vrai que tu n'as pas l'info)

    Actuellement dans l'écran des rapports, tu peux avoir les comptes, les requetes, les requetes avec les comptes, mais pas les requetes avec les agences (ton champ custom)

    il faut donc dans un premier temps créé un Type de rapport (via configuration > Créer > Types de rapport)
    cela va te permettre de créer le modele de données sur lequel tu vas ensuite faire ton rapport

    l'object principal va être requete et normalement tu devrais avoir ton objet Agence (compte) dans les objets secondaires ...

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Je vois. Je suis donc passé par la création d'un type de rapport mais une fois l'objet requête sélectionné (Case), salesforce ne me permet pas de selectionner mes champs personnalisés qui sont créé dans l'objet requête:

    Nom : Capture.JPG
Affichages : 1618
Taille : 54,3 Ko

    Pour info le champ Agence est un simple champ personnalisé dans l'objet requête (case) qui utilise l'objet compte :
    Agence AgenceId__c Référence(Compte)

    Via la photo ci-dessus on voit seulement les Objets personnalisés affecté à une requête et non les champs personnalisé.

    En fait via l'outil de rapport standard. L'outil me propose bien l'accès aux champs de mes champs objets personnalisée (Champs de l'objet 'Agence' Référence(Compte)), c'est juste que les données ne s'affiche pas. Voir ci dessous:

    Nom : CaptVure.JPG
Affichages : 1535
Taille : 29,5 Ko

    N° SIREN est vide alors que dans le compte (champ Agence) MTX DEV NANT j'ai le SIREN bien renseigné.
    J'ai donc testé d'exporter le csv et là encore c'est vide. J'ai aussi essayé avec d'autres champ du compte (Agence) mais tout est vide

    Une idée du pourquoi?
    Merci

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Hum, je n'avais pas remarqué mais tu créés un 2nd lookupfield sur l'objet "Requete" vers l'objet "Compte"
    alors qu'il en existe deja un !

    du coup, dans ton report, le champ SIREN correspond au champ de l'objet Compte de la liaison standard "Account"

    j'ai fait le test, rien ne t'empeche effectivement de créé ton champ Agence
    et il faut bien passer par un nouveau type de rapport (my bad, il faut selectionner l'objet Compte comme principal) et la on constate dans la liste un doublon de l'objet "Requete", ce n'est pas une erreur, l'un correspond à la liaison sur le champ standard, l'autre celui de ton champ personnalisé (bonne chance pour trouver, va falloir tester les 2)

    Ensuite le rapport va t'afficher les champs personnalisés ...

    Vincent

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci Vincent.
    J'ai donc créé un nouveau type de rapport. Objet principale Compte

    Nom : Captuccre.JPG
Affichages : 1605
Taille : 49,4 Ko

    Puis je sélectionne Apport (Agence) - Comme tu peux le voir on a bien requête (mais qu'une fois). L'objet Apport est une requête. Nous l'avons renommé.
    Cela dit ça ne me donne pas exactement ce que je souhaite car moi je veux la liste de mes apports avec le détail des champs du compte Agence:
    -champ 1 de l'Apport, champ 2 de l'Apport, champ 3 de l'Apport, champ 1 de l'objet perso Agence (compte), champ 2 de l'objet perso Agence (compte), champ 2 de l'objet perso Agence (compte)

    Via cette pratique je n'ai que les infos du compte.
    C'est quand même assez embêtant car c'est pourtant simple.

    Ex: Un étudiant se situe dans 1,1 classe (pour ma part c'est pareil, on a une agence par case (requête)).
    Une table classe
    Une table étudiant

    Je veux les info de la classe en plus des info de l'étudiant en une seul ligne:
    nom, prenom, age, nom classe, nbre place de la classe

    Bref c'est pourtant super simple! C'est fou que l'on ne puisse avoir cela via salesforce. J'ai vraiment cherché dans tous les sens et mis à part via workbench, cela semble impossible!

    Toi tu arrives à récupérer toutes les données?

  11. #11
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Il y a surement un truc que je pige pas
    lorsque tu crées ce type de rapport, l'écran suivant te permet de pré-selectionner les champs des 2 objets, tu as donc accès à tout (sur les 2 objets) ?!

    y a pas un 3e objet ou une liaison en plus ?!

    dans le cas extreme, si tu travailles sur une sandbox tu me donnes un acces et la requete SOQL du workbench

  12. #12
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci Vincent.

    Ok donc il faut en plus présélectionné même si on a déjà selectionné Apport (Agence)
    En fait par défaut le fait de selectionner Apport (Agence), ça ne sélectionne pas les champs de l'apport.
    Donc si ça peut aider:

    Une fois le type de rapport créé. Objet principale compte puis Apport(Agence), allez en bas de la page, et là on voit Apports (Agence) 0
    Cliquez sur modifier la présentation
    Nom : 1.JPG
Affichages : 1523
Taille : 26,5 Ko
    Puis aller en bas de la page, sélectionner dans la listebox Apport(Agence) pour avoir tous les champs
    Nom : 2.JPG
Affichages : 1710
Taille : 78,7 Ko
    Créer une section Apport et glisser/déposer les champs
    Nom : 3.JPG
Affichages : 1594
Taille : 57,8 Ko
    Enregistrer
    Nom : 4.JPG
Affichages : 1526
Taille : 23,4 Ko

    Encore merci Vincent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb jointure texture
    Par dweis dans le forum DirectX
    Réponses: 2
    Dernier message: 24/06/2003, 13h33
  2. Jointures en SQL
    Par Guizz dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/06/2003, 12h21
  3. Réponses: 14
    Dernier message: 17/03/2003, 18h31
  4. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo