Lenteur fonction patch
Étiquetté : powerapps
-
Lenteur fonction patch
Posté par 666lestat sur 29 mars 2023 à 12h36Bonjour,
j’ai un souci surement simple mais que je n’arrive pas à résoudre.
j’ai un Bouton + et un – dans une gallerie (chaque “image” a son + et son -)
Sur chaque bouton j’ai mis ceci en onselect :
Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY-1}) (ou -1)
Mon souci est que c’est trés lent. On clique puis il faut attendre 2 à 3 secondes.
Pourriez vous m’aider ?
Merci d’avance.
PostID=hJZK7MKsLK1NOVx
666lestat a répondu Il y a 11 mois, 4 semaines 1 Membre · 11 Réponses -
11 Réponses
-
Bonjour 666lestat
La lenteur peut être due à beaucoup de facteurs qu’on ne maitrise pas forcément.
Si tu n’as pas besoin que la base soit mise à jour à chaque clic, tu peux essayer d’utiliser des collections et actualiser la base avec la collection une fois que tu quittes l’écran par exemple. Ca limitera le nombre de requêtes vers la BDD.CommentID=vIqURbiuMTXepBG, PostID=hJZK7MKsLK1NOVx
-
c’est une liste sharepoint avec moins de 50 items.
C’est pour le suivi de stock en direct sur des accessoires.
Je prefererais que cela soit en direct.
C’est tout de même bizare que cela soit si long, non ?
le but est juste de faire plus ou moins 1 quand on clique sur les icones…
Merci pour ton aide.
CommentID=41CcNjyepfjUp6j, PostID=hJZK7MKsLK1NOVx
-
Le soucis c’est que quand tu enregistres une modif dans ta source de données, elle est réactualisée dans la gallerie pour afficher cette mise à jour. Si tu as des images de 2Mo par exemple, affichés en pleine résolution dans ta galerie, cela ralentira d’autant l’affichage.
Tu peux soit passer par une collection comme le propose Geoffroy WAGNER , ou, autre alternative, tu peux ajouter un bouton ou un icone “valider” et sur tes boutons + / – , au lieu de patcher la source, tu incrémentes une variable, et tu patches la valeur sur le bouton de validation, ce qui limitera le nombre de patchs
CommentID=gWNAHeQyd0RQCHu, PostID=hJZK7MKsLK1NOVx
-
Merci pour ta réponse. Est il possible de ne mettre à jour que la quantité et non le reste ?
L’ensemble des photos fait 1,51Mo, donc pas sur que le souci soit là, si ?
Edit:
Je viens de supprimer toutes les images et cela mets toujours environs 5 secondes pour indiquer le changement…
ce qui serait bien c’est d’afficher la bonne quantité et de mettre à jours la base au bout de quelques seconde en arrière plan, mais ça, je ne sais pas faire.
Par contre c’est hallucinant que cela prene autant de temps juste pour ça. Il n’y a pas une autre fonction plus efficace ?
CommentID=kBsij8ZBGXKCwR3, PostID=hJZK7MKsLK1NOVx
-
Pour que ce soit plus fluide pour l’utilisateur, il faut s’appuyer sur ce que Geoffroy WAGNER a proposé en premier :
-
Collecter la source de données dans une collection
-
Patcher les modifs de quantité sur la collection (là ça se fera en instantanné)
-
Une fois toute les modifs faites par l’utilisateur, avec un bouton “enregistrer les modifications” : Patcher la collection sur la source de données
CommentID=rKuoQFLXmmnnidl, PostID=hJZK7MKsLK1NOVx
-
-
Encore une question, Gallery est elle la meilleur solution pour ce type de projet ?
J’affiche juste les images de mes accessoires avec un plus et un moins pour les entrée ou sortie de stock
En attendant, je vais regarder comment mettre en place ce dont vous me parlez (je suis débutant).
Merci.
CommentID=5Al8ikbbKKypRie, PostID=hJZK7MKsLK1NOVx
-
Je suis en train de tester la solution avec une variable. le seul hic, c’est que cela incrémente tout les compteurs de la gallery…
Désolé pour ces soucis de débutant, mais je passe plus de temps à chercher qu’à faire. C’est plus simple avec du python lol
CommentID=arlDDWVKaxQi1fi, PostID=hJZK7MKsLK1NOVx
-
Tu nous montres le code pour qu’on puisse t’aider ?
CommentID=roPJjOdiPEpwHjk, PostID=hJZK7MKsLK1NOVx
-
Voici déjà à quoi cela ressemble :
C’est tout simple, quand on enleve un accessoire, on fait un moins, et quand on en remet un en stock on fait plus.
sur mon dev, voici le code sur le plus et le moins :
UpdateContext({i:i -1})
UpdateContext({i:i +1})
sur la validation :
Patch(
BDD_accessoires,
ThisItem,
{QTY: ThisItem.QTY + i}
)
avant j’utilisais patch sur le plus et le moins :
Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY+1})
Patch(BDD_accessoires, ThisItem, {QTY: ThisItem.QTY-1})
Pour les collection, je suis débutant, je cherche à comprendre comment ça marche donc je n’ai pas mis en place et j’ai l’impression que c’est pas adapté. je ne veux pas que le tech fasse plusieurs accessoires en meme temps.
CommentID=OnE3tufp4x4VTWn, PostID=hJZK7MKsLK1NOVx
-
A première vue, ton code semble répondre à ton besoin. J’ajouterais quand même une remise à zéro de la variable i après chaque Patch.
Pour t’orienter sur l’utilisation d’une collection, il faudrait connaitre la structure de ta BDD (les colonnes).CommentID=004m72SvmjqOeHR, PostID=hJZK7MKsLK1NOVx
-
Bonjour,
Merci pour votre aide.
j’ai déjà mis la remise à zero, ça aide 😄
pour les colonnes, c’est trés simple :
Type d’accessoire
marque
modele
reference
description
QTY
Image
Fournisseur
min stock
max stok
CommentID=xYd3MrCMNnlt3Ww, PostID=hJZK7MKsLK1NOVx
Connectez-vous pour répondre.