Patch függvény a PowerAppsbenPatch function in PowerApps

Módosít vagy létrehoz egy vagy több rekordot egy adatforrásban, vagy egyesíti a rekordokat az adatforráson kívül.Modifies or creates one or more records in a data source, or merges records outside of a data source.

A Patch függvény rekordok módosítására használható összetett helyzetekben, például amikor olyan frissítéseket végez, amelyek nem igényelnek felhasználói műveleteket, vagy több képernyős űrlapokat használnak.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.

A kevésbé összetett helyzetekben használhatja a Edit form vezérlőt az adatforrások rekordjainak egyszerűbb frissítéséhez.In less complex situations, you can use the Edit form control to update records in a data source more easily. Amikor hozzáad egy Edit form vezérlőt, akkor egy kitöltendő űrlapot biztosít a felhasználóknak, majd egy adatforrásba menti a módosításokat.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. További információ: Az adatűrlapok megismerése.For more information, see Understand data forms.

ÁttekintésOverview

A Patch függvénnyel az adatforrás egy vagy több rekordja módosítható.Use the Patch function to modify one or more records of a data source. Adott mezők értékeinek megváltoztatása a többi tulajdonságot nem befolyásolja.The values of specific fields are modified without affecting other properties. Az alábbi képlet például megváltoztatja a Contoso nevű ügyfélhez tartozó telefonszámot: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” } )

Rekordokat a Patch és a Defaults függvények együttes használatával lehet létrehozni.Use Patch with the Defaults function to create records. Ennek köszönhetően akár egyetlen képernyőről elvégezhető a rekordok létrehozása és szerkesztése.Use this behavior to build a single screen for both creating and editing records. Az alábbi képlet például a Contoso nevű ügyfélhez hoz létre egy rekordot:For example, this formula creates a record for a customer named Contoso:

Patch( Customers, Defaults( Customer ), { Name: “Contoso” } )Patch( Customers, Defaults( Customer ), { Name: “Contoso” } )

A Patch adatforrás használata nélkül is alkalmazható két vagy több rekord egyesítéséhez.Even if you're not working with a data source, you can use Patch to merge two or more records. Ez a képlet például két rekordot egyesít egy olyanná, amely a Contoso telefonszámát és helyét is azonosítja: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” } )

LeírásDescription

Rekordok módosítása vagy létrehozása adatforrásbanModify or create a record in a data source

A függvény adatforrással történő használatához először az adatforrást, majd egy alaprekordot kell megadni:To use this function with a data source, specify the data source, and then specify a base record:

  • A rekord módosításához az alaprekordnak adatforrásból kell származnia.To modify a record, the base record needs to have come from a data source. Az alaprekord származhat egy katalógus Items tulajdonságából, egy környezeti változóból, illetve egyéb elérési útvonallal is rendelkezhet.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. Az alaprekordnak azonban mindig visszavezethetőnek kell lennie az adatforrásra.But you should be able to trace the base record back to the data source. Ez azért fontos, mert a rekord további információkat tartalmaz arra az esetre, ha ismét meg kell keresni módosítás céljából.This is important as the record will include additional information to help find the record again for modification.
  • Rekord létrehozásához a Defaults függvénnyel lehet alapértelmezett értékekkel rendelkező alaprekordot létrehozni.To create a record, use the Defaults function to create a base record with default values.

Ezt követően meg kell adni legalább egy módosítási rekordot, amely új tulajdonságértékeket tartalmaz az alaprekordban szereplők felülírásához.Then specify one or more change records, each of which contains new property values that override property values in the base record. A módosítási rekordok feldolgozása az argumentumlista elejétől a végéig sorrendben történik, és a későbbi tulajdonságértékek felülírják a korábbiakat.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

A Patch visszaadott értéke a módosított vagy létrehozott rekord.The return value of Patch is the record that you modified or created. Rekord létrehozása esetén a visszaadott érték az adatforrás által automatikusan létrehozott tulajdonságokat tartalmazhat.If you created a record, the return value may include properties that the data source generated automatically.

Adatforrás frissítésekor hibák fordulhatnak elő.When you update a data source, one or more issues may arise. Az Errors függvénnyel azonosíthatók és megvizsgálhatók a hibák, ahogyan azt az adatforrások használatát ismertető cikk leírja.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

A kapcsolódó függvények közé tartozik az Update függvény is, amely egy teljes rekord lecserélésére használható, valamint a Collect függvény, amely rekordok létrehozására szolgál.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. Az UpdateIf függvénnyel több rekord megadott tulajdonságai módosíthatók valamilyen feltétel alapján.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Rekordkészlet módosítása vagy létrehozása adatforrásbanModify or create a set of records in a data source

A Patch több rekord egyetlen hívással történő létrehozásához vagy módosításához is használható.Patch can also be used to create or modify multiple records with a single call.

Egyetlen alaprekord átadása helyett alaprekordok egy táblája adható meg a második argumentumban.Instead of passing a single base record, a table of base records can be provided in the second argument. A módosítási rekordok egy táblában is szerepelnek, ahol egy az egyhez társítással megfeleltethetők az alaprekordoknak.Change records are provided in a table as well, corresponding one-for-one with the base records. A módosítási táblákban szereplő rekordok számának meg kell egyeznie az alaptáblában található rekordok számával.The number of records in each change table must be the same as the number of records in the base table.

A Patch ily módon történő használata esetén a visszaadott érték szintén egy olyan tábla, ahol az egyes rekordok egy az egyhez társítással megfeleltethetők az alap- és módosítási rekordoknak.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.

Rekordok egyesítése adatforráson kívülMerge records outside of a data source

Meg kell adni legalább két, egyesíteni kívánt rekordot.Specify two or more records that you want to merge. A rekordok feldolgozása az argumentumlista elejétől a végéig sorrendben történik, és a későbbi tulajdonságértékek felülírják a korábbiakat.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

A Patch visszaadja az egyesített rekordot anélkül, hogy a hozzá tartozó argumentumokat vagy rekordokat bármilyen adatforrásban módosítaná.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SzintaxisSyntax

Rekordok módosítása vagy létrehozása adatforrásbanModify or create a record in a data source

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

  • DataSource – kötelező.DataSource – Required. Az adatforrás, amely a módosítani kívánt rekordot tartalmazza, vagy amely a létrehozandó rekordot tartalmazni fogja.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord – Kötelező.BaseRecord – Required. A módosítani vagy létrehozni kívánt rekord.The record to modify or create. Az adatforrásból származó rekordokat a rendszer megkeresi és módosítja.If the record came from a data source, the record is found and modified. A Defaults eredményének használata esetén létrejön egy rekord.If the result of Defaults is used, a record is created.
  • ChangeRecord – Kötelező.ChangeRecord(s) – Required. Egy vagy több olyan rekord, amely a BaseRecord elemben módosítandó tulajdonságokat tartalmazza.One or more records that contain properties to modify in the BaseRecord. A módosítási rekordok feldolgozása az argumentumlista elejétől a végéig sorrendben történik, és a későbbi tulajdonságértékek felülírják a korábbiakat.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Rekordkészlet módosítása vagy létrehozása adatforrásbanModify or create a set of records in a data source

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

  • DataSource – kötelező.DataSource – Required. Az adatforrás, amely a módosítani kívánt rekordokat tartalmazza, vagy amely a létrehozandó rekordokat tartalmazni fogja.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable – Kötelező.BaseRecordTable – Required. A módosítani vagy létrehozni kívánt rekordok táblája.A table of records to modify or create. Az adatforrásból származó rekordokat a rendszer megkeresi és módosítja.If the record came from a data source, the record is found and modified. A Defaults eredményének használata esetén létrejön egy rekord.If the result of Defaults is used, a record is created.
  • ChangeRecordTable – Kötelező.ChangeRecordTable(s) – Required. Egy vagy több olyan rekordtábla, amely a BaseRecordTable rekordjai esetében módosítandó tulajdonságokat tartalmazza.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. A módosítási rekordok feldolgozása az argumentumlista elejétől a végéig sorrendben történik, és a későbbi tulajdonságértékek felülírják a korábbiakat.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Rekordok egyesítéseMerge records

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

  • Record(s) – kötelező.Record(s) - Required. Legalább két, egyesíteni kívánt rekord.At least two records that you want to merge. A rekordok feldolgozása az argumentumlista elejétől a végéig sorrendben történik, és a későbbi tulajdonságértékek felülírják a korábbiakat.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

PéldákExamples

Rekordok módosítása vagy létrehozása (adatforrásban)Modify or create a record (in a data source)

Az alábbi példákban az IceCream (Jégkrém) nevű adatforrásban fogunk rekordot létrehozni vagy módosítani. Az adatokat ez a tábla tartalmazza, az ID (Azonosító) oszlop értékei pedig automatikusan jönnek létre: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:

KépletFormula LeírásDescription EredményResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Módosít egy rekordot az IceCream (Jégkrém) adatforrásban:Modifies a record in the IceCream data source:
  • A módosítani kívánt rekord ID (Azonosító) oszlopában az 1 érték szerepel.The ID column of the record to modify contains the value of 1. (Ez az azonosító a Chocolate [Csokoládé] rekordhoz tartozik.)(The Chocolate record has that ID.)
  • A Quantity (Mennyiség) oszlopban szereplő érték 400 egységre módosul.The value in the Quantity column changes to 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

Az IceCream (Jégkrém) adatforrás Chocolate (Csokoládé) bejegyzése módosult.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Létrehoz egy rekordot az IceCream (Jégkrém) adatforrásban:Creates a record in the IceCream data source:
  • Az ID (Azonosító) oszlopban szereplő érték 3, amelyet az adatforrás automatikusan hoz létre.The ID column contains the value 3, which the data source generates automatically.
  • A Quantity (Mennyiség) oszlopban 0 szerepel, így ez az adott oszlop alapértelmezett értéke az IceCream (Jégkrém) adatforrásban, ahogyan azt a Defaults függvény meghatározza.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • A Flavor (Íz) oszlopban a Strawberry (Eper) érték szerepel.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

Az IceCream (Jégkrém) adatforrás Strawberry (Eper) bejegyzése létrejött.The Strawberry entry in the IceCream data source has been created.

A korábbi képletek kiértékelése után az adatforrás végleges értékei a következők:After the previous formulas have been evaluated, the data source ends with these values:

Rekordok egyesítése (adatforráson kívül)Merge records (outside of a data source)

KépletFormula LeírásDescription EredményResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Két rekord egyesítése adatforráson kívül:Merges two records outside of a data source:
  • Az egyes rekordok Name (Név) oszlopában szereplő érték nem egyezik.The values in the Name column of each record don't match. Az eredmény az argumentumlista végéhez közelebbi rekordban szereplő Jim értéket tartalmazza az argumentumlista elejéhez közelebbi rekordban lévő James érték helyett.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.
  • Az első rekord tartalmazza a Score (Pontszám) oszlopot, amely a második rekordban nem szerepel.The first record contains a column (Score) that doesn't exist in the second record. Az eredmény az értékével (90) együtt tartalmazza az adott oszlopot.The result contains that column with its value (90).
  • A második rekord tartalmazza a Passed (Megfelelt) oszlopot, amely az első rekordban nem szerepel.The second record contains a column (Passed) that doesn't exist in the first record. Az eredmény az értékével (true [igaz]) együtt tartalmazza az adott oszlopot.The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }