La version Winter ’25 de Salesforce sera déployée entre septembre et octobre 2024, apportant des mises à jour intéressantes et de nouvelles fonctionnalités conçues pour améliorer la productivité des développeurs. De l’ajout de fonctionnalités d’IA avancées à l’amélioration des capacités de la plateforme, cette version regorge d’outils précieux pour les développeurs Salesforce. Explorons quelques-unes des mises à jour clés.
Pic Courtsey : Salesforce
Améliorations Apex
-
Empêcher la modification de la collection pendant l’itération
Dans les versions précédentes d’Apex, les développeurs pouvaient modifier un ensemble tout en le parcourant, ce qui entraînait souvent des résultats imprévisibles comme des éléments ignorés ou un traitement répété. À partir de la version 62.0 de l’API, toute tentative de modification d’un ensemble pendant une itération générera un message System.FinalException: Cannot modify a collection while it is being iterated
. Ce changement garantit une exécution du code plus fluide et plus fiable.
Exemple:
Set<String> names = new Set<String>{'Alice', 'Bob', 'Charlie'}; for (String name : names) { if (name.startsWith('A')) { names.remove(name); // This throws an exception in API v62.0 } }
- Messages d’erreur SOQL améliorés
Les développeurs recevront désormais des messages d’erreur plus clairs et plus informatifs pour les requêtes SOQL dynamiques non valides. Ces améliorations permettent d’identifier les problèmes plus rapidement. Cela améliorera l’efficacité globale du développement. Consultez la liste des messages d’erreur.
-
Prise en charge des valeurs de devise négatives dans Dynamic SOQL
La gestion des valeurs de devise négatives dans les requêtes SOQL dynamiques est désormais possible, à condition que votre organisation utilise MultiCurrency. Auparavant, les requêtes impliquant des montants négatifs entraînaient une erreur, mais ce n’est plus le cas.
Exemple:
System.debug(Database.query('SELECT Amount FROM Opportunity WHERE Amount < USD-5000'));
-
Surveillance des événements de niveau gratuit pour les erreurs Apex
Les journaux d’événements Apex Unexpected Exception sont désormais disponibles gratuitement, vous permettant de suivre et de dépanner plus efficacement les exceptions non gérées. Bien que les notifications par e-mail soient encore limitées, cette nouvelle fonctionnalité vous aide à approfondir les causes profondes en téléchargeant des journaux CSV pour une analyse plus approfondie.
-
Tests SOQL simulés pour les objets externes
Tester les requêtes SOQL pour les objets externes est désormais plus facile avec le nouveau SoqlStubProvider
classe, qui vous permet de simuler les réponses SOQL pour les objets externes pendant les tests. Référez-vous au exemple de code pour plus de détails.
Améliorations du LWC
-
Développement local pour LWC (bêta)
Le développement local (bêta) est désormais disponible dans Winter ’25, vous permettant de prévisualiser les composants Web Lightning (LWC) pendant que vous codez, sans avoir besoin d’actualiser la page. Grâce au rechargement à chaud des modules et aux WebSockets, vous pouvez voir instantanément les effets de votre code sur les sites LWR, les applications mobiles et Lightning Experience. Reportez-vous à la Documentation pour plus de détails.
-
Mises à jour de l’API version 62.0 pour LWC
Avec l’API version 62.0, Salesforce introduit des améliorations significatives à LWC. Pour mettre à jour la version du composant, modifiez la version de l’API dans le fichier .js-meta.xml du composant. Les fonctionnalités suivantes sont disponibles uniquement si la version de votre composant LWC est 62.0 ou supérieure.
-
Liaisons d’objets de classe pour la gestion des styles
Dans l’API LWC version 62.0 et versions ultérieures, les développeurs peuvent désormais gérer plusieurs classes sur un élément à l’aide d’un tableau ou d’un objet JavaScript. Cela élimine le besoin de concaténer les noms de classe, simplifiant ainsi le processus d’application dynamique de plusieurs styles.
Supposons que vous ayez un bouton avec le balisage HTML ci-dessous :
<div class={computedClassNames}>Evaluate some classes here</div>
Vous trouverez ci-dessous une classe JavaScript qui génère computedClassNames
sous forme de tableaux contenant des types d’objets.
import { LightningElement } from "lwc"; export default class extends LightningElement { position = "left"; fullWidth = true; hidden = false; get computedClassNames() { return [ "div__block", this.position && `div_${this.position}`, { "div_full-width": this.fullWidth, hidden: this.hidden, }, ]; } }
Avec l’API version 62.0, ce code afficherait le code HTML suivant :
<div class="div__block div_left div_full-width">Evaluate some classes here</div>
Dans la version 61.0, le rendu serait incorrect comme suit :
<div class="div__block,div_left,[object Object]">Evaluate some classes here</div>
La documentation comprend un tableau utile qui illustre comment les liaisons de classe sont rendues dans l’API version 62.0 et ultérieure par rapport à la version 61.0, en utilisant différents types de données.
-
Nouveau ce.style Propriété
À partir de la version 62.0, LWC fournit désormais un accès direct à la CSSStyleDeclaration d’un composant (voir documents)via la nouvelle propriété this.style. Cette propriété peut être utilisée à la fois dans le DOM clair et dans le DOM shadow, simplifiant ainsi le processus de gestion des styles.
Exemple:
import { LightningElement } from "lwc"; export default class MyComponent extends LightningElement { static renderMode = "light"; // default is 'shadow' setStyle() { this.style.setProperty('color', 'red'); this.style.setProperty('border', '1px solid #eee'); console.log(this.style.color); // logs "red" } renderedCallback() { this.style.color="red"; } }
La propriété this.style rationalise le processus d’application des styles en ligne directement à la racine du composant, améliorant ainsi la lisibilité et la maintenabilité.
-
Nouveau ceci.hostElement Propriété
La propriété this.hostElement permet aux développeurs d’accéder facilement à l’élément parent d’un composant LWC. Indépendamment de la lumière ou de l’ombre du DOM. Cette propriété remplace l’ancien this.template.host et simplifie l’accès à l’élément parent. Exemple:
import { LightningElement } from "lwc"; export default class MyComponent extends LightningElement { static renderMode = "light"; // default is 'shadow' renderedCallback() { console.log(this.hostElement); // logs the parent element console.log(this.hostElement.tagName); // logs C-LIGHT } }
Cette amélioration est particulièrement utile lorsqu’il faut interagir avec l’élément parent ou modifier ses attributs de manière dynamique.
-
Prise en charge de TypeScript (aperçu pour les développeurs)
Salesforce a introduit la prise en charge de TypeScript pour LWC, offrant une sécurité de type améliorée et de meilleurs outils de développement. Les développeurs peuvent écrire des composants LWC en TypeScript et les compiler en JavaScript, bénéficiant ainsi d’une vérification améliorée des erreurs et de la complétion du code.
-
Prise en charge de l’adaptateur GraphQL Wire pour Experience Cloud
Le foudre/uiGraphQLApi l’adaptateur filaire est désormais pris en charge dans les LWC créés pour les sites Experience Cloud LWR. Cela étend les capacités de développement Experience Cloud, permettant aux développeurs de tirer pleinement parti de GraphQL pour créer des requêtes de données complexes. Vérifier Recettes chanceuses doc pour apprendre à construire avec foudre/uiGraphQLApi
Mises à jour du cloud de données
-
Bacs à sable Data Cloud (bêta)
Avec la version Winter ’25, Salesforce introduit les sandbox Data Cloud en version bêta. Ces bacs à sable prennent en charge diverses fonctionnalités Data Cloud, permettant aux développeurs d’expérimenter et de développer la plate-forme dans un environnement contrôlé.
-
Recherche de vecteurs et recherche hybride
Data Cloud permet désormais la recherche vectorielle et hybride, vous permettant d’indexer et de rechercher plus efficacement des données non structurées. La recherche de vecteurs est sémantiquement consciente, ce qui rend les requêtes plus précises. La recherche hybride combine les recherches vectorielles et par mots clés pour de meilleurs résultats.
Exemple:
SELECT v.score__c, c.SourceRecordId__c FROM vector_search(table(CaseComments_index__dlm), 'power failure', '', 10) v JOIN CaseComments_chunk__dlm c ON v.RecordId__c = c.RecordId__c JOIN CaseComments__dlm casecomment ON c.SourceRecordId__c = casecomment.Id__c ORDER BY 1 DESC
-
Génération augmentée de récupération (RAG)
RAG, introduit en août 2024, améliore les réponses générées par l’IA en intégrant le contexte des données non structurées telles que les e-mails et les bases de connaissances. Cela se traduit par des interactions d’IA plus précises et contextuellement pertinentes.
-
Verrouillage des métadonnées du kit de données
Vous pouvez désormais verrouiller les métadonnées personnalisées dans les kits de données Data Cloud, empêchant ainsi les modifications indésirables par les abonnés. Cette fonctionnalité augmente le contrôle sur l’intégrité des paquets de données.
Mises à jour de l’IA et d’Agentforce
-
Agents Agentforce
Les agents Agentforce, introduits dans la version Winter ’25, sont des systèmes basés sur l’IA qui peuvent effectuer des tâches de manière autonome sur la plateforme Salesforce. Les agents Agentforce peuvent assister les utilisateurs (Einstein Copilots) ou fonctionner de manière indépendante.
-
Générateur d’agents
Anciennement connu sous le nom de Copilot Builder, Agent Builder permet désormais aux développeurs de créer et de personnaliser des agents Agentforce en définissant des sujets et des actions avec des invites, des flux et Apex. L’introduction de sujets permet aux agents de regrouper et de hiérarchiser les tâches plus efficacement, améliorant ainsi la précision de la prise de décision.
-
Planificateur avancé
Le nouveau Advanced Planner améliore les performances des agents en permettant des décisions plus fréquentes et réactives basées sur les entrées de l’utilisateur, ce qui se traduit par une planification des tâches plus dynamique et plus précise.
-
API de modèles (bêta)
L’API Models (bêta) connecte les applications Salesforce aux grands modèles de langage (LLM) de partenaires comme Anthropic, Google et OpenAI, permettant aux développeurs d’intégrer des fonctionnalités d’IA de pointe dans leurs solutions Salesforce.
Outils de développement de plateforme
-
Einstein pour les développeurs (bêta)
L’Assistant de développement (bêta) d’Einstein pour développeurs présente une gamme de fonctionnalités utiles, notamment des suggestions de code, des explications et même des correctifs de code contextualisés avec les métadonnées de votre organisation. Cet outil rationalisera le développement, offrant des informations intelligentes sur le code Apex et LWC.
-
Mises à jour de la CLI Salesforce
Salesforce CLI continue d’évoluer avec des mises à jour régulières. Les développeurs doivent rester informés des dernières versions pour s’assurer qu’ils exploitent tous les outils disponibles pour améliorer leur flux de travail de développement. Certaines des améliorations significatives récentes incluent :
- La possibilité d’exporter jusqu’à cinq niveaux d’objets enfants dans une requête à l’aide de l’outil arbre d’exportation de données – plan commande.
- Le arbre d’importation de données – plan La commande prend désormais en charge les fichiers contenant plus de 200 enregistrements.
- Exécuter le arbre d’importation de données commande avec le -déposer flag utilise désormais des téléchargements parallèles, améliorant ainsi les performances.
- Une nouvelle commande pour le téléchargement de fichiers a été introduite. Par exemple, pour télécharger un fichier et l’associer à un objet parent, vous pouvez utiliser : fichier de création de données sf –fichier astro.png –titre Astro.png –parent-id a03fakePIA3.
- Le processus d’installation de Salesforce CLI a été optimisé pour plus de rapidité.
- Une nouvelle commande bêta, demande d’API restevous permet d’envoyer des appels REST à votre organisation.
Cette présentation met en évidence les fonctionnalités et améliorations les plus importantes pour les développeurs dans la version Winter ’25 de Salesforce. Chacune de ces améliorations est conçue pour rationaliser le développement, augmenter la productivité et aider les équipes à créer des solutions plus avancées, basées sur l’IA, sur la plateforme Salesforce. Assurez-vous de consulter les notes de version complètes et d’essayer ces nouvelles fonctionnalités passionnantes dans votre bac à sable.
Source link