Apex - Présentation
Qu'est-ce qu'Apex?
Apex est un langage propriétaire développé par Salesforce.com. Selon la définition officielle, Apex est un langage de programmation orienté objet fortement typé qui permet aux développeurs d'exécuter les instructions de contrôle de flux et de transaction sur le serveur de la plateforme Force.com en conjonction avec des appels à l'API Force.com.
Il a une syntaxe de type Java et agit comme des procédures stockées dans une base de données. Il permet aux développeurs d'ajouter une logique métier à la plupart des événements système, y compris les clics sur les boutons, les mises à jour d'enregistrement associées et Visualforcepages.Apexle code peut être lancé par des requêtes de service Web et par des déclencheurs sur des objets. Apex est inclus dans Performance Edition, Unlimited Edition, Enterprise Edition et Developer Edition.
Caractéristiques d'Apex en tant que langage
Parlons maintenant des fonctionnalités d'Apex en tant que langage -
Intégré
Apex a intégré la prise en charge des opérations DML telles que INSERT, UPDATE, DELETE ainsi que la gestion des exceptions DML. Il prend en charge la gestion des requêtes SOQL et SOSL en ligne qui renvoie l'ensemble des enregistrements sObject. Nous étudierons en détail sObject, SOQL, SOSL dans les prochains chapitres.
Java comme la syntaxe et facile à utiliser
Apex est facile à utiliser car il utilise la syntaxe comme Java. Par exemple, déclaration de variable, syntaxe de boucle et instructions conditionnelles.
Fortement intégré aux données
Apex est axé sur les données et conçu pour exécuter simultanément plusieurs requêtes et instructions DML. Il émet plusieurs déclarations de transaction sur la base de données.
Fortement typé
Apex est un langage fortement typé. Il utilise une référence directe à des objets de schéma comme sObject et toute référence non valide échoue rapidement si elle est supprimée ou si son type de données est incorrect.
Environnement multi-locataire
Apex s'exécute dans un environnement mutualisé. Par conséquent, le moteur d'exécution Apex est conçu pour se protéger étroitement contre le code emballé, l'empêchant de monopoliser les ressources partagées. Tout code qui enfreint les limites échoue avec des messages d'erreur faciles à comprendre.
Mises à niveau automatiquement
Apex est mis à niveau dans le cadre des versions de Salesforce. Nous n'avons pas besoin de le mettre à jour manuellement.
Test facile
Apex fournit une prise en charge intégrée pour la création et l'exécution de tests unitaires, y compris les résultats de test qui indiquent la quantité de code couverte et les parties de votre code qui peuvent être plus efficaces.
Quand les développeurs devraient-ils choisir Apex?
Apex doit être utilisé lorsque nous ne sommes pas en mesure d'implémenter la fonctionnalité métier complexe à l'aide des fonctionnalités prédéfinies et prêtes à l'emploi existantes. Vous trouverez ci-dessous les cas dans lesquels nous devons utiliser apex sur la configuration Salesforce.
Applications Apex
Nous pouvons utiliser Apex quand nous le voulons -
Créez des services Web avec l'intégration d'autres systèmes.
Créez des services de messagerie pour l'explosion d'e-mails ou la configuration d'e-mails.
Effectuez une validation complexe sur plusieurs objets en même temps et une implémentation de validation personnalisée.
Créez des processus métier complexes qui ne sont pas pris en charge par les fonctionnalités ou les flux de flux de travail existants.
Créez une logique transactionnelle personnalisée (logique qui se produit sur toute la transaction, pas seulement avec un seul enregistrement ou objet), comme en utilisant les méthodes Database pour mettre à jour les enregistrements.
Exécutez une certaine logique lorsqu'un enregistrement est modifié ou modifiez l'enregistrement de l'objet associé lorsqu'un événement a provoqué le déclenchement du déclencheur.
Structure de travail d'Apex
Comme indiqué dans le diagramme ci-dessous (Référence: Documentation du développeur Salesforce), Apex s'exécute entièrement à la demande Force.com Platform
Flux d'actions
Il y a deux séquences d'actions lorsque le développeur enregistre le code et lorsqu'un utilisateur final effectue une action qui appelle le code Apex comme indiqué ci-dessous -
Action du développeur
Lorsqu'un développeur écrit et enregistre du code Apex sur la plate-forme, le serveur d'applications de la plate-forme compile d'abord le code dans un ensemble d'instructions pouvant être compris par l'interpréteur d'exécution Apex, puis enregistre ces instructions sous forme de métadonnées.
Action de l'utilisateur final
Lorsqu'un utilisateur final déclenche l'exécution d'Apex, en cliquant sur un bouton ou en accédant à une page Visualforce, le serveur d'applications de la plateforme récupère les instructions compilées à partir des métadonnées et les envoie via l'interpréteur d'exécution avant de renvoyer le résultat. L'utilisateur final n'observe aucune différence de temps d'exécution par rapport à la demande de plate-forme d'application standard.
Comme Apex est le langage propriétaire de Salesforce.com, il ne prend pas en charge certaines fonctionnalités, contrairement à un langage de programmation général. Voici quelques fonctionnalités que Apex ne prend pas en charge -
Il ne peut pas afficher les éléments dans l'interface utilisateur.
Vous ne pouvez pas modifier la fonctionnalité fournie par SFDC standard et il n'est pas non plus possible d'empêcher l'exécution de la fonctionnalité standard.
La création de plusieurs threads n'est pas non plus possible car nous pouvons le faire dans d'autres langues.
Comprendre la syntaxe Apex
Le code Apex contient généralement de nombreuses choses que nous connaissons peut-être dans d'autres langages de programmation.
Déclaration de variable
En tant que langage fortement typé, vous devez déclarer chaque variable avec un type de données dans Apex. Comme le montre le code ci-dessous (capture d'écran ci-dessous), lstAcc est déclaré avec le type de données Liste des comptes.
Requête SOQL
Cela sera utilisé pour récupérer les données de la base de données Salesforce. La requête illustrée dans la capture d'écran ci-dessous récupère les données de l'objet Account.
Déclaration de boucle
Cette instruction de boucle est utilisée pour itérer sur une liste ou pour itérer sur un morceau de code pendant un nombre de fois spécifié. Dans le code montré dans la capture d'écran ci-dessous, l'itération sera identique au nombre d'enregistrements que nous avons.
Déclaration de contrôle de flux
L'instruction If est utilisée pour le contrôle de flux dans ce code. En fonction de certaines conditions, il est décidé s'il faut exécuter ou arrêter l'exécution du morceau de code particulier. Par exemple, dans le code ci-dessous, il vérifie si la liste est vide ou contient des enregistrements.
Déclaration DML
Effectue les opérations d'insertion, de mise à jour, d'upsert et de suppression d'enregistrements sur les enregistrements de la base de données. Par exemple, le code ci-dessous aide à mettre à jour les comptes avec une nouvelle valeur de champ.
Voici un exemple de l'apparence d'un extrait de code Apex. Nous allons étudier plus en détail tous ces concepts de programmation Apex dans ce tutoriel.