*french* salesforce1: data model and relationships

27
Webinar: Modèle de données, relations et SOQL 29 avril 2014

Upload: salesforce-developers

Post on 26-Jan-2015

106 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: *French* Salesforce1: Data Model and Relationships

Webinar: Modèle de données, relations et SOQL29 avril 2014

Page 2: *French* Salesforce1: Data Model and Relationships

Dalil DjidelArchitecte technique@djideldalil

Page 3: *French* Salesforce1: Data Model and Relationships

Safe HarborDé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.

Page 4: *French* Salesforce1: Data Model and Relationships

Agenda

Modèle de données & relationsComparaison de Force.com avec un SGBDR

Types de relations & jointures pré-définies

Relations & SOQLSOQL vs SQL

Requêtes sur les relations

Page 5: *French* Salesforce1: Data Model and Relationships

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

Page 6: *French* Salesforce1: Data Model and Relationships

Modèle de données et relations

Relations & SOQL

Agenda

Page 7: *French* Salesforce1: Data Model and Relationships

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

Page 8: *French* Salesforce1: Data Model and Relationships

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

– …

Page 9: *French* Salesforce1: Data Model and Relationships

Modèle extensible

Objets personnalisés– Facture__c

– Livraison__c

– …

Champs personnalisés– Statut__c

– Type__c

– Heure_Debut__c

– Heure_Fin__c

– …

Page 10: *French* Salesforce1: Data Model and Relationships

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é

Page 11: *French* Salesforce1: Data Model and Relationships

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

Page 12: *French* Salesforce1: Data Model and Relationships

Démo

Page 13: *French* Salesforce1: Data Model and Relationships

Modèle de données et relations

Relations & SOQL

Agenda

Page 14: *French* Salesforce1: Data Model and Relationships

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, …)

Page 15: *French* Salesforce1: Data Model and Relationships

De SQL à SOQL

Semblent proches

Différences importantes

Apprenez les différences

Utilisez de bonnes pratiques de conception

Page 16: *French* Salesforce1: Data Model and Relationships

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

Page 17: *French* Salesforce1: Data Model and Relationships

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

Page 18: *French* Salesforce1: Data Model and Relationships

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

Page 19: *French* Salesforce1: Data Model and Relationships

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

Page 20: *French* Salesforce1: Data Model and Relationships

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": "" }, ...]

Page 21: *French* Salesforce1: Data Model and Relationships

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" } ] }, ...]

Page 22: *French* Salesforce1: Data Model and Relationships

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 } }, {...}, ...]

Page 23: *French* Salesforce1: Data Model and Relationships

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" }, ...]

Page 24: *French* Salesforce1: Data Model and Relationships

Démo

Page 25: *French* Salesforce1: Data Model and Relationships

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

Page 26: *French* Salesforce1: Data Model and Relationships

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

Page 27: *French* Salesforce1: Data Model and Relationships

Prochain webinar:20 Mai : Introduction au développement d’applications mobiles avec la plateforme Salesforce1 sans code