Funktionerne Update og UpdateIf i PowerAppsUpdate and UpdateIf functions in PowerApps

Opdaterer poster i en datakilde.Updates records in a data source.

BeskrivelseDescription

Funktionen UpdateUpdate function

Brug funktionen Update til at erstatte en hel post i en datakilde.Use the Update function to replace an entire record in a data source. Omvendt ændrer funktionerne UpdateIf og Patch en eller flere værdier i en post, mens de andre værdier ikke ændres.In contrast, the UpdateIf and the Patch functions modify one or more values in a record, leaving the other values alone.

Hele posten skal stemme overens i en samling.For a collection, the entire record must match. Med samlinger er det muligt at duplikere poster, så flere poster kan stemme overens.Collections allow duplicate records, so multiple records might match. Du kan bruge argumentet All til at opdatere alle kopier af en post, ellers er det kun én kopi af posten, der opdateres.You can use the All argument to update all copies of a record; otherwise, only one copy of the record is updated.

Hvis datakilden genererer en kolonnes værdi automatisk, skal værdien af denne kolonne genbekræftes.If the data source generates a column's value automatically, the value of that column must be reaffirmed.

Funktionen UpdateIfUpdateIf function

Brug funktionen UpdateIf til at ændre en eller flere værdier i en eller flere poster, der svarer til en eller flere betingelser.Use the UpdateIf function to modify one or more values in one or more records that match one or more conditions. Hver betingelse kan være en formel, der resulterer i en værdi af typen true eller false og kan henvise til kolonner i datakilden efter navn.The condition can be any formula that results in a true or false and can reference columns of the data source by name. Med denne funktion evalueres betingelsen for hver post, og en hvilken som helst post, hvor resultatet er true, ændres.The function evaluates the condition for each record and modifies any record for which the result is true.

Brug en ændringspost, der indeholder nye egenskabsværdier, til at angive en tilpasning.To specify a modification, use a change record that contains new property values. Hvis du indbygger denne ændringspost ved hjælp af krøllede parenteser, kan egenskabsformler henvise til egenskaberne for den post, der ændres.If you provide this change record inline with curly braces, property formulas can reference properties of the record that's being modified. Du kan bruge denne funktionsmåde til at ændre poster baseret på en formel.You can use this behavior to modify records based on a formula.

Ligesom med UpdateIf kan du også bruge funktionen Patch til at ændre bestemte kolonner i en post uden at påvirke andre kolonner.Similar to UpdateIf, you can also use the Patch function to change specific columns of a record without affecting other columns.

Begge funktioner Update og UpdateIf returnerer den ændrede datakilde som en tabel.Both Update and UpdateIf return the modified data source as a table. Du skal bruge en af funktionerne i en formel for funktionsmåde.You must use either function in a behavior formula.

DelegeringDelegation

Når funktionen bruges med en datakilde, kan den ikke delegeres.When used with a data source, these functions can't be delegated. Der hentes kun den første del af datakilden, og derefter anvendes funktionen.Only the first portion of the data source will be retrieved and then the function applied. Det er muligvis ikke det hele, der vises.The result may not represent the complete story. Mens du redigerer, vises der en blå prik for at minde dig om denne begrænsning og for at foreslå, at du bruger delegerbare alternativer, hvor det er muligt.A blue dot will appear at authoring time to remind you of this limitation and to suggest switching to delegable alternatives where possible. Du kan finde flere oplysninger i oversigten over delegeringer.For more information, see the delegation overview.

SyntaksSyntax

Update(DataSource, OldRecord, NewRecord [, All])Update( DataSource, OldRecord, NewRecord [, All ] )

  • Datakilde – påkrævet.DataSource – Required. Den datakilde, der indeholder den post, du vil erstatte.The data source that contains the record that you want to replace.
  • OldRecord – påkrævet.OldRecord – Required. Den post, der skal erstattes.The record to replace.
  • NewRecord – påkrævet.NewRecord – Required. Erstatningsposten.The replacement record. Dette er ikke en ændringspost.This isn't a change record. Hele posten erstattes, og manglende egenskaber indeholder tom.The entire record is replaced, and missing properties will contain blank.
  • All – valgfri.All – Optional. Den samme post kan vises mere end én gang i en samling.In a collection, the same record may appear more than once. Angiv argumentet All til at fjerne alle kopier af posten.Specify the All argument to remove all copies of the record.

UpdateIf(DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ...])UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • Datakilde – påkrævet.DataSource – Required. Den datakilde, der indeholder den eller de poster, du vil ændre.The data source that contains the record or records that you want to modify.
  • Condition(s) – påkrævet.Condition(s) – Required. En formel, der evalueres til true for den eller de poster, du vil ændre.A formula that evaluates to true for the record or records that you want to modify. Du kan bruge kolonnenavne fra DataSource i formlen.You can use column names of DataSource in the formula.
  • ChangeRecord(s) – påkrævet.ChangeRecord(s) - Required. For hver tilsvarende betingelse skal der anvendes en ændringspost for nye egenskabsværdier på poster i DataSource, som opfylder betingelsen.For each corresponding condition, a change record of new property values to apply to records of DataSource that satisfy the condition. Hvis du indbygger posten ved hjælp af krøllede parenteser, kan egenskabsværdier for den eksisterende post bruges i egenskabsformlerne.If you provide the record inline using curly braces, property values of the existing record can be used in the property formulas.

EksemplerExamples

I disse eksempler erstatter eller ændrer du poster i en datakilde, som hedder IceCream, og som starter med dataene i denne tabel:In these examples, you'll replace or modify records in a data source that's named IceCream and that starts with the data in this table:

FormelFormula BeskrivelseDescription ResultatResult
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 })
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Erstatter en post fra datakilden.Replaces a record from the data source.

Datakilden IceCream er blevet ændret.The IceCream data source has been modified.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 })UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Ændrer poster, hvor Quantity er større end 150.Modifies records that have a Quantity that is greater than 150. Feltet Quantity forøges med 10, og ingen andre felter ændres.The Quantity field is incremented by 10, and no other fields are modified.

Datakilden IceCream er blevet ændret.The IceCream data source has been modified.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"})
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Erstatter en post fra datakilden.Replaces a record from the data source. Egenskaben Quantity er ikke angivet i erstatningsposten, så den egenskab er tom i resultatet.The Quantity property hasn't been supplied in the replacement record, so that property will be blank in the result.

Datakilden IceCream er blevet ændret.The IceCream data source has been modified.
UpdateIf( IceCream, true, { Quantity: 0 })UpdateIf( IceCream, true, { Quantity: 0 } ) Indstiller værdien af egenskaben Quantity for alle poster i datakilden til 0.Sets the value of the Quantity property for all records in the data source to 0.

Datakilden IceCream er blevet ændret.The IceCream data source has been modified.

Trin for trinStep by step

  1. Importér eller opret en samling, der hedder Inventory, og vis den i et galleri, som det beskrives i Vis data i et galleri.Import or create a collection named Inventory, and show it in a gallery as Show data in a gallery describes.
  2. Navngiv galleriet ProductGallery.Name the gallery ProductGallery.
  3. Tilføj en skyder, der hedder UnitsSold, og indstil egenskaben Max for den til dette udtryk:Add a slider named UnitsSold, and set its Max property to this expression:
    ProductGallery.Selected.UnitsInStockProductGallery.Selected.UnitsInStock
  4. Tilføj en knap, og angive dens OnSelect-egenskab til denne formel:Add a button, and set its OnSelect property to this formula:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})
  5. Tryk på F5, vælg et produkt i galleriet, angiv en værdi med skyderen, og vælg derefter knappen.Press F5, select a product in the gallery, specify a value with the slider, and then select the button.

    Antallet af enheder på lager af det angivne produkt, reduceres med det antal, du angav.The number of units in stock for the product you specified decreases by the amount that you specified.