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 :

Point sur: with sharing, @isTest(SeeAllData=true) et Database.insert(caseList,false)


Sujet :

Salesforce.com

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut Point sur: with sharing, @isTest(SeeAllData=true) et Database.insert(caseList,false)
    Bonjour,


    Est-il possible de voir ensemble quelques points. J'ai regardé les tutaux salesforce mais certain points me semblent pas très clair (pour ma part).

    1) Quelle est la différence si on utilise:
    Database.insert(caseList,false) et insert(caseList) ?
    Est ce que Database.insert(caseList,TRUE ) = insert(caseList) ?
    Ou Database.insert(caseList,TRUE ) = Database.insert(caseList)?

    A ce que j'ai pu lire, le false dans Database.insert(caseList,false) est utilisé pour faire la mise à jour même s'il y a un problème dans un objet, est ce bien ça?


    2)Dans les batch on peut mettre en haut d'une classe @isTest ou @isTest(SeeAllData=true). Pour faire simple si on utilise @isTest(SeeAllData=true) on a accès à toutes les donnees enregistrées c'est ça?

    3) Et un petit dernier pour "with sharing":
    A ce que j'ai pu voir l'utilisation de with sharing informe à salesforce que l'on utilise les règles de partage (visibilité...). Est ce bien cela?


    Merci pour votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 132
    Points : 148
    Points
    148
    Par défaut
    Salut Max,

    Pour répondre à tes questions :

    1/ selon la documentation

    Le booléen dans l'instruction insert spécifie si les objets de la liste peuvent être partiellement insérés ou non
    -> true : tous les enregistrement de la liste doivent être insérés sans erreur pour la réussite de l'instruction
    -> false : certains enregistrement peuvent être en erreur, ils seront simplement pas créés, ceux sans erreur le seront

    La valeur par défaut est true donc Database.insert(caseList,TRUE ) est équivalent à Database.insert(caseList).
    Ensuite le "Database." est sous entendu donc Database.insert(caseList) est équivalent à insert(caseList).

    2/ La difference entre @isTest et @isTest(SeeAllData=true) (cf. documentation) est que "SeeAllData=true" permet à la classe de test de voir toutes les données.

    Ce n'est pas le cas par défaut, sans "SeeAllData=true" la classe de test ne voit que les données créés dans la classe.

    La bonne pratique veut que l'on créé les données utilisés par le test dans la classe et que cette classe n'accède pas aux autres données (ne pas utiliser "SeeAllData=true" sauf cas particuliers comme par exemple statuts des membres de campagne).

    Pour les classes créés dans une version inférieur à la v24, la classe de test voit toutes les données, l'instruction "SeeAllData=true" existe depuis cette version.

    3/ L'instruction "with sharing) (cf. documentation) permet effectivement de forcer les règles de visibilité sur les objets et les champs pour l'utilisateur courant qui utilise cette classe qui le contient.

    Par défaut, les classes apex s’exécutent dans un contexte dit "système" (comme pour un administrateur, elles voient toutes les données - objets et champs).

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 177
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup pour ta réponse. C'est plus clair maintenant

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 132
    Points : 148
    Points
    148
    Par défaut
    au plaisir,

    n'hésite pas à chercher dans la doc, elle est souvent bien faite

    le plus simple est passer directement par google avec les bons mots clés

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

Discussions similaires

  1. Exportation d'une liste share point sur excel
    Par nisrin dans le forum InfoPath
    Réponses: 4
    Dernier message: 12/04/2015, 11h26
  2. identifier un point sur l'ecran
    Par alionel dans le forum MFC
    Réponses: 2
    Dernier message: 25/02/2005, 17h12
  3. calcul d'un point sur la base d'un cone
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/11/2003, 22h18

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