Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Applications canevas basées sur des modèles
Permet de mettre à jour des enregistrements dans une source de données.
Description
Update Fonction
Utilisez la Update fonction pour remplacer un enregistrement entier dans une source de données. En revanche, les UpdateIf fonctions Patch et patch modifient une ou plusieurs valeurs dans un enregistrement, en laissant les autres valeurs seules.
Dans le cadre d’une collection, l’enregistrement complet doit correspondre. Les collections autorisent des enregistrements en double. Ainsi, plusieurs enregistrements peuvent correspondre. Vous pouvez utiliser l’argument RemoveFlags.All pour mettre à jour toutes les copies d’un enregistrement. Dans le cas contraire, une seule copie de l’enregistrement est mise à jour.
Si la source de données génère automatiquement une valeur de colonne, la valeur de cette colonne doit être réaffirmée.
UpdateIf Fonction
Utilisez la UpdateIf fonction pour modifier une ou plusieurs valeurs dans un ou plusieurs enregistrements qui correspondent à une ou plusieurs conditions. La condition peut être une formule au choix de type true ou false, ainsi qu’elle peut référencer des colonnes de la source de données par leur nom. La fonction évalue la condition pour chaque enregistrement, puis modifie un enregistrement pour lequel le résultat est true.
Pour indiquer une modification, utilisez un enregistrement de modification contenant de nouvelles valeurs de propriété. Si vous mentionnez cet enregistrement de modification en ligne avec des accolades, les formules de propriété peuvent référencer des propriétés de l’enregistrement en cours de modification. Ce comportement vous permet de modifier les enregistrements d’après une formule.
Similaire à UpdateIf, vous pouvez également utiliser la fonction Patch pour modifier des colonnes spécifiques d’un enregistrement sans affecter d’autres colonnes.
À la fois Update et UpdateIf renvoyer la source de données modifiée sous forme de table. Vous devez utiliser l’une de ces deux fonctions dans une formule de comportement.
Délégation
Ces fonctions ne délèguent pas à une source de données. Toutefois, UpdateIf et RemoveIf fonctionnent localement pour simuler la délégation jusqu’à une limite de 500/2000 enregistrements. Ils ramènent progressivement les enregistrements au-delà de la limite de non-délégation de 500/2000 enregistrements. Enregistrements qui répondent à la condition If sont collectés. En règle générale, un maximum de 500/2000 enregistrements sont collectés séparément, puis modifiés par exécution. Toutefois, d’autres enregistrements peuvent être mis à jour si le cache de données local existant est volumineux, car la fonction peut avoir accès à davantage d’enregistrements pour l’évaluation. Seule la partie initiale de la source de données sera récupérée, puis la fonction sera appliquée. Cela peut ne pas représenter l’image complète. Un avertissement peut apparaître lors de la création pour vous rappeler cette limitation.
Syntaxe
Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )
- DataSource : obligatoire. Source de données contenant l’enregistrement à remplacer.
- OldRecord : obligatoire. Enregistrement à remplacer.
- NewRecord : obligatoire. Enregistrement de remplacement. Il ne s’agit pas d’un enregistrement de modification. L’enregistrement entier est remplacé et les propriétés manquantes contiennent des propriétés vides.
- RemoveFlags.All – Facultatif. Dans une collection, le même enregistrement peut apparaître plusieurs fois. Spécifiez l’argument RemoveFlags.All pour mettre à jour toutes les copies de l’enregistrement.
UpdateIf(DataSource_, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )
- DataSource : obligatoire. Source de données contenant l’enregistrement ou les enregistrements à modifier.
- Conditions : obligatoire. Formule renvoyant la valeur true pour l’enregistrement ou les enregistrements à modifier. Vous pouvez utiliser les noms de colonne de DataSource dans la formule. Dans le cas où plusieurs conditions sont passées, seul le ChangeRecord lié à la première condition qui prend la valeur true est appliqué.
- ChangeRecord(s) : obligatoire. Pour chaque condition correspondante, enregistrement de modification des valeurs de la nouvelle propriété à appliquer aux enregistrements de DataSource qui remplissent la condition. Si vous mentionnez cet enregistrement en ligne avec des accolades, les valeurs de propriété de l’enregistrement existant peuvent être utilisées dans les formules de la propriété.
Exemples
Dans ces exemples, vous allez remplacer ou modifier des enregistrements dans une source de données appelée IceCream qui commence par les données de cette table :
| Formule | Description | Résultat |
|---|---|---|
|
Update( IceCream, LookUp( IceCream, Flavor="Chocolate » ), { ID : 1, Flavor : « Mint Chocolate », Quantity :150 } ) |
Remplace un enregistrement à partir de la source de données. |
La source de données IceCream a été modifiée. |
| UpdateIf( IceCream, Quantity > 175, { Quantity : Quantity + 10 } ) | Modifie les enregistrements dont la valeur Quantity est supérieure à 175. Le champ Quantity est incrémenté de 10, et aucun autre champ n’est modifié. |
La source de données IceCream a été modifiée. |
|
Update( IceCream, LookUp( IceCream, Flavor="Fraise » ), { ID : 3, Flavor : « Fraise Swirl"} ) |
Remplace un enregistrement à partir de la source de données. La propriété Quantity n’a pas été fournie dans l’enregistrement de remplacement, de sorte que la propriété est blank dans le résultat. |
La source de données IceCream a été modifiée. |
| UpdateIf( IceCream, true, { Quantity : 0 } ) | Définit la valeur de la propriété Quantity à tous les enregistrements de la source de données sur 0. |
La source de données IceCream a été modifiée. |
Pas à pas
Importez ou créez une collection appelée Inventory, puis affichez-la dans une galerie comme décrit dans l’article Afficher les données dans une galerie.
Nommez la galerie ProductGallery.
Ajoutez un curseur appelé UnitsSold, puis définissez sa propriété Max en utilisant l’expression suivante :
ProductGallery.Selected.UnitsInStockAjoutez un bouton, puis définissez sa propriété OnSelect sur la formule suivante :
UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock :UnitsInStock-UnitsSold.Value})Appuyez sur F5, sélectionnez un produit dans la galerie, spécifiez une valeur avec le curseur, puis cliquez sur le bouton.
Le nombre d’unités en stock pour le produit spécifié diminue d’après la quantité que vous avez indiquée.