Razumijevanje delegiranja u aplikaciji radnog područja
Power Apps uključuje moćan skup funkcija za filtriranje, sortiranje i oblikovanje tablica podataka u aplikaciji radnog područja: Filtriranje , Sortiranje i AddColumns funkcije da spomenemo samo neke. Pomoću ovih funkcija svojim korisnicima možete omogućiti fokusirani pristup informacijama koje su im potrebne. Za one koji imaju pozadinu baze podataka, korištenje ovih funkcija ekvivalent je pisanju upita baze podataka.
Ključ stvaranja učinkovitih aplikacija je minimiziranje količine podataka koja se mora donijeti na vaš uređaj. Možda vam je potrebno samo nekoliko zapisa od mnoštva njih ili pojedinačna združena vrijednost može predstavljati tisuće zapisa. Ili se može oporaviti samo prvi skup zapisa, a ostatak je unesen kada korisnik pokaže gestama da želi više. Usredotočenost može dramatično smanjiti moć obrade, memoriju i mrežnu propusnost koja je potrebna vašoj aplikaciji, što rezultira trenutkom snažnijeg odziva za vaše korisnike, čak i na telefonima povezanim putem mobilne mreže.
Delegiranje je mjesto gdje izražajnost Power Apps formula zadovoljava potrebu za minimiziranjem podataka koji se kreću mrežom. Ukratko, Power Apps će delegirati obradu podataka izvor podataka, umjesto da ih premješta u aplikaciju radi lokalne obrade.
Tamo gdje to postaje komplicirano i razlog zbog kojeg ovaj članak postoji, je zato što se ne može sve što se može izraziti u Power Apps formuli može delegirati svakom izvor podataka. Jezik Power Apps oponaša Excelov jezik formule, dizajniran s potpunim i trenutnim pristupom punoj radnoj knjizi u memoriji, sa širokim rasponom numeričkih funkcija i funkcija manipulacije tekstom. Kao rezultat toga, Power Apps jezik daleko je bogatiji nego što većina izvora podataka može podržati, uključujući snažne motore baze podataka kao što je SQL Server.
Rad s velikim skupima podataka zahtijeva korištenje izvora podataka i formula koje se mogu delegirati. To je jedini način da postignete dobru izvedbu aplikacije i osigurate korisnicima pristup svim potrebnim informacijama. Obratite pozornost na upozorenja delegacija koja identificiraju mjesta na kojima delegacija nije moguća. Ako radite s malim skupovima podataka (manje od 500 zapisa) možete koristiti bilo koji izvor podataka i formulu jer aplikacija može lokalno obraditi podatke ako se formula ne može delegirati.
Napomena
Upozorenja o delegiranju prethodno su označena u Power Apps kao prijedlozi "plave točke", ali su prijedlozi delegacija u međuvremenu ponovno klasificirani kao upozorenja. Ako podaci u vašem izvor podataka premašuju 500 zapisa i funkcija se ne može delegirati, Power Apps možda neće moći dohvatiti sve podatke, a vaša aplikacija može imati pogrešne rezultate. Upozorenja delegiranja pomažu vam upravljati aplikacijom tako da ima točne rezultate.
Izvori podataka koji se mogu delegirati
Delegiranje je podržano samo za određene tablične izvore podataka. Ako izvor podataka podržava delegiranje, to dokumentacija poveznika navodi tu potporu. Na primjer, ovi tablični izvori podataka su najpopularniji i podržavaju delegiranje:
- Power Apps funkcije i operacije koje se mogu potopiti za Microsoft Dataverse
- Power Apps funkcije i operacije koje se mogu ukloniti radi SharePoint
- Power Apps funkcije i operacije koje se mogu izbrisati za SQL Server
- Power Apps funkcije i operacije koje se mogu izbrisati za Salesforce
Uvezene radne knjige Excel (koristeći izvor podataka Dodaj statičke podatke svojoj aplikaciji) zbirke i tablice pohranjene u varijablama konteksta ne zahtijevaju delegiranje. Svi ovi podaci već su u memoriji, a može se primijeniti cijeli Power Apps jezik.
Funkcije koje se mogu delegirati
Sljedeći korak je upotreba samo onih formula koje se mogu delegirati. Ovdje su uključeni elementi formule koji bi se mogli delegirati. Međutim, svaki izvor podataka je drugačiji i ne podržavaju svi sve ove elemente. Provjerite upozorenja delegiranja u vašoj određenoj formuli.
Ovi popisi vremenom će se mijenjati. Radimo na podržavanju više funkcija i operatora s delegiranjem.
Funkcije filtra
Filtriraj, Traži i Pretraži mogu se delegirati.
Unutar funkcija Filtriraj i Pretraži možete ih koristiti sa stupcima tablice za odabir odgovarajućih zapisa:
- I (uključujući &&), Ili (uključujući ||), Ne (uključujući !)
- U
- =, <>, >=, <=, >, <
- +, -
- TrimEnds
- IsBlank
- Počinjes, Završavas
- Konstantne vrijednosti koje su iste u svim zapisima, kao što su kontrolna svojstva i globalne i kontekstne varijable.
Možete koristiti i dijelove svoje formule koji vrednuju konstantnu vrijednost svih zapisa. Na primjer, Lijevo( Jezik(), 2 ), Datum( 2019, 3, 31 ) i Danas() ne ovise o stupcima zapisa i, stoga, vraćaju istu vrijednost za sve zapise. Ove vrijednosti mogu se poslati na izvor podataka kao konstanta i neće blokirati delegiranje.
Prethodni popis ne uključuje ove značajne stavke:
- Ako
- *, /, Mod
- Concatenate (uključujući &)
- ExactIn
- Funkcije manipulacije nizoms: Donja, Gornja, Lijevo, Srednja, Dužina, ...
- Signali: Lokacija, Ubrzanje, Kompas, ...
- Promjenjive: Rand, ...
- Zbirke
Funkcije sortiranja
Sortiraj i Sortirajpostupcu mogu se delegirati.
U formuli Sortiraj, može biti samo naziv jednog stupca i ne može uključiti druge operatore ili funkcije
Funkcije agregacije
Zbroj, Prosjek, Minimalno i Maksimalno mogu se delegirati. Trenutno samo ograničen broj izvora podataka podržava ovo delegiranje; provjerite popis delegiranja za pojedinosti.
Napomena
Ako izraz nije delegiran, funkcionirat će samo na prvih 500 zapisa (može se konfigurirati do 2000, pogledajte odjeljak Promjena ograničenja) preuzetih iz izvora podataka umjesto da se delegira obrada svih podataka na izvoru podataka.
Funkcije brojenja kao što je Brojiretke, BrojiA i Broji ne mogu se delegirati.
Ostale agregatne funkcije kao što je StdevP i VarP ne mogu se delegirati.
Funkcije oblikovanja tablice
Dodajstupce, Ispustistupce, Preimenujstupce i Pokažistupce djelomično podržavaju delegiranje. Formule se u njihovim argumentima mogu delegirati. Ipak, izlazne vrijednosti ovih funkcija podliježu ograničenju zapisa o ne delegiranju.
Kao u ovom primjeru, proizvođači često koriste Dodajstupce i Pretraži da biste spojili informacije iz jedne tablice u drugu, obično se naziva Pridruživanje u bazi podataka:
AddColumns( Products,
"Supplier Name",
LookUp( Suppliers, Suppliers.ID = Product.SupplierID ).Name
)
Čak iako se Proizvodi i Dobavljači mogu delegirati, izvori podataka i Pretraži je funkcija koja se može delegirati, izlaznu vrijednost funkcije Dodajstupce nije moguće delegirati. Rezultat cijele formule je ograničena na prvi dio izvora podataka Proizvodi. Zbog toga što je funkciju Pretraži i njen izvor podataka moguće delegirati, podudarnost za Dobavljači možete pronaći bilo gdje u izvoru podataka, čak i ako je velik.
Ako koristite Dodajstupce na ovaj način, Pretraži mora odvojiti zasebne ćelije na izvor podataka za svaki od tih prvih zapisa u Proizvodi, što uzrokuje puno komunikacije na mreži. Ako je Dobavljači dovoljno mala i ne mijenja se često, mogli biste je nazvati funkcija Prikupi u OnStart da biste predmemorirali izvor podataka u vašoj aplikaciji kada se pokrene. Alternativno, možete restrukturirati aplikaciju povlačenjem povezanih zapisa samo onda kad ih korisnik zatraži.
Funkcije koje se ne mogu delegirati
Sve ostale funkcije ne podržavaju delegiranje, uključujući ove značajne funkcije:
- Prva, PrvaN, Posljednja, PosljednjaN
- Choices
- Concat
- Prikupi, Očistiprikupljanje
- Brojiako, Ukloniako, Ažurirajako
- Grupirajpo, Razgrupiraj
Ograničenja koja ne mogu biti delegirana
Formule koje nije moguće delegirati obradit će se lokalno. To omogućuje da se koristi puna širina Power Apps jezik formule. Ali po cijeni: svi se podaci moraju najprije donijeti na uređaj, što bi moglo uključivati dohvaćanje velike količine podataka putem mreže. Ovo može potrajati i ostaviti dojam da je vaša aplikacija spora ili se možda ruši.
Da bi se to izbjeglo, Power Apps nameće ograničenje količine podataka koji se mogu obraditi lokalno: 500 zapisa prema zadanim postavkama. Odabrali smo ovaj broj tako da imate i dalje potpuni pristup malim skupovima podataka i moći ćete poboljšati upotrebu velikih skupova podataka tako što ćete vidjeti djelomične rezultate.
Očito se mora paziti kada koristite ovu opremu jer može zbuniti korisnike. Na primjer, razmislite o funkciji Filtriraj s formulom odabira koja se ne može delegirati preko izvora podataka koji obuhvaća milijun zapisa. Kako se filtriranje obavlja lokalno, skenira se samo prvih 500 zapisa. Ako je željeni zapis zapis 501 ili 500,001, ne uzima ga u obzir niti ga vraća Filtriraj.
Agregatne funkcije također mogu stvoriti zbrku. Uzmite Prosjek preko stupca tog istog milijunskog zapisa izvora podataka. Prosjek se ne može delegirati u ovom slučaju jer izraz nije delegiran (pogledajte prethodnu napomenu), pa se prosjek izračunava samo za prvih 500 zapisa. Ako niste pažljivi, djelomični odgovor korisnik vaše aplikacije može pogrešno protumačiti kao potpuni odgovor.
Promjena ograničenja
500 je zadani broj zapisa, ali taj broj možete promijeniti za čitavu aplikaciju:
- U kartici Datoteka odaberite Postavke.
- U dijelu Općenito promijenite postavku Ograničenje podatkovnog retka s 1 na 2000.
U nekim slučajevima ćete znati da će 2.000 (ili 1.000 ili 1.500) zadovoljiti potrebe vašeg scenarija. S pažnjom možete povećati ovaj broj kako bi odgovarao vašem scenariju. Kako povećavate ovaj broj, izvedba vaše aplikacije može opadati, posebice za široke tablice s puno stupaca. Ipak, najbolji odgovor je delegirati koliko god možete.
Da biste osigurali da vaša aplikacija može skalirati na velike skupove podataka, smanjite ovu postavku na 1. Sve što se ne može delegirati vraća jedan zapis, što bi trebalo biti lako otkriti prilikom testiranja vaše aplikacije. Ovo vam može pomoći da izbjegnete iznenađenja kada pokušavate prenijeti dokaz koncepta aplikacije na proizvodnju.
Upozorenja o delegiranju
Da biste lakše znali što jest, a što se ne delegira, Power Apps pruža upozorenje (žuti trokut) prilikom stvaranja formule koja sadrži nešto što se ne može delegirati.
Upozorenja delegiranja pojavljuju se samo u formulama koje djeluju na delegiranim izvorima podataka. Ako ne vidite upozorenje i vjerujete da vaša formula nije pravilno delegirana, provjerite vrstu izvora podataka na popisu izvori podataka koji se mogu delegirati ranije u ovoj temi.
Primjeri
U ovom primjeru automatski ćete generirati aplikaciju na tri zaslona na temelju tablice SQL Server pod nazivom [dbo].[Fruit]. Za informacije o generiranju aplikacije možete primijeniti slična načela u tema o Dataverse na SQL Server.

Svojstvo galerije Stavke postavljeno je na formulu koja uključuje funkcije Sortirajpostupcima i Traži, obje se mogu delegirati.
U okvir za pretraživanje upišite "Apple".
Pokretne točke na trenutak se pojavljuju pri vrhu zaslona dok aplikacija komunicira s SQL Serverom za obradu zahtjeva za pretraživanje. Pojavljuju se svi zapisi koji zadovoljavaju kriterije pretraživanja, čak i ako izvor podataka uključuje milijune zapisa.

Rezultati pretraživanja uključuju funkciju "Jabuke", "Divlje jabuke" i "Ananas" zbog toga što funkcija Traži traži svugdje u stupcu teksta. Ako ste željeli pronaći samo zapise koji sadrže termin za pretraživanje na početku naziva voća, možete koristiti drugu funkciju koja se može delegirati, Filtrirajte s kompliciranijim terminom za pretraživanje. (Radi jednostavnosti uklonite poziv Sortirajpostupcima)

Novi rezultati uključuju "Jabuke" ali ne i "Divlje jabuke ili "Ananas. Međutim, pored galerije pojavljuje se žuti trokut (i na sličici zaslona ako lijeva navigacijska traka prikazuje sličice) a plava, valovita linija pojavljuje se ispod dijela formule. Svaki od ovih elemenata označava upozorenje. Ako zadržite pokazivač miša iznad žutog trokuta pokraj galerije, pojavit će se ova poruka:

SQL Server je izvor podataka koji se može delegirati a Filtriraj je funkcija koja se može delegirati. Ipak, Srednja i Dužina ne mogu se delegirati na bilo koji izvor podataka.
Ali uspjelo je, zar ne? Pa, donekle. I zato je ovo upozorenje, a ne crveni, valoviti zavijutak.
- Ako tablica sadrži manje od 500 zapisa, formula je funkcionirala savršeno. Svi zapisi preneseni su na uređaj a Filtriraj je primijenjeno lokalno.
- Ako tablica sadrži više od 500 zapisa, formula neće vratiti zapis 501 ili veći, čak i ako odgovara kriterijima.
Pogledajte također
Učinak korištenja funkcija koje se ne mogu delegirati i neprikladnih ograničenja retka podataka na izvedbu
Savjeti za izvedbu i najbolje prakse za korištenje delegiranja