Power Apps : Patch() n’enregistre pas ou ne crée pas l’enregistrement
Quand Patch() échoue en silence ou renvoie une erreur dans Power Apps, c’est presque toujours une colonne obligatoire manquante, une incompatibilité de type (texte dans une colonne nombre/choix, ou chaîne dans un lookup/choix qui attend un enregistrement), ou un Patch appliqué à une copie/variable locale au lieu de la vraie source de données. Correctif immédiat : encapsule l’appel dans IfError(Patch(...); Notify("Échec Patch : " & FirstError.Message; NotificationType.Error)) pour faire remonter l’erreur réelle, vérifie le nom logique de la colonne, et passe le véritable enregistrement ou la valeur de choix pour les lookups/choix — par exemple {Value:"Active"} ou le résultat d’un LookUp(). Correctif durable : confirme que l’utilisateur a le droit de créer/modifier sur la table, et patch toujours directement la source de données, jamais une collection ou une variable.
Causes fréquentes
- 1Une colonne obligatoire manque dans l’enregistrement passé — à la création, Patch a besoin de tous les champs requis.
- 2Un mauvais type : passer du texte à une colonne nombre/choix, ou une chaîne à un lookup/choix qui attend un enregistrement.
- 3Tu as patché une copie/variable au lieu de la source de données, donc rien n’est persisté côté serveur.
- 4Une colonne lookup ou choix a reçu une chaîne au lieu de l’enregistrement lié ou de la valeur de choix.
Comment diagnostiquer
- 1Encapsule le Patch dans un Notify pour faire remonter l’erreur : IfError(Patch(...); Notify("Échec Patch : " & FirstError.Message; NotificationType.Error)).
- 2Vérifie les noms logiques vs noms d’affichage des colonnes — Patch utilise les noms de champ de la source.
- 3Pour les choix/lookups, mets la vraie valeur (ex. {Value:"Active"} ou un LookUp() de la ligne liée).
- 4Confirme que l’utilisateur a le droit de créer/modifier sur la table.