Fonction ForAll

Effectué

Vous avez précédemment découvert comment utiliser des fonctions à finalité unique par rapport à une table. Elles sont idéales et fonctionnent correctement, mais vous avez parfois besoin de plus de flexibilité ou d’effectuer une opération non couverte par l’une de ces fonctions. Si tel est le cas, il existe la fonction ForAll.

La fonction ForAll évalue une formule pour tous les enregistrements d’une table. La formule peut calculer une valeur et/ou effectuer des actions telles que la modification de données ou l’utilisation d’une connexion.

Les champs de l’enregistrement en cours de traitement sont disponibles dans la formule. Vous pouvez les référencer par leur nom comme vous le feriez pour toute autre valeur. Vous pouvez également référencer les propriétés de contrôle et d’autres valeurs sur l’ensemble de votre application.

Par exemple, vous pouvez utiliser ForAll(CustomerOrders, Office365.SendEmail(Email, "Merci", " Vous êtes un client formidable " & FirstName)) pour envoyer un e-mail distinct à toutes les adresses e-mail dans la table CustomerOrders. L’objet de l’e-mail est « Merci » et le corps « Vous êtes un client formidable », suivi de la valeur stockée dans le champ FirstName.

Cet exemple diffère de l’exemple Concat de deux manières. Tout d’abord, il envoie un e-mail pour chaque enregistrement dans la table CustomerOrders. Ainsi, s’il existe 50 enregistrements, 50 e-mails différents sont envoyés. Dans l’exemple Concat, un seul e-mail a été envoyé, avec indication de la totalité des 50 adresses e-mail sur la ligne À :. Deuxièmement, cet e-mail référence également le champ FirstName de la table CustomerOrders. Lorsque vous utilisez la fonction ForAll, tous les champs de chaque enregistrement sont exploitables.

Choses à savoir lorsque vous utilisez ForAll

ForAll apporte beaucoup de puissance, mais vous devez savoir plusieurs choses quand vous commencez à créer votre formule.

  • La formule peut comprendre des fonctions effectuant une action telle que la modification des enregistrements d’une source de données avec les fonctions Patch et Collect.

  • Vous ne pouvez pas modifier la table faisant l’objet de la fonction ForAll. Cela comprend l’utilisation de la fonction Patch ou Collect sur la table.

  • La formule peut appeler des méthodes sur des connexions.

  • Vous pouvez effectuer plusieurs actions par enregistrement à l’aide de l’opérateur « ; ».

  • Lorsque vous écrivez votre formule, n’oubliez pas que les enregistrements peuvent être traités dans tout ordre et, dans la mesure du possible, en parallèle. Vous pouvez traiter le premier enregistrement de la table après le dernier. Veillez à éviter les dépendances d’ordre. Pour cette raison, vous ne pouvez pas utiliser les fonctions Set, UpdateContext, Clear et ClearCollect au sein d’une fonction ForAll, car elles pourraient facilement permettre de contenir des variables sujettes à cet effet. Vous pouvez utiliser la fonction Collect, mais l’ordre dans lequel les enregistrements sont ajoutés n’est pas défini.

  • La fonction ForAll n’est pas délégable. Autrement dit, elle risque de ne pas parcourir tous vos enregistrements si elle est utilisée avec des données externes. Il se peut que le résultat que vous obteniez ne représente pas une vue d’ensemble complète. Un avertissement peut s’afficher lorsque vous écrivez votre formule pour vous rappeler cette limitation et pour vous suggérer d’utiliser d’autres solutions délégables dans la mesure du possible. La fonction ForAll fonctionne bien avec les collections, mais sachez qu’elle n’est pas délégable. Pour en savoir plus, consultez la Présentation de la délégation.

La fonction ForAll a bien plus de règles que la plupart des fonctions Power Apps. De plus, comme vous ne pouvez pas utiliser des fonctions telles que Set et UpdateContext, vous devez parfois trouver une autre façon d’approcher votre formule. Souvent, vous souhaitez suivre le nombre d’enregistrements modifiés ou capturer des informations sur ces enregistrements à l’aide des fonctions Set et ForAll. Vous pourriez constater que la mise à jour d’une collection où vous suivez ces mêmes données à l’aide de la fonction Patch peut vous mener au même résultat.

Pour en savoir plus sur l’utilisation et les règles pour la fonction ForAll, consultez Fonction ForAll dans Power Apps.