Бөлісу құралы:


Сұрау шектеулері: Өкілдік және сұрау шектеулері

Делегацияны түсіну

Power Apps a Power Fx сұраныс деректер көзі файлында іске қосуға болатын баламалы сұрауға толығымен аударылуы мүмкін болса, деректер көзі серверімен жақсы жұмыс істейді. Power Apps деректер көзі түсінетін сұрауды жібереді, сұрау деректер көзі ішінде орындалады және сұрау нәтижелері қайтарылады Power Apps. Мысалы, деректер көзі деректер көзі файлындағы деректерді сүзу жұмысын орындауы және тек сүзгі шарттарына сәйкес келетін жолдарды қайтаруы мүмкін. Бұл дұрыс жұмыс істегенде, сұрау жұмысын орындау үшін сұрау · деректер көзі-ге берілген деп айтамыз.

Дегенмен, Power Fx сұрауларды барлық деректер көздерінде әрқашан баламалы сұрауларға аудару мүмкін емес. Мысалы, Dataverse Excelге қарағанда көбірек сұрау мүмкіндіктерін қолдайды. Dataverse «in» (мүшелік) сұрау операторын қолдайды, ал Excel қолданбайды. Сұрау деректер көзі қолдамайтын мүмкіндікті пайдаланса, сұрау делегацияланбайтын деп айтамыз. Жалпы, сұрау өрнегінің кез келген бөлігі өкілетті емес болса, сұраудың ешбір бөлігін өкілеттік бермейміз.

Сұрау өкілеттілік берілмейтін болса, Power Apps тек деректер көзі ішінен алғашқы 500 жазбаны алады, содан кейін сұраудағы әрекеттерді орындаңыз. Бұл шектеуді 2000 жазбаға дейін арттыруға болады Шектеуді өзгерту Power Apps Power Apps жақсы өнімділігін сақтау үшін нәтиже өлшемін 500 жазбамен шектейді. Тәжірибе арқылы біз осы өлшемдерден үлкен нәтиже жиындары қолданбаңыздың және жалпы Power Apps өнімділік мәселелерін тудыратынын анықтадық.

Дегенмен, бұл шектеу мәселе болуы мүмкін, себебі деректер көзі деректері 500/2000 жазбадан асса, сұрау дұрыс емес нәтижелерді қайтаруы мүмкін. Мысалы, деректер көзі файлында 10 миллион жазба бар және сұрауыңыз деректердің соңғы бөлігінде жұмыс істеуі керек мысалды қарастырыңыз. (Мысалы, «Z» әрпінен басталатын отбасы аттары) Дегенмен, сұрауыңызда өкілетті емес оператор бар (мысалы, бөлек.) Бұл жағдайда сіз тек алғашқы 500/2000 жазбаны аласыз және сізде қате бар нәтижелер.

деректер көзі үшін өкілетті кестелерді пайдалану арқылы Power Fx сұрауларыңызды жасаңыз. Өкілдік беруге болатын сұрау функцияларын ғана пайдалану керек. Бұл қолданбаның жақсы жұмыс істеуін сақтаудың және пайдаланушылардың барлық қажетті ақпаратқа қол жеткізуін қамтамасыз етудің жалғыз жолы.

Өкілеттеу мүмкін емес жерлерді анықтайтын өкілеттеу туралы ескертулерді ескеріңіз. Кішігірім деректер жиындарымен (500 жазбадан аз) жұмыс жасасаңыз, кез келген деректер көзі және формуланы пайдалана аласыз, себебі формуланы беру мүмкін болмаса, қолданба деректерді жергілікті түрде өңдей алады.

Ескерім

Өкілеттеу туралы ескертулер дұрыс нәтижелер болуы үшін бағдарламаңызды басқаруға көмектеседі. Егер деректер көзі деректері 500 жазбадан асса және функцияны өкілеттік беру мүмкін болмаса, Power Fx өрнекті көк астын сызумен белгілейді.

Берілетін деректер көздері

Өкілеттеуге тек белгілі кестелік деректер көздері үшін қолдау көрсетеді. Егер деректер көзі өкілеттеуді қолдаса, оның коннекторының құжаттамасында бұл қолдау сипатталады. Мысалы, мына кестелік деректер көздері ең танымал және өкілеттеуді қолдайды:

Импортталған Excel жұмыс кітаптары (Бағдарламаға тұрақты деректерді қосу деректер көзін пайдаланып), жинақтар мен мәтінмәндік айнымалыларда сақталатын кестелер өкілеттеуді қажет етпейді. Бұл деректердің барлығы қазірдің өзінде жадта және толық Power Apps тілін пайдалануға болады.

Өкілеттеуге болатын функциялар

Келесі қадам — тек өкілеттеуге болатын формулаларды пайдалану. Мұнда өкілеттеуге болатын формула элементтері қамтылған. Алайда, әр деректер көзі әртүрлі және кейбіреулері осы элементтердің кейбіреулерін қолдамайды. Нақты формуладағы өкілеттеу туралы ескертулерді қараңыз.

Сүзгі функциялары

Сүзгі, Іздеу, Бірінші және Іздеу өкілетуге болады.

Filter және LookUp функцияларының ішінде тиісті жазбаларды пайдалану үшін кестенің бағандарында мыналарды пайдалана аласыз:

  • And (соның ішінде &&), Or (соның ішінде ||), Not (соның ішінде !)
  • Ал

    Ескерім

    In тек негізгі деректер көзіндегі бағандар үшін өкілеттік беріледі. Мысалы, егер деректер көзі Тіркелгілер кестесі болса, онда Filter(Accounts, Name in ["name1", "name2"]) деректер көзін бағалау үшін өкілеттік беріледі. ДегенменFilter(Accounts, PrimaryContact.Fullname in ["name1", "name2"]) параметріне өкілеттік бермейді, себебі Толық атауы бағаны Тіркелгілер параметріне қарағанда басқа кестеде (PrimaryContact) болады. Өрнек жергілікті түрде бағаланады.

  • =, <>, >=, <=, >, <
  • +, -
  • TrimEnds
  • IsBlank
  • StartsWith, EndsWith
  • Тұрақты мәндер барлық жазбаларда бірдей, мысалы, басқару элементі сипаттары әрі глобалдық және мәтінмәндік айнымалылар.

Сондай-ақ сіз формулаңыздың есептегенде тұрақты мәнді беретін бөліктерін барлық жазбалар үшін пайдалана аласыз. Мысалы, Left( Language(), 2 ), Date( 2019, 3, 31 ) және Today() жазбаның ешбір бағанына тәуелді емес, сондықтан барлық жазбалар үшін бір мәнді қайтарады. Бұл мәндерді деректер көзіне тұрақты мән ретінде жіберуге болады және өкілеттеуді бұғаттамайды.

Алдыңғы тізім мына елеулі элементтерді қамтымайды:

Сұрау шектеулері

Деңгейлерді іздеу

Power Apps екі іздеу деңгейін қолдайды. Бұл Power Fx сұрау өрнегінде - ең көбі - екі іздеу функциясы болуы мүмкін дегенді білдіреді. Бұл шектеу өнімділікті сақтау болып табылады. Егер сұрау өрнегі іздеуді қамтыса, Power Apps алдымен негізгі кестені алу үшін сұрау жасайды. Содан кейін ол іздеу ақпаратымен бірінші кестені кеңейтетін екінші сұрауды орындайды. Біз одан жоғары деңгейді барынша қолдаймыз. Дегенмен, офлайн режимінде іздеу кеңейтімдерінің бір деңгейін ғана қолдаймыз.

Өрнек бағалау – субъектінің қасиеті теңдік операторының «LHS» сол жағында болуы керек

Салыстырылатын нысанның қасиетін теңдеудің сол жағындағы "LHS" өрнекте орналастыру маңызды. Көрсететіндей, төмендегі мысалда 'Бизнес бірлігінің идентификаторы' нысан сипаты.Атау сипат мәні болып табылады және ол бағаланатын өрнектің LHS жүйесіне орналастырылуы керек. Келесі өрнек сәтті орындалады:

Filter(
        Budgets,
        'Business unit ID'.Name = LookUp(
            Users,
            'Primary Email' = User().Email,
            'Business Unit'
        ).Name,
        DataCardValue37.Selected.'Date Range String'='Date Range String'
    )

Дегенмен, бұл өрнек болмайды:

 Filter(
        Budgets,
        LookUp(
            Users,
            'Primary Email' = User().Email,
            'Business Unit'
        ).Name = 'Business unit ID'.Name,
        'Date Range String'=DataCardValue37.Selected.'Date Range String'
    )

Сұрыптау функциялары

Sort және SortByColumns функцияларын өкілеттеуге болады.

Sort функциясында формула тек бір бағанның атауы бола алады және басқа операторларды немесе функцияларды қамти алмайды.

Статистикалық функциялар

Кейбір жиынтық функцияларды артқы жағындағы қолдауға байланысты беруге болады. Sum, Average, Min және Max функцияларын өкілеттеуге болады. Сондай-ақ CountRows және Санау сияқты санау функцияларын да беруге болады. Қазіргі уақытта өкілеттік үшін бұл функцияларды деректер көздерінің шектеулі саны ғана қолдайды. Қосымша ақпаратты Өкілдер тізімін қараңыз.

RemoveIf және UpdateIf өкіліне қолдау көрсету Эксперименттік күйде және әдепкі бойынша өшірулі.

тапсырылмайтын функциялар

Барлық басқа функциялар, соның ішінде мына елеулі функциялар өкілеттеуді қолдамайды:

тапсырылмайтын шектеулер

Өкілеттеу мүмкін емес формулалар жергілікті өңделеді. Жергілікті өңдеу Power Apps формула тілінің толық кеңдігін пайдалануға мүмкіндік береді. Бірақ мұның бағасы бар: алдымен барлық деректерді құрылғыға жеткізу керек, бұл үшін желі арқылы деректердің үлкен мөлшерін шығарып алу керек. Бұл уақыт алуы мүмкін, бұл бағдарламаңыз баяу немесе жаңылысқан сияқты әсер беруі мүмкін.

Мұны болдырмау үшін Power Apps жергілікті өңдеуге болатын деректердің мөлшеріне шектеу қояды: әдепкі бойынша 500 жазба. Біз бұл санды шағын деректер жиынтықтарына әлі де толық қатынасыңыз болуы және ішінара нәтижелерді көру арқылы үлкен деректер жиынтықтарын пайдалануды нақтылай алуыңыз үшін таңдадық.

Бұл құралды пайдаланған кезде мұқият болу керек, өйткені ол пайдаланушыларды шатастыруы мүмкін. Мысалы, миллион жазбаны қамтитын деректер көзінде өкілеттеу мүмкін емес таңдау формуласы бар Filter функциясын қарастырайық. Сүзу жергілікті түрде жасалатындықтан, алғашқы 500 жазба ғана қарап шығылады. Егер қалаған жазба 501 немесе 500 001 жазбасы болса, Filter функциясы оны қарастырмайды немесе қайтармайды.

Статистикалық функциялар да шатасуға әкелуі мүмкін. Сол миллион жазба деректер көзінің бағанында Average функциясын қарастырайық. Бұл жағдайда Орташа параметрінің өкілеттігін беру мүмкін емес, себебі өрнек берілмеген (бұрынғы жазбаны қараңыз), сондықтан тек алғашқы 500 жазба ғана орташаландырылады. Егер абай болмасаңыз, бағдарламаңыздың пайдаланушысы ішінара жауапты толық жауап ретінде дұрыс емес түсінуі мүмкін.

Шекті өзгерту

500 — жазбалардың әдепкі саны, бірақ сіз бүкіл бағдарлама үшін бұл санды өзгерте аласыз:

  1. Параметрлер түймешігін таңдаңыз.
  2. Жалпы бөлімінде Деректер жолының шегі параметрін 1 мәнінен 2000 мәніне өзгертіңіз.

Кейбір жағдайларда сіз 2000 (немесе 1000 немесе 1500) сценарийіңіздің қажеттіліктерін қанағаттандыратынын білесіз. Мұқият болу арқылы сіз сценарийіңізге сәйкес келуі үшін осы санды арттыра аласыз. Бұл санды арттырғанда, бағдарламаңыздың өнімділігі төмендеуі мүмкін, әсіресе бағандары көп кең кестелерде. Сөйтсе де, ең жақсы жауап — мүмкіндігінше көп өкілеттеу.

Қолданбаңыз үлкен деректер жиынына дейін масштабтай алатынына көз жеткізу үшін бұл параметрді 1-ге дейін азайтыңыз. Өкілеттеу мүмкін емес ештеңе бір жазбаны қайтарады, мұны бағдарламаны сынау кезінде анықтау оңай. Бұл концепцияны растайтын бағдарламаны өндіріске шығаруға әрекеттенгенде тосын жағдайлардың алдын алуға көмектеседі.

Өкілеттеу туралы ескертулер

Не өкілеттеніп жатқанын және не өкілеттеніп жатпағанын білуді жеңілдету үшін Power Apps сіз өкілеттеу мүмкін емес бірдеңені қамтитын формуланы жасағанда ескерту (сары үшбұрыш) береді.

Өкілеттеу туралы ескертулер тек өкілеттеуге болатын деректер көздерінде жұмыс жасайтын формулаларда көрінеді. Ескертуді көрмесеңіз және формулаңыз дұрыс өкілеттік берілмейді деп ойласаңыз, деректер көзі түрін осыдан бұрынғы өкілетілетін деректер көздері тізімімен салыстырыңыз. мақала.

Мысалдар

Бұл мысал үшін сіз [dbo].[Fruit] атты SQL Server кестесіне негізделген үш экрандық бағдарламаны автоматты түрде жасайсыз. Қолданбаны жасау жолы туралы ақпарат алу үшін SQL серверіне туралы Dataverse мақаладағы ұқсас принциптерді қолдануға болады.

Үш экрандық бағдарлама.

Галереяның Items сипаты екеуін де өкілеттеуге болатын SortByColumns және Search функцияларын қамтитын формулаға орнатылған.

Іздеу жолағында "Apple" деп теріңіз.

Бағдарлама іздеу сұрауын өңдеу үшін SQL Server серверімен байланысып жатқанда экранның жоғарғы жағында көп нүктелер уақытша пайда болады. Тіпті деректер көзі миллиондаған жазбаларды қамтыса да, іздеу шарттарына сай барлық жазбалар пайда болады.

Іздеу мәтінді енгізу басқару элементі.

Іздеу нәтижелері "Алма" және "Ананас" сөздерін қамтиды, өйткені Search функциясы мәтін бағанының барлық жерінде іздейді. Егер жеміс атауының басында іздеу термині бар жазбаларды ғана табу керек болса, күрделі іздеу термині бар Сүзгі өкілетті функциясын пайдалануға болады. (Оңай болуы үшін SortByColumns функциясын шақыруды жойыңыз).

SortByColumns функциясын шақыруды жойыңыз.

Жаңа нәтижелер "Алма" сөзін қамтиды, бірақ "Ананас" сөздерін қамтымайды. Дегенмен, галерея жанында (және сол жақ навигация тақтасы нобайларды көрсетсе, экран нобайында) сары үшбұрыш көрінеді әрі формула бөлігінің астында көк, ирек сызық көрінеді. Бұл элементтердің әрқайсысы ескертуді көрсетеді. Галереяның жанындағы сары үшбұрыштың үстіне меңзерді апарсаңыз, мына хабар пайда болады:

Өкілеттеу туралы ескертуге меңзерді апарыңыз.

SQL Server — өкілеттеуге болатын деректер көзі, ал Filter — өкілеттеуге болатын функция. Дегенмен, Mid және Len функцияларын ешбір деректер көзіне өкілеттеу мүмкін емес.

Бірақ бұл нәтиже берді, солай емес пе? Солай дерлік. Осы себепті бұл қызыл, ирек сызық емес, ал ескерту болып табылады.

  • Егер кестеде 500-ден азырақ жазба болса, формула мінсіз жұмыс істеді. Барлық жазбалар құрылғыға жеткізілді және Filter функциясы жергілікті қолданылды.
  • Егер кестеде 500-ден көбірек жазба болса, формула 501 немесе одан жоғарырақ жазбаларды қайтармайды, тіпті егер ол шарттарға сәйкес болса да.

Сондай-ақ келесіні қараңыз

Өкілетті емес функциялар мен орынсыз деректер жолының шектеулерін пайдаланудың өнімділікке әсері
Өнімділік кеңестері мен өкілеттікті пайдаланудың үздік тәжірибелері

Ескерім

Сіз құжат тіліңіздің артықшылықтары туралы айта аласыз ба? Қысқа сауалнамаға қатысыңыз. (бұл сауалнама ағылшын тілінде екеніне назар аударыңыз)

Сауалнама шамамен жеті минут уақытыңызды алады. Жеке деректер жиналмайды (құпиялылық туралы мәлімдеме).