Funktionen Patch i PowerAppsPatch function in PowerApps

Ändrar eller skapar en eller flera poster i en datakälla, eller sammanfogar poster utanför en datakälla.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Använd funktionen Patch för att ändra poster i komplexa situationer, till exempel när du utför uppdateringar som inte kräver användaråtgärder eller använder formulär som sträcker sig över flera skärmar.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.

I mindre komplexa situationer kan du använda kontrollen Redigeringsformulär för att enkelt uppdatera poster i en datakälla.In less complex situations, you can use the Edit form control to update records in a data source more easily. När du lägger till kontrollen Redigeringsformulär ger du användarna ett formulär som de kan fylla i för att spara ändringarna till en datakälla.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. För mer information se Understand data forms (Förstå dataformulär).For more information, see Understand data forms.

ÖversiktOverview

Använd funktionen Patch för att ändra en eller flera poster i en datakälla.Use the Patch function to modify one or more records of a data source. Värdena för specifika fält ändras utan att påverka andra egenskaper.The values of specific fields are modified without affecting other properties. Den här formeln ändrar till exempel telefonnumret för en kund med namnet 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” } )

Använd Patch med funktionen Defaults för att skapa poster.Use Patch with the Defaults function to create records. Du kan använda den här metoden för att skapa en enda skärm som både skapar och redigerar poster.Use this behavior to build a single screen for both creating and editing records. Den här formeln skapar en post för en kund med namnet 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” } )

Även om du inte arbetar med en datakälla kan du använda Patch till att sammanfoga två eller flera poster.Even if you're not working with a data source, you can use Patch to merge two or more records. Den här formeln sammanfogar till exempel två poster i en som identifierar både telefonnumret och platsen för 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” } )

BeskrivningDescription

Ändra eller skapa en post i en datakällaModify or create a record in a data source

Använd den här funktionen med en datakälla, ange datakällan och sedan en baspost:To use this function with a data source, specify the data source, and then specify a base record:

  • Om du vill ändra en post måste basposten komma från en datakälla.To modify a record, the base record needs to have come from a data source. Basposten har kanske kommit via galleriegenskapen Items, har placerats i en sammanhangsvariabel, eller kommit via någon annan sökväg.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. Men du bör kunna spåra basposten tillbaka till datakällan.But you should be able to trace the base record back to the data source. Detta är viktigt eftersom posten innehåller ytterligare information för att kunna hitta posten igen vid ändringar.This is important as the record will include additional information to help find the record again for modification.
  • Skapa en post genom att använda funktionen Defaults för att skapa en baspost med standardvärden.To create a record, use the Defaults function to create a base record with default values.

Ange sedan en eller flera ändringsposter, där var och en innehåller nya egenskapsvärden som åsidosätter egenskapsvärden i basposten.Then specify one or more change records, each of which contains new property values that override property values in the base record. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Returvärdet för Patch är den post som du har ändrat eller skapat.The return value of Patch is the record that you modified or created. Om du har skapat en post kan returvärdet innehålla egenskaper som datakällan genererat automatiskt.If you created a record, the return value may include properties that the data source generated automatically.

Ett eller flera problem kan uppstå när du uppdaterar en datakälla.When you update a data source, one or more issues may arise. Använd funktionen Errors för att identifiera och undersöka problem, enligt beskrivningen i Arbeta med datakällor.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

Relaterade funktioner innefattar funktionen Update som du kan använda för att ersätta en hel post, och funktionen Collect som du kan använda för att skapa en post.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. Du kan använda funktionen UpdateIf till att ändra egenskaper för flera poster baserat på ett villkor.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Ändra eller skapa en uppsättning poster i en datakällaModify or create a set of records in a data source

Patch kan också användas för att skapa eller ändra flera poster med ett enda anrop.Patch can also be used to create or modify multiple records with a single call.

I stället för att överföra en enda baspost kan en tabell med basposter anges i det andra argumentet.Instead of passing a single base record, a table of base records can be provided in the second argument. Ändringsposter finns även i en tabell, motsvarande ett-till-ett med basposterna.Change records are provided in a table as well, corresponding one-for-one with the base records. Antalet poster i varje ändringstabell måste vara samma som antalet poster i bastabellen.The number of records in each change table must be the same as the number of records in the base table.

När du använder Patch på detta sätt är returvärdet också en tabell där varje post motsvarar ett-till-ett med bas- och ändringsposterna.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.

Sammanslagning av poster utanför en datakällaMerge records outside of a data source

Ange två eller flera poster som du vill sammanfoga.Specify two or more records that you want to merge. Poster bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Patch returnerar den sammanslagna posten och ändrar inte dess argument eller poster i några datakällor.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SyntaxSyntax

Ändra eller skapa en post i en datakällaModify or create a record in a data source

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

  • DataSource – Krävs.DataSource – Required. Datakällan som innehåller den post som du vill ändra, eller som kommer att innehålla den post som du vill skapa.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord – Krävs.BaseRecord – Required. Posten som ska ändras eller skapas.The record to modify or create. Om posten kom från en datakälla hittas posten och ändras.If the record came from a data source, the record is found and modified. Om resultatet av Defaults används, skapas en post.If the result of Defaults is used, a record is created.
  • ChangeRecord(s) – Krävs.ChangeRecord(s) – Required. En eller flera poster som innehåller egenskaper som ska ändras i BaseRecord.One or more records that contain properties to modify in the BaseRecord. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Ändra eller skapa en uppsättning poster i en datakällaModify or create a set of records in a data source

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

  • DataSource – Krävs.DataSource – Required. Datakällan som innehåller de poster som du vill ändra, eller som kommer att innehålla de poster som du vill skapa.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable – Krävs.BaseRecordTable – Required. En tabell med poster som ska ändras eller skapas.A table of records to modify or create. Om posten kom från en datakälla hittas posten och ändras.If the record came from a data source, the record is found and modified. Om resultatet av Defaults används, skapas en post.If the result of Defaults is used, a record is created.
  • ChangeRecordTable(s) – Krävs.ChangeRecordTable(s) – Required. En eller flera tabeller med poster som innehåller egenskaper som ska ändras för varje post i BaseRecordTable.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Sammanslagning av posterMerge records

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

  • Record(s) – Krävs.Record(s) - Required. Minst två poster som du vill sammanfoga.At least two records that you want to merge. Poster bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

ExempelExamples

Ändra eller skapa en post (i en datakälla)Modify or create a record (in a data source)

I det här exemplet ändrar eller skapar du en post i en datakälla med namnet IceCream, som innehåller data i den här tabellen och som automatiskt genererar värdena i ID-kolumnen: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:

FormelFormula BeskrivningDescription ResultatResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Ändrar en post i datakällan IceCream:Modifies a record in the IceCream data source:
  • ID-kolumnen i posten som ska ändras innehåller värdet 1.The ID column of the record to modify contains the value of 1. (Posten Chocolate har detta ID.)(The Chocolate record has that ID.)
  • Värdet i kolumnen Quantity ändras till 400.The value in the Quantity column changes to 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

Posten Chocolate i datakällan IceCream har ändrats.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Skapar en post i datakällan IceCream:Creates a record in the IceCream data source:
  • ID-kolumnen innehåller värdet 3, vilket datakällan genererar automatiskt.The ID column contains the value 3, which the data source generates automatically.
  • Kolumnen Quantity innehåller 0, vilket är standardvärdet för kolumnen i datakällan IceCream som funktionen Defaults anger.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • Kolumnen Flavor innehåller värdet Strawberry.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

Posten Strawberry i datakällan IceCream har skapats.The Strawberry entry in the IceCream data source has been created.

När tidigare formler har utvärderats avslutas datakällan med följande värden:After the previous formulas have been evaluated, the data source ends with these values:

Sammanslagning av poster (utanför en datakälla)Merge records (outside of a data source)

FormelFormula BeskrivningDescription ResultatResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Sammanfogar två poster utanför en datakälla:Merges two records outside of a data source:
  • Värdena i kolumnen Name för varje post matchar inte.The values in the Name column of each record don't match. Resultatet innehåller värdet (Jim) i posten vilket är närmare slutet av argumentlistan, i stället för värdet (James) i posten som är närmare början.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.
  • Den första posten innehåller en kolumn (Score) som inte finns i den andra posten.The first record contains a column (Score) that doesn't exist in the second record. Resultatet innehåller kolumnen med värdet (90).The result contains that column with its value (90).
  • Den andra posten innehåller en kolumn (Passed) som inte finns i den första posten.The second record contains a column (Passed) that doesn't exist in the first record. Resultatet innehåller kolumnen med värdet (true).The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }