Tuval uygulamasında temsilci seçmeyi anlama
Power Apps, tuval uygulamasında veri tablolarını filtrelemek, sıralamak ve şekillendirmek için güçlü bir işlev kümesi içerir: Filter, Sort ve AddColumns işlevleri de bunlar arasında yer alır. Bu işlevlerle, kullanıcılarınıza gereksinim duydukları bilgilere odaklanmış erişim sağlayabilirsiniz. Veritabanı geçmişi olanlar için, bu işlevleri kullanmak veritabanı sorgusu yazmak ile eşdeğerdir.
Verimli uygulamalar oluşturmanın temeli, cihazınıza getirilmesi gereken veri miktarını en aza indirmektir. Milyonlarca kayıttan yalnızca birkaç tanesine gereksinim duyuyor olabilirsiniz ya da tek bir toplam değer binlerce kaydı temsil ediyor olabilir. Bazen de kayıtların yalnızca ilk kümesi alınır ve geri kalanı kullanıcının talebi üzerine sağlanır. Odaklanmak, uygulamanızın gereksinim duyduğu işlem gücünü, belleği ve ağ bant genişliğini önemli ölçüde azaltarak, kullanıcılarınıza hücresel ağ üzerinden bağlı telefonlarda bile daha hızlı yanıt süreleri sağlayabilir.
Temsilci seçme, Power Apps formüllerinin ifade yeteneğinin, ağ üzerinden taşınan verilerin en aza indirilmesi gereksinimini karşılamasıdır. Kısaca, Power Apps verileri yerel olarak işlenmek üzere uygulamaya taşımak yerine verilerin işlenmesi için veri kaynağına temsilci seçer.
Bunun karmaşık hale gelmesinin ve bu makalenin var olmasının nedeni, bir Power Apps formülünde ifade edilebilen her öğe için her veri kaynağına temsilci seçilememesidir. Power Apps dili, Excel'in formül diline benzer ve çok çeşitli sayısal ve metin işleme işlevleriyle bellekte tam bir çalışma kitabına tamamen ve anında erişimi olacak şekilde tasarlanmıştır. Sonuç olarak, Power Apps dili SQL Server gibi güçlü veritabanı altyapıları da dahil çoğu veri kaynağının destekleyebildiklerinden çok daha zengindir.
Büyük veri kümeleriyle çalışmak için temsilci seçilebilecek veri kaynaklarının ve formüllerin kullanılması gerekir. Uygulamanızın iyi performans göstermesini sağlamanın ve kullanıcıların gereksinim duydukları tüm bilgilere erişebilmelerinin tek yolu budur. Temsilci seçmenin mümkün olmadığı yerleri belirten temsilci uyarılarına dikkat edin. Küçük veri kümeleriyle (500'den az kayıt) çalışıyorsanız formüle temsilci atanamazsa uygulama, verileri yerel olarak işleyebileceğinden herhangi bir veri kaynağını ve formülü kullanabilirsiniz.
Not
Temsilci uyarıları Power Apps'te önceden "mavi nokta" önerileri olarak işaretleniyordu ancak temsilci önerileri uyarılar olarak yeniden sınıflandırıldı. Veri kaynağınızdaki veriler 500 kayıttan fazlaysa ve işleve temsilci atanamıyorsa Power Apps, verilerin tümünü alamayabilir ve uygulamanız yanlış sonuçlar verebilir. Temsilci uyarıları uygulamanızı yöneterek doğru sonuçlar elde etmenize yardımcı olur.
Temsilci atanabilen veri kaynakları
Temsilci seçme yalnızca belirli tablosal veri kaynakları için desteklenir. Veri kaynağı temsilci seçmeyi destekliyorsa bu destek, bağlayıcı belgelerinde açıklanır. Örneğin, bu tablosal veri kaynakları en popüler kaynaklardır ve temsilci seçmeyi destekler:
- Microsoft Dataverse için Power Apps temsilci seçilebilir işlevleri ve işlemleri
- SharePoint için Power Apps temsilci seçilebilir işlevleri ve işlemleri
- SQL Server için Power Apps temsilci seçilebilir işlevleri ve işlemleri
- Salesforce için Power Apps temsilci seçilebilir işlevleri ve işlemleri
İçeri aktarılan Excel çalışma kitapları (Uygulamanıza statik veri ekleme veri kaynağı kullanılarak), koleksiyonlar ve bağlam değişkenlerinde depolanan tablolar için temsilci seçmek gerekmez. Bu verilerin tümü zaten bellektedir ve Power Apps dilinin tamamı uygulanabilir.
Temsilci seçilebilen işlevler
Sonraki adım yalnızca temsilci seçilebilen formülleri kullanmaktır. Temsilci seçilebilen formül öğeleri burada belirtilmiştir. Ancak her veri kaynağı farklıdır ve bunların tümü bu öğeleri desteklemez. Belirli bir formülde temsilci uyarılarını denetleyin.
Bu listeler zaman içinde değişir. Daha fazla işlev ve işleçte temsilci seçmeyi desteklemeye çalışıyoruz.
Filtre işlevleri
Filter, Search ve LookUp için temsilci seçilebilir.
Filter ve LookUp işlevlerinde uygun kayıtları seçmek için tablo sütunlarıyla birlikte şunları kullanabilirsiniz:
- And (&& dahil), Or (|| dahil), Not (! dahil)
- In
- =, <>, >=, <=, >, <
- +, -
- TrimEnds
- IsBlank
- StartsWith, EndsWith
- Denetim özellikleri ile genel değişkenler ve bağlam değişkenleri gibi tüm kayıtlarda aynı olan sabit değerler.
Ayrıca formülünüzün tüm kayıtlar için sabit bir değeri değerlendirdiği bölümleri de kullanabilirsiniz. Örneğin, Left( Language(), 2 ), Date( 2019, 3, 31 ) ve Today() kayıt sütunlarından birine bağlı olmadığından tüm kayıtlar için aynı değeri döndürür. Bu değerler veri kaynağına bir sabit olarak gönderilebilir ve temsilci seçmeyi engellemez.
Önceki liste, şu önemli öğeleri içermez:
- If
- *, /, Mod
- Concatenate (& dahil)
- ExactIn
- Dize işleme işlevleri: Lower, Upper, Left, Mid, Len, ...
- Sinyaller: Location, Acceleration, Compass, ...
- Geçici işlevler: Rand, ...
- Koleksiyonlar
Sıralama işlevleri
Sort ve SortByColumns için temsilci atanabilir.
Sort işlevinde formül yalnızca tek bir sütunun adı olabilir ve başka işleç veya işlev içeremez.
Toplama işlevleri
Sum, Average, Min ve Max için temsilci atanabilir. Şu anda yalnızca sınırlı sayıda veri kaynağı bu temsilci atamayı destekler. Ayrıntılar için temsil listesine bakın.
Not
Bir ifadenin temsilcisi yoksa, veri kaynağı tüm verileri işleme yetkisini vermek yerine veri kaynağı alınan ilk 500 kayıt (2000'e kadar yapılandırılabilir, bkz. Sınırı değiştirme) üzerinde çalışır.
CountRows, CountA ve Count gibi sayma işlevleri için temsilci atanamaz.
StdevP ve VarP gibi diğer toplama işlevleri için temsilci atanamaz.
Tablo şekillendirme işlevleri
AddColumns, DropColumns, RenameColumns ve ShowColumns temsilci atamayı kısmen destekler. Bağımsız değişkenlerindeki formüller için temsilci atanabilir. Ancak bu işlevlerin çıkışı temsilci olmayan kayıt sınırına tabidir.
Bu örnekte olduğu gibi, geliştiriciler bir tablodaki bilgileri diğeriyle birleştirmek için genelde AddColumns ve LookUp işlevlerini kullanılır. Bu işleme, veritabanı terminolojisinde Birleştirme adı verilir:
AddColumns( Products,
"Supplier Name",
LookUp( Suppliers, Suppliers.ID = Product.SupplierID ).Name
)
Ürünler ve Tedarikçiler, temsilci atanabilir veri kaynakları ve LookUp, temsilci atanabilir bir işlev olsa da AddColumns işlevinin çıkışı için temsilci atanamaz. Formülün tamamının sonucu, Ürünler veri kaynağının ilk bölümüyle sınırlıdır. LookUp işlevi ve bunun veri kaynağı temsilci atanabilir olduğundan veri kaynağı büyük olsa bile Tedarikçiler ile eşleşme, veri kaynağının herhangi bir yerinde bulunabilir.
AddColumns işlevini bu şekilde kullanırsanız LookUp işlevinin, Ürünler'deki ilk kayıtların her birinin veri kaynağı için ayrı çağrılar yapması gerekir, bu da ağda çok fazla sese neden olur. Tedarikçiler yeterince küçükse ve sık değişmiyorsa başladığında uygulamanızdaki veri kaynağını önbelleğe almak için Collect işlevini OnStart çağırabilirsiniz. Alternatif olarak, uygulamanızı yalnızca kullanıcı istediği zaman ilgili kayıtları alacak şekilde yeniden yapılandırabilirsiniz.
Temsilci seçilemeyen işlevler
Aşağıdaki önemli işlevler dahil olmak üzere diğer işlevlerin hiçbiri temsilci atamayı desteklemez:
- First, FirstN, Last, LastN
- Choices
- Concat
- Collect, ClearCollect
- CountIf, RemoveIf, UpdateIf
- GroupBy, Ungroup
Temsilci seçilememe sınırları
Temsilci seçilemeyen formüller yerel olarak işlenir. Bu Power Apps formül dilinin tam kapsamının kullanılmasını mümkün kılar. Ancak şunu da göz önünde bulundurmanız gerekir: Önce tüm verilerin cihaza getirilmesi gerekir, bu da ağ üzerinden büyük miktarda veri alınmasına neden olabilir. Bu işlem zaman alabilir ve uygulamanızın yavaş olduğu veya çöktüğü izlenimini verebilir.
Power Apps bu durumu önlemek için yerel olarak işlenebilecek veri miktarına varsayılan olarak 500 kayıt sınırı uygular. Bu sayıyı, küçük veri kümelerine tam erişim sağlamaya devam edebilmeniz ve kısmi sonuçları görerek büyük veri kümeleri kullanımınızı geliştirebilmeniz için seçtik.
Bu özellik kullanıcıların kafasını karıştırabileceğinden oldukça dikkatli kullanılmalıdır. Örneğin, milyonlarca kayıt içeren bir veri kaynağında temsilci seçilemeyen bir seçim formülü kullanan Filter işlevini ele alalım. Filtreleme yerel olarak yapıldığından, yalnızca ilk 500 kayıt taranır. İstenen kayıt 501 veya 500.001 ise Filter işlevi tarafından ele alınmaz ya da döndürülmez.
Toplama işlevleri de kafa karıştırıcı olabilir. Milyonlarca kaydın bulunduğu aynı veri kaynağındaki bir sütunda Average işlevini kullandığımızı düşünelim. İfadenin temsilcisi atanmadığından (önceki nota bakın) Bu durumda ortalama devredilemez, bu nedenle yalnızca ilk 500 kayıt ortalaması alınır. Dikkat etmezseniz, uygulamanızı kullananlar kısmi sayıda kaydı kapsayan bu sonucun veri kaynağının tamamını kapsadığını düşünebilir.
Sınırı değiştirme
500, varsayılan kayıt sayısıdır ancak uygulamanın tamamı için bu sayıyı değiştirebilirsiniz:
- Dosya sekmesindeki Ayarlar'ı seçin.
- Genel bölümünde, Veri satırı sınırı ayarını 1 yerine 2.000 olarak değiştirin.
Bazı durumlarda, 2.000 (veya 1.000 ya da 1.500) sınırı senaryonuzun gereksinimlerini karşılar. Bu sayıyı, senaryonuza uyacak biçimde dikkatlice artırabilirsiniz. Bu sayı arttıkça uygulamanızın performansı düşebilir. Bu durum özellikle çok sayıda sütun içeren geniş tablolarda görülebilir. Yine de en iyi yöntem mümkün olduğunca temsilci seçmektir.
Uygulamanızın büyük veri kümelerine göre ölçeklendirilebildiğinden emin olmak için bu ayarı 1'e düşürün. Temsilci seçilemeyen tüm öğeler tek bir kayıt döndürür. Bu, uygulamanızı test ederken kolayca algılanabilmelidir. Bu, kavram kanıtı aşamasındaki bir uygulamayı üretime geçirmeye çalışırken sürprizleri önlemeye yardımcı olabilir.
Temsilci uyarıları
Neyin temsilci seçilip neyin seçilemeyeceğini bilmeyi kolaylaştırmak için temsilci seçilemeyen bir öğeyi içeren bir formül oluşturduğunuzda Power Apps uyarı (sarı üçgen) verir.
Temsilci uyarıları yalnızca temsilci seçilebilir veri kaynaklarında çalışan formüllerde görüntülenir. Uyarı görmüyorsanız ve formülünüzün uygun şekilde temsilci atanmadığını düşünüyorsanız veri kaynağı türünü bu konunun önceki bölümlerinde yer alan temsilci atanabilir veri kaynakları listesinden kontrol edin.
Örnekler
Bu örnekte, otomatik olarak [dbo].[Fruit] adlı SQL Server tablosunu temel alan üç ekranlı bir uygulama oluşturacaksınız. Uygulama oluşturma hakkında bilgi için Dataverse hakkındaki konuda belirtilen ilkelerin benzerlerini SQL Server'a uygulayabilirsiniz.

Galerinin Öğeler özelliği, her ikisi de temsilci atanabilir SortByColumns ve Search işlevlerini içeren bir formül olarak ayarlanır.
Arama kutusuna "Elma" yazın.
Uygulama arama isteğini işlemek üzere SQL Server ile iletişim kurduğu sırada ekranın üst kısmında kısa bir süre ilerleyen noktalar gösterilir. Veri kaynağı milyonlarca kayıt içeriyor olsa bile, arama ölçütlerini karşılayan tüm kayıtlar gösterilir.

Search işlevi metin sütunundaki her yere baktığından arama sonuçlarında "Elmalar", "Yaban elmaları" ve "süs elmaları" yer alır. Yalnızca başında apple adının yer aldığı arama terimini içeren kayıtları bulmak isterseniz daha karmaşık bir arama terimiyle temsilci seçilebilen başka bir işlevi (Filtre) kullanabilirsiniz. (Kolaylık açısından, SortByColumns çağrısını kaldırın.)

Yeni sonuçlar "Elmalar"'ı içerir ancak "Yaban elmaları"'nı veya "Süs elmaları"'nı içermez. Ancak galerinin yanında (ve sol gezinti çubuğu küçük resimleri gösteriyorsa ekran küçük resminde) sarı bir üçgen gösterilir ve formülün bir bölümünün altında mavi, dalgalı bir çizgi görünür. Bu öğelerin her biri bir uyarıyı belirtir. Galerinin yanındaki sarı üçgenin üzerine gelirseniz şu ileti görüntülenir:

SQL Server temsilci atanabilir bir veri kaynağıdır ve Filter temsilci atanabilir bir işlevdir. Ancak Mid ve Len hiçbir veri kaynağına temsilci atanamaz.
Ancak formül çalıştı, değil mi? Bir noktaya kadar. Bunun kırmızı, dalgalı çizgi değil de bir uyarı olmasının nedeni de budur.
- Tabloda 500'den az kayıt varsa formül mükemmel çalışmıştır. Tüm kayıtlar cihaza getirilmiş ve Filter işlevi yerel olarak uygulanmıştır.
- Tablo 500'den fazla kayıt içeriyorsa ölçütlerle eşleşse bile formül, 501. ve sonraki kayıtları döndürmez.
Ayrıca bkz.
Temsilci seçilemeyen işlevlerin ve uygun olmayan veri satırı limiti kullanımının performans üzerindeki etkisi
Performans ipuçları ve temsilci seçmeyle ilgili en iyi uygulamalar