*French* Salesforce1: Data Model and Relationships

1 477 vues

Publié le

La plateforme Salesforce1: modèle de données, relations et requêtes.

Durant ce webinar, nos experts vous présenterons comment personnaliser le modèle de données de la plateforme Salesforce 1. Vous apprendrez à gérer differents types de relations et leur utilisation dans vos requêtes ou dans votre code Apex. Si vous hésitez entre “Lookup” ou “Master Detail”, ou si cette question ne vous parle pas, ce webinar est fait pour vous.

Les sujets traités seront :

Tour d’horizon des différents outils disponibles pour créer des relations
Explication de la différence entre les relations de type Lookup et Master detail
Les relations dans les requêtes à l'API REST
Les requêtes standards et patterns Apex dans l’utilisation des données liées

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 477
Sur SlideShare
0
Issues des intégrations
0
Intégrations
601
Actions
Partages
0
Téléchargements
25
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

*French* Salesforce1: Data Model and Relationships

  1. 1. Webinar: Modèle de données, relations et SOQL 29 avril 2014
  2. 2. Dalil Djidel Architecte technique @djideldalil
  3. 3. Safe Harbor Déclaration conforme à la directive « Safe Harbor » contenue dans la loi américaine intitulée « Private Securities Litigation Reform Act » de 1995 : Cette présentation est susceptible de comporter des déclarations conditionnelles, qui impliquent nécessairement une certaine prise de risque, des incertitudes et des hypothèses. Si l'une de ces incertitudes se concrétise ou si certaines hypothèses se révèlent incorrectes, les résultats de salesforce.com, Inc. pourraient être sensiblement différents de ceux explicitement ou implicitement avancés par nos déclarations conditionnelles. Toutes les déclarations ne portant pas sur des faits historiques peuvent être considérées comme conditionnelles, y compris les projections de disponibilité des produits ou des services, d'augmentation du nombre d'abonnés, de bénéfices, de chiffre d'affaires ou autre valeur financière, toute déclaration concernant les stratégies ou les plans de gestion des opérations à venir, toute opinion personnelle, toute déclaration concernant les services ou les développements technologiques nouveaux, planifiés ou mis à niveau, ainsi que les contrats clients et l'utilisation de nos services. Les incertitudes et les risques susmentionnés concernent, sans s'y limiter, les risques associés au développement et à la fourniture de nouvelles fonctionnalités pour notre service, aux nouveaux produits et services, à notre nouveau modèle commercial, nos pertes d'exploitation antérieures, les éventuelles fluctuations de nos résultats d'exploitation et de notre taux de croissance, les interruptions ou les retards de notre système d'hébergement, les failles des mesures de sécurité, l'issue des litiges, les risques associés aux fusions et acquisitions réelles et éventuelles, la jeunesse du marché dans lequel nous évoluons, notre historique relativement limité, notre capacité à développer, fidéliser et motiver notre personnel et à gérer notre croissance, les nouvelles éditions de notre service, ainsi que le déploiement réussi chez les clients, notre expérience limitée en matière de revente de produits tiers, et l'utilisation et les ventes à de grands comptes. Vous trouverez plus d'informations sur les facteurs pouvant influencer les résultats financiers de salesforce.com, Inc. dans notre rapport annuel (formulaire 10-K) pour l'exercice fiscal le plus récent et dans notre rapport trimestriel (formulaire 10-Q) pour le trimestre fiscal le plus récent. Ce rapport et d'autres documents contenant d'importantes informations sont accessibles sur notre site web dans la partie Informations Investisseurs, section Documents pour la Commission des opérations de bourse (SEC). Certains services ou fonctions qui ne sont pas encore commercialisés et sont mentionnés ici ou dans d'autres présentations, communiqués de presse ou déclarations publiques, ne sont pas encore disponibles et ne seront peut-être pas livrés à temps, voire pas livrés du tout. Les clients qui achètent nos services doivent prendre leur décision sur la base des fonctions actuellement disponibles. Salesforce.com, Inc. n'est pas tenu et n'a pas l'intention de mettre à jour ces déclarations conditionnelles.
  4. 4. Agenda Modèle de données & relations Comparaison de Force.com avec un SGBDR Types de relations & jointures pré-définies Relations & SOQL SOQL vs SQL Requêtes sur les relations
  5. 5. Pré-requis  Connaissance de base de la plateforme Force.com : – Création d’objets – Ajout de champs – Navigation dans l’interface utilisateur  Connaissance des concepts des bases de données relationnelles – Tables – Clés primaires / étrangères – Jointures
  6. 6. Modèle de données et relations Relations & SOQL Agenda
  7. 7. Modèle de données sous Force.com  sObject: – Structure similaire à une table • Enregistrements • Champs – Extensible – Requêtable / Modifiable – Relations  Fonctions natives: – IHM – Sécurité • CRUD • Granularité champs • Enregistrement (Access Control List) – APIs REST & SOAP
  8. 8. Modèle de données standard  Objets standard – Compte – Contact – Piste – Opportunité – Demande – …  Champs standard – Id – Nom – Créé par/Date – Modifié par/Date – Id propriétaire – …
  9. 9. Modèle extensible  Objets personnalisés – Facture__c – Livraison__c – …  Champs personnalisés – Statut__c – Type__c – Heure_Debut__c – Heure_Fin__c – …
  10. 10. Relations : Jointure pré-définie  SGBDR – Jointure à l’exécution en SQL ou dans une vue  Force.com – Jointure pré-définie à la conception – Similaire à une contrainte d’intégrité
  11. 11. Principal - DétailRéférence Types de relations NonOptionnel CascadeEffacer/Bloquer/Cascade Nul Suppression Hérité du parentIndépendant du parent 225 Partage Champs maxi
  12. 12. Démo
  13. 13. Modèle de données et relations Relations & SOQL Agenda
  14. 14. SOQL  Salesforce Object Query Language  Syntaxe similaire au SQL  Requête les objets Force.com  Utilisé : – En Apex – Dans les outils de développement (Console, Eclipse, Workbench, …) – API (REST, SOAP, Bulk, …)
  15. 15. De SQL à SOQL  Semblent proches  Différences importantes  Apprenez les différences  Utilisez de bonnes pratiques de conception
  16. 16. De SQL à SOQL : Les similarités  Structure tabulaire  Syntaxe des requêtes similaire  Index  Transactionnel  Triggers SELECT Id, Name, Capacity__c FROM Room__c WHERE Capacity__c > 10
  17. 17. De SQL à SOQL : Les différences évidentes  Pas de select *  Pas de Vues  Lecture seule  Index limités  Mapping objet-relationnel automatique  Protection contre les modifications des schémas
  18. 18. De SQL à SOQL : Les autres différences  sObjects ne sont pas des tables physiques – environnement multi-tenant  Les relations sont des métadonnées – Intégrité référentielle – Jointures pré-définies – Syntaxe propre aux requêtes sur les relations  Usage monitoré – Limites Batch API – Governor Limits Apex
  19. 19. Les suffixes __c et __r Room__c Workshop__c Id Id Room__c Room__r Workshops__r Type: List<Workshop__c> Type: Id Type: Room__c 1-M
  20. 20. Requête sur une relation : Enfant vers parent SELECT Id, Name, Room__c, Room__r.Id, Room__r.Capacity__c FROM Workshop__c WHERE Status__c = ’Open’ [ { "Id": "a0145000000aBf4AAE", "Name": "Yoga for Beginners", "Room__c": "a00vn000000dU3dAAE", "Room__r": { "Id": "a00vn000000dU3dAAE", "Capacity__c": 10 } }, { "Id": "a0145000000aBf4AAE", "Name": "Yoga for Beginners", "Room__c": "", "Room__r": "" }, ... ]
  21. 21. Requête sur une relation : Parent vers enfant SELECT Id, Name, (SELECT Id, Status__c FROM Workshops__r) FROM Room__c WHERE Capacity__c > 10 [ { "Id": "a00vn000000dU3dAAE", "Name": "Salon 1 West", "Workshops__r": [ { "Id": "a0145000000aBf4AAE", "Status__c": "Open" }, { "Id": "a0145000000aBd4AAE", "Status__c": "Full" } ] }, ... ]
  22. 22. Champ de la relation dans le prédicat Select Id, Name, Room__r.Name, Room__r.Capacity__c FROM Workshop__c WHERE Room__r.Capacity__c > 8 [ { "Id": "a0145000000aBf4AAE", "Name": "Yoga for Beginners", "Room__c": "a00vn000000dU3dAAE", "Room__r": { "Id": "a00vn000000dU3dAAE", "Capacity__c": 10 } }, {...}, ... ]
  23. 23. Agrégat SELECT COUNT(Id) rmCount, MAX(Capacity__c) maxRmCap, Configuration__c FROM Room__c GROUP BY Configuration__c [ { "rmCount": 4, "maxRmCap": 6, "Configuration__c": "Classroom" }, { "rmCount": 2, "maxRmCap": 10, "Configuration__c": "Theatre" }, ... ]
  24. 24. Démo
  25. 25. En résumé  Modèle de données & relations – Nombreuses similarités – Quelques différences importantes – Jointures pré-définies – Deux types de relations  Relations & SOQL – SOQL gère les relations mais n’est pas “relationnel” – Les limites ne peuvent être ignorées – Les bonnes pratiques de conception s’appliquent toujours mais peuvent être revues
  26. 26. Lectures complémentaires  Article: De SQL à SOQL http://bit.ly/sql2soql  Guide SOQL-SOSL http://bit.ly/soqlsosl  Architecture partagée http://bit.ly/sharingarch  Limites http://bit.ly/apexgovlim  Architecture Multi-Tenant http://bit.ly/sfmultiten
  27. 27. Prochain webinar: 20 Mai : Introduction au développement d’applications mobiles avec la plateforme Salesforce1 sans code

×