[Bug] Déclaration de variables locales de type 'record'
[Bug] Déclaration de variables locales de type 'record'
Bonjour à tous.
Récemment, je mets en place des systèmes de validation de données autour de mes Patch() avec des variables locales et des Regex et je suis tombé sur un cas un peu bizarre, donc je voulais savoir ce que vous en pensiez.
Avant d’accéder au formulaire custom que j’ai mis en place, on déclare :
UpdateContext(n{nlocValidContact: {n Nom: If(!IsBlank(ThisItem.lastname) && IsMatch(ThisItem.lastname; "^\p{L}{1,50}(?:-\p{L}+)?\s*$"); true; false);n Prenom: If(!IsBlank(ThisItem.firstname) && IsMatch(ThisItem.firstname; "^\p{L}{1,50}(?:-\p{L}+)?\s*$"); true; false);n Tel: If(!IsBlank(ThisItem.mobilephone) && IsMatch(ThisItem.mobilephone; "^0\d{9}$") && Len(Value(ThisItem.mobilephone) <= 10); true; false);n Mail:If(!IsBlank(ThisItem.'Courrier électronique') && IsMatch(ThisItem.'Courrier électronique'; "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"); true; false)n}n})
En résumé, on déclare une variable locValidContact contenant locValidContact.Nom, locValidContact.Prenom…. dont la valeur est ‘true’ si l’information conforme à la Regex et ‘false’ si non.
Pour finaliser le système, on ajoute dans le OnChange() des entrées de texte une formule de ce type :
If(IsMatch(Self.Text;"^\p{L}{1,50}(?:-\p{L}+)?\s*$");nUpdateContext({locValidPrenom: Patch(locValidContact; {Prenom: true})});nUpdateContext({locValidPrenom: Patch(locValidContact; {Prenom: false})})n)
Cette formule nous permet d’éditer une ligne de notre variable locValidContact sans toucher / effacer les autres.
Jusque-là, tout semble fonctionner en mode édition et preview, mais dès que je lance réellement l’app, le bouton dans lequel je déclare ma variable locValidContact ne fonctionne plus, comme s’il avait une erreur qui n’apparaît pas en mode édition.
Est ce que quelqu’un sait d’où vient ce comportement ?
Merci d’avance !
PostID=IcFS4j8K7dnDNDT
Connectez-vous pour répondre.