Quand vous développez des applications, vous avez souvent besoin de garder des informations à portée de main sans les enregistrer immédiatement dans une base de données. C’est exactement le rôle des Collections Power Apps. Imaginez un espace de travail temporaire où vos données restent disponibles pendant toute la session. Vous pouvez les modifier, les trier et les afficher rapidement sans dépendre d’une connexion internet. Ce système simplifie la création d’applications performantes et réactives.
En bref
- Les collections fonctionnent comme des tableaux temporaires qui stockent vos données en mémoire pendant l’utilisation de l’application
- Utilisez Collect pour ajouter des données et ClearCollect pour remplacer complètement le contenu d’une collection
- Les fonctions Remove, RemoveIf et Patch permettent de supprimer ou modifier des enregistrements dans vos collections
- Les collections améliorent les performances en réduisant les appels réseau et permettent le travail hors ligne
- La limite est généralement de 2 000 enregistrements par collection, avec une perte des données à la fermeture de l’application
Qu’est-ce qu’une collection dans Power Apps ?
Une collection représente un espace de stockage temporaire qui garde vos données en mémoire pendant l’utilisation d’une application. Ces données restent accessibles tant que l’application fonctionne, mais disparaissent une fois celle-ci fermée.
Les Collections Power Apps fonctionnent comme des tableaux qui contiennent des lignes et des colonnes. Chaque ligne stocke un enregistrement complet, tandis que les colonnes définissent les différents champs de données.
Contrairement aux sources de données externes comme SharePoint ou Dataverse, les collections vivent uniquement dans la session active. Elles offrent une rapidité d’accès exceptionnelle puisque les informations restent dans la mémoire de l’appareil.
Créer une collection avec la fonction Collect
La fonction Collect permet de créer une nouvelle collection ou d’ajouter des données à une collection existante. Cette fonction accepte deux paramètres principaux : le nom de la collection et les données à intégrer.
Pour créer une collection simple, vous pouvez utiliser cette syntaxe : Collect(MaCollection, {Nom: « Dupont », Prénom: « Marie », Age: 28}). Cette commande génère instantanément une collection nommée MaCollection avec un premier enregistrement.
Vous pouvez également alimenter une collection depuis une source de données existante. Par exemple : Collect(ClientsLocaux, Filter(Clients, Ville = « Paris »)) copie tous les clients parisiens dans une collection locale.
Utiliser ClearCollect pour remplacer les données
La fonction ClearCollect efface d’abord toutes les données d’une collection avant d’y ajouter de nouveaux enregistrements. Cette approche garantit que votre collection ne contient que les informations les plus récentes.
Cette fonction s’avère particulièrement utile lors du rafraîchissement de données. Au lieu d’accumuler des doublons, ClearCollect repart sur une base propre à chaque exécution.
La syntaxe ressemble beaucoup à Collect : ClearCollect(MesContacts, Office365Users.SearchUser({searchTerm: « commercial »})). Cette formule remplace complètement le contenu de la collection MesContacts.
Manipuler les données avec les fonctions de collection
Les Collections Power Apps acceptent plusieurs fonctions pour modifier leur contenu. La fonction Remove supprime des enregistrements spécifiques selon les critères que vous définissez.
Pour retirer un élément précis, utilisez : Remove(MaCollection, LookUp(MaCollection, ID = 5)). Cette commande cherche puis supprime l’enregistrement dont l’ID vaut 5.
La fonction RemoveIf va plus loin en éliminant tous les enregistrements qui correspondent à une condition. Par exemple : RemoveIf(Produits, Prix > 100) retire tous les produits dont le prix dépasse 100 euros.
Pour modifier un enregistrement existant, la fonction Patch fait le travail : Patch(MaCollection, LookUp(MaCollection, ID = 3), {Statut: « Validé »}). Elle localise l’enregistrement et met à jour le champ Statut.
Afficher et utiliser les collections dans l’interface
Les galeries constituent le moyen le plus naturel de présenter les données d’une collection. Vous reliez simplement la propriété Items d’une galerie au nom de votre collection, et les enregistrements s’affichent automatiquement.
Chaque élément de la galerie peut accéder aux colonnes de la collection via ThisItem. Pour afficher un nom, vous écrirez ThisItem.Nom dans la propriété Text d’un label.
Les collections fonctionnent aussi comme source pour les listes déroulantes, les combos et les tableaux de données. Cette flexibilité permet de construire des interfaces riches sans connexion permanente à une base externe.
Les avantages des collections pour la performance
Travailler avec des collections améliore sensiblement la réactivité de vos applications. Les données en mémoire se chargent et s’affichent quasi instantanément, sans délai réseau.
Cette rapidité devient cruciale pour les applications utilisées sur le terrain, où la connexion internet peut être instable ou absente. Nous conseillons de charger les données nécessaires dans des collections au démarrage de l’application.
Les collections réduisent aussi le nombre d’appels vers les sources de données externes. Au lieu de requêter la base plusieurs fois, vous récupérez les informations une fois et les manipulez localement.
Scénarios pratiques d’utilisation des collections
Les formulaires multi-étapes bénéficient grandement des collections. Vous stockez les réponses de l’utilisateur au fur et à mesure, puis envoyez l’ensemble des données en une seule fois vers la destination finale.
Voici quelques cas d’usage courants :
- Stocker temporairement des sélections d’articles dans un panier d’achat
- Conserver l’historique des actions de l’utilisateur pendant une session
- Mettre en cache des données de référence utilisées fréquemment
- Préparer un lot de modifications avant l’envoi groupé vers une base de données
Les applications de saisie terrain utilisent souvent les collections pour permettre le travail hors ligne. Les utilisateurs enregistrent leurs données localement, qui seront synchronisées une fois la connexion rétablie.
Filtrer et trier les collections efficacement
La fonction Filter appliquée à une collection crée une vue filtrée sans modifier les données d’origine. Par exemple : Filter(MaCollection, Statut = « En attente ») retourne uniquement les éléments en attente.
Vous pouvez combiner plusieurs critères avec les opérateurs && (et) et || (ou). Cette flexibilité permet de construire des recherches complexes adaptées aux besoins précis de vos utilisateurs.
Pour le tri, la fonction SortByColumns réorganise l’affichage : SortByColumns(MaCollection, « DateCreation », Descending). Les données apparaissent alors du plus récent au plus ancien.
Limites et bonnes pratiques
Les collections stockent les données dans la mémoire de l’appareil, ce qui impose certaines contraintes. Une collection peut contenir jusqu’à 2 000 enregistrements dans la plupart des contextes, bien que cette limite puisse varier selon la plateforme.
La taille totale des données influence directement les performances. Des collections trop volumineuses ralentissent l’application et consomment beaucoup de ressources. Nous recommandons de ne charger que les informations réellement nécessaires.
Pensez à vider les collections devenues inutiles avec la fonction Clear. Cette pratique libère de la mémoire et maintient votre application réactive tout au long de son utilisation.
N’oubliez pas que les collections sont volatiles. Si vous devez conserver des données entre les sessions, il faut les sauvegarder vers une source permanente avant la fermeture de l’application.
Combiner collections et variables contextuelles
Les variables contextuelles complètent parfaitement les collections pour gérer l’état de votre application. Utilisez UpdateContext pour stocker des valeurs simples comme l’enregistrement actuellement sélectionné.
Cette combinaison permet de créer des interactions sophistiquées. Par exemple, une variable peut mémoriser l’élément choisi dans une galerie liée à une collection, tandis que d’autres écrans utilisent cette référence pour afficher les détails.
Les deux mécanismes travaillent ensemble pour offrir une expérience utilisateur fluide et réactive, sans dépendre constamment de sources de données externes.
FAQ : Questions fréquentes sur les collections Power Apps
Quelle est la différence entre Collect et ClearCollect ?
Collect et ClearCollect diffèrent dans leur traitement des données existantes. Collect ajoute de nouveaux enregistrements à une collection sans toucher aux données déjà présentes, ce qui peut créer des doublons. ClearCollect efface d’abord complètement la collection avant d’y ajouter les nouvelles données, garantissant ainsi un contenu toujours à jour.
Comment sauvegarder les données d’une collection de manière permanente ?
Pour sauvegarder les données d’une collection de manière permanente, vous devez utiliser la fonction Patch ou ForAll pour transférer les enregistrements vers une source externe comme SharePoint, Dataverse ou SQL. Cette opération s’effectue généralement avant la fermeture de l’application pour éviter toute perte de données.
Peut-on utiliser plusieurs collections simultanément dans une application ?
Utiliser plusieurs collections simultanément dans une application est parfaitement possible et même recommandé pour organiser différents types de données. Vous pouvez créer autant de collections que nécessaire, chacune avec son propre nom. Attention toutefois à la consommation mémoire totale qui peut impacter les performances.
Comment compter le nombre d’éléments dans une collection ?
Pour compter le nombre d’éléments dans une collection, utilisez la fonction CountRows(MaCollection) qui retourne le nombre total d’enregistrements. Vous pouvez aussi combiner avec Filter pour compter uniquement les éléments répondant à un critère spécifique, par exemple CountRows(Filter(MaCollection, Statut = « Actif »)).
Les collections fonctionnent-elles en mode hors ligne ?
Les collections fonctionnent parfaitement en mode hors ligne une fois les données chargées en mémoire. C’est précisément leur avantage majeur : elles permettent aux utilisateurs de consulter et manipuler les données sans connexion internet. La synchronisation avec les sources externes intervient uniquement lors du retour en ligne.