Funktionen Patch i PowerAppsPatch function in PowerApps

Redigerer eller opretter en eller flere poster i en datakilde eller fletter poster uden for en datakilde.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Du kan bruge funktionen Patch til at ændre poster i komplekse situationer, f.eks. når du udfører opdateringer, hvor der ikke kræves brugerinteraktion, eller hvis der bruges formularer, der fylder flere skærme.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 komplekse situationer kan du bruge kontrolelementet Edit form til nemmere at opdatere poster i en datakilde.In less complex situations, you can use the Edit form control to update records in a data source more easily. Når du tilføjer et kontrolelement af typen Edit form, kan du vise en formular, som brugerne skal udfylde, og du kan derefter gemme ændringerne i en datakilde.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. Du kan finde flere oplysninger i Om dataformularer.For more information, see Understand data forms.

OversigtOverview

Brug funktionen Patch til at ændre en eller flere poster i en datakilde.Use the Patch function to modify one or more records of a data source. Værdierne for specifikke felter ændres uden at påvirke andre egenskaber.The values of specific fields are modified without affecting other properties. Denne formel ændrer f.eks. telefonnummeret til en kunde, der hedder 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” } )

Brug Patch sammen med funktionen Defaults for at oprette poster.Use Patch with the Defaults function to create records. Brug denne funktionalitet til at opbygge et enkelt skærmbillede, hvor der både kan oprettes og redigeres poster.Use this behavior to build a single screen for both creating and editing records. Denne formel vil f.eks. oprette en post for kunden 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” } )

Selvom du ikke arbejder med en datakilde, kan du bruge Patch til at flette to eller flere poster.Even if you're not working with a data source, you can use Patch to merge two or more records. For eksempel fletter denne formel to poster til én, der identificerer både telefonnummeret og adressen for 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” } )

BeskrivelseDescription

Rediger eller opret en post i en datakildeModify or create a record in a data source

Hvis du vil bruge denne funktion med en datakilde, skal du angive datakilden og derefter angive en basispost:To use this function with a data source, specify the data source, and then specify a base record:

  • Hvis du vil redigere en post, skal basisposten komme fra en datakilde.To modify a record, the base record needs to have come from a data source. Basisposten kan komme via egenskaben Items for et galleri, den kan være placeret i en kontekstafhængig variabel, eller den kan komme et andet sted fra.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 til enhver tid kunne spore basisposten tilbage til datakilden.But you should be able to trace the base record back to the data source. Dette er vigtigt, da posten vil indeholde ekstra oplysninger, der kan hjælpe med at finde posten igen, hvis den skal ændres.This is important as the record will include additional information to help find the record again for modification.
  • Hvis du vil oprette en post, skal du bruge funktionen Defaults til at oprette en basispost med standardværdier.To create a record, use the Defaults function to create a base record with default values.

Angiv derefter en eller flere ændringsposter, der hver indeholder de nye egenskabsværdier, som tilsidesætter egenskabsværdierne i basisposten.Then specify one or more change records, each of which contains new property values that override property values in the base record. Ændringsposter behandles i rækkefølge fra start til slut på argumentlisten, hvor egenskabsværdier sidst på listen tilsidesætter tidligere egenskabsværdier.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Returværdien for Patch er den post, du har ændret eller oprettet.The return value of Patch is the record that you modified or created. Hvis du har oprettet en post, kan returværdien indeholde egenskaber, som datakilden har genereret automatisk.If you created a record, the return value may include properties that the data source generated automatically.

Når du opdaterer en datakilde, kan der opstå et eller flere problemer.When you update a data source, one or more issues may arise. Brug funktionen Errors til at identificere og undersøge problemer som beskrevet i Arbejd med datakilder.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

Relaterede funktioner omfatter funktionen Update, som du kan bruge til at erstatte en hel post samt funktionen Collect, som du kan bruge til at oprette 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 bruge funktionen UpdateIf til at ændre bestemte egenskaber i flere poster baseret på en betingelse.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Rediger eller opret et sæt af poster i en datakildeModify or create a set of records in a data source

Patch kan også bruges til at oprette eller ændre flere poster med et enkelt kald.Patch can also be used to create or modify multiple records with a single call.

I stedet for at overføre en enkelt basispost kan du angive en tabel med basisposter i det andet argument.Instead of passing a single base record, a table of base records can be provided in the second argument. Ændringsposterne leveres også i en tabel, som stemmer overens med basisposterne 1-til-1.Change records are provided in a table as well, corresponding one-for-one with the base records. Antallet af poster i hver ændringstabel skal være det samme som antal poster i basistabellen.The number of records in each change table must be the same as the number of records in the base table.

Når du bruger Patch på denne måde, er returværdien også en tabel, hvor hver post svarer direkte til basis- og ændringsposterne.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.

Flet poster uden for en datakildeMerge records outside of a data source

Angiv to eller flere poster, du vil flette.Specify two or more records that you want to merge. Poster behandles i rækkefølge fra start til slut på argumentlisten, hvor egenskabsværdier sidst på listen tilsidesætter tidligere egenskabsværdier.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Patch returnerer den flettede post uden at ændre dens argumenter eller poster i andre datakilder.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SyntaksSyntax

Rediger eller opret en post i en datakildeModify or create a record in a data source

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

  • Datakilde – påkrævet.DataSource – Required. Den datakilde, der indeholder den post, du vil redigere eller oprette.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord – påkrævet.BaseRecord – Required. Den post, der skal ændres eller oprettes.The record to modify or create. Hvis posten stammer fra en datakilde, bliver posten fundet og ændret.If the record came from a data source, the record is found and modified. Hvis resultatet af Defaults bruges, oprettes der en post.If the result of Defaults is used, a record is created.
  • ChangeRecord(s) – påkrævet.ChangeRecord(s) – Required. En eller flere poster, der indeholder egenskaber, som skal ændres i Basispost.One or more records that contain properties to modify in the BaseRecord. Ændringsposter behandles i rækkefølge fra start til slut på argumentlisten, hvor egenskabsværdier sidst på listen tilsidesætter tidligere egenskabsværdier.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Rediger eller opret et sæt af poster i en datakildeModify or create a set of records in a data source

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

  • Datakilde – påkrævet.DataSource – Required. Den datakilde, som indeholder de poster, du vil redigere eller oprette.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable – påkrævet.BaseRecordTable – Required. En tabel med poster, der skal ændres eller oprettes.A table of records to modify or create. Hvis posten stammer fra en datakilde, bliver posten fundet og ændret.If the record came from a data source, the record is found and modified. Hvis resultatet af Defaults bruges, oprettes der en post.If the result of Defaults is used, a record is created.
  • ChangeRecordTable(s) – påkrævet.ChangeRecordTable(s) – Required. En eller flere tabeller med poster, som indeholder de egenskaber, der skal ændres for hver post i BaseRecordTable.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. Ændringsposter behandles i rækkefølge fra start til slut på argumentlisten, hvor egenskabsværdier sidst på listen tilsidesætter tidligere egenskabsværdier.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Flet posterMerge records

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

  • Record(s) – påkrævet.Record(s) - Required. Mindst to poster, du vil flette.At least two records that you want to merge. Poster behandles i rækkefølge fra start til slut på argumentlisten, hvor egenskabsværdier sidst på listen tilsidesætter tidligere egenskabsværdier.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

EksemplerExamples

Rediger eller opret en post (i en datakilde)Modify or create a record (in a data source)

I disse eksempler skal du ændre eller oprette en post i en datakilde med navnet IceCream, der indeholder dataene i denne tabel og automatisk genererer værdierne i kolonnen 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:

FormelFormula BeskrivelseDescription ResultatResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Ændrer en post i datakilden IceCream:Modifies a record in the IceCream data source:
  • Kolonnen ID for den post, der skal ændres, indeholder værdien 1.The ID column of the record to modify contains the value of 1. Posten Chocolate har det id.(The Chocolate record has that ID.)
  • Værdien i kolonnen Quantity ændres til 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 datakilden IceCream er blevet ændret.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Ændrer en post i datakilden IceCream:Creates a record in the IceCream data source:
  • Kolonnen ID indeholder værdien 3, som datakilden genererer automatisk.The ID column contains the value 3, which the data source generates automatically.
  • Kolonnen Quantity indeholder 0, som er standardværdien for kolonnen i datakilden IceCream som specificeret med funktionen Defaults.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • Kolonnen Flavor indeholder værdien Strawberry.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

Posten Strawberry i datakilden IceCream er blevet oprettet.The Strawberry entry in the IceCream data source has been created.

Når de tidligere formularer er blevet evalueret, har datakilden disse værdier:After the previous formulas have been evaluated, the data source ends with these values:

Flet poster (uden for en datakilde)Merge records (outside of a data source)

FormelFormula BeskrivelseDescription ResultatResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Fletter to poster uden for en datakilde:Merges two records outside of a data source:
  • Værdierne i kolonnen Name stemmer ikke overens for hver post.The values in the Name column of each record don't match. Resultatet indeholder værdien (Jim) i den post, der er tættere på slutningen af argumentlisten i stedet for værdien (James) i den post, der er tættere på starten.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ørste post indeholder kolonnen (Score), som ikke findes i den anden post.The first record contains a column (Score) that doesn't exist in the second record. Resultatet indeholder den kolonne med dens værdi (90).The result contains that column with its value (90).
  • Den anden post indeholder en kolonne (Passed), som ikke findes i den første post.The second record contains a column (Passed) that doesn't exist in the first record. Resultatet indeholder den kolonne med den værdi (true).The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }