Update ve UpdateIf işlevleri

Şunlar için geçerlidir: Tuval uygulamaları Model temelli uygulamalar

Veri kaynağındakikayıtları güncelleştirir.

Description

Update işlevi

Veri kaynağındaki bütün bir kaydı değiştirmek için Update işlevini kullanın. Buna karşılık UpdateIf ve Patch işlevleri, bir kayıttaki bir veya daha fazla değeri (diğer değerleri tek başına bırakarak) değiştirir.

Koleksiyon söz konusu olduğunda değerin tamamı eşleşmelidir. Koleksiyonlar yinelenen kayıtlara olanak sağladığından birden çok kayıt eşleşmesi oluşabilir. Bir kaydın tüm kopyalarını güncelleştirmek için RemoveFlags.All bağımsız değişkenini kullanabilirsiniz. Aksi takdirde, kaydın yalnızca bir kopyası güncelleştirilir.

Veri kaynağı bir sütun değerini otomatik olarak oluşturursa bu sütunun değeri yeniden doğrulanmalıdır.

UpdateIf işlevi

Bir veya birden çok koşulla eşleşen bir ya da birden fazla kayıtta bir veya birden fazla değeri değiştirmek için UpdateIf işlevini kullanın. Koşul, doğru veya yanlış ile sonuçlanan herhangi bir formül olabilir ve ada göre veri kaynağının sütunlarına başvurabilir. İşlev, her bir kayıt için koşulu değerlendirir ve sonucu doğru olan tüm kayıtları değiştirir.

Değişiklik belirtmek için yeni özellik değerlerini içeren değişiklik kaydı kullanın. Bu değişiklik kaydını küme ayracı ile satır içinde verirseniz özellik formülleri değiştirilen kaydın özelliklerine başvurabilir. Bu davranışı, kayıtları formüle göre değiştirmek için kullanabilirsiniz.

UpdateIf işlevine benzer şekilde, bir kaydın diğer sütunlarını etkilemeden belirli sütunlarını değiştirmek için Patch işlevini de kullanabilirsiniz.

Update ve UpdateIf işlevlerinin her ikisi de değiştirilen veri kaynağını tablo olarak döndürür. Davranış formülünde işlevlerden birini kullanmanız gerekir.

Temsilci

Veri kaynağıyla birlikte kullanıldığında bu işlevler temsilci atanamaz. Veri kaynağının yalnızca ilk kısmı alınır ve işlev uygulanır. Bu, tüm hikayeyi temsil etmeyebilir. Bu sınırlamayı size anımsatmak için yazma sırasında bir uyarı görüntülenebilir.

Temsil desteği (Deneysel)

UpdateIf ve RemoveIf için temsil desteği şu anda bunu destekleyen veri kaynakları için Deneysel Önizleme aşamasındadır (varsayılan KAPALI). Veri kaynağı bu özelliği desteklemiyorsa Power Apps sunucuya bir sorgu gönderir ve maksimum 500, 2000 veya veri sayfası boyutuna kadar filtre ifadesiyle eşleşen tüm verileri alır. Ardından, bu kayıtları güncelleştirir ve güncelleştirilmesi için her birini sunucuya geri gönderir.

Sözdizimi

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

  • DataSource – Gerekli. Değiştirmek istediğiniz kaydı içeren veri kaynağı.
  • OldRecord – Gerekli. Değiştirilecek kayıt.
  • NewRecord – Gerekli. Yenileme kaydı. Bu bir değişiklik kaydı değildir. Kaydın tamamı değiştirilir ve eksik özellikler boş değer içerir.
  • RemoveFlags.All: İsteğe bağlı. Koleksiyondaki aynı kayıt birden fazla kez görünebilir. Kaydın tüm kopyalarını güncellemek için RemoveFlags.All bağımsız değişkenini belirtin.

UpdateIf( DataSource, Koşul1, ChangeRecord1 [, Koşul2, ChangeRecord2, ... ] )

  • DataSource – Gerekli. Değiştirmek istediğiniz kaydı veya kayıtları içeren veri kaynağı.
  • Koşullar – Gerekli. Değiştirmek istediğiniz kayıt veya kayıtlar için doğru değerini döndüren bir formül. Formülde DataSource sütun adlarını kullanabilirsiniz.
  • ChangeRecord(s) - Gerekli. Karşılık gelen her koşul için koşulu karşılayan DataSource kayıtlarına uygulanacak yeni özellik değerlerinin değişiklik kaydı. Kaydı küme ayracı kullanarak satır içinde verirseniz mevcut kaydın özellik değerleri, özellik formüllerinde kullanılabilir.

Örnekler

Bu örneklerde, IceCream adlı veri kaynağındaki kayıtları ve bu tablodaki verilerle başlayanları değiştireceksiniz:

IceCream örneği.

Formül Açıklama Sonuç
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Veri kaynağında bir kaydı değiştirir. Kaydı değiştirme.

IceCream veri kaynağı değiştirildi.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) 175'den daha büyük Miktar değeri olan kayıtları değiştirir. Miktar alanı 10 artırılır ve diğer alanlar değiştirilmez. Kayıtları değiştirme.

IceCream veri kaynağı değiştirildi.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Veri kaynağında bir kaydı değiştirir. Quantity özelliği, değiştirme kaydında sağlanmaz. Bu nedenle, özellik sonuçta boş değer döndürür. Miktar belirtilmediğinde kaydı değiştirme.

IceCream veri kaynağı değiştirildi.
UpdateIf( IceCream, true, { Quantity: 0 } ) Veri kaynağındaki tüm kayıtlar için Quantity özelliğini 0 olarak ayarlar. Tümü için miktarı 0 olarak ayarlama.

IceCream veri kaynağı değiştirildi.

Adım adım

  1. Stok adlı bir koleksiyon oluşturun ve Galeride veri gösterme bölümünde açıklandığı gibi bu koleksiyonu galeride gösterin.

  2. Galeriyi ProductGallery olarak adlandırın.

  3. UnitsSold adlı bir kaydırıcı ekleyin ve kaydırıcının Max özelliğini şu ifade olarak ayarlayın:
    ProductGallery.Selected.UnitsInStock

  4. Bir düğme ekleyin ve düğmenin OnSelect özelliğini şu formül olarak ayarlayın:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. F5 tuşuna basın, galeride bir ürün seçin, kaydırıcı ile bir değer belirtin ve ardından düğmeyi seçin.

    Belirttiğiniz ürün için stoktaki birim sayısı, belirttiğiniz miktar kadar azalır.