Présentation du Bordeaux Salesforce Developer Group.
Apprenez à développer vos premiers Lightning Web Components.
Appréhendez la migration de vos composants Lightning Aura vers LWC.
Venez découvrir le SharePoint Framework et toutes les nouveautés autour du développement SharePoint. Dans cette session, vous découvrirez comment développer des modules d’extensibilité de la plateforme, comme notamment les principes de personnalisation et de déploiement de contenu via les CDN, les nouvelles méthodes pour des développer des Client Sides Web Parts ou encore les webhooks. Orienté autour d’outils et de technologies open source et de JavaScript, le SharePoint Framework est une nouvelle façon rapide, légère et robuste de développer des extensions à SharePoint Online ou SharePoint Server.
Une architecture hybride était souvent vue comme un déploiement temporaire pour la transition vers le Cloud Microsoft. Cependant, avec l'arrivée de SharePoint Server 2016, qui a été conçu et inspiré depuis Office 365, beaucoup d’organisations sont à la recherche de moyens pour combiner leurs investissements SharePoint existants avec le Cloud.
Un déploiement hybride est la voie à suivre pour de nombreuses organisations au moins pour quelques années encore.
Au cours de cette session, nous vous proposons de revenir sur les scenarios déjà existants ainsi que les nouveautés. Que ce soit OneDrive for Business, la recherche, les sites SharePoint, Delve, Delve Analytics, Power BI ou encore les Groupes Office 365, Video ou Planner, nous verrons ensemble comment une topologie hybride peut vous permettre dès maintenant de tirer le potentiel maximum de vos infrastructures SharePoint.
Asp.net Tutorials de L'application "Organizer"Nazih Heni
Dans le but d’apprendre le Framework ASP.NET MVC 2.0 j'ai réaliser une petite application sur « Visual Studio » d'un bout à l'autre, ce qui donne l'occasion d'illustrer différents concepts à la base d’ASP.NET MVC 2.0.
L’application que j'ai réaliser s’appellera «Organisez». Il s’agit d’un site web pour faciliter la recherche et l’organisation d’un événement.
------------------------------------
lien du Blog : http://nazihhenie.wordpress.com/
Une architecture hybride était souvent vue comme un déploiement temporaire pour la transition vers le Cloud Microsoft. Cependant, avec l'arrivée de SharePoint Server 2016, qui a été conçu et inspiré depuis Office 365, beaucoup d’organisations sont à la recherche de moyens pour combiner leurs investissements SharePoint existants avec le Cloud.
Un déploiement hybride est la voie à suivre pour de nombreuses organisations au moins pour quelques années encore.
Au cours de cette session, nous vous proposons de revenir sur les scenarios déjà existants ainsi que les nouveautés. Que ce soit OneDrive for Business, la recherche, les sites SharePoint, Delve, Delve Analytics, Power BI ou encore les Groupes Office 365, Video ou Planner, nous verrons ensemble comment une topologie hybride peut vous permettre dès maintenant de tirer le potentiel maximum de vos infrastructures SharePoint.
Read more at https://experiences.microsoft.fr/Event/session/sharepoint-2016-architecture-deploiement-et-t/42497759-6b43-e611-80c3-000d3a222f59#UrrLxOhttpce9Rew.99
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
Spring MVC est un framwork qui permet d’implémenter des applications selon le design pattern MVC.
Ce n'est pas un framework événementiel comme pourraient l'être jsf, wicket, tapestry ou struts 2. Mais il possède de nombreux points
d'extensions et utilisé avec Spring Web Flow il devient un framework très puissant.
Windows Azure est une plateforme IaaS qui n'est pas réservée exclusivement aux application .NET. Cette session explore et explique comment déployer le serveur d'application JOnAS sur le cloud de Microsoft
Objectif général : Prendre en main Express js, le mini-framework de Node js le plus utilisé
objectifs spécifiques :
Installer Node js et Express js
Créer une application Express js
Router les requêtes
Recevoir des données à partir de l’URL d’une requête
Recevoir des données à partir du corps d’une requête
Traiter des fichiers uploadés
Utiliser un moteur de template
Utiliser une base de données
Utiliser des middlewares
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
La technologie Adobe Flex est aujourd'hui reconnue comme une des solutions les plus productives pour développer rapidement des applications de type RIA (Rich Internet Applications). Le succès de cette technologie repose sur deux notions fondamentales : la portabilité et l’interopérabilité. Cela fait deux ans que nous utilisons la technologie Flex. Je viens partager avec vous mes retours d'expériences concernant le développement des applications RIA basées sur Adobe Flex.
Ahmed El Houari
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
Vous avez déjà entendu parler d’Apache Camel ?
Les Design Pattern n’ont plus de secrets pour vous ?
L’Event Driven Architecture vous attire ?
Les Enterprise Integration Pattern vous interpellent ?
Vos applications reposent sur TCP, JMS, FTP, SFTP, les fichiers, les mails, XML, les web services SOAP, REST, RSS, JPA, JDBC ou même Twitter ?
N’attendez plus : venez découvrir l’utilisation des patterns comme le Channel Adapter, le Router ou l’Aggregator au travers d’un workshop sur Spring Integration.
Voici le support de présentation d’un workshop d’1h s’appuyant sur le cas d’étude suivant : un moteur chargé d’indexer des données clients dans le moteur de recherche Elasticsearch.
Une connaissance minimaliste de Spring Framework est pré-requise.
Spring Integration est à votre portée de main. EAI et ESB n’ont qu’à bien se tenir !!
La conception d'application Web complexe se reposant sur un socle JavaScript devient monnaie courante.
De ce fait, nous nous devons de nous outiller, ainsi que d'utiliser des frameworks adéquats.
Cette présentation a pour but de vous faire découvrir l'un de ces frameworks: RequireJS.
Nous verrons alors que nous pouvons produire des applications modulaires avec gestion de dépendances simplement, permettant ainsi d'avoir des applications qui se chargent rapidement alors que nous avons un découpage complexe, mais aussi des applications maintenables et testables facilement.
Voir: http://humantalks.com/talks/26-apercu-de-requirejs
The new version of Salesforce, Summer '20, was released in July 2020.
Discover the most important new features, including Dynamic Forms and Service Cloud Voice, the two new core features of this release.
Publicité
Contenu connexe
Similaire à Workshop Lightning Web Components (20)
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
Spring MVC est un framwork qui permet d’implémenter des applications selon le design pattern MVC.
Ce n'est pas un framework événementiel comme pourraient l'être jsf, wicket, tapestry ou struts 2. Mais il possède de nombreux points
d'extensions et utilisé avec Spring Web Flow il devient un framework très puissant.
Windows Azure est une plateforme IaaS qui n'est pas réservée exclusivement aux application .NET. Cette session explore et explique comment déployer le serveur d'application JOnAS sur le cloud de Microsoft
Objectif général : Prendre en main Express js, le mini-framework de Node js le plus utilisé
objectifs spécifiques :
Installer Node js et Express js
Créer une application Express js
Router les requêtes
Recevoir des données à partir de l’URL d’une requête
Recevoir des données à partir du corps d’une requête
Traiter des fichiers uploadés
Utiliser un moteur de template
Utiliser une base de données
Utiliser des middlewares
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
La technologie Adobe Flex est aujourd'hui reconnue comme une des solutions les plus productives pour développer rapidement des applications de type RIA (Rich Internet Applications). Le succès de cette technologie repose sur deux notions fondamentales : la portabilité et l’interopérabilité. Cela fait deux ans que nous utilisons la technologie Flex. Je viens partager avec vous mes retours d'expériences concernant le développement des applications RIA basées sur Adobe Flex.
Ahmed El Houari
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
Vous avez déjà entendu parler d’Apache Camel ?
Les Design Pattern n’ont plus de secrets pour vous ?
L’Event Driven Architecture vous attire ?
Les Enterprise Integration Pattern vous interpellent ?
Vos applications reposent sur TCP, JMS, FTP, SFTP, les fichiers, les mails, XML, les web services SOAP, REST, RSS, JPA, JDBC ou même Twitter ?
N’attendez plus : venez découvrir l’utilisation des patterns comme le Channel Adapter, le Router ou l’Aggregator au travers d’un workshop sur Spring Integration.
Voici le support de présentation d’un workshop d’1h s’appuyant sur le cas d’étude suivant : un moteur chargé d’indexer des données clients dans le moteur de recherche Elasticsearch.
Une connaissance minimaliste de Spring Framework est pré-requise.
Spring Integration est à votre portée de main. EAI et ESB n’ont qu’à bien se tenir !!
La conception d'application Web complexe se reposant sur un socle JavaScript devient monnaie courante.
De ce fait, nous nous devons de nous outiller, ainsi que d'utiliser des frameworks adéquats.
Cette présentation a pour but de vous faire découvrir l'un de ces frameworks: RequireJS.
Nous verrons alors que nous pouvons produire des applications modulaires avec gestion de dépendances simplement, permettant ainsi d'avoir des applications qui se chargent rapidement alors que nous avons un découpage complexe, mais aussi des applications maintenables et testables facilement.
Voir: http://humantalks.com/talks/26-apercu-de-requirejs
The new version of Salesforce, Summer '20, was released in July 2020.
Discover the most important new features, including Dynamic Forms and Service Cloud Voice, the two new core features of this release.
The Salesforce ecosystem is growing. One study predicts that more than 3 million jobs will be created around Salesforce technology by 2022.
Still, it's sometimes difficult to keep up with the multitude of Salesforce solutions and job profiles required for implementation projects.
If Salesforce makes you dream and you want to learn more about the jobs available around this technology, we'll help you launch your career and choose what you can and want to do around this ecosystem.
Features brought by the new version of Salesforce, Spring'20. Discover all the new Lightning features as well as those associated with each cloud such as Sales Cloud and Service Cloud.
The document discusses new features being presented at Salesforce's Admin Keynote. It introduces Einstein Voice which allows users to interact with Salesforce using voice commands to update records, access dashboards, and get personalized briefings. It also discusses Customer 360 Truth which connects customer data across systems to create a single customer profile. The document provides sneak peeks of new features for Spring '20 including open sourcing Lightning base components and introducing the Salesforce API portal. It highlights new capabilities for developers including Einstein Vision and Language, Multi-Language, and Voice skills.
This document provides information on new features for Salesforce administrators in the Winter '20 release. It summarizes enhancements to the calendar, reports and dashboards, mobile app, Lightning app builder for mobile, and ideas delivered. It also introduces two product experts, Rado RAKOTOARIMANAN and Martin LEZER, who will discuss Flow for developers and Lightning message service.
Learn how to develop under Salesforce with the new Lightning Web Components technology launched earlier this year.
Lightning Web Components is a Web technology that complies with Web standards and will allow you to add features that meet your own needs on the Salesforce platform.
Finally, the presentation focus on the migration of Lightning components to LWC.
Mulesoft becomes a core solution following Salesforce's acquisition and integration into Salesforce's new cloud, Customer 360.
Here's an introduction to this software.
The presentation includes a list of new features included in the Salesforce Spring '19 release.
Learn about the newly released Lightning Web Components! LWC is a new programming model for building Lightning components. It leverages the web standards breakthroughs of the last five years, delivers unparalleled performance, and coexists and interoperates with all of your existing Lightning components.
The document summarizes resources available through the Trailblazer community for Salesforce users, including:
- Joining community groups to connect with peers in similar roles, industries, and locations.
- Engaging in a global network to get help, find answers, and discuss topics with other Salesforce customers and employees.
- Learning from Salesforce MVPs and community leaders who share expertise to help all members succeed.
- Inspiring the next generation by mentoring others and becoming a leader in the Trailblazer community.
This document provides performance best practices for Lightning Components. It recommends:
- Setting aura:if attributes to false by default to avoid unnecessary rerendering.
- Avoiding setting multiple items in an aura:iteration in the same cycle to improve performance.
- Being cautious of aura:iteration since it rerenders all lines even without changes. It's better to filter lists in the parent component.
- Using action.setStorable() to cache data and make use of storable actions when possible to improve performance.
This document summarizes a Salesforce developer group meeting in Bordeaux, France. It introduces the group leader, Martin Lezer, and encourages attendees to connect with the global Trailblazer community. It promotes the Seize the Trail sweepstakes to earn badges and prizes on Trailhead. It also provides an agenda for the meeting covering Trailhead, Einstein, customizing Salesforce products, roadmaps for Lightning Experience and various products, and a strategic partnership between Salesforce and Google Cloud Platform/G Suite.
Ai EngineHost Review : Hébergement révolutionnaire aux GPU NVIDIA, Datacenter...SOFTTECHHUB
Bienvenue dans cette revue complète d’Ai EngineHost. J’ai eu l’occasion d’expérimenter personnellement cette solution d’hébergement révolutionnaire et je suis ravi de vous en parler. Vous allez découvrir une plateforme basée aux États-Unis, alimentée par des GPU NVIDIA, qui offre une capacité d’hébergement illimitée pour vos sites web, vos applications d’intelligence artificielle et vos noms de domaine. Dans cet article, je décris les fonctionnalités, les avantages, la tarification, et pourquoi ce service est incontournable pour les entrepreneurs du digital.
La généalogie assistée par l’IA (G·IA) et ses outils.Erol GIRAUDY
La généalogie assistée par l’intelligence
artificielle (G·IA) et ses outils.
2025 - Auteur : P. Erol GIRAUDY.
Relecteur : Claude SOTROISC.
Editeur : P. Erol GIRAUDY.
Illustration : Erol GIRAUDY et l’IA.
La Généalogie 4.0 désigne, ce qui est à notre sens, la
quatrième révolution technologique de la généalogie, celle
de l’intelligence artificielle. Nous avons choisi le terme de
Généalogie 4.0 en analogie avec l’Industrie 4.01 »
Mon guide sur l'IA et la généalogie format PDF et gratuit.
Mes retours sur l'utilisations d'outils de généalogies. (REX):
https://www.erolgiraudy.eu/p/mes-retours-sur-lutilisations-doutils.html
Il contient toujours toutes les informations importantes sur l'utilisation des IAG en généalogie, organisées selon la méthode QQOQCP :
QUI peut utiliser l'IA en généalogie
QUELS outils d'IA sont utiles pour la généalogie
OÙ utiliser ces outils
QUAND les utiliser
COMMENT les appliquer efficacement
POURQUOI intégrer l'IA à vos recherches généalogiques :
https://claude.ai/public/artifacts/4b2d666d-1e0d-4b82-91fc-945b71771704
GENEANET:
https://gw.geneanet.org/pierreerol_w?lp=0
Cadre d'Apprentissage des IAG pour Généalogistes:
https://uga-ia.blogspot.com/2025/04/cadre-dapprentissage-des-iag-pour.html
Erol GIRAUDY
https://www.erolgiraudy.eu/
https://uga-ia.blogspot.com/
https://www.erolgiraudy.eu/2024/10/mes-15-livres.html
https://and500.blogspot.com/
https://www.ugaia.eu/
1. Workshop – Lightning Web Components
Bordeaux Salesforce Developer Group
@martinlezer
Martin Lezer, Group Leader
2. Productivité améliorée
Utilisation des langages modernes du Web: ES6+,
Elements personnalisés, et Shadow DOM
Conçu pour la performance
Plus de code exécuté par le navigateur au lieu
d’abstractions Javascript pour une expérience plus
rapide
Compatible et facile à utiliser
Exécuté simultanément avec des composants Lightning
existants
Introduction - Lightning Web Components
Un nouveau modèle de programmation construit sur les standards du Web
5. Installation de l’environnement
• Utilisez le lien correspondant à votre environnement
Installation de Salesforce DX
Operating System
Link to Installer
macOS https://sfdc.co/sfdx_cli_osx
Windows 32-bit https://sfdc.co/sfdx_cli_win
Windows 64-bit https://sfdc.co/sfdx_cli_win64
Debian/Ubuntu 64 https://sfdc.co/sfdx_cli_linux
Download the archive from one of the URLs in the manifest, extract the archive, then run the ./install script.
Debian/Ubuntu x86 https://sfdc.co/sfdx_cli_linux_x86
Download the archive from one of the URLs in the manifest, extract the archive, then run the ./install script.
6. • Téléchargez l'installeur de Visual Studio Code : https://code.visualstudio.com/
• Installez Visual Studio Code grâce à l'installeur
• Lancez Visual Studio Code à la fin de l'installation
• Cliquez sur l'icône dans la barre de navigation de gauche
• Cherchez l’extension appelée « Salesforce Extension Pack »
• Installez l’extension
• Rechargez Visual Studio Code à la fin de l’installation
Installation de Visual Studio Code
Installation de l’environnement
8. • Fichier HTML:
• nommé suivant la convention: <component>.html
• avec comme balise racine: <template>
• Fichier Javascript:
• nommé suivant la convention: <component>.js
• chaque fichier de composant doit inclure le code suivant:
Structure des fichiers d’un composant
Les bases
import { LightningElement } from 'lwc’;
export default class MyComponent extends LightningElement {
}
// Your code here
9. • Equivalent aux attributs sur Aura
• Variables Javascript accessibles à certaines
conditions par le template HTML
Propriétés
Les bases
import { LightningElement, api, track } from 'lwc’;
export default class TodoItem extends LightningElement {
@api itemTitle = ''; // public
itemId = ''; // private
@track state = { x: 100, y: 100 }; // internal and reactive
}• Différents types de propriétés:
• privée: variable seulement utilisée dans le
code Javascript
• réactives: si la valeur d’une variable change,
elle est mise à jour dans le template
• publique: accessible par un composant parent
• tracked: variable privée
<template>
<div class="view">
<label>{itemName}</label>
</div>
</template>
Controller Javascript
Template
10. • Les expressions Aura complexes sont transformées en code Javascript
• Utilisation de getters dans le code Javascript
Expressions HTML et logique Javascript
Les bases
<aura:if isTrue="{!v.page > 1}">
<lightning:buttonIcon iconName="utility:left" variant="border" onclick="{!c.previousPage}"/>
</aura:if>
Code Aura Framework
Code LWC
<template if:false={isFirstPage}>
<lightning-button-icon icon-name="utility:chevronleft" onclick={previousHandler}></lightning-button-icon>
</template>
import { LightningElement, api } from 'lwc’;
export default class Paginator extends LightningElement {
/** The current page number. */
@api pageNumber; get isFirstPage() {
return this.pageNumber === 1;
}
}
13. • Utilisation de CSS standard
• Limité au contexte du composant
• Inclus dans un fichier css rattaché au composant
CSS
Les bases
<template>
<h1>To Do List (h1)</h1>
</template>
h1 {
font-size: xx-large;
}
Template
CSS
14. <!-- contactListItem.html -->
<template>
<a href="#" onclick={selectHandler}>
<lightning-layout vertical-align="center">
<lightning-layout-item>
<img src={contact.Picture__c}></img>
</lightning-layout-item>
<lightning-layout-item padding="around-small">
<p>{contact.Name}</p>
</lightning-layout-item>
</lightning-layout>
</a>
</template>
• Utilisation des standards du web avec le
constructeur CustomEvent()
• Un composant parent peut capter un
événement d’un enfant
Evénements personnalisés
Les bases
• L’enfant défini le nom du l’événement ainsi
que les données associées. Ensuite, il le
dispatch avec la méthode
EventTarget.dispatchEvent()
• Le parent définit une fonction handler de
l’événement
Template enfant
Javascript enfant
// contactListItem.js import { LightningElement, api } from 'lwc’;
export default class ContactListItem extends LightningElement {
@api contact;
selectHandler(event) {
// Prevents the anchor element from navigating to a URL.
event.preventDefault();
// Creates the event with the contact ID data.
const selectedEvent = new CustomEvent(
'selected’,
{ detail: this.contact.Id }
);
// Dispatches the event.
this.dispatchEvent(selectedEvent);
}
}
18. L’intéraction avec les données
Wire Service
• Surcouche du Lightning Data Service
• Permet de lire ou créer un enregistrement sans appel Apex, seulement du Javascript
• Appelable grâce à l’annotation @wire
• Les références vers les objets et champs utilisés doivent être importées afin de:
• empêcher la suppression de l’objet ou du champ
• vérifier à l’exécution que les références existent
• vérifier l’inclusion des champs et objets utilisés dans le change set
• L’import des références se fait sous la forme suivante:
import objectName from '@salesforce/schema/object';
import FIELD_NAME from '@salesforce/schema/object.field';
19. L’intéraction avec les données
Wire Service (suite)
• Lecture d’un enregistrement
<template>
<lightning-card title="My Contact Record" icon-name="standard:contact">
<template if:true={contact.data}>
<div class="slds-m-around_medium">
<p>{name}</p>
<p>{title}</p>
<p><lightning-formatted-phone value={phone}></lightning-formatted-phone></p>
<p><lightning-formatted-email value={email}></lightning-formatted-email></p>
</div>
</template>
</lightning-card>
</template>
Template
20. L’intéraction avec les données
Wire Service (suite)
• Lecture d’un enregistrement (suite): utilisation de la méthode
// wireGetRecordDynamicContact.js
import { LightningElement, api, wire } from 'lwc’;
import { getRecord } from 'lightning/uiRecordApi’;
const FIELDS = [ 'Contact.Name', 'Contact.Title', 'Contact.Phone', 'Contact.Email', ];
export default class WireGetRecordDynamicContact extends LightningElement {
@api recordId;
@wire(getRecord, { recordId: '$recordId', fields: FIELDS }) contact;
get name() {
return this.contact.data.fields.Name.value;
}
get title() {
return this.contact.data.fields.Title.value;
}
get phone() {
return this.contact.data.fields.Phone.value;
}
get email() {
return this.contact.data.fields.Email.value;
}
}
Javascript Controller
getRecord
21. L’intéraction avec les données
Wire Service (suite)
• Création d’un enregistrement
Template
<template>
<lightning-card title="LdsCreateRecord" icon-name="standard:record">
<div class="slds-m-around_medium">
<lightning-input label="Id" disabled value={accountId}></lightning-input>
<lightning-input label="Name" onchange={handleNameChange} class="slds-m-bottom_x-small"></lightning-input>
<lightning-button label="Create Account" variant="brand" onclick={createAccount}></lightning-button>
</div>
</lightning-card>
</template>
22. L’intéraction avec les données
Wire Service (suite)
• Création d’un enregistrement:
Javascript Controller
• Utilisation de la méthode
createRecord()
import { LightningElement, track } from 'lwc’;
import { createRecord } from 'lightning/uiRecordApi’;
import { ShowToastEvent } from 'lightning/platformShowToastEvent’;
import ACCOUNT_OBJECT from '@salesforce/schema/Account’;
import NAME_FIELD from '@salesforce/schema/Account.Name’;
export default class LdsCreateRecord extends LightningElement {
@track accountId;
name = ‘’;
handleNameChange(event) {
this.accountId = undefined;
this.name = event.target.value;
}
createAccount() {
const fields = {};
fields[NAME_FIELD.fieldApiName] = this.name;
const recordInput = { apiName: ACCOUNT_OBJECT.objectApiName, fields };
createRecord(recordInput) .then(account => {
this.accountId = account.id;
this.dispatchEvent(
new ShowToastEvent({
title: 'Success’,
message: 'Account created’,
variant: 'success’,
}),
);
}) .catch(error => {
this.dispatchEvent(
new ShowToastEvent({
title: 'Error creating record’,
message: error.body.message,
variant: 'error’,
}),
);
});
}
}
23. L’intéraction avec les données
L’appel aux méthodes Apex
• Nécessaire seulement si le besoin n’est pas couvert par le wire service ou les composants
standards tels que le Lightning Record Form ou les Lightning Record View Form et
Lightning Record Edit Form
• Nécessite l’import de la méthode avec la syntaxe:
• Comme pour le framework Aura, une méthode Apex se rend disponible à l’appel grâce à
l’annotation @AuraEnabled
• Il est possible de lier une propriété ou méthode Javascript à l’appel de la méthode Apex (à
condition qu’elle soit définit comme cachable) avec la syntaxe:
import apexMethodName from '@salesforce/apex/Namespace.Classname.apexMethodReference';
@wire(apexMethod, { apexMethodParams })
propertyOrFunction;
24. L’intéraction avec les données
L’appel aux méthodes Apex
• Appel d’une méthode cachable
// ContactController.cls
public with sharing class ContactController {
@AuraEnabled(cacheable=true)
public static List<Contact> getContactList() {
return [SELECT Id, Name, Title, Phone, Email, Picture__c FROM Contact WHERE Picture__c != null LIMIT 10];
}
}
Apex
// apexWireMethodToProperty.js
import { LightningElement, wire } from 'lwc’;
import getContactList from '@salesforce/apex/ContactController.getContactList;
export default class ApexWireMethodToProperty extends LightningElement {
@wire(getContactList) contacts;
}
Javascript Controller
25. L’intéraction avec les données
L’appel aux méthodes Apex
• Appel d’une méthode non cachable: pas de possibilité d’utiliser le wire service
// apexImperativeMethod.js
import { LightningElement, track } from 'lwc’;
import getContactList from '@salesforce/apex/ContactController.getContactList’;
export default class ApexImperativeMethod extends LightningElement {
@track contacts;
@track error;
handleLoad() {
getContactList()
.then(result => {
this.contacts = result;
})
.catch(error => {
this.error = error;
});
}
}
27. • Technologies fondamentalement différentes -> Analyse préalable du composant
• Aura et LWC peuvent cohabiter -> un composant Aura peut inclure un composant LWC
• Commencer par les composants les plus simples -> probablement les composants enfants
(voir notion précédente)
Stratégie
Migration Aura vers LWC
29. • Créez une nouvelle organisation Salesforce de type Developer Edition en cliquant ici:
https://developer.salesforce.com/signup
• Activez My Domain
• Activez le Dev Hub
• Dans Visual Studio Code, exécutez les commandes suivantes:
• sfdx force:auth:web:login --setdefaultdevhubusername --setalias DevHub
• Connectez vous à votre developer edition nouvellement créée
• sfdx force:project:create -n workshopLWC
• cd workshopLWC
• sfdx force:org:create -s -f config/project-scratch-def.json -a worshopLWCSScratch
Configuration de Salesforce DX
Exercice
30. • Dans Visual Studio Code:
• Ouvrez la palette de commande avec le raccourci Ctrl+Shif+P
• Exécutez SFDX: Create Lightning Web Component
• Nommez votre composant listContacts
• Utilisez la librairie de composants standards fournie par Salesforce pour développer votre
composant
• Pour rappel, le composant doit contenir un formulaire de création de contact (voir le wire service
précédemment évoqué) et une liste des contacts en base
• Le formulaire de création doit au moins contenir les champs: prénom, nom et email
• Il serait préférable d’ajouter chacune de ces fonctionnalités dans des cards différentes
Création du Lightning Web Component
Exercice
31. • Configurez le composant pour qu’il puisse être ajouté aux pages Lightning en utilisant le
code suivant dans le fichier listContact.js-meta.xml:
• Dans Visual Studio Code, une fois le code enregistré, exécutez les commandes:
• sfdx force:source:push
• sfdx force:org:open
• Ajoutez le composant créé à la page Lightning que vous souhaitez puis testez votre
composant !
Création du Lightning Web Component (suite)
Exercice
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="listContacts">
<apiVersion>45.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__AppPage</target>
<target>lightning__RecordPage</target>
<target>lightning__HomePage</target>
</targets>
</LightningComponentBundle>
32. • Le code correspondant à la correction de l’exercice est disponible sur Github à l’adresse:
https://github.com/mlezer/bordeaux-dev-group-lwc
• Pour aller plus loin, rendez-vous sur https://github.com/trailheadapps/lwc-recipes
Corrrection
Exercice