Update- og UpdateIf-funksjonene i Power Apps

Oppdaterer poster i en datakilde.

Beskrivelse

Update-funksjonen

Bruk Update-funksjonen til å erstatte en hel post i en datakilde. Funksjonene UpdateIf og Patch endrer én eller flere verdier i en post uten å røre de andre verdiene.

Hvis du vil oppdatere en samling, må hele posten gi treff. Samlinger tillater dupliserte poster, slik at flere poster kan gi treff. Du kan bruke All-argumentet for å oppdatere alle kopiene av en post. Ellers oppdateres bare en kopi av posten.

Hvis datakilden genererer en kolonnes verdi automatisk, må verdien til denne kolonnen bekreftes.

UpdateIf-funksjonen

Bruk UpdateIf-funksjonen til å endre en eller flere verdier i en eller flere poster som oppfyller en eller flere betingelser. Betingelsen kan være enhver formel som gir sann eller usann som resultat og kan referere til kolonner i datakilden etter navn. Funksjonen evaluerer betingelsene for hver post og endrer alle poster hvor resultatet er sann.

Bruk en endringspost som inneholder nye egenskapsverdier, til å angi en endring. Hvis du angir denne endringsposten innebygd i klammeparenteser, kan egenskapsformlene referere til egenskaper til posten som blir endret. Du kan bruke denne virkemåten til å endre poster basert på en formel.

På samme måte som med UpdateIf kan du også bruke Patch-funksjonen til å endre bestemte kolonner i en post uten å påvirke andre kolonner.

Både Update og UpdateIf returnerer den endrede datakilden som en tabell. Du må bruke en av funksjonene i en formel for virkemåte.

Delegering

Disse funksjonene kan ikke delegeres når de brukes med en datakilde. Bare den første delen av datakilden hentes, og deretter brukes funksjonen. Resultatet representerer kanskje ikke den fullstendig historikken. Det vises kanskje en advarsel i redigeringsmodus for å minne deg på denne begrensningen, og for å foreslå at du bytter til alternativer som kan delegeres, der det er mulig. Hvis du vil ha mer informasjon, kan du se delegeringsoversikten.

Syntaks

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

  • DataSource – obligatorisk. Datakilden som inneholder posten du vil erstatte.
  • OldRecord – obligatorisk. Posten som du vil erstatte.
  • NewRecord – obligatorisk. Posten som du vil erstatte den med. Dette er ikke en endringspost. Hele posten erstattes, og manglende egenskaper vil inneholde tom.
  • All – valgfritt. I en samling kan den samme posten forekomme mer enn én gang. Angi argumentet Alle for å oppdatere alle kopier av posten.

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

  • DataSource – obligatorisk. Datakilden som inneholder posten eller postene som du vil endre.
  • Condition(s) – obligatorisk. En formel som gir resultatet sann for posten eller postene som du vil endre. Du kan bruke kolonnenavnene fra DataSource i formelen.
  • ChangeRecord(s) – obligatorisk. Angi en endringspost med nye egenskapsverdier som skal anvendes på postene i DataSource som oppfyller hver tilhørende betingelse. Hvis du angir posten innebygd i klammeparenteser, kan du bruke egenskapsverdiene til den eksisterende posten i egenskapsformlene.

Eksempler

I disse eksemplene erstatter eller endrer du poster i en datakilde som heter IceCream og som starter med dataene i denne tabellen:

Formel Beskrivelse Resultat
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Erstatter en post fra datakilden.

Datakilden IceCream har blitt endret.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Endrer poster hvor Quantity er større enn 175. Quantity-feltet økes med 10, og ingen andre felter blir endret.

Datakilden IceCream har blitt endret.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Erstatter en post fra datakilden. Egenskapen Quantity er ikke angitt i erstatningsposten. Denne egenskapen vil derfor være tom i resultatet.

Datakilden IceCream har blitt endret.
UpdateIf( IceCream, true, { Quantity: 0 } ) Angir verdien 0 for Quantity-egenskapen til alle postene i datakilden.

Datakilden IceCream har blitt endret.

Trinnvis

  1. Importer eller opprett en samling med navnet Inventory, og vis den i et galleri, som beskrevet i Vis data i et galleri.

  2. Gi galleriet navnet ProductGallery.

  3. Legg til en glidebryter med navnet UnitsSold, og angi glidebryterens Max-egenskap som dette uttrykket:
    ProductGallery.Selected.UnitsInStock

  4. Legg til en knapp, og angi knappens OnSelect-egenskapen til denne formelen:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Trykk på F5, velg et produkt i galleriet, angi en verdi med glidebryteren, og velg deretter knappen.

    Antall enheter på lager for produktet du anga, reduseres med beløpet du anga.

Obs!

Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)

Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).