Lõuendirakenduse delegeerimise mõistmine
Power Apps sisaldab võimsat funktsioonide kogumit lõuendirakenduses andmetabelite filtreerimiseks, sortimiseks ja kujundamiseks. ... Filtreerige, sortige ja AddColumns funktsioone, et nimetada vaid mõnda. Nende funktsioonidega saate anda kasutajatele suunatud ligipääsu vajalikule teabele. Andmebaasi taustaga kasutajate puhul on nende funktsioonide kasutamine samaväärne andmebaasipäringu kirjutamisega.
Tõhusate rakenduste ehitamise võti on vähendada andmete hulka, mis tuleb seadmesse viia. Võib-olla on teil vaja ainult käputäis kirjeid miljonite kirjete merest või üksikut agregaatväärtust, mis esindab tuhandeid kirjeid. Või võib-olla saab tagastada ainult esimese kirjete kogumi ning ülejäänud tagastatu kasutaja žestide alusel (nad tahavad rohkem). Keskendumine võib dramaatiliselt vähendada teie rakenduse vajalikku töötlemisvõimsust, mälu ja võrgu ribalaiust, mille tulemuseks on kiirem reaktsiooniaeg isegi mobiilsidevõrgu kaudu ühendatud telefonides.
Delegeerimine on koht, kus Power Apps valemite väljenduslikkus vastab vajadusele minimeerida võrgus liikuvaid andmeid. Lühidalt öeldes delegeerib Power Apps andmete töötlemise andmeallikas, selle asemel, et teisaldada andmed rakendusse kohalikuks töötlemiseks.
Kui see muutub keeruliseks ja selle artikli olemasolu põhjuseks on see, et mitte kõike, mida saab väljendada Power Apps valemis, ei saa delegeerida igale andmeallikas. Power Apps keel jäljendab Exceli valemikeelt, mis on loodud täieliku ja vahetu juurdepääsuga täielikule töövihikule mälus, millel on palju erinevaid numbrilisi ja teksti manipuleerimise funktsioone. Selle tulemusena on Power Apps keel palju rikkam, kui enamik andmeallikaid toetab, sealhulgas võimsad andmebaasimootorid, näiteks SQL Server.
Suurte andmekogumitega töötamiseks on vaja kasutada andmeallikaid ja valemeid, mida saab delegeerida. See on ainus viis oma rakenduse toimivuse tagamiseks ja kasutajatele vajalikule teabele ligipääsu garanteerimiseks. Pöörake tähelepanu delegatsioonide hoiatustele, mis määratlevad kohad, kus delegeerimine pole võimalik. Väikeste andmekogumitega (vähem kui 500 kirjetet) töötades saate kasutada mis tahes andmeallikat ja valemit, kuna rakendus saab andmeid kohapeal töödelda, kui valemit ei saa delegeerida.
Märkus
Delegatsiooni hoiatused olid varem Power Apps märgitud kui "sinise täpi" ettepanekud, kuid delegatsiooni ettepanekud on sellest ajast alates ümber liigitatud hoiatusteks. Kui teie andmeallikas olevad andmed ületavad 500 kirjet ja funktsiooni ei saa delegeerida, ei pruugi Power Apps kõiki andmeid hankida ja teie rakendusel võivad olla valed tulemused. Delegatsioonide hoiatused aitavad teil oma rakendust hallata, et see oleks õigete tulemustega.
Delegeeritavad andmeallikad
Delegeerimist toetatakse ainult teatud tabulaarsete andmeallikate puhul. Kui andmeallikas toetab delegeerimist kirjeldab konnektori dokumentatsioon seda tuge. Näiteks on need tabularsed andmeallikad kõige populaarsemad ja toetavad delegeerimist.
- Power Apps delegeeritavad funktsioonid ja toimingud Microsoft Dataverse
- Power Apps delegeeritavad funktsioonid ja toimingud SharePoint
- SQL Serveri kustutatavate funktsioonide ja toimingute Power Apps
- Salesforce'i delegeeritavate funktsioonide ja toimingute Power Apps
Imporditud Exceli töövihikud (funktsiooni Add static data to your app (Lisa rakendusse staatilised andmed) kasutades), kogumid ja konteksti muutujates salvestatud tabelid ei vaja delegeerimist. Kõik need andmed on juba mälus ja kogu Power Apps keelt saab rakendada.
Delegeeritavad funktsioonid
Järgmine etapp on kasutada ainult neid valemeid, mida saab delegeerida. Siia kuuluvad ka delegeeritavad valemi elemendid. Kuid iga andmeallikas on teistsugune ja mitte kõik ei toeta kõiki neid elemente. Kontrollige kindla valemi delegeeritud hoiatusi.
Käesolevad loendid muutuvad aja jooksul. Töötame, et toetada rohkem funktsioone ja delegeeritud operaatoreid.
Filtreerimise funktsioonid
Delegeerida saab funktsioone Filter (Filtreeri), Search (Otsing) ja LookUp (Leia).
Funktsioonide Filter (Filtreeri) ja LookUp (Leia) kaudu saate neid kasutada tabeli veergudega, et valida vastavad kirjed.
- And (Ja) (sh &&) Or (Või) (sh ||), Not (Mitte) (sh !)
- Kohas
- =, <>, >=, <=, >, <
- +, -
- TrimEnds
- IsBlank
- StartsWith (Algab), EndsWith (Lõppeb)
- Konstantsed väärtused, mis on kõigis kirjetes ühesugused (nt juhtelemendi atribuudid ning globaalsed ja kontekstilised muutujad).
Saate kasutada ka enda valemi osi, mis tagastavad kõigi kirjete puhul konstantse väärtuse. Näiteks Left( Language(), 2 ), Date( 2019, 3, 31 ) ja Today() ei sõltu kirje veergudest ja seega tagastab sama väärtuse kõigi kirjete jaoks. Need väärtused saab andmeallikasse saata konstantidena ja need ei takista delegeerimist.
Eelmine loend ei sisalda neid märkimisväärseid üksusi.
- Kui
- *, /, Mod
- Concatenate (Liida) (sh &)
- ExactIn (Täpselt asukohas)
- Sõne manipuleerimise funktsioonid: Lower (Alumine), Upper (Ülemine), Left (Vasak), Mid (Keskmine), Len (Pikkus), ...
- Signaalid: Location (Asukoht), Acceleration (Kiirendus), Compass (Kompass), ...
- Lendfunktsioonid: Rand (Juhuslik),...
- Collections (Kogumikud)
Sortimise funktsioonid
Sort (Sorteeri) ja SortByColumns (Sorteeri veergu alusel) saab delegeerida.
Funktsiooniga Sort (Sorteeri) saab valem olla nimetatud ainult ühe veeruga ja teisi tehtemärke ega funktsioone ei saa kaasata.
Koondfunktsioonid
Funktsioone Sum (Summa), Average (Keskmine), Min (Minimaalne) ja Max (Maksimaalne) saab delegeerida. Praegu toetavad seda delegatsiooni ainult piiratud arv andmeallikaid. Üksikasjade vaatamiseks vaadake delegatsioonide loendit.
Märkus
Kui avaldis pole delegeeritud, toimib see ainult esimese 500 andmeallikast saadud kirjega (konfigureeritav kuni 2000, vaata limiidi muutmine), mitte kõigi andmeallikas salvestatud andmete delegeerimisel.
Loendamisfunktsioone (nt CountRows (Loenda read) , CountA (Loenda A) ja Count (Loenda)) ei saa delegeerida.
Muid koondfunktsioone (nt StdevP ja VarP) ei saa delegeerida.
Tabeli kujundamise funktsioonid
Osaliselt saab delegeerida funktsioone AddColumns (Lisa veerud), DropColumns (Kustuta veerud), RenameColumns (Nimeta veerud ringi) ja ShowColumns (Kuva veerud). Nende argumentide valemeid saab delegeerida. Nende funktsioonide väljund sõltub siiski mitte-delegatsiooni kirje limiidist.
Nagu käesolevas näites, kasutavad loojad sageli funktsioone AddColumns (Lisa veerud) ja LookUp (Leia), et liita teavet ühest tabelist teise, mida nimetatakse tavaliselt andmebaasi kõnepruugis liitmiseks.
AddColumns( Products,
"Supplier Name",
LookUp( Suppliers, Suppliers.ID = Product.SupplierID ).Name
)
Kuigi Products (Tooted) ja Suppliers (Tarnijad) on delegeeritavad andmeallikad ja LookUp (Leia) on delegeeritav funktsioon, ei ole funktsiooni AddColumns (Lisa veerud) väljund delegeeritav. Kogu valemi tulemus piirdub andmeallikas Products (Toodet) esimese osaga. Kuna funktsioon LookUp (Leia) ja selle andmeallikas on delegeeritav, võib andmeallika Suppliers (Tarnijad) vastet leida kõikjal andmeallikast, isegi kui see on suur.
Kui kasutate sel viisil funktsiooni AddColumns (Lisa veerud)l, peab funktsioon LookUp (Leia) tegema eraldi päringuid kõigi nende Products (Tooted) esimeste kirjete kohta andmeallikas tuues kaasa ohtrat võrguliiklust. Kui Suppliers (Tarnijad) on küllalt väiksed ja ei muutu sageli, võite kasutada funktsiooni Collect (Kogu) valikus OnStart (Käivitamisel), et vahemällu käivitada rakenduse andmeallikas kävitamisel. Alternatiivina võite oma rakenduse ümber korraldada, et saaksite seostuvad kirjed kaasata ainult juhul, kui kasutaja nende kohta küsib.
Mittedelegeeritavad funktsioonid
Kõik muud funktsioonid ei toeta delegeerimist, sh need märkimisväärsed funktsioonid.
- First (Esimene), FirstN (Esimene N), Last (Viimane), LastN (Viimane N)
- Choices
- Concat
- Collect (Kogu), ClearCollect (Tühista kogumine)
- CountIf (Loenda, kui), RemoveIf (Eemalda, kui), UpdateIf (Uuenda, kui)
- GroupBy (Rühmita), Ungroup (Eemalda rühmast)
Mittedelegeeritavad piirid
Valemeid, mida ei saa delegeerida, töödeldakse kohapeal. See võimaldab kasutada Power Apps valemikeele täielikku laiust. Sellel on hind: kõik andmed tuleb kõigepealt seadmesse viia, mis võib hõlmata suure hulga andmete pärimist üle võrgu. See võib olla aeglane, mis võib jätta mulje, et rakendus on aeglane või jooksis kokku.
Selle vältimiseks kehtestab Power Apps piirangu andmete hulgale, mida saab kohapeal töödelda: vaikimisi 500 kirjet. Valisime selle piiri, et teil oleks endiselt täielik juurdepääs väikestele andmekogumitele ja saaksite osaliste tulemuste näitamiseks viimistleda suurte andmekogumite kasutamist.
Selle võimaluse kasutamisel tuleb kindlasti olla ettevaatlik, kuna see võib kasutajaid segadusse ajada. Näiteks võite kaaluda funktsiooni Filter (Filtreeri) kasutamist, millel on valikuvalem, mida ei saa delegeerida üle andmeallika, mis sisaldab miljonit kirjet. Kuna filtreerimine toimub kohapeal, skaneeritakse ainult esimesed 500 kirjet. Kui soovitud kirje on 501. või 500001. kirje, siis seda ei arvestata ega tagastata funktsioonide Filter (Filtreeri).
Koondfunktsioonid võivad ka põhjustada segadust. Võtke keskmine üle sama miljoni kirjega andmeallika veeru. Keskmist ei saa antud juhul delegeerida, kuna avaldis pole delegeeritud (vaata varasemat märkust), seega keskmise puhul kasutatakse ainult 500 esimest kirjet. Kui te pole ettevaatlik, võib teie rakenduse kasutaja osalist vastust tõlgendada täieliku vastusena.
Piiri muutmine
500 on vaikimisi kirjete arv, kuid saate seda numbrit terves rakenduses muuta.
- Valige vahekaardil Fail suvand Sätted.
- Jaotises Üldine muutke andmerea piirangu sätet 1-lt 2000-le.
Mõnel juhul teate, et 2000 (või 1000 või 1500) vastab teie stsenaariumi vajadustele. Ettevaatlikult saate selle numbri oma stsenaariumi puhul sobivaks suurendada. Seda arvu suurendades võib teie rakenduse jõudlus halveneda, eriti suure ja rohkearvuliste veergudega tabelite puhul. Siiski on parim lahendus delegeerida nii palju kui võimalik.
Tagamaks, et teie rakendus saab skaleerida mahukate andmekogumite korral, vähendage selle sätte väärtust tasemeni 1. Kõik, mida ei saa delegeerida, tagastab ühe kirje, mida oleks lihtne teie rakenduse testimisel tuvastada. See aitab vältida üllatusi, kui proovite viia kontseptsiooni tõestamise rakendust tootmisse.
Delegeerimise hoiatused
Selleks, et oleks lihtsam teada, mis on ja mida ei delegeerita, annab Power Apps hoiatuse (kollane kolmnurk), kui loote valemi, mis sisaldab midagi, mida ei saa delegeerida.
Delegeeritud hoiatused kuvatakse ainult sellistes valemites, mis töötavad delegeeritavate andmeallikatega. Kui te ei näe hoiatust ja arvate, et teie valemit pole õigesti delegeeritud, kontrollige andmeallika tüüpi delegeeritavate andmeallikate loendi vastu, mis on toodud käesolevas teemas ülalpool.
Näited
Selles näites genereerite automaatselt kolme ekraanikuvaga rakenduse, mis põhineb SQL Server tabelil nimega [dbo].[Fruit]. Rakenduse loomise kohta teabe saamiseks saate sql serverisse Dataverse teemas rakendada sarnaseid põhimõtteid.

Galerii atribuut Items (Üksused) on seatud valermi järgi, mis sisaldab funktsioone SortByColumns (Sorteeri veergude järgi) ja Search (Otsi), mille mõlemad saab delegeerida.
Tippige otsingukasti "Apple" (Õun).
Järjestikused punktid ilmuvad hetkeks ekraani ülaossa, kui rakendus suhtleb SQL Serveriga otsingupäringu töötlemiseks. Kõik otsingukriteeriumitele vastavad kirjed kuvatakse ka juhul, kui andmeallikas sisaldab miljoneid kirjeid.

Otsingutulemite hulka kuuluvad "Apples" (Õunad), "Crab apples" (Metsikud õunad) ja "Pineapple" (Ananass), kuna funktsioon Search (Otsing) otsib tervest tekstiveerust. Kui soovite leida ainult kirjed, mis sisaldavad puuvilja nime alguses otsinguterminit, võite kasutada mõnda muud delegeeritavat funktsiooni (Filter) keerukama otsinguterminiga. (Lihtsuse huvides eemaldage kutsung SortByColumns (Sorteeri veergude järgi))

Uute tulemuste hulka kuuluvad "Apples" (Õunad), aga mitte "Crab apples" (Metsikud õunad) või "Pineapple" (Ananass). Galerii kõrvale ilmub aga kollane kolmnurk (ja kui vasakpoolsel navigeerimisribal on pisipildid, siis ekraani pisipildil) ja valemi osa alla ilmub sinine laineline joon. Kõik need elemendid näitavad hoiatust. Kui liigute kursoriga üle galerii kõrval oleva kollase kolmnurga kuvatakse järgmine teade:

SQL Server on delegeeritav andmeallikas ja Filter (Filtreeri) on delegeeritav funktsioon, kuid funktsioone Mid (Keskmine) ja Len (Pikkus) ei saa delegeerida ühelegi andmeallikale.
Kuid see töötas, eks? Noh, natuke. Ja see on põhjus, miks see on hoiatus, mitte punane laineline prääks.
- Valem töötab suurepäraselt, kui tabel sisaldab vähem kui 500 kirjet. Kõik kirjed toodi seadmesse ja funktsiooni Filter (Filtreeri) rakendati lokaalselt.
- Kui tabel sisaldab üle 500 kirje, ei tagasta valem 501. kirjet või uuemat, isegi kui see vastab kriteeriumidele.
Vt ka
Mitteeraldatavate funktsioonide kasutamise ja ebasobivate andmeridade limiitide mõju jõudlusele
Näpunäited ja head tavad jõudluse kohta