Fonction Patch dans PowerAppsPatch function in PowerApps

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.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Utilisez la fonction Patch pour modifier des enregistrements dans des situations complexes, comme quand vous effectuez des mises à jour qui ne nécessitent aucune interaction utilisateur ou qui utilisent des formulaires occupant plusieurs écrans.Use the Patch function to modify records in complex situations, such as when you perform updates that require no user interaction or use forms that span multiple screens.

Dans des situations moins complexes, vous pouvez utiliser le contrôle Edit form pour mettre à jour plus facilement des enregistrements dans une source de données.In less complex situations, you can use the Edit form control to update records in a data source more easily. Quand vous ajoutez un contrôle Edit form, vous fournissez aux utilisateurs un formulaire à remplir, puis vous enregistrez les modifications apportées à une source de données.When you add an Edit form control, you provide users with a form to fill in and then save the changes to a data source. Pour plus d’informations, consultez Comprendre les formulaires de données.For more information, see Understand data forms.

Vue d’ensembleOverview

Utilisez la fonction Patch pour modifier un ou plusieurs enregistrements d’une source de données.Use the Patch function to modify one or more records of a data source. La modification de valeurs de champs spécifiques n’affecte pas les autres propriétés.The values of specific fields are modified without affecting other properties. Par exemple, cette formule modifie le numéro de téléphone pour un client nommé Contoso :For example, this formula changes the phone number for a customer named Contoso:

Patch( Customers, First( Filter( Customers, Name = "Contoso" ) ), { Phone: “1-212-555-1234” } )Patch( Customers, First( Filter( Customers, Name = "Contoso" ) ), { Phone: “1-212-555-1234” } )

Utilisez la fonction Patch avec la fonction Defaults pour créer des enregistrements.Use Patch with the Defaults function to create records. Utilisez ce comportement pour créer un seul écran pour la création et la modification des enregistrements.Use this behavior to build a single screen for both creating and editing records. Par exemple, cette formule crée un enregistrement pour un client nommé Contoso :For example, this formula creates a record for a customer named Contoso:

Patch( Customers, Defaults( Customer ), { Name: “Contoso” } )Patch( Customers, Defaults( Customer ), { Name: “Contoso” } )

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.Even if you're not working with a data source, you can use Patch to merge two or more records. Par exemple, cette formule fusionne deux enregistrements en un seul qui identifie à la fois le numéro de téléphone et l’emplacement de Contoso :For example, this formula merges two records into one that identifies both the phone number and the location for Contoso:

Patch( { Name: "Contoso", Phone: “1-212-555-1234” }, { Name: "Contoso", Location: “Midtown” } )Patch( { Name: "Contoso", Phone: “1-212-555-1234” }, { Name: "Contoso", Location: “Midtown” } )

DescriptionDescription

Modification ou création d’un enregistrement dans une source de donnéesModify or create a record in a data source

Pour utiliser cette fonction avec une source de données, spécifiez la source de données, puis spécifiez un enregistrement de base :To use this function with a data source, specify the data source, and then specify a base record:

  • Pour modifier un enregistrement, l’enregistrement de base doit provenir d’une source de données.To modify a record, the base record needs to have come from a data source. 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.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. Vous devez cependant être en mesure de retrouver la source de données initiale de l’enregistrement de base.But you should be able to trace the base record back to the data source. En effet, l’enregistrement inclut des informations supplémentaires simplifiant la recherche de l’enregistrement en vue de sa modification.This is important as the record will include additional information to help find the record again for modification.
  • Utilisez la fonction Defaults pour créer un enregistrement de base avec les valeurs par défaut.To create a record, use the Defaults function to create a base record with default values.

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.Then specify one or more change records, each of which contains new property values that override property values in the base record. 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.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

La valeur renvoyée par la fonction Patch est l’enregistrement que vous avez modifié ou créé.The return value of Patch is the record that you modified or created. 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.If you created a record, the return value may include properties that the data source generated automatically.

La mise à jour d’une source de données peut entraîner un ou plusieurs problèmes.When you update a data source, one or more issues may arise. 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).Use the Errors function to identify and examine issues, as Working with Data Sources describes.

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.Related functions include the Update function, which you can use to replace an entire record, and the Collect function, which you can use to create a record. Vous pouvez utiliser la fonction UpdateIf pour modifier des propriétés spécifiques de plusieurs enregistrements selon une condition.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Modification ou création d’un ensemble d’enregistrement dans une source de donnéesModify or create a set of records in a data source

La fonction Patch peut également être utilisée pour créer ou modifier plusieurs enregistrements avec un seul appel.Patch can also be used to create or modify multiple records with a single call.

Au lieu de transmettre un seul enregistrement de base, une table d’enregistrements de base peut être fournie dans le deuxième argument.Instead of passing a single base record, a table of base records can be provided in the second argument. Les enregistrements de modification sont également fournis dans une table, chacun correspondant à un enregistrement de base.Change records are provided in a table as well, corresponding one-for-one with the base records. Le nombre d’enregistrements de chaque table de modifications doit correspondre au nombre d’enregistrements de la table de base.The number of records in each change table must be the same as the number of records in the base table.

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.When using Patch in this manner, the return value is also a table with each record corresponding one-for-one with the base and change records.

Fusion d’enregistrements en dehors d’une source de donnéesMerge records outside of a data source

Spécifiez au moins deux enregistrements à fusionner.Specify two or more records that you want to merge. 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.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

La fonction Patch retourne l’enregistrement fusionné et ne modifie pas ses arguments ou enregistrements dans les sources de données.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SyntaxeSyntax

Modification ou création d’un enregistrement dans une source de donnéesModify or create a record in a data source

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

  • DataSource – Requis.DataSource – Required. La source de données qui contient l’enregistrement que vous souhaitez modifier ou qui contiendra l’enregistrement que vous souhaitez créer.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord – Requis.BaseRecord – Required. L’enregistrement à modifier ou créer.The record to modify or create. Si l’enregistrement provient d’une source de données, il est trouvé et modifié.If the record came from a data source, the record is found and modified. Si le résultat de la fonction Defaults est utilisé, un enregistrement est créé.If the result of Defaults is used, a record is created.
  • ChangeRecord(s) – Requis.ChangeRecord(s) – Required. Un ou plusieurs enregistrements contenant des propriétés à modifier dans l’enregistrement de base (BaseRecord).One or more records that contain properties to modify in the 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.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Modification ou création d’un ensemble d’enregistrement dans une source de donnéesModify or create a set of records in a data source

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

  • DataSource : requis.DataSource – Required. La source de données qui contient les enregistrements que vous souhaitez modifier ou qui contiendra les enregistrements que vous souhaitez créer.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable – Requis.BaseRecordTable – Required. Une table contenant les enregistrements à modifier ou créer.A table of records to modify or create. Si l’enregistrement provient d’une source de données, il est trouvé et modifié.If the record came from a data source, the record is found and modified. Si le résultat de la fonction Defaults est utilisé, un enregistrement est créé.If the result of Defaults is used, a record is created.
  • ChangeRecordTable(s) – Requis.ChangeRecordTable(s) – Required. Une ou plusieurs tables d’enregistrements qui contiennent des propriétés à modifier pour chaque enregistrement de la table BaseRecordTable.One or more tables of records that contain properties to modify for each record of the 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.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Fusion d’enregistrementsMerge records

Patch( Record1, Record2 [, …] )Patch( Record1, Record2 [, …] )

  • Record(s) - Requis.Record(s) - Required. Au moins deux enregistrements à fusionner.At least two records that you want to merge. 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.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

ExemplesExamples

Modification ou création d’un enregistrement (dans une source de données)Modify or create a record (in a data source)

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 :In these examples, you'll modify or create a record in a data source, named IceCream, that contains the data in this table and automatically generates the values in the ID column:

FormuleFormula DescriptionDescription RésultatResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Modifie un enregistrement dans la source de données IceCream :Modifies a record in the IceCream data source:
  • La colonne ID de l’enregistrement à modifier contient la valeur 1.The ID column of the record to modify contains the value of 1. (L’enregistrement Chocolate est associé à cet ID.)(The Chocolate record has that ID.)
  • La valeur de la colonne Quantity devient 400.The value in the Quantity column changes to 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

L’entrée Chocolate de la source de données IceCream a été modifiée.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Crée un enregistrement dans la source de données IceCream :Creates a record in the IceCream data source:
  • La colonne ID contient la valeur 3, que la source de données génère automatiquement.The ID column contains the value 3, which the data source generates automatically.
  • 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.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • La colonne Flavor contient la valeur Strawberry.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

L’entrée Strawberry de la source de données IceCream a été créée.The Strawberry entry in the IceCream data source has been created.

Une fois les formules précédentes évaluées, la source de données se termine avec ces valeurs :After the previous formulas have been evaluated, the data source ends with these values:

Fusion d’enregistrements (en dehors d’une source de données)Merge records (outside of a data source)

FormuleFormula DescriptionDescription RésultatResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Fusionne deux enregistrements en dehors d’une source de données :Merges two records outside of a data source:
  • Les valeurs de la colonne Name de chaque enregistrement ne correspondent pas.The values in the Name column of each record don't match. 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.The result contains the value (Jim) in the record that's closer to the end of the argument list instead of the value (James) in the record that's closer to the start.
  • Le premier enregistrement contient une colonne (Score) qui n’existe pas dans le deuxième enregistrement.The first record contains a column (Score) that doesn't exist in the second record. Le résultat contient cette colonne avec sa valeur (90).The result contains that column with its value (90).
  • Le deuxième enregistrement contient une colonne (Passed) qui n’existe pas dans le premier enregistrement.The second record contains a column (Passed) that doesn't exist in the first record. Le résultat contient cette colonne avec sa valeur (true).The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }