Funkcia Patch v PowerAppsPatch function in PowerApps

Upravuje alebo vytvára jeden alebo viacero záznamov v zdroji údajov alebo zlučuje záznamy mimo zdroja údajov.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Funkciu Patch môžete použiť na úpravu záznamov v zložitých situáciách, napríklad keď vykonávate aktualizácie, ktoré nevyžadujú zásah od používateľa, alebo keď používate formuláre presahujúce cez niekoľko obrazoviek.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.

V menej zložitých situáciach môžete na aktualizáciu záznamov v zdroji údajov použiť ovládací prvok Formulár na úpravy.In less complex situations, you can use the Edit form control to update records in a data source more easily. Keď pridáte ovládací prvok Formulár na úpravy, poskytnete používateľom formulár na vyplnenie a potom môžete uložiť zmeny do zdroja údajov.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. Ďalšie informácie nájdete v téme Vysvetlenie údajových formulárov.For more information, see Understand data forms.

PrehľadOverview

Funkciu Patch môžete použiť na úpravu jedného alebo viacerých záznamov zdroja údajov.Use the Patch function to modify one or more records of a data source. Hodnoty konkrétnych polí sa upravia bez ovplyvnenia ďalších vlastností.The values of specific fields are modified without affecting other properties. Tento vzorec napríklad zmení telefónne číslo zákazníka 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” } )

Na vytvorenie záznamov použite funkciu Patch s funkciou Defaults.Use Patch with the Defaults function to create records. Pomocou tohto správania zostavte jednu obrazovku na vytváranie a úpravu záznamov.Use this behavior to build a single screen for both creating and editing records. Tento vzorec napríklad vytvorí záznam pre zákazníka 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” } )

Funkciu Patch môžete použiť na zlúčenie dvoch alebo viacerých záznamov aj vtedy, ak nepracujete so zdrojom údajov.Even if you're not working with a data source, you can use Patch to merge two or more records. Tento vzorec napríklad zlúči dva záznamy do jedného, ktorý identifikuje telefónne číslo aj polohu zákazníka 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” } )

PopisDescription

Úprava alebo vytvorenie záznamu v zdroji údajovModify or create a record in a data source

Ak chcete túto funkciu použiť so zdrojom údajov, určte zdroj údajov a potom určte základný záznam:To use this function with a data source, specify the data source, and then specify a base record:

  • Ak chcete záznam upraviť, základný záznam musí pochádzať zo zdroja údajov.To modify a record, the base record needs to have come from a data source. Základný záznam môže pochádzať z vlastnosti Items ovládacie prvku Galéria, môže byť umiestnený v kontextovej premennej alebo môže pochádzať z nejakej inej cesty.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. Mali by ste však dokázať základný záznam vystopovať späť k zdroju údajov.But you should be able to trace the base record back to the data source. Je to dôležité preto, že záznam bude obsahovať ďalšie informácie, ktoré mu pomôžu základný záznam znova nájsť na úpravy.This is important as the record will include additional information to help find the record again for modification.
  • Ak chcete vytvoriť záznam, použite funkciu Defaults, aby ste vytvorili základný záznam s predvolenými hodnotami.To create a record, use the Defaults function to create a base record with default values.

Potom určte jeden alebo viac záznamov zmien, z ktorých každý bude obsahovať nové hodnoty vlastnosti, ktoré hodnoty vlastnosti v základnom zázname prepíšu.Then specify one or more change records, each of which contains new property values that override property values in the base record. Záznamy zmien sa spracovávajú v poradí od začiatku zoznamu argumentov do konca a neskoršie hodnoty vlastnosti prepisujú tie skoršie.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Vrátenou hodnotou funkcie Patch je záznam, ktorý ste upravili alebo vytvorili.The return value of Patch is the record that you modified or created. Ak ste záznam vytvorili, vrátená hodnota môže obsahovať vlastnosti, ktoré zdroj údajov vygeneroval automaticky.If you created a record, the return value may include properties that the data source generated automatically.

Keď zdroj údajov aktualizujete, môžu sa vyskytnúť problémy.When you update a data source, one or more issues may arise. Ak chcete problémy identifikovať a skontrolovať, použite funkciu Errors podľa témy o práci so zdrojmi údajov.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

Medzi súvisiace funkcie patrí funkcia Update, ktorú môžete použiť na nahradenie celého záznamu, a funkcia Collect, ktorú môžete použiť na vytvorenie záznamu.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. Na úpravu konkrétnych vlastností v prípade viacerých záznamov na základe podmienky môžete použiť funkciu UpdateIf.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Úprava alebo vytvorenie množiny záznamov v zdroji údajovModify or create a set of records in a data source

Funkciu Patch môžete tiež použiť na vytvorenie alebo úpravu viacerých záznamov jedným volaním.Patch can also be used to create or modify multiple records with a single call.

Namiesto postúpenia jedného základného záznamu je možné v druhom argumente poskytnúť tabuľku základných záznamov.Instead of passing a single base record, a table of base records can be provided in the second argument. Záznamy zmien sa tiež poskytujú v tabuľke, aby identicky zodpovedali základným záznamov.Change records are provided in a table as well, corresponding one-for-one with the base records. Počet záznamov v každej tabuľke zmien musí byť rovnaký ako počet záznamov v základnej tabuľke.The number of records in each change table must be the same as the number of records in the base table.

Keď funkciu Patch používate týmto spôsobom, vrátená hodnota je tiež tabuľkou, v ktorej každý záznam identicky zodpovedá základným záznamom a záznamom zmien.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.

Zlúčenie záznamov mimo zdroja údajovMerge records outside of a data source

Určte dva alebo viac záznamov, ktoré chcete zlúčiť.Specify two or more records that you want to merge. Záznamy sa spracovávajú v poradí od začiatku zoznamu argumentov do konca a neskoršie hodnoty vlastnosti prepisujú tie skoršie.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Funkcia Patch vráti zlúčený záznam bez toho, aby zmenila jeho argumenty alebo záznamy v ktoromkoľvek zdroji údajov.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

SyntaxSyntax

Úprava alebo vytvorenie záznamu v zdroji údajovModify or create a record in a data source

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

  • DataSource – povinné.DataSource – Required. Zdroj údajov obsahujúci záznam, ktorý chcete upraviť, alebo zdroj údajov, ktorý bude záznam obsahovať, keď ho vytvoríte.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • BaseRecord – povinné.BaseRecord – Required. Záznam, ktorý chcete upraviť alebo vytvoriť.The record to modify or create. Ak záznam pochádza zo zdroja údajov, bude nájdený a upravený.If the record came from a data source, the record is found and modified. Ak sa použil výsledok funkcie Defaults, záznam sa vytvorí.If the result of Defaults is used, a record is created.
  • ChangeRecord(s) – povinné.ChangeRecord(s) – Required. Jeden alebo viac záznamov obsahujúcich vlastnosti, ktoré sa majú upraviť v zázname BaseRecord.One or more records that contain properties to modify in the BaseRecord. Záznamy zmien sa spracovávajú v poradí od začiatku zoznamu argumentov do konca a neskoršie hodnoty vlastnosti prepisujú tie skoršie.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Úprava alebo vytvorenie množiny záznamov v zdroji údajovModify or create a set of records in a data source

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

  • DataSource – povinné.DataSource – Required. Zdroj údajov obsahujúci záznamy, ktoré chcete upraviť, alebo zdroj údajov, ktorý bude záznamy obsahovať, keď ho vytvoríte.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • BaseRecordTable – povinné.BaseRecordTable – Required. Záznamy, ktoré chcete upraviť alebo vytvoriť.A table of records to modify or create. Ak záznam pochádza zo zdroja údajov, bude nájdený a upravený.If the record came from a data source, the record is found and modified. Ak sa použil výsledok funkcie Defaults, záznam sa vytvorí.If the result of Defaults is used, a record is created.
  • ChangeRecordTable(s) – povinné.ChangeRecordTable(s) – Required. Jedna alebo viac tabuliek záznamov obsahujúce vlastnosti, ktoré chcete v prípade každého záznamu tabuľky BaseRecordTable upraviť.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. Záznamy zmien sa spracovávajú v poradí od začiatku zoznamu argumentov do konca a neskoršie hodnoty vlastnosti prepisujú tie skoršie.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Zlúčenie záznamovMerge records

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

  • Record(s) – povinné.Record(s) - Required. Aspoň dva záznamy, ktoré chcete zlúčiť.At least two records that you want to merge. Záznamy sa spracovávajú v poradí od začiatku zoznamu argumentov do konca a neskoršie hodnoty vlastnosti prepisujú tie skoršie.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

PríkladyExamples

Úprava alebo vytvorenie záznamu (v zdroji údajov)Modify or create a record (in a data source)

V týchto príkladoch upravíte alebo vytvoríte záznam v zdroji údajov s názvom IceCream, ktorý obsahuje údaje z tejto tabuľky, a automaticky vygenerujete hodnoty v stĺpci 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:

VzorecFormula PopisDescription VýsledokResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Upravenie záznamu v zdroji údajov s názvom IceCream:Modifies a record in the IceCream data source:
  • Záznam, ktorý chcete upraviť, má v stĺpci ID hodnotu 1.The ID column of the record to modify contains the value of 1. (Je to záznam Chocolate.)(The Chocolate record has that ID.)
  • Hodnota v stĺpci Quantity sa zmení na 400.The value in the Quantity column changes to 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

Zmenila sa položka Chocolate v zdroji údajov IceCream.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Vytvorenie záznamu v zdroji údajov s názvom IceCream:Creates a record in the IceCream data source:
  • Stĺpec ID obsahuje hodnotu 3, ktorú zdroj údajov vygeneruje automaticky.The ID column contains the value 3, which the data source generates automatically.
  • Stĺpec Quantity obsahuje hodnotu 0, čo je pre tento stĺpec v zdroji údajov IceCream predvolenou hodnotou, ktorú určuje funkcia Defaults.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • Stĺpec Flavor obsahuje hodnotu Strawberry.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

Vytvoril as a položka Strawberry v zdroji údajov IceCream.The Strawberry entry in the IceCream data source has been created.

Po vyhodnotení predchádzajúcich vzorcov vyzerajú hodnoty zdroja údajov takto:After the previous formulas have been evaluated, the data source ends with these values:

Zlúčenie záznamov (mimo zdroj údajov)Merge records (outside of a data source)

VzorecFormula PopisDescription VýsledokResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Zlúčenie dvoch záznamov mimo zdroja údajov:Merges two records outside of a data source:
  • Hodnoty v stĺpci Name (Názov) sa v prípade jednotlivých záznamov nezhodujú.The values in the Name column of each record don't match. Výsledok obsahuje hodnotu (Jim) v zázname, ktorý je bližšie ku koncu zoznamu argumentov namiesto hodnoty (James) v zázname, ktorý je bližšie k začiatku.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.
  • Prvý záznam obsahuje stĺpec (Score), ktorý v druhom zázname neexistuje.The first record contains a column (Score) that doesn't exist in the second record. Výsledok obsahuje tento stĺpec s hodnotou (90).The result contains that column with its value (90).
  • Druhý záznam obsahuje stĺpec (Passed), ktorý v prvom zázname neexistuje.The second record contains a column (Passed) that doesn't exist in the first record. Výsledok obsahuje tento stĺpec s hodnotou (true).The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }