2017-10-06 2 views
1

Comme le titre l'indique, j'essaie de filtrer une table SQL par les valeurs d'une collection. J'essaie d'utiliser la fonction Filter() et une formule in pour y parvenir.PowerApps - Filtrage de la table SQL sur la colonne Collection

ClearCollect(NewCollection, Filter('SqlTable', ID in ExistingCollection.ID))

... où ID est une colonne appartenant à 'SQLTable'.

Je reçois l'erreur "Le côté droit de l'opérateur 'in' n'est pas un nom de colonne". Ma collection 'ExistingCollection' contient des données et la table SqlTable contient également des données.

Le problème peut être la taille de la table des dépenses, il a 20k plus les lignes, mais ce filtre devrait retourner un très petit sous-ensemble de cela, ~ 200 lignes. Est-ce que je cours dans la limite de 5000 lignes ici? Ou ce type de filtrage n'est-il pas possible?

Répondre

0

Vous pouvez ignorer le message d'erreur, car il est incorrect. En tout cas ce n'est pas une erreur mais un avertissement de soulignement bleu. Cela signifie que la requête ne sera pas déléguée de sorte que les résultats ne proviendront que des 500 premiers enregistrements de SqlTable.

Vous pouvez tester cela en incluant dans ExistingCollection.ID une valeur qui est présente dans les 500 premiers enregistrements de SqlTable.

La documentation de PowerApps indique actuellement que l'opérateur in est délégué pour SQL Server, mais en fait, il n'est pas utilisé comme un opérateur d'appartenance.

Veuillez consulter le point 5 de this reference.

La référence parle d'Azure, mais les mêmes limitations s'appliquent à SQL Server.

+0

Donc si je comprends bien ... j'ai besoin de filtrer mon SqlTable dans une collection avant de pouvoir le filtrer avec 'in'? – Alex

+0

Vous pouvez filtrer SqlTable avec 'in' sans en charger tout ou partie dans une collection, mais vous ne recevrez que les résultats des 500 premières lignes de SqlTable. Si vous chargez tout ou partie de SqlTable dans une collection, vous pouvez appliquer le filtre 'in' à la collection sans limitations. Cependant, le problème principal est comment charger tout ou partie de SqlTable dans la collection. Vous ne pouvez charger plus de 500 lignes que par itération. Cela peut être fait, mais désordonné. – Meneghino