Loading...

Salesforce APEX CheatSheet

Feuille de rappel de méthodes pour les classes APEX sur Salesforce
Salesforce APEX CheatSheet

Salesforce APEX CheatSheet

Catégorie : DIVERS

Pour faciliter les tâches et recherches en Développement Salesforce APEX, ce cheatsheet regroupe différentes fonctions et méthodes permettant de traiter certains problèmes récurents de développement.

Conversions avec le format Date

Problème classique, celui qui n'a j'amais écrit une recherche Google "Convert String to Date with APEX Salesforce" me jette la première pierre! C'est donc naturellement que cette section se retrouve à la premierè place du cheatsheet Salesforce APEX.

Date.valueOf(String date)

La chaîne spécifiée doit utiliser le format de date standard "yyyy-MM-dd HH:mm:ss" dans le fuseau horaire local

myDate = date.valueOf('2020–09–30');
    

Date.parse(String date)

Le format de la chaîne dépend du format de date local, comme "dd/mm/yyyy". Si le paramètre n'est pas de ce format, la méthode date.parse(String date) lancera une erreur.

myDate = date.parse('30/09/2020');
    

Convertir du format Date au format String avec Date.format(String format)

Pour convertir une date en String avec APEX, on peut utiliser la méthode format en lui passant le formatage souhaité en paramètre.

Datetime myDate = date.parse('30/09/2020');
String date = myDate.format('dd/MM/yyyy');
    

Utilisation des Map

Un des types de variables majeure à utiliser en Apex, il s'agit d'un tableau associatif compatible avec tous les types de données.

"Là où il y a un problème, il y a un Map qui peut le résoudre" Wissem R.

Déclarer un Map

Pour déclarer une nouvelle variable de type Map, vous devez lui spécifier ses deux types. Pour l'exemple on utilisera "Id" et "Decimal", mais on pourrait trés bien lui passer un "User", "Id" ou tout autre objet.

Map<Id, Decimal> mapIdDecimal = new Map<Id, Decimal>();
    

Ajouter des éléments dans un Map

L'ajout d'un nouvel élément au map s'effectue avec la méthode "put(Key, Value)".

Map<String, Decimal> mapStringDecimal = new Map<String, Decimal>();
mapStringDecimal.put('ValeurDeMaString', 42.42);
    

Supprimer un élément d'un Map

Pour supprimer une association clé-valeur d'un Map, il faut appeler la méthode "remove(Key)".

mapStringDecimal.remove('ValeurDeMaString');
    

Itérer dans un Map

Pour itérer au travers d'un Map, plusieurs méthodes sont disponibles. Dans mon cas j'utilise la méthode "keySet", retournant la liste des différentes clés. Son avantage est de pouvoir être utilisée dans une requête SOQL au même titre qu'un Set. Une itération classique est également possible :

for(String nom : mapStringDecimal.keySet()){
    Decimal tempDecimal = mapStringDecimal.get(nom);
}
    

Utilisation des List

La liste d'objet est un type classique en Apex, il s'agit d'une liste d'objet ou de type basique

Déclarer une List

Pour déclarer une nouvelle variable de type List, vous devez lui spécifier le type d'objet qu'elle contiendra. Pour l'exemple on utilisera "User", mais on pourrait trés bien lui passer un "Decimal", "Id" ou tout autre objet.

List<User> lu = new List<User>();
    

Ajouter des éléments dans une Liste

L'ajout d'un nouvel élément à une List s'effectue avec la méthode "add(Value)".

List<User> lu = new List<User>();
User u = new User(Name='TestMan');
lt.add(u);
    

On peut aussi obtenir une Liste d'objets comme résultat d'une requête SOQL tel que :

List<User> lu = [SELECT Id, Name FROM User];

Supprimer un élément d'une List

Pour supprimer une valeur d'une List, il faut appeler la méthode "remove(Index)". On peut trouver le numéro d'index d'une valeur en utilisant la méthode "indexOf(Value)" attention toute fois, si un élément éxiste plusieurs fois dans la liste, cet appel ne supprimera qu'un seul enregistrement.

     
lu.remove(lu.indexOf(u));
    

Itérer dans un Map

Pour itérer au travers d'une Liste, il suffit d'une itération classique avec une boucle for :

for(User u : lu){
    //Code répété
}