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
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é }