De functie Patch in PowerAppsPatch function in PowerApps

Wijzigt of maakt een of meer records in een gegevensbron of voegt records buiten een gegevensbron samen.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Gebruik de functie Patch om records te wijzigen in complexe situaties, zoals bij het uitvoeren van updates waarvoor geen gebruikersinteractie is vereist of bij het gebruik van formulieren die meerdere schermen beslaan.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.

In minder complexe situaties kunt u het besturingselement Formulier bewerken gebruiken om records in een gegevensbron gemakkelijker bij te kunnen werken.In less complex situations, you can use the Edit form control to update records in a data source more easily. Wanneer u een besturingselement Formulier bewerken toevoegt, biedt u gebruikers de mogelijkheid een formulier in te vullen en worden de wijzigingen vervolgens in een gegevensbron opgeslagen.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. Zie Gegevensformulieren begrijpen voor meer informatie.For more information, see Understand data forms.

OverzichtOverview

Gebruik de functie Patch om een of meer records in een gegevensbron te wijzigen.Use the Patch function to modify one or more records of a data source. De waarden van specifieke velden worden gewijzigd zonder dat dit van invloed is op andere eigenschappen.The values of specific fields are modified without affecting other properties. Met deze formule wijzigt u bijvoorbeeld het telefoonnummer van een klant met de naam Contoso:For example, this formula changes the phone number for a customer named Contoso:

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

Gebruik Patch met de functie Defaults om records te maken.Use Patch with the Defaults function to create records. Gebruik dit gedrag om één scherm te maken voor zowel het maken als het bewerken van records.Use this behavior to build a single screen for both creating and editing records. Met deze formule maakt u bijvoorbeeld een record voor een klant met de naam Contoso:For example, this formula creates a record for a customer named Contoso:

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

Zelfs als u niet met een gegevensbron werkt, kunt u Patch gebruiken om twee of meer records samen te voegen.Even if you're not working with a data source, you can use Patch to merge two or more records. Met deze formule worden bijvoorbeeld twee records samengevoegd tot één record met zowel het telefoonnummer als de locatie van Contoso:For example, this formula merges two records into one that identifies both the phone number and the location for Contoso:

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

BeschrijvingDescription

Een record in een gegevensbron wijzigen of makenModify or create a record in a data source

Als u deze functie wilt gebruiken met een gegevensbron, geeft u de gegevensbron op en geeft u vervolgens een basisrecord op:To use this function with a data source, specify the data source, and then specify a base record:

  • Als u een record wilt wijzigen, moet het basisrecord afkomstig zijn van een gegevensbron.To modify a record, the base record needs to have come from a data source. De basisrecord kan afkomstig zijn van de eigenschap Items van een galerie, in een contextvariabele zijn geplaatst of via een ander pad worden aangeleverd.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. U moet de basisrecord echter kunnen terugleiden naar de gegevensbron.But you should be able to trace the base record back to the data source. Dit is belangrijk aangezien de record aanvullende informatie bevat die het mogelijk maakt de record terug te vinden wanneer deze moet worden gewijzigd.This is important as the record will include additional information to help find the record again for modification.
  • Als u een record wilt maken, gebruikt u de functie Default om een basisrecord met standaardwaarden te maken.To create a record, use the Defaults function to create a base record with default values.

Vervolgens geeft u een of meer wijzigingsrecords op die elk nieuwe eigenschapswaarden bevatten die eigenschapswaarden in het basisrecord overschrijven.Then specify one or more change records, each of which contains new property values that override property values in the base record. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

De geretourneerde waarde van Patch is de record die u hebt gewijzigd of gemaakt.The return value of Patch is the record that you modified or created. Als u een record hebt gemaakt, kan de retourwaarde eigenschappen bevatten die de gegevensbron automatisch heeft gegenereerd.If you created a record, the return value may include properties that the data source generated automatically.

Wanneer u een gegevensbron bijwerkt, kunnen zich een of meer problemen voordoen.When you update a data source, one or more issues may arise. Gebruik de functie Errors om problemen op te sporen en te onderzoeken, zoals wordt beschreven in Werken met gegevensbronnen.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

Gerelateerde functies zijn de functie Update , die u kunt gebruiken om een hele record te vervangen, en de functie Collect, die u kunt gebruiken om een record te maken.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. U kunt de functie UpdateIf gebruiken om specifieke eigenschappen van meerdere records te wijzigen op basis van een voorwaarde.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Een set records in een gegevensbron wijzigen of makenModify or create a set of records in a data source

Patch kan ook worden gebruikt om meerdere records met één aanroep te maken of te wijzigen.Patch can also be used to create or modify multiple records with a single call.

In plaats van één basisrecord door te geven, kunt u een tabel met basisrecords opgeven in het tweede argument.Instead of passing a single base record, a table of base records can be provided in the second argument. Wijzigingsrecords worden ook aangeleverd in een tabel, waarbij ze één op één moeten overeenkomen met de basisrecords.Change records are provided in a table as well, corresponding one-for-one with the base records. Het aantal records in elke wijzigingstabel moet gelijk zijn aan het aantal records in de basistabel.The number of records in each change table must be the same as the number of records in the base table.

Wanneer u Patch op deze manier gebruikt, is de geretourneerde waarde ook een tabel waarin elke record één op één overeenkomt met de basis- en wijzigingsrecords.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.

Records samenvoegen buiten een gegevensbronMerge records outside of a data source

Geef twee of meer records op die u wilt samenvoegen.Specify two or more records that you want to merge. Records worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Patch retourneert de samengevoegde record en wijzigt argumenten of records in gegevensbronnen niet.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SyntaxisSyntax

Een record in een gegevensbron wijzigen of makenModify or create a record in a data source

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

  • DataSource - vereist.DataSource – Required. De gegevensbron die de record bevat die u wilt wijzigen of de record zal bevatten die u gaat maken.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord - vereist.BaseRecord – Required. De record die moet worden gemaakt of gewijzigd.The record to modify or create. Als de record afkomstig van een gegevensbron, wordt de record gezocht en gewijzigd.If the record came from a data source, the record is found and modified. Als het resultaat van Defaults wordt gebruikt, wordt een record gemaakt.If the result of Defaults is used, a record is created.
  • ChangeRecord(s) - vereist.ChangeRecord(s) – Required. Een of meer records die eigenschappen bevatten die moeten worden gewijzigd in de BaseRecord.One or more records that contain properties to modify in the BaseRecord. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Een set records in een gegevensbron wijzigen of makenModify or create a set of records in a data source

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

  • DataSource - vereist.DataSource – Required. De gegevensbron die de records bevat die u wilt wijzigen of de records zal bevatten die u gaat maken.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable - vereist.BaseRecordTable – Required. Een tabel met records die u wilt maken of wijzigen.A table of records to modify or create. Als de record afkomstig van een gegevensbron, wordt de record gezocht en gewijzigd.If the record came from a data source, the record is found and modified. Als het resultaat van Defaults wordt gebruikt, wordt een record gemaakt.If the result of Defaults is used, a record is created.
  • ChangeRecordTable(s) - vereist.ChangeRecordTable(s) – Required. Een of meer tabellen met records die eigenschappen bevatten die u wilt wijzigen voor elke record in de BaseRecordTable.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Records samenvoegenMerge records

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

  • Record(s) - vereist.Record(s) - Required. Ten minste twee records die u wilt samenvoegen.At least two records that you want to merge. Records worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

VoorbeeldenExamples

Een record wijzigen of maken (in een gegevensbron)Modify or create a record (in a data source)

In deze voorbeelden wijzigt of maakt u een record in een gegevensbron genaamd IJs die de gegevens in deze tabel bevat en automatisch de waarden in de kolom ID genereert: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 BeschrijvingDescription ResultaatResult
Patch( IJs,
First( Filter( IJs, Smaak="Chocolade") ), { Aantal: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Wijzigt een record in de gegevensbron IJs:Modifies a record in the IceCream data source:
  • De kolom ID van de record die moet worden gewijzigd bevat de waarde 1.The ID column of the record to modify contains the value of 1. (De record Chocolade heeft die id.)(The Chocolate record has that ID.)
  • De waarde in de kolom Aantal wordt gewijzigd in 400.The value in the Quantity column changes to 400.
{ ID: 1, Smaak: "Chocolade", Aantal: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

De vermelding Chocolade in de gegevensbron IJs is gewijzigd.The Chocolate entry in the IceCream data source has been modified.
Patch( IJs, Defaults( IJs), { Smaak: “Aardbeien” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Maakt een record in de gegevensbron IJs:Creates a record in the IceCream data source:
  • De kolom ID bevat de waarde 3, die de gegevensbron automatisch genereert.The ID column contains the value 3, which the data source generates automatically.
  • De kolom Aantal bevat 0, de standaardwaarde voor die kolom in de gegevensbron IJs, zoals wordt bepaald door de functie Defaults.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • De kolom Smaak bevat de waarde Aardbeien.The Flavor column contains the value of Strawberry.
{ ID: 3, Smaak: “Aardbeien”, Aantal: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

De vermelding Aardbeien in de gegevensbron IJs is gemaakt.The Strawberry entry in the IceCream data source has been created.

Nadat de vorige formules zijn geëvalueerd, eindigt de gegevensbron op deze waarden:After the previous formulas have been evaluated, the data source ends with these values:

Records samenvoegen (buiten een gegevensbron)Merge records (outside of a data source)

FormuleFormula BeschrijvingDescription ResultaatResult
Patch( { Naam: "James", Score: 90 }, { Naam: "Jim", Geslaagd: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Voegt twee records buiten een gegevensbron samen:Merges two records outside of a data source:
  • De waarden in de kolom Naam van elke record komen niet overeen.The values in the Name column of each record don't match. Het resultaat bevat de waarde (Jim) in de record die dichter bij het einde van de lijst met argumenten staat in plaats van de waarde (James) in de record die dichter bij het begin staat.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.
  • De eerste record bevat een kolom (Score) die niet bestaat in de tweede record.The first record contains a column (Score) that doesn't exist in the second record. Het resultaat bevat die kolom met de waarde (90).The result contains that column with its value (90).
  • De tweede record bevat een kolom (Geslaagd) die niet bestaat in de eerste record.The second record contains a column (Passed) that doesn't exist in the first record. Het resultaat bevat die kolom met de waarde (true).The result contains that column with its value (true).
{ Naam: "Jim", Score: 90, Geslaagd: true }{ Name: "Jim", Score: 90, Passed: true }