SlideShare a Scribd company logo
1 of 27
Webinar: Modèle de données,
relations et SOQL
29 avril 2014
Dalil Djidel
Architecte technique
@djideldalil
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.
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
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
Modèle de données et relations
Relations & SOQL
Agenda
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
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
– …
Modèle extensible
 Objets personnalisés
– Facture__c
– Livraison__c
– …
 Champs personnalisés
– Statut__c
– Type__c
– Heure_Debut__c
– Heure_Fin__c
– …
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é
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
Démo
Modèle de données et relations
Relations & SOQL
Agenda
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, …)
De SQL à SOQL
 Semblent proches
 Différences importantes
 Apprenez les différences
 Utilisez de bonnes pratiques de
conception
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
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
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
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
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": ""
}, ...
]
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"
}
]
}, ...
]
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
}
},
{...},
...
]
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"
},
...
]
Démo
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
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
Prochain webinar:
20 Mai : Introduction au développement
d’applications mobiles avec la plateforme
Salesforce1 sans code

More Related Content

Viewers also liked

Los alumnos de 4º y 5º visitan la Volvo Ocean Race
Los alumnos de 4º y 5º visitan la Volvo Ocean RaceLos alumnos de 4º y 5º visitan la Volvo Ocean Race
Los alumnos de 4º y 5º visitan la Volvo Ocean Racenuricarletina
 
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...Salon e-tourisme #VeM
 
20121108 présentation trendrapport fr - def
20121108 présentation trendrapport   fr - def20121108 présentation trendrapport   fr - def
20121108 présentation trendrapport fr - defLiesbeth Vranckaert
 
lola infórmatica tema 2
lola infórmatica tema 2lola infórmatica tema 2
lola infórmatica tema 2loolaaaa08
 
Portafolio Completo
Portafolio CompletoPortafolio Completo
Portafolio CompletoMarcelafcp
 
Ethique dans les nouveaux médias/ Vers un code de bonne conduite
Ethique dans les nouveaux médias/ Vers un code de bonne conduiteEthique dans les nouveaux médias/ Vers un code de bonne conduite
Ethique dans les nouveaux médias/ Vers un code de bonne conduiteSedrick N'GOTTA
 
2014-11 ❘ MPI Futurs Leaders ❘ Tendances event
2014-11 ❘ MPI Futurs Leaders ❘ Tendances event2014-11 ❘ MPI Futurs Leaders ❘ Tendances event
2014-11 ❘ MPI Futurs Leaders ❘ Tendances eventLionel Malard
 
Caso Altmans - Activ@Mente
Caso Altmans - Activ@MenteCaso Altmans - Activ@Mente
Caso Altmans - Activ@Mentedzota
 
Diaporama nantesetape1
Diaporama nantesetape1Diaporama nantesetape1
Diaporama nantesetape1ThielaCatic
 

Viewers also liked (16)

Los alumnos de 4º y 5º visitan la Volvo Ocean Race
Los alumnos de 4º y 5º visitan la Volvo Ocean RaceLos alumnos de 4º y 5º visitan la Volvo Ocean Race
Los alumnos de 4º y 5º visitan la Volvo Ocean Race
 
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...
Atelier J4 9 Exemples à décortiquer et révélateurs des tendances dans les méd...
 
20121108 présentation trendrapport fr - def
20121108 présentation trendrapport   fr - def20121108 présentation trendrapport   fr - def
20121108 présentation trendrapport fr - def
 
lola infórmatica tema 2
lola infórmatica tema 2lola infórmatica tema 2
lola infórmatica tema 2
 
Portafolio Completo
Portafolio CompletoPortafolio Completo
Portafolio Completo
 
Ethique dans les nouveaux médias/ Vers un code de bonne conduite
Ethique dans les nouveaux médias/ Vers un code de bonne conduiteEthique dans les nouveaux médias/ Vers un code de bonne conduite
Ethique dans les nouveaux médias/ Vers un code de bonne conduite
 
Civsocial akendewa
Civsocial akendewaCivsocial akendewa
Civsocial akendewa
 
La Eso!!
La Eso!!La Eso!!
La Eso!!
 
2014-11 ❘ MPI Futurs Leaders ❘ Tendances event
2014-11 ❘ MPI Futurs Leaders ❘ Tendances event2014-11 ❘ MPI Futurs Leaders ❘ Tendances event
2014-11 ❘ MPI Futurs Leaders ❘ Tendances event
 
mon Berlin à moi
mon Berlin à moimon Berlin à moi
mon Berlin à moi
 
Caso Altmans - Activ@Mente
Caso Altmans - Activ@MenteCaso Altmans - Activ@Mente
Caso Altmans - Activ@Mente
 
21 Fe Jesus Leccion1
21 Fe Jesus Leccion121 Fe Jesus Leccion1
21 Fe Jesus Leccion1
 
Diaporama nantesetape1
Diaporama nantesetape1Diaporama nantesetape1
Diaporama nantesetape1
 
13 vem6 e13-wifi_hébergeurs
13 vem6 e13-wifi_hébergeurs13 vem6 e13-wifi_hébergeurs
13 vem6 e13-wifi_hébergeurs
 
Adviento 2012
Adviento 2012Adviento 2012
Adviento 2012
 
Alarme Citoyens
Alarme CitoyensAlarme Citoyens
Alarme Citoyens
 

Similar to *French* Salesforce1: Data Model and Relationships

Configuration, tarification et devis en toute simplicité
Configuration, tarification et devis en toute simplicitéConfiguration, tarification et devis en toute simplicité
Configuration, tarification et devis en toute simplicitéSalesforce France
 
Field service : orchestrez et connectez vos interventions terrain - Salesforc...
Field service : orchestrez et connectez vos interventions terrain - Salesforc...Field service : orchestrez et connectez vos interventions terrain - Salesforc...
Field service : orchestrez et connectez vos interventions terrain - Salesforc...Salesforce France
 
Community Cloud : réinventez votre engagement client
Community Cloud : réinventez votre engagement clientCommunity Cloud : réinventez votre engagement client
Community Cloud : réinventez votre engagement clientSalesforce France
 
Salesforce pour le commerce et la distribution
Salesforce pour le commerce et la distributionSalesforce pour le commerce et la distribution
Salesforce pour le commerce et la distributionSalesforce France
 
*French Webinar* Intro to building mobile apps - no code required
*French Webinar* Intro to building mobile apps - no code required*French Webinar* Intro to building mobile apps - no code required
*French Webinar* Intro to building mobile apps - no code requiredSalesforce Developers
 
Vos applications en deux temps trois clics avec App Cloud
Vos applications en deux temps trois clics avec App CloudVos applications en deux temps trois clics avec App Cloud
Vos applications en deux temps trois clics avec App CloudSalesforce France
 
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...Salesforce France
 
Service gagnant : jeu, CSAT et match !
Service gagnant : jeu, CSAT et match !Service gagnant : jeu, CSAT et match !
Service gagnant : jeu, CSAT et match !Salesforce France
 
Salesforce1 Platform : créez vos applications en un clin d’œil
Salesforce1 Platform : créez vos applications en un clin d’œilSalesforce1 Platform : créez vos applications en un clin d’œil
Salesforce1 Platform : créez vos applications en un clin d’œilSalesforce France
 
Made in France : Salesforce pour l’industrie
Made in France : Salesforce pour l’industrieMade in France : Salesforce pour l’industrie
Made in France : Salesforce pour l’industrieSalesforce France
 
Analytics Cloud : boostez l’analyse de vos données
Analytics Cloud : boostez l’analyse de vos donnéesAnalytics Cloud : boostez l’analyse de vos données
Analytics Cloud : boostez l’analyse de vos donnéesSalesforce France
 
Comment Challenger les ApexDebugLog et comment améliorer leur analyse
Comment Challenger les ApexDebugLog et comment améliorer leur analyseComment Challenger les ApexDebugLog et comment améliorer leur analyse
Comment Challenger les ApexDebugLog et comment améliorer leur analyseThierry TROUIN ☁
 
MuleSoft - Women in Tech Groupe - FR.pdf
MuleSoft - Women in Tech Groupe - FR.pdfMuleSoft - Women in Tech Groupe - FR.pdf
MuleSoft - Women in Tech Groupe - FR.pdfyosra Saidani
 
conception et realisation PFE
conception et realisation PFEconception et realisation PFE
conception et realisation PFEAlàa Assèli
 
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...François Perret
 
Assurance : fluidifiez votre relation client et valorisez vos réseaux
Assurance : fluidifiez votre relation client et valorisez vos réseauxAssurance : fluidifiez votre relation client et valorisez vos réseaux
Assurance : fluidifiez votre relation client et valorisez vos réseauxSalesforce France
 
Les données changent la donne avec Wave Analytics
Les données changent la donne avec Wave AnalyticsLes données changent la donne avec Wave Analytics
Les données changent la donne avec Wave AnalyticsSalesforce France
 

Similar to *French* Salesforce1: Data Model and Relationships (20)

Configuration, tarification et devis en toute simplicité
Configuration, tarification et devis en toute simplicitéConfiguration, tarification et devis en toute simplicité
Configuration, tarification et devis en toute simplicité
 
Field service : orchestrez et connectez vos interventions terrain - Salesforc...
Field service : orchestrez et connectez vos interventions terrain - Salesforc...Field service : orchestrez et connectez vos interventions terrain - Salesforc...
Field service : orchestrez et connectez vos interventions terrain - Salesforc...
 
Community Cloud : réinventez votre engagement client
Community Cloud : réinventez votre engagement clientCommunity Cloud : réinventez votre engagement client
Community Cloud : réinventez votre engagement client
 
Salesforce pour le commerce et la distribution
Salesforce pour le commerce et la distributionSalesforce pour le commerce et la distribution
Salesforce pour le commerce et la distribution
 
*French Webinar* Intro to building mobile apps - no code required
*French Webinar* Intro to building mobile apps - no code required*French Webinar* Intro to building mobile apps - no code required
*French Webinar* Intro to building mobile apps - no code required
 
Vos applications en deux temps trois clics avec App Cloud
Vos applications en deux temps trois clics avec App CloudVos applications en deux temps trois clics avec App Cloud
Vos applications en deux temps trois clics avec App Cloud
 
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...
Marketing : entrez dans l'ère du consommateur connecté - Salesforce World Tou...
 
Service gagnant : jeu, CSAT et match !
Service gagnant : jeu, CSAT et match !Service gagnant : jeu, CSAT et match !
Service gagnant : jeu, CSAT et match !
 
Salesforce1 Platform : créez vos applications en un clin d’œil
Salesforce1 Platform : créez vos applications en un clin d’œilSalesforce1 Platform : créez vos applications en un clin d’œil
Salesforce1 Platform : créez vos applications en un clin d’œil
 
Introduction à la plateforme Anypoint de MuleSoft
Introduction à la plateforme Anypoint de MuleSoftIntroduction à la plateforme Anypoint de MuleSoft
Introduction à la plateforme Anypoint de MuleSoft
 
Salesforce pour la banque
Salesforce pour la banqueSalesforce pour la banque
Salesforce pour la banque
 
Made in France : Salesforce pour l’industrie
Made in France : Salesforce pour l’industrieMade in France : Salesforce pour l’industrie
Made in France : Salesforce pour l’industrie
 
Analytics Cloud : boostez l’analyse de vos données
Analytics Cloud : boostez l’analyse de vos donnéesAnalytics Cloud : boostez l’analyse de vos données
Analytics Cloud : boostez l’analyse de vos données
 
Comment Challenger les ApexDebugLog et comment améliorer leur analyse
Comment Challenger les ApexDebugLog et comment améliorer leur analyseComment Challenger les ApexDebugLog et comment améliorer leur analyse
Comment Challenger les ApexDebugLog et comment améliorer leur analyse
 
MuleSoft - Women in Tech Groupe - FR.pdf
MuleSoft - Women in Tech Groupe - FR.pdfMuleSoft - Women in Tech Groupe - FR.pdf
MuleSoft - Women in Tech Groupe - FR.pdf
 
conception et realisation PFE
conception et realisation PFEconception et realisation PFE
conception et realisation PFE
 
Salesforce pour le retail
Salesforce pour le retailSalesforce pour le retail
Salesforce pour le retail
 
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...
9 Hacks pour Booster votre Account Engagement (fka Pardot) - Wébinaire - 2023...
 
Assurance : fluidifiez votre relation client et valorisez vos réseaux
Assurance : fluidifiez votre relation client et valorisez vos réseauxAssurance : fluidifiez votre relation client et valorisez vos réseaux
Assurance : fluidifiez votre relation client et valorisez vos réseaux
 
Les données changent la donne avec Wave Analytics
Les données changent la donne avec Wave AnalyticsLes données changent la donne avec Wave Analytics
Les données changent la donne avec Wave Analytics
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

*French* Salesforce1: Data Model and Relationships

  • 1. Webinar: Modèle de données, relations et SOQL 29 avril 2014
  • 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. 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. 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. Modèle de données et relations Relations & SOQL Agenda
  • 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. 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. Modèle extensible  Objets personnalisés – Facture__c – Livraison__c – …  Champs personnalisés – Statut__c – Type__c – Heure_Debut__c – Heure_Fin__c – …
  • 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. 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. Démo
  • 13. Modèle de données et relations Relations & SOQL Agenda
  • 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. De SQL à SOQL  Semblent proches  Différences importantes  Apprenez les différences  Utilisez de bonnes pratiques de conception
  • 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. 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. 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. 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. 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. 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. 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. 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. Démo
  • 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. 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. Prochain webinar: 20 Mai : Introduction au développement d’applications mobiles avec la plateforme Salesforce1 sans code