PowerApps'teki Patch işleviPatch function in PowerApps

Bir veri kaynağında bir veya daha fazla kayıt oluşturur ya da kayıtları değiştirir veya veri kaynağının dışında kayıtları birleştirir.Modifies or creates one or more records in a data source, or merges records outside of a data source.

Örneğin, kullanıcı etkileşimi gerektirmeyen veya birden fazla ekrana yayılan formlar kullanan güncelleştirmeler gerçekleştirdiğiniz karmaşık durumlarda kayıtları değiştirmek için Patch işlevini kullanabilirsiniz.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.

Daha az karmaşık durumlarda, veri kaynağındaki kayıtları daha kolayca güncelleştirmek için Düzenleme formu denetimini kullanabilirsiniz.In less complex situations, you can use the Edit form control to update records in a data source more easily. Düzenleme formu denetimi eklediğinizde, kullanıcılara doldurulacak bir form sağlar ve bir veri kaynağı üzerinde yapılan değişiklikleri kaydedersiniz.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. Daha fazla bilgi için bkz. Veri formlarını anlama.For more information, see Understand data forms.

Genel BakışOverview

Veri kaynağının bir veya daha fazla kaydını değiştirmek için Patch işlevini kullanın.Use the Patch function to modify one or more records of a data source. Belirli alanların değerleri, diğer özellikler etkilenmeden değiştirilir.The values of specific fields are modified without affecting other properties. Örneğin, şu formül Contoso adlı bir müşterinin telefon numarasını değiştirir: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” } )

Kayıt oluşturmak için Defaults işlevi ile Patch işlevini kullanın.Use Patch with the Defaults function to create records. Kayıt oluşturmaya ve kayıtları düzenlemeye yönelik tek bir ekran oluşturmak için bu davranışı kullanın.Use this behavior to build a single screen for both creating and editing records. Örneğin, şu formül Contoso adlı bir müşteri için kayıt oluşturur:For example, this formula creates a record for a customer named Contoso:

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

Bir veri kaynağı ile çalışmıyor olsanız da iki veya daha fazla kaydı birleştirmek için Patch işlevini kullanabilirsiniz.Even if you're not working with a data source, you can use Patch to merge two or more records. Örneğin, şu formül Contoso'nun telefon numarasını ve konumunu tanımlayan tek bir kayıtta iki kaydı birleştirir: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” } )

AçıklamaDescription

Veri kaynağında kayıt oluşturma veya kaydı değiştirmeModify or create a record in a data source

Bu işlevi bir veri kaynağıyla kullanmak için önce veri kaynağını, ardından da bir temel kayıt belirtin:To use this function with a data source, specify the data source, and then specify a base record:

  • Bir kaydı değiştirmek için temel kaydın bir veri kaynağından gelmesi gerekir.To modify a record, the base record needs to have come from a data source. Temel kayıt, bir galerinin Items özelliğinden gelmiş, bir bağlam değişkenine yerleştirilmiş veya başka bir yol aracılığıyla gelmiş olabilir.The base record may have come through a gallery's Items property, been placed in a context variable, or come through some other path. Ancak, temel kaydı, veri kaynağına kadar izleyebiliyor olmanız gerekir.But you should be able to trace the base record back to the data source. Kayıt, değişiklik için kaydın tekrar bulunmasına yardımcı olacak ek bilgiler içereceğinden bu önemlidir.This is important as the record will include additional information to help find the record again for modification.
  • Bir kayıt oluşturmak için Defaults işlevini kullanarak varsayılan değerlere sahip bir temel kayıt oluşturun.To create a record, use the Defaults function to create a base record with default values.

Ardından, her biri temel kayıttaki özellik değerlerini geçersiz kılan yeni özellik değerleri içeren bir veya daha fazla değişiklik kaydı belirtin.Then specify one or more change records, each of which contains new property values that override property values in the base record. Değişiklik kayıtları, sırayla bağımsız değişken listesinin başından sonuna kadar işlenir ve sonraki özellik değerleri, öncekileri geçersiz kılar.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Döndürülen Patch değeri, değiştirdiğiniz veya oluşturduğunuz kayıttır.The return value of Patch is the record that you modified or created. Bir kayıt oluşturduysanız, döndürülen değer, veri kaynağının otomatik olarak oluşturduğu özellikleri içerebilir.If you created a record, the return value may include properties that the data source generated automatically.

Bir veri kaynağını güncelleştirdiğinizde bir veya daha fazla sorun oluşabilir.When you update a data source, one or more issues may arise. Sorunları tanımlamak ve incelemek için, Veri Kaynakları ile Çalışma bölümünde açıklandığı gibi Hatalar işlevini kullanın.Use the Errors function to identify and examine issues, as Working with Data Sources describes.

İlgili işlevler arasında, bir kaydın tamamını değiştirmek için kullanabileceğiniz Update işlevi ve kayıt oluşturmak için kullanabileceğiniz Collect işlevi yer alır.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. Bir koşula dayalı olarak birden fazla kaydın belirli özelliklerini değiştirmek için UpdateIf işlevini kullanabilirsiniz.You can use the UpdateIf function to modify specific properties of multiple records based on a condition.

Veri kaynağında bir kayıt kümesi oluşturma veya kayıt kümesini değiştirmeModify or create a set of records in a data source

Patch, tek bir çağrı ile birden fazla kayıt oluşturmak veya değiştirmek için de kullanılabilir.Patch can also be used to create or modify multiple records with a single call.

Tek bir temel kayıt geçirmek yerine, ikinci bağımsız değişkende temel kayıtların bulunduğu bir tablo sağlanabilir.Instead of passing a single base record, a table of base records can be provided in the second argument. Değişiklik kayıtları, temel kayıtlara bire bir karşılık gelecek şekilde bir tabloda da sağlanır.Change records are provided in a table as well, corresponding one-for-one with the base records. Her değişiklik tablosundaki kayıt sayısı, temel tablodaki kayıt sayısıyla aynı olmalıdır.The number of records in each change table must be the same as the number of records in the base table.

Patch bu şekilde kullanıldığında döndürülen değer aynı zamanda her bir kaydın, temel kayıtlara ve değişiklik kayıtlarına bire bir karşılık geldiği bir tablodur.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.

Veri kaynağının dışında kayıtları birleştirmeMerge records outside of a data source

Birleştirmek istediğiniz iki veya daha fazla kayıt belirtin.Specify two or more records that you want to merge. Kayıtlar, sırayla bağımsız değişken listesinin başından sonuna kadar işlenir ve sonraki özellik değerleri, öncekileri geçersiz kılar.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Patch, birleştirilen kaydı döndürür ve kaydın herhangi bir veri kaynağındaki bağımsız değişkenlerini veya kayıtlarını değiştirmez.Patch returns the merged record and doesn't modify its arguments or records in any data sources.

Söz dizimiSyntax

Veri kaynağında kayıt oluşturma veya kaydı değiştirmeModify or create a record in a data source

Patch( VeriKaynağı, TemelKayıt, DeğişiklikKaydı1 [, DeğişiklikKaydı2, …Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])])

  • VeriKaynağı: Gerekli.DataSource – Required. Değiştirmek istediğiniz kaydı içeren veya oluşturmak istediğiniz kaydı içerecek olan veri kaynağı.The data source that contains the record that you want to modify or will contain the record that you want to create.
  • TemelKayıt: Gerekli.BaseRecord – Required. Değiştirilecek veya oluşturulacak kayıt.The record to modify or create. Kayıt bir veri kaynağından geliyorsa bulunur ve değiştirilir.If the record came from a data source, the record is found and modified. Defaults işlevinin sonucu kullanılıyorsa bir kayıt oluşturulur.If the result of Defaults is used, a record is created.
  • DeğişiklikKayıtları: Gerekli.ChangeRecord(s) – Required. TemelKayıt içinde değiştirilecek özellikleri içeren bir veya daha fazla kayıt.One or more records that contain properties to modify in the BaseRecord. Değişiklik kayıtları, sırayla bağımsız değişken listesinin başından sonuna kadar işlenir ve sonraki özellik değerleri, öncekileri geçersiz kılar.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Veri kaynağında bir kayıt kümesi oluşturma veya kayıt kümesini değiştirmeModify or create a set of records in a data source

Patch( VeriKaynağı, TemelKayıtlarTablosu, DeğişiklikKaydıTablosu1, [, DeğişiklikKaydıTablosu2, …Patch( DataSource, BaseRecordsTable, ChageRecordTable1, [, ChangeRecordTable2, … ] )] )

  • VeriKaynağı: Gerekli.DataSource – Required. Değiştirmek istediğiniz kayıtları içeren veya oluşturmak istediğiniz kayıtları içerecek olan veri kaynağı.The data source that contains the records that you want to modify or will contain the records that you want to create.
  • TemelKayıtTablosu: Gerekli.BaseRecordTable – Required. Değiştirilecek veya oluşturulacak kayıtların bulunduğu bir tablo.A table of records to modify or create. Kayıt bir veri kaynağından geliyorsa bulunur ve değiştirilir.If the record came from a data source, the record is found and modified. Defaults işlevinin sonucu kullanılıyorsa bir kayıt oluşturulur.If the result of Defaults is used, a record is created.
  • DeğişiklikKaydıTabloları: Gerekli.ChangeRecordTable(s) – Required. Her bir TemelKayıtTablosu kaydı için değiştirilecek özellikleri içeren bir veya daha fazla kayıt tablosu.One or more tables of records that contain properties to modify for each record of the BaseRecordTable. Değişiklik kayıtları, sırayla bağımsız değişken listesinin başından sonuna kadar işlenir ve sonraki özellik değerleri, öncekileri geçersiz kılar.Change records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

Kayıtları birleştirmeMerge records

Patch( Kayıt1, Kayıt2 [, …] )Patch( Record1, Record2 [, …] )

  • Kayıtlar: Gerekli.Record(s) - Required. Birleştirmek istediğiniz en az iki kayıt.At least two records that you want to merge. Kayıtlar, sırayla bağımsız değişken listesinin başından sonuna kadar işlenir ve sonraki özellik değerleri, öncekileri geçersiz kılar.Records are processed in order from the beginning of the argument list to the end, with later property values overriding earlier ones.

ÖrneklerExamples

Kayıt oluşturma veya kaydı değiştirme (bir veri kaynağında)Modify or create a record (in a data source)

Bu örneklerde, bu tablodaki verileri içeren ve otomatik olarak ID sütununda değerler oluşturan IceCream adlı bir veri kaynağında kayıt oluşturacak veya kaydı değiştireceksiniz: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:

FormülFormula AçıklamaDescription SonuçResult
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
IceCream veri kaynağındaki bir kaydı değiştirir:Modifies a record in the IceCream data source:
  • Değiştirilecek kaydın ID sütunu 1 değerini içermektedir.The ID column of the record to modify contains the value of 1. (Bu, Chocolate kaydının kimliğidir.)(The Chocolate record has that ID.)
  • Quantity sütunundaki değer 400 olarak değişir.The value in the Quantity column changes to 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

IceCream veri kaynağındaki Chocolate girişi değiştirilmiştir.The Chocolate entry in the IceCream data source has been modified.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } )Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) IceCream veri kaynağında bir kayıt oluşturur:Creates a record in the IceCream data source:
  • ID sütunu, veri kaynağının otomatik olarak oluşturduğu 3 değerini içermektedir.The ID column contains the value 3, which the data source generates automatically.
  • Quantity sütunu, Defaults işlevinin belirttiği gibi IceCream veri kaynağında söz konusu sütun için varsayılan değer olan 0 değerini içermektedir.The Quantity column contains 0, which is the default value for that column in the IceCream data source, as the Defaults function specifies.
  • Flavor sütunu, Strawberry değerini içermektedir.The Flavor column contains the value of Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

IceCream veri kaynağında Strawberry girişi oluşturulmuştur.The Strawberry entry in the IceCream data source has been created.

Önceki formüller değerlendirildikten sonra veri kaynağı şu değerlere sahip olur:After the previous formulas have been evaluated, the data source ends with these values:

Kayıtları birleştirme (bir veri kaynağının dışında)Merge records (outside of a data source)

FormülFormula AçıklamaDescription SonuçResult
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } )Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Veri kaynağının dışında iki kaydı birleştirme:Merges two records outside of a data source:
  • Her bir kaydın Name sütunundaki değerler eşleşmez.The values in the Name column of each record don't match. Sonuç, bağımsız değişken listesinin başına yakın olan kayıttaki değer (James) yerine, bağımsız değişken listesinin sonuna yakın olan kayıttaki değeri (Jim) içerir.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.
  • Birinci kayıt, ikinci kayıtta mevcut olmayan bir sütunu (Score) içerir.The first record contains a column (Score) that doesn't exist in the second record. Sonuç, değeri (90) olan sütunu içerir.The result contains that column with its value (90).
  • İkinci kayıt, birinci kayıtta mevcut olmayan bir sütunu (Passed) içerir.The second record contains a column (Passed) that doesn't exist in the first record. Sonuç, (true) değerine sahip sütunu içerir.The result contains that column with its value (true).
{ Name: "Jim", Score: 90, Passed: true }{ Name: "Jim", Score: 90, Passed: true }