Aracılığıyla paylaş


Errors fonksiyon

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

Bir veri kaynağında önceden yapılan değişikliklere ilişkin hata bilgilerini sağlar.

Genel bakış

Errors bir veri kaynağının kaydı değiştirildiğinde gerçekleşebilir. Ağ kesintileri, yetersiz izinler ve düzenleme çakışmaları gibi birçok neden mümkündür.

Patch, Collect, Remove, RemoveIf, Update, UpdateIf ve SubmitForm gibi veri kaynaklarındaki verileri değiştirebilen işlevler iki şekilde hata verir:

  • Bu işlevlerin her biri işlemin sonucu olarak bir hata değeri döndürür. Errors IsError ile algılanabilir ve her zamanki gibi IfError ve App.OnError ile değiştirilebilir veya gizlenebilir. Daha fazla bilgi için Hata İşleme bölümüne bakın.
  • İşlemden sonra işlev, Errors önceki işlemler için hataları da döndürür. Hatanın bir durum değişkeninde yakalanmasına gerek kalmadan bir form ekranında hata iletisini görüntülemek için yararlı olabilir.

Validate ve DataSourceInfo işlevlerini kullanarak bazı hataların oluşmasını önleyebilirsiniz. Hatalarla nasıl çalışacağınız ve hatalardan nasıl kaçınacağınız ile ilgili daha fazla öneri için bkz. veri kaynaklarıyla çalışma.

Açıklama

İşlev, Errors aşağıdaki sütunları içeren bir hata tablosu döndürür:

  • Kayıt. Veri kaynağında hatanın oluştuğu kayıt. Kayıt oluşturulurken hata oluştuysa, bu sütun boş olur.
  • Sütun. Hataya neden olan sütun (hata tek bir sütunla ilişkilendirilebiliyorsa). Aksi takdirde boş olur.
  • İleti. Hatanın tanımı. Bu hata dizesi son kullanıcı için görüntülenebilir. Bu ileti veri kaynağı tarafından oluşturulabilir ve uzun olabilir ve kullanıcı için hiçbir anlamı olmayan ham sütun adları içerebilir.
  • Hata. Hatanın çözülmesi için formüllerde kullanılabilen bir hata kodu:
ErrorKind Açıklama
ErrorKind.Conflict Aynı kayıtta başka bir değişiklik daha yapılmıştır ve bu, bir değişiklik çakışmasına neden olmuştur. Kaydı yeniden yüklemek için Refresh işlevini kullanın ve değişikliği tekrar deneyin.
ErrorKind.ConstraintViolation Bir veya daha fazla kısıtlama ihlal edilmiştir.
ErrorKind.CreatePermission Kayıt oluşturma girişiminde bulunulmuştur ve geçerli kullanıcının kayıt oluşturma izni yoktur.
ErrorKind.DeletePermission Kayıt oluşturma girişiminde bulunulmuştur ve geçerli kullanıcının kayıt silme izni yoktur.
ErrorKind.EditPermission Kayıt düzenleme girişiminde bulunulmuştur ve geçerli kullanıcının kayıt düzenleme izni yoktur.
ErrorKind.GeneratedValue Veri kaynağının otomatik olarak oluşturduğu bir sütunu değiştirme girişiminde bulunulmuştur.
ErrorKind.MissingRequired Gerekli bir sütuna ilişkin değer kayıtta mevcut değildir.
ErrorKind.None Hata yoktur.
ErrorKind.NotFound Bir kaydı düzenleme veya silme girişiminde bulunulmuş ancak kayıt bulunamamıştır. Başka bir kullanıcı, kaydı değiştirmiş olabilir.
ErrorKind.ReadOnlyValue Salt okunur bir sütunu değiştirme girişiminde bulunulmuştur.
ErrorKind.Sync Veri kaynağı tarafından bir hata bildirilmiştir. Daha fazla bilgi için İleti sütununu kontrol edin.
ErrorKind.Unknown Bilinmeyen türde bir hata oluşmuştur.
ErrorKind.Validation Diğer türlerden birine uymayan genel bir doğrulama sorunu algılandı.

Errors işlevine Record bağımsız değişkeni sağlanarak veri kaynağının tamamı veya yalnızca seçili bir satır için döndürülebilir.

Patch veya başka bir veri işlevi, örneğin bir kayıt oluşturulamazsa boş bir değer döndürebilir. öğesine boşErrorsgeçirebilirsiniz ve bu durumlarda uygun hata bilgilerini döndürür. Aynı veri kaynağında veri işlevlerinin daha sonra kullanılması bu hata bilgilerini temizler.

Hata yoksa, döndüren Errors tablo boş olur ve IsEmpty işleviyle test edilebilir.

Sözdizimi

Errors( DataSource [, Record ] )

  • DataSource: Gerekli. Hatalarını döndürmek istediğiniz veri kaynağıdır.
  • Kayıt – İsteğe bağlı. Hatalarını döndürmek istediğiniz belirli bir kayıt. Bu bağımsız değişkeni belirtmezseniz işlev, veri kaynağının tamamı için hataları döndürür.

Örnekler

Adım Adım

Bu örnekte, Power Apps'in çakışmaları algılamaya çalışacağı bir veri kaynağı olan IceCream veri kaynağıyla çalışacağız:

Dondurma.

Uyarı

Power Apps, Dataverse tablolarındaki değişiklikler için çakışmaları algılamaya çalışmaz.

Kullanıcı, uygulama üzerinden bir veri girişi formuna Chocolate kaydını yükler ve ardından Quantity değerini 90 olarak değiştirir. Birlikte çalışılacak kayıt, bağlam değişkeniEditRecord içinde yer alır:

  • UpdateContext( { EditRecord: LookUp( Dondurma, Lezzet = "Çikolata" ) } )

Veri kaynağında bu değişikliği yapmak için Patch işlevi kullanılır:

  • Yama ( Dondurma, EditRecord, Gallery.Updates )

Yalnızca Quantity özelliği değiştirildiğinden Gallery.Updates {Quantity: 90 } olarak değerlendirilir.

Ne yazık ki Patch işlevi çağrılmadan hemen önce Chocolate veri kaynağının Quantity değeri başka birisi tarafından 80 olarak değiştirilmiştir. Bu, çakışma algılama için desteklenen bir veri kaynağı olduğundan Power Apps bunu algılar ve çakışan değişikliğin gerçekleşmesine izin vermez. Bu durumu şu formülle denetleyebilirsiniz:

  • IsEmpty( Errors( IceCream, EditRecord ) )

İşlev aşağıdaki tabloyu döndürdüğünden Errorsfalse değerini döndürür:

Kayıt Sütun İleti Hata
{ Flavor: "Chocolate", Quantity: 100 } boş "Değiştirmeye çalıştığınız kayıt başka bir kullanıcı tarafından değiştirildi. Kaydı yeniden yükleyin ve yeniden deneyin." ErrorKind.Conflict

Bu hatayı kullanıcıya göstermek için forma bir etiket ekleyebilirsiniz.

  • Hatayı göstermek için etiketin Text özelliğini şu formül olarak ayarlayın:
    Label.Text = First(Errors( IceCream, EditRecord )). İleti

Kullanıcının çakışmayı etkili bir şekilde çözmesi için forma bir Yeniden yükle düğmesi de ekleyebilirsiniz.

  • Düğmeyi yalnızca bir çakışmanın meydana gelmesi halinde göstermek için düğmenin Visible özelliğini şu formül olarak ayarlayın:
    ! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Kullanıcının düğmeyi seçtiği değişikliği geri almak için OnSelect özelliğini şu formül olarak ayarlayın:
    ReloadButton.OnSelect = geri dönmek( Dondurma, EditRecord )