De functies Update en UpdateIf in PowerAppsUpdate and UpdateIf functions in PowerApps

Werken records in een gegevensbron bij.Updates records in a data source.

BeschrijvingDescription

De functie UpdateUpdate function

Gebruik de functie Update om een hele record in een gegevensbron te vervangen.Use the Update function to replace an entire record in a data source. De functies UpdateIf en Patch wijzigen daarentegen een of meer waarden in een record, waarbij de andere waarden ongewijzigd blijven.In contrast, the UpdateIf and the Patch functions modify one or more values in a record, leaving the other values alone.

Voor een verzameling moet de hele record overeenkomen.For a collection, the entire record must match. Verzamelingen staan dubbele records toe, waardoor mogelijk meerdere records overeenkomen.Collections allow duplicate records, so multiple records might match. U kunt het argument All gebruiken om alle exemplaren van een record bij te werken. Anders wordt slechts één exemplaar van de record bijgewerkt.You can use the All argument to update all copies of a record; otherwise, only one copy of the record is updated.

Als in de gegevensbron de waarde van een kolom automatisch wordt gegenereerd, moet de waarde van die kolom automatisch opnieuw worden bevestigd.If the data source generates a column's value automatically, the value of that column must be reaffirmed.

De functie UpdateIfUpdateIf function

Gebruik de functie UpdateIf om een of meer waarden te wijzigen in een of meer records die voldoen aan een of meer voorwaarden.Use the UpdateIf function to modify one or more values in one or more records that match one or more conditions. De voorwaarde kan elke formule zijn die resulteert in true of false en kan verwijzen naar kolommen in de gegevensbron, waarbij de naam van de kolom wordt gebruikt.The condition can be any formula that results in a true or false and can reference columns of the data source by name. De functie evalueert de voorwaarde voor elke record en wijzigt elk record die het resultaat true oplevert.The function evaluates the condition for each record and modifies any record for which the result is true.

Als u een wijziging wilt opgeven, gebruikt u een wijzigingsrecord die nieuwe eigenschapswaarden bevat.To specify a modification, use a change record that contains new property values. Als u deze wijzigingsrecord inline opgeeft tussen accolades, kunnen eigenschapsformules verwijzen naar eigenschappen van de record die wordt gewijzigd.If you provide this change record inline with curly braces, property formulas can reference properties of the record that's being modified. U kunt dit gedrag gebruiken om records te wijzigen op basis van een formule.You can use this behavior to modify records based on a formula.

Net als UpdateIf kunt u ook de functie Patch gebruiken om specifieke kolommen in een record te wijzigen zonder dat dit van invloed is op andere kolommen.Similar to UpdateIf, you can also use the Patch function to change specific columns of a record without affecting other columns.

Update en UpdateIf retourneren de gewijzigde gegevensbron als een tabel.Both Update and UpdateIf return the modified data source as a table. U moet beide functies gebruiken in een gedragsformule.You must use either function in a behavior formula.

DelegeringDelegation

When used with a data source, these functions can't be delegated. Only the first portion of the data source will be retrieved and then the function applied. The result may not represent the complete story. A blue dot will appear at authoring time to remind you of this limitation and to suggest switching to delegable alternatives where possible. For more information, see the delegation overview.

SyntaxisSyntax

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

  • DataSource - vereist.DataSource – Required. De gegevensbron met de records die u wilt vervangen.The data source that contains the record that you want to replace.
  • OldRecord - vereist.OldRecord – Required. De record die moet worden vervangen.The record to replace.
  • NewRecord - vereist.NewRecord – Required. De vervangende record.The replacement record. Dit is geen wijzigingsrecord.This isn't a change record. De hele record wordt vervangen en ontbrekende eigenschappen bevatten leeg.The entire record is replaced, and missing properties will contain blank.
  • All - optioneel.All – Optional. In een verzameling kan een record meerdere keren voorkomen.In a collection, the same record may appear more than once. U kunt het argument All toevoegen als u alle exemplaren van de record wilt vervangen.Specify the All argument to remove all copies of the record.

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

  • DataSource - vereist.DataSource – Required. De gegevensbron met de record of records die u wilt wijzigen.The data source that contains the record or records that you want to modify.
  • Condition(s) - vereist.Condition(s) – Required. Een formule die evalueert als true voor de records die u wilt wijzigen.A formula that evaluates to true for the record or records that you want to modify. U kunt kolomnamen uit de Gegevensbron gebruiken in de formule.You can use column names of DataSource in the formula.
  • ChangeRecord(s) - vereist.ChangeRecord(s) - Required. Voor elke overeenkomstige voorwaarde moet een wijzigingsrecord worden toegevoegd met nieuwe eigenschapswaarden die moeten worden toegepast op records in de DataSource die voldoen aan de voorwaarde.For each corresponding condition, a change record of new property values to apply to records of DataSource that satisfy the condition. Als u de record inline opgeeft tussen accolades, kunnen eigenschapswaarden van de bestaande record in de eigenschapsformules worden gebruikt.If you provide the record inline using curly braces, property values of the existing record can be used in the property formulas.

VoorbeeldenExamples

In deze voorbeelden vervangt of wijzigt u records in een gegevensbron genaamd IJs die begint met de gegevens in deze 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:

FormuleFormula BeschrijvingDescription ResultaatResult
Update( IJs,
First( Filter( IJs, Smaak="Chocolade" ) ), { ID: 1, Smaak: "Pure chocolade", Aantal:150 } )
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Vervangt een record uit de gegevensbron.Replaces a record from the data source.

De gegevensbron IJs is gewijzigd.The IceCream data source has been modified.
UpdateIf( IJs, Aantal > 175 { Aantal: Aantal + 10 } )UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Hiermee wijzigt u records waarvan Aantal groter is dan 175.Modifies records that have a Quantity that is greater than 150. Het veld Aantal wordt met 10 verhoogd en er worden geen andere velden gewijzigd.The Quantity field is incremented by 10, and no other fields are modified.

De gegevensbron IJs is gewijzigd.The IceCream data source has been modified.
Update( IJs,
First( Filter( IJs, Smaak="Aardbeien" ) ),
{ ID: 3, Smaak: "Aardbeiensorbet"} )
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Vervangt een record uit de gegevensbron.Replaces a record from the data source. De eigenschap Aantal is niet opgegeven in de vervangende record, zodat deze eigenschap leeg is in het resultaat.The Quantity property hasn't been supplied in the replacement record, so that property will be blank in the result.

De gegevensbron IJs is gewijzigd.The IceCream data source has been modified.
UpdateIf( IJs, true, { Aantal: 0 } )UpdateIf( IceCream, true, { Quantity: 0 } ) Hiermee stelt u de waarde van de eigenschap Aantal voor alle records in de gegevensbron in op 0.Sets the value of the Quantity property for all records in the data source to 0.

De gegevensbron IJs is gewijzigd.The IceCream data source has been modified.

Stap voor stapStep by step

  1. Importeer of maak een verzameling met de naam Inventaris en geef deze weer in een galerie, zoals wordt beschreven in Gegevens weergeven in een galerie.Import or create a collection named Inventory, and show it in a gallery as Show data in a gallery describes.
  2. Noem de galerie Productgalerie.Name the gallery ProductGallery.
  3. Voeg een schuifregelaar genaamd VerkochteEenheden toe en stel de eigenschap Max in op deze expressie:Add a slider named UnitsSold, and set its Max property to this expression:
    Productgalerie.Selected.EenhedenOpVoorraadProductGallery.Selected.UnitsInStock
  4. Voeg een knop toe en stel de eigenschap OnSelect ervan in op deze formule:Add a button, and set its OnSelect property to this formula:
    UpdateIf(Inventaris, Productnaam = Productgalerie.Selected.Productnaam, {EenhedenOpVoorraad:EenhedenOpVoorraad.VerkochteEenheden.Value})UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})
  5. Druk op F5, selecteer een product in de galerie, geef een waarde op met behulp van de schuifregelaar en selecteer vervolgens de knop.Press F5, select a product in the gallery, specify a value with the slider, and then select the button.

    Het aantal eenheden op voorraad voor het opgegeven product wordt verlaagd met het opgegeven aantal.The number of units in stock for the product you specified decreases by the amount that you specified.