Modifie ou crée un ou plusieurs enregistrements dans une source de données ou fusionne des enregistrements en dehors d’une source de données.

Vue d’ensemble

Utilisez la fonction Patch pour modifier un ou plusieurs enregistrements d’une source de données. La modification de valeurs de propriétés spécifiques n’affecte pas les autres propriétés.

Utilisez la fonction Patch avec la fonction Defaults pour créer des enregistrements. Vous pouvez utiliser ce comportement pour créer un écran unique pour la création et la modification des enregistrements.

Même si vous ne travaillez pas avec une source de données, vous pouvez utiliser la fonction Patch pour fusionner deux enregistrements ou plus.

Description

Modification ou création d’un enregistrement dans une source de données

Pour utiliser cette fonction avec une source de données, spécifiez la source de données, puis spécifiez un enregistrement de base :

  • Pour modifier un enregistrement, l’enregistrement de base doit provenir d’une source de données. L’enregistrement de base peut provenir de la propriété Items d’une galerie, avoir été placé dans une variable de contexte ou provenir d’une autre source. Vous devez cependant être en mesure de retrouver la source de données initiale de l’enregistrement de base. En effet, l’enregistrement inclut des informations supplémentaires simplifiant la recherche de l’enregistrement en vue de sa modification.

  • Utilisez la fonction Defaults pour créer un enregistrement de base avec les valeurs par défaut.

Ensuite, spécifiez un ou plusieurs enregistrements de modification contenant chacun de nouvelles valeurs de propriété qui remplacent celles de l’enregistrement de base. Les enregistrements de modification sont traités du début à la fin de la liste d’arguments, les dernières valeurs de propriété remplaçant les précédentes.

La valeur renvoyée par la fonction Patch est l’enregistrement que vous avez modifié ou créé. Si vous avez créé un enregistrement, la valeur renvoyée peut inclure des propriétés que la source de données a générées automatiquement.

La mise à jour d’une source de données peut entraîner un ou plusieurs problèmes. Utilisez la fonction Errors pour identifier et examiner les problèmes, comme décrit dans l’article Working with Data Sources (Utilisation des sources de données).

Certaines fonctions connexes sont disponibles, notamment la fonction Update, que vous pouvez utiliser pour remplacer un enregistrement entier et la fonction Collect, que vous pouvez utiliser pour créer un enregistrement. Vous pouvez utiliser la fonction UpdateIf pour modifier des propriétés spécifiques de plusieurs enregistrements selon une condition.

Modification ou création d’un ensemble d’enregistrement dans une source de données

La fonction Patch peut également être utilisée pour créer ou modifier plusieurs enregistrements avec un seul appel.

Au lieu de transmettre un seul enregistrement de base, une table d’enregistrements de base peut être fournie dans le deuxième argument. Les enregistrements de modification sont également fournis dans une table, chacun correspondant à un enregistrement de base. Le nombre d’enregistrements de chaque table de modifications doit correspondre au nombre d’enregistrements de la table de base.

Lorsque vous utilisez la fonction Patch de cette manière, la valeur renvoyée est également une table dont chaque enregistrement de base correspond à un enregistrement de modification.

Fusion d’enregistrements en dehors d’une source de données

Spécifiez au moins deux enregistrements à fusionner. Les enregistrements sont traités du début à la fin de la liste d’arguments, les dernières valeurs de propriété remplaçant les précédentes.

La fonction Patch retourne l’enregistrement fusionné et ne modifie pas ses arguments ou enregistrements dans les sources de données.

Syntaxe

Modification ou création d’un enregistrement dans une source de données

Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])

  • DataSource – Requis. La source de données qui contient l’enregistrement que vous souhaitez modifier ou qui contiendra l’enregistrement que vous souhaitez créer.

  • BaseRecord – Requis. L’enregistrement à modifier ou créer. Si l’enregistrement provient d’une source de données, il est trouvé et modifié. Si le résultat de la fonction Defaults est utilisé, un enregistrement est créé.

  • ChangeRecord(s) – Requis. Un ou plusieurs enregistrements contenant des propriétés à modifier dans l’enregistrement de base (BaseRecord). Les enregistrements de modification sont traités du début à la fin de la liste d’arguments, les dernières valeurs de propriété remplaçant les précédentes.

Modification ou création d’un ensemble d’enregistrement dans une source de données

Patch( DataSource, BaseRecordsTable, ChageRecordTable1, [, ChangeRecordTable2, … ] )

  • DataSource – Requis. La source de données qui contient les enregistrements que vous souhaitez modifier ou qui contiendra les enregistrements que vous souhaitez créer.

  • BaseRecordTable – Requis. Une table contenant les enregistrements à modifier ou créer. Si l’enregistrement provient d’une source de données, il est trouvé et modifié. Si le résultat de la fonction Defaults est utilisé, un enregistrement est créé.

  • ChangeRecordTable(s) – Requis. Une ou plusieurs tables d’enregistrements qui contiennent des propriétés à modifier pour chaque enregistrement de la table BaseRecordTable. Les enregistrements de modification sont traités du début à la fin de la liste d’arguments, les dernières valeurs de propriété remplaçant les précédentes.

Fusion d’enregistrements

Patch( Record1, Record2 [, …] )

  • Record(s) - Requis. Au moins deux enregistrements à fusionner. Les enregistrements sont traités du début à la fin de la liste d’arguments, les dernières valeurs de propriété remplaçant les précédentes.

Exemples

Modification ou création d’un enregistrement (dans une source de données)

Dans le cadre de ces exemples, vous allez modifier ou créer un enregistrement dans une source de données nommée IceCream, contenant les données dans cette table et générant automatiquement les valeurs dans la colonne ID :

Formule Description Résultat
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Modifie un enregistrement dans la source de données IceCream :
  • La colonne ID de l’enregistrement à modifier contient la valeur 1. (L’enregistrement Chocolate est associé à cet ID.)
  • La valeur de la colonne Quantity devient 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

L’entrée Chocolate de la source de données IceCream a été modifiée.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Crée un enregistrement dans la source de données IceCream :
  • La colonne ID contient la valeur 3, que la source de données génère automatiquement.
  • La colonne Quantity contient la valeur 0, qui est la valeur par défaut pour cette colonne dans la source de données IceCream, comme spécifié par la fonction Defaults.
  • La colonne Flavor contient la valeur Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

L’entrée Strawberry de la source de données IceCream a été créée.

Une fois les formules précédentes évaluées, la source de données se termine avec ces valeurs :

Fusion d’enregistrements (en dehors d’une source de données)

Formule Description Résultat
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Fusionne deux enregistrements en dehors d’une source de données :
  • Les valeurs de la colonne Name de chaque enregistrement ne correspondent pas. Le résultat contient la valeur (Jim) de l’enregistrement le plus proche de la fin de la liste d’arguments au lieu de la valeur (James) de l’enregistrement le plus proche du début.
  • Le premier enregistrement contient une colonne (Score) qui n’existe pas dans le deuxième enregistrement. Le résultat contient cette colonne avec sa valeur (90).
  • Le deuxième enregistrement contient une colonne (Passed) qui n’existe pas dans le premier enregistrement. Le résultat contient cette colonne avec sa valeur (true).
{ Name: "Jim", Score: 90, Passed: true }