Περιορισμοί ερωτημάτων: Όρια ανάθεσης και ερωτημάτων

Power Apps λειτουργεί καλύτερα με μια προέλευση δεδομένων παρασκηνίων όταν ένα ερώτημα Power Fx μεταφράζεται πλήρως σε ένα ισοδύναμο ερώτημα που εκτελείται στην προέλευση δεδομένων. Power Apps στέλνει ένα ερώτημα που κατανοεί η προέλευση δεδομένων, η προέλευση δεδομένων εκτελεί το ερώτημα και Power Apps τα αποτελέσματα. Για παράδειγμα, η προέλευση δεδομένων φιλτράρει τα δεδομένα και επιστρέφει μόνο τις γραμμές που πληρούν τα κριτήρια φιλτραρίσματος. Όταν πραγματοποιείται αυτή η διαδικασία, το Power Apps αναθέτει το ερώτημα στην προέλευση δεδομένων.

Ωστόσο τα ερωτήματα Power Fx δεν μπορούν πάντα να μεταφραστούν σε ισοδύναμα ερωτήματα σε κάθε προέλευση δεδομένων. Για παράδειγμα, το Dataverse υποστηρίζει περισσότερες δυνατότητες ερωτημάτων από ό,τι το Excel. Το Dataverse υποστηρίζει τον τελεστή ερωτήματος 'in' (συμμετοχής), αλλά το Excel όχι. Ένα ερώτημα δεν έχει δυνατότητα επεξεργασίας εάν χρησιμοποιεί μια δυνατότητα που δεν υποστηρίζει η προέλευση δεδομένων. Εάν οποιοδήποτε τμήμα μιας παράστασης ερωτήματος δεν έχει δυνατότητα ανάθεσης, Power Apps δεν αναθέτει κανένα τμήμα του ερωτήματος.

Όταν ένα ερώτημα δεν έχει δυνατότητα εκτέλεσης, Power Apps λαμβάνει τις πρώτες 500 εγγραφές από την προέλευση δεδομένων και, στη συνέχεια, εκτελεί τις ενέργειες στο ερώτημα. Μπορείτε να αυξήσετε αυτό το όριο σε 2.000 εγγραφές. Αλλαγή του ορίουPower Apps περιορίζει το μέγεθος των αποτελεσμάτων σε 500 εγγραφές για να διατηρήσει την καλή απόδοση της εφαρμογής σας. τα μεγαλύτερα σύνολα αποτελεσμάτων μπορούν να προκαλέσουν προβλήματα επιδόσεων στην εφαρμογή και το Power Apps.

Ωστόσο, αυτός ο περιορισμός μπορεί να είναι ένα πρόβλημα, επειδή το ερώτημα ενδέχεται να επιστρέψει εσφαλμένα αποτελέσματα εάν το αρχείο προέλευσης δεδομένων έχει περισσότερες από 500 ή 2.000 εγγραφές. Για παράδειγμα, εάν η προέλευση δεδομένων σας έχει 10 εκατομμύρια εγγραφές και το ερώτημά σας πρέπει να εργαστεί στο τελευταίο τμήμα των δεδομένων, όπως τα οικογενειακά ονόματα που ξεκινούν με 'Z' και το ερώτημά σας χρησιμοποιεί έναν τελεστή χωρίς δυνατότητα ανάθεσης, όπως διακριτός, λαμβάνετε μόνο τις πρώτες 500 ή 2.000 εγγραφές. Επομένως, λαμβάνετε εσφαλμένα αποτελέσματα.

Δημιουργήστε τα ερωτήματα Power Fx σας χρησιμοποιώντας τους πίνακες με δυνατότητα ανάθεσης για την προέλευση δεδομένων. Χρησιμοποιείτε μόνο συναρτήσεις ερωτήματος που μπορούν να ανατεθούν. Είναι ο μόνος τρόπος για να διατηρείτε την καλή απόδοση της εφαρμογής σας και να βεβαιωθείτε ότι οι χρήστες λαμβάνουν όλες τις πληροφορίες που χρειάζονται.

Λάβετε υπόψη τις προειδοποιήσεις ανάθεσης που καθορίζουν τα σημεία όπου δεν είναι δυνατή η ανάθεση. Εάν εργάζεστε με μικρά σύνολα δεδομένων (λιγότερες από 500 εγγραφές), μπορείτε να χρησιμοποιήσετε οποιαδήποτε προέλευση δεδομένων και τύπο, καθώς η εφαρμογή επεξεργάζεται δεδομένα τοπικά, εάν δεν ανατίθεται ο τύπος.

Σημείωμα

Οι προειδοποιήσεις ανάθεσης σας βοηθούν να διαχειρίζεστε την εφαρμογή σας, έτσι ώστε να έχει τα σωστά αποτελέσματα. Εάν τα δεδομένα στην προέλευση δεδομένων υπερβαίνουν τις 500 εγγραφές και δεν ανατεθεί μια συνάρτηση, το Power Fx επισημαίνει τον τύπο με μια μπλε υπογράμμιση.

Προελεύσεις δεδομένων που μπορούν να ανατεθούν

Η ανάθεση λειτουργεί μόνο με συγκεκριμένες προελεύσεις δεδομένων σε μορφή πίνακα. Εάν μια προέλευση δεδομένων υποστηρίζει την ανάθεση, η τεκμηρίωση σύνδεσης περιγράφει την εν λόγω υποστήριξη. Αυτές οι δημοφιλείς προελεύσεις δεδομένων σε μορφή πίνακα υποστηρίζουν ανάθεση:

Τα εισαγόμενα βιβλία εργασίας του Excel (χρησιμοποιώντας την επιλογή Προσθήκη στατικών δεδομένων στην προέλευση δεδομένων εφαρμογής), οι συλλογές και οι πίνακες που είναι αποθηκευμένοι σε μεταβλητές περιβάλλοντος δεν χρειάζονται ανάθεση. Αυτά τα δεδομένα είναι ήδη στη μνήμη, επομένως χρησιμοποιείτε την πλήρη γλώσσα του Power Apps.

Συναρτήσεις με δυνατότητα ανάθεσης

Χρησιμοποιήστε μόνο τύπους που μπορούν να ανατεθούν. Αυτό το άρθρο παραθέτει στοιχεία τύπων που μπορούν να ανατεθούν. Κάθε προέλευση δεδομένων είναι διαφορετική και δεν υποστηρίζουν όλες οι προελεύσεις δεδομένων όλα αυτά τα στοιχεία. Ελέγξτε για προειδοποιήσεις ανάθεσης στον συγκεκριμένο τύπο.

Συναρτήσεις φιλτραρίσματος

Μπορείτε να αναθέσετε τις συνάθροειες Filter, Search, First και LookUp.

Στις συναρτήσεις Filter και LookUp , χρησιμοποιήστε αυτές τις συναρτήσεις με στήλες του πίνακα για να επιλέξετε τις κατάλληλες εγγραφές:

  • And (συμπεριλαμβανομένου του &&), Or (συμπεριλαμβανομένου του ||), Not (συμπεριλαμβανομένου του !)
  • In> [! ΣΗΜΕΙΩΣΗ]

    Το 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() δεν εξαρτώνται από τις στήλες της καρτέλας και επομένως επιστρέφουν την ίδια τιμή για όλες τις καρτέλες. Αυτές οι τιμές μπορούν να σταλούν στην προέλευση δεδομένων ως σταθερά και δεν θα αποκλείσουν την ανάθεση.

Η προηγούμενη λίστα δεν περιλαμβάνει αυτά τα αξιοσημείωτα στοιχεία:

Ανάθεση και συλλογές

Όταν χρησιμοποιείτε Withτις συναρτήσεις , UpdateContextή Set, αυτές οι συναρτήσεις δημιουργούν συλλογές εσωτερικά. Οι συλλογές είναι μια στατική λίστα εγγραφών στη μνήμη και δεν μπορούν να συμμετέχουν σε ανάθεση. Δεν βλέπετε προειδοποίηση ανάθεσης.

Περιορισμοί ερωτήματος

Αναζήτηση και ανάπτυξη επιπέδων

Power Apps σας επιτρέπει να χρησιμοποιήσετε έως και δύο επίπεδα αναζήτησης. Αυτό σημαίνει ότι μια έκφραση ερωτήματος Power Fx μπορεί να περιλαμβάνει έως δύο συναρτήσεις αναζήτησης για τη διατήρηση των επιδόσεων. Όταν μια παράσταση ερωτήματος περιλαμβάνει μια αναζήτηση, Power Apps πρώτα υποβάλλει ερώτημα στον βασικό πίνακα και, στη συνέχεια, εκτελεί ένα δεύτερο ερώτημα για να αναπτύξει τον πρώτο πίνακα με τις πληροφορίες αναζήτησης. Ένα επιπλέον επίπεδο πέρα από αυτό υποστηρίζεται ως μέγιστο. Για σενάρια χωρίς σύνδεση, υποστηρίζεται μόνο ένα επίπεδο ανάπτυξης αναζήτησης.

Μπορείτε να αναπτύξετε ή να συνενώσετε έως και 20 οντότητες σε ένα μόνο ερώτημα. Εάν πρέπει να ενώσετε περισσότερους από 20 πίνακες σε ένα ερώτημα, δοκιμάστε να δημιουργήσετε μια προβολή στο διακομιστή δεδομένων, εάν είναι δυνατόν.

Αξιολόγηση έκφρασης - η ιδιότητα της οντότητας πρέπει να βρίσκεται στην αριστερή πλευρά "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 και Count, μπορούν να ανατεθούν. Ωστόσο, οι παράμετροι RemoveIf και UpdateIf έχουν περιορισμούς ανάθεσης. Μόνο ένας περιορισμένος αριθμός προελεύσεων δεδομένων υποστηρίζει την ανάθεση για αυτές τις λειτουργίες. Για περισσότερες πληροφορίες, δείτε την ενότητα Λίστα ανάθεσης.

Συναρτήσεις μη ανάθεσης

Όλες οι άλλες συναρτήσεις δεν μπορούν να ανατεθούν. Οι σπουδαίες λειτουργίες περιλαμβάνουν:

Όρια μη ανάθεσης

Η επεξεργασία των τύπων που δεν είναι δυνατό να ανατεθούν θα γίνεται τοπικά. Η τοπική επεξεργασία σάς επιτρέπει να χρησιμοποιήσετε την πλήρη γλώσσα τύπων Power Apps. Ωστόσο, υπάρχει μια ανταλλαγή: όλα τα δεδομένα έρχονται πρώτα στη συσκευή, το οποίο μπορεί να σημαίνει λήψη μεγάλου όγκου δεδομένων μέσω του δικτύου. Αυτή η διεργασία μπορεί να πάρει χρόνο και να κάνει την εφαρμογή σας να φαίνεται αργή ή να μην ανταποκρίνεται.

Για να αποφύγετε αυτό το πρόβλημα, το Power Apps περιορίζει την ποσότητα των δεδομένων που μπορούν να υποβληθούν σε επεξεργασία τοπικά σε 500 εγγραφές από προεπιλογή. Αυτό το όριο σάς επιτρέπει να χρησιμοποιείτε πλήρως μικρά σύνολα δεδομένων και να εργάζεστε με μεγάλα σύνολα δεδομένων, βλέποντας μερικά αποτελέσματα.

Να είστε προσεκτικοί όταν χρησιμοποιείτε αυτήν τη δυνατότητα, επειδή μπορεί να προκαλέσει σύγχυση στους χρήστες. Ας πάρουμε, για παράδειγμα, σκεφτείτε μια συνάρτηση Filter με έναν τύπο επιλογής που δεν είναι δυνατό να ανατεθεί, σε μια προέλευση δεδομένων που περιέχει ένα εκατομμύριο καρτέλες, μόνο οι 500 σαρώνονται. Εάν η εγγραφή που θέλετε είναι εγγραφή 501 ή 500.001, η συνάρτηση Filter δεν την εντοπίζει ή επιστρέφει.

Οι συναρτήσεις συγκεντρωτικών αποτελεσμάτων μπορούν επίσης να προκαλέσουν σύγχυση. Για παράδειγμα, εάν χρησιμοποιείτε Μέσος όρος σε μια στήλη στην ίδια προέλευση δεδομένων εκατομμυρίων εγγραφών, ο Μέσος όρος δεν μπορεί να ανατεθεί επειδή η έκφραση δεν έχει ανατεθεί (ανατρέξτε στην προηγούμενη σημείωση). Υπολογίζεται μέσος όρος μόνο των πρώτων 500 καρτελών. Εάν δεν είστε προσεκτικοί, ένας χρήστης μπορεί να θεωρεί ότι μια μερική απάντηση είναι η πλήρης απάντηση.

Αλλαγή του ορίου

Ο προεπιλεγμένος αριθμός εγγραφών είναι 500, αλλά μπορείτε να αλλάξετε αυτόν τον αριθμό για την εφαρμογή σας:

  1. Επιλέξτε Ρυθμίσεις.
  2. Στην περιοχή Γενικά, αλλάξτε τη ρύθμιση Όριο γραμμής δεδομένων από 1 σε 2000.

Σε ορισμένες περιπτώσεις, αρκεί 2.000, 1.000 ή 1.500 εγγραφές για το σενάριό σας. Καθώς αυξάνετε αυτόν τον αριθμό, οι επιδόσεις της εφαρμογής σας μπορεί να μειώνονται, ειδικά για μεγάλους πίνακες με πολλές στήλες. Είναι ακόμα καλύτερο να αναθέσετε όσο το δυνατόν περισσότερο.

Για να βεβαιωθείτε ότι η εφαρμογή σας κλιμακώνει σε μεγάλα σύνολα δεδομένων, ορίστε αυτή την τιμή σε 1. Σε αυτή την περίπτωση, οτιδήποτε δεν μπορεί να ανατεθεί θα επιστρέφει μία μοναδική καρτέλα, η οποία θα πρέπει να είναι εύκολο να εντοπιστεί κατά τη δοκιμή της εφαρμογής σας. Αυτό μπορεί να σας βοηθήσει να αποφύγετε εκπλήξεις όταν προσπαθείτε να μεταφέρετε μια πρότυπη εφαρμογή στην παραγωγή.

Προειδοποιήσεις ανάθεσης

Power Apps εμφανίζει μια προειδοποίηση (κίτρινο τρίγωνο) όταν δημιουργείτε έναν τύπο που δεν είναι δυνατό να ανατεθεί. Είναι ευκολότερο να γνωρίζετε τι ανατίθεται και τι όχι.

Προειδοποιήσεις ανάθεσης εμφανίζονται μόνο σε τύπους που χρησιμοποιούν προελεύσεις δεδομένων με δυνατότητα ανάθεσης. Εάν δεν βλέπετε μια προειδοποίηση και πιστεύετε ότι ο τύπος δεν ανατίθεται σωστά, ελέγξτε τον τύπο της προέλευσης δεδομένων σε σχέση με τη λίστα των προελεύσεων δεδομένων με δυνατότητα ανάθεσης παραπάνω σε αυτό το άρθρο.

Παραδείγματα

Σε αυτό το παράδειγμα, δημιουργείτε αυτόματα μια εφαρμογή τριών οθονών που βασίζεται σε έναν πίνακα SQL Server που ονομάζεται [dbo].[ Fruit]. Για να μάθετε πώς μπορείτε να δημιουργήσετε την εφαρμογή, εφαρμόστε παρόμοιες αρχές από το άρχια σχετικά με το Dataverse σε SQL Server.

Εφαρμογή με τρεις οθόνες.

Η ιδιότητα Items της συλλογής ορίζεται σε έναν τύπο που περιέχει τις συναρτήσεις SortByColumns και Search, οι οποίες μπορούν να ανατεθούν.

Στο πλαίσιο αναζήτησης, πληκτρολογήστε "Apple".

Οι κινούμενες κουκκίδες εμφανίζονται για λίγο κοντά στο επάνω μέρος της οθόνης, καθώς η εφαρμογή επικοινωνεί με SQL Server για την επεξεργασία της αίτησης αναζήτησης. Εμφανίζονται όλες οι καρτέλες που ικανοποιούν τα κριτήρια αναζήτησης, ακόμα και αν το αρχείο προέλευσης δεδομένων περιέχει εκατομμύρια καρτέλες.

Στοιχείο ελέγχου εισαγωγής κειμένου αναζήτησης.

Τα αποτελέσματα αναζήτησης περιλαμβάνουν "Apples" και "Pineapple" επειδή η συνάρτηση Αναζήτηση αναζητά οπουδήποτε σε μια στήλη κειμένου. Εάν θέλετε να βρείτε μόνο τις εγγραφές που περιέχουν τον όρο αναζήτησης στην αρχή του ονόματος του φρούτου, μπορείτε να χρησιμοποιήσετε μια άλλη συνάρτηση με δυνατότητα ανάθεσης, την Filter, με έναν πιο σύνθετο όρο αναζήτησης. Για λόγους ευκολίας, καταργήστε την κλήση SortByColumns.

Κατάργηση της κλήσης SortByColumns.

Τα νέα αποτελέσματα περιλαμβάνουν "Apples" αλλά όχι "Pineapple". Ένα κίτρινο τρίγωνο εμφανίζεται δίπλα στη συλλογή και στη μικρογραφία της οθόνης, εάν η αριστερή γραμμή περιήγησης εμφανίζει μικρογραφίες. Μια μπλε, κυματιστή γραμμή εμφανίζεται κάτω από ένα τμήμα του τύπου. Κάθε ένα από αυτά τα στοιχεία υποδεικνύει μια προειδοποίηση. Εάν τοποθετήσετε τον δείκτη επάνω από το κίτρινο τρίγωνο δίπλα στη συλλογή, εμφανίζεται αυτό το μήνυμα:

Προειδοποίηση ανάθεσης με κατάδειξη.

SQL Server είναι μια προέλευση δεδομένων με δυνατότητα ανάθεσης και το Filter είναι μια συνάρτηση με δυνατότητα ανάθεσης. Οι συναρτήσεις Mid και Len δεν είναι δυνατό να ανατεθούν σε καμία προέλευση δεδομένων.

Αλλά λειτουργεί, έτσι δεν είναι; Σχεδόν. Και για αυτόν το λόγο βλέπετε μια προειδοποίηση και όχι μια κόκκινη, κυματιστή γραμμή.

  • Εάν ο πίνακας περιέχει λιγότερες από 500 καρτέλες, ο τύπος λειτούργησε σωστά. Όλες οι καρτέλες μεταφέρθηκαν στη συσκευή και η συνάρτηση Filter εφαρμόστηκε τοπικά.
  • Εάν ο πίνακας περιέχει περισσότερες από 500 καρτέλες, ο τύπος δεν θα επιστρέψει καρτέλες από την καρτέλα 501 και μετά, ακόμα και αν συμφωνούν με τα κριτήρια.

Δείτε επίσης