Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
| Function | Applies to |
|---|---|
| AsType |
|
| IsType |
|
Ελέγχει εάν μια αναφορά εγγραφής είναι ένας συγκεκριμένος τύπος πίνακα (IsType) και χειρίζεται την αναφορά ως αυτόν τον τύπο (AsType).
Note
Οι εντολές power-fx pac PAC CLI δεν υποστηρίζουν IsType.
Description
Οι AsType συναρτήσεις και IsType μπορούν να χρησιμοποιηθούν για τη μετατροπή αναφορών εγγραφών (για παράδειγμα, πολυμορφικές αναζητήσεις στο Dataverse) και δυναμικές τιμές σε πληκτρολογημένες τιμές που μπορούν να χρησιμοποιηθούν απευθείας.
Record References
Διαβάστε Κατανοήστε τις αναφορές καρτελών και τις πολυμορφικές αναζητήσεις για μια ευρύτερη εισαγωγή και περισσότερες λεπτομέρειες.
Ένα πεδίο αναζήτησης αναφέρεται συνήθως σε καρτέλες σε ένα συγκεκριμένο πίνακα. Επειδή ο τύπος πίνακα είναι ήδη καθορισμένος, μπορείτε να αποκτήσετε πρόσβαση στα πεδία της αναζήτησης χρησιμοποιώντας μια απλή σήμανση κουκκίδας. Για παράδειγμα, το First( Accounts ).'Primary Contact'.'Full Name' μετακινείται από τον πίνακα Λογαριασμοί στην καρτέλα Κύρια επαφή στον πίνακα Επαφές και εξάγει το πεδίο Πλήρες όνομα.
Το Microsoft Dataverse υποστηρίζει επίσης πεδία πολυμορφικής αναζήτησης, τα οποία μπορούν να αναφέρονται σε καρτέλες από ένα σύνολο πινάκων, όπως σε αυτά τα παραδείγματα.
| Lookup field | Μπορεί να αναφέρεται σε |
|---|---|
| Owner | Χρήστες ή Ομάδες |
| Customer | Λογαριασμοί ή Επαφές |
| Regarding | Λογαριασμοί, Επαφές, Άρθρα γνώσεων κ.λπ. |
Σε τύπους εφαρμογών καμβά, χρησιμοποιήστε αναφορές καρτελών για να εργαστείτε με πολυμορφικές αναζητήσεις. Επειδή μια αναφορά εγγραφής μπορεί να αναφέρεται σε διαφορετικούς πίνακες, δεν μπορείτε να γνωρίζετε ποια πεδία είναι διαθέσιμα κατά τον χρόνο εκτέλεσης κατά τη σύνταξη ενός τύπου. Η σημειογραφία Record.Field δεν είναι διαθέσιμη. Αυτοί οι τύποι πρέπει να προσαρμοστούν στις εγγραφές που αντιμετωπίζει η εφαρμογή όταν εκτελείται.
Η IsType συνάρτηση ελέγχει εάν μια αναφορά εγγραφής αναφέρεται σε έναν συγκεκριμένο τύπο πίνακα. Η συνάρτηση αποδίδει μια δυαδική τιμή TRUE ή FALSE.
Η AsType συνάρτηση αντιμετωπίζει μια αναφορά εγγραφής ως συγκεκριμένο τύπο πίνακα, που ονομάζεται επίσης χύτευση. Χρησιμοποιείτε το αποτέλεσμα σαν να είναι μια εγγραφή του πίνακα και χρησιμοποιείτε τη σημειογραφία Record.Field για πρόσβαση σε όλα τα πεδία αυτής της εγγραφής. Εάν η αναφορά δεν είναι του συγκεκριμένου τύπου, παρουσιάζεται σφάλμα.
Χρησιμοποιήστε αυτές τις συναρτήσεις μαζί για να ελέγξετε πρώτα τον τύπο πίνακα μιας εγγραφής και, στη συνέχεια, να την αντιμετωπίσετε ως μια εγγραφή αυτού του τύπου, ώστε τα πεδία να είναι διαθέσιμα:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Χρειάζεστε αυτές τις συναρτήσεις μόνο εάν αποκτήσετε πρόσβαση στα πεδία μιας αναφοράς εγγραφής. Για παράδειγμα, χρησιμοποιείτε αναφορές εγγραφών στη συνάρτηση Filter χωρίς IsType ή AsType:
Filter( Accounts, Owner = First( Users ) )
Επίσης, μπορείτε να χρησιμοποιήσετε αναφορές καρτέλας με τη συνάρτηση Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Όταν χρησιμοποιείτε αυτές τις συναρτήσεις σε ένα περιβάλλον εγγραφής, όπως μέσα σε ένα στοιχείο ελέγχου Συλλογή ή Φόρμα επεξεργασίας , μπορεί να χρειαστείτε τον τελεστή καθολικής αποσαφήνισης για να αναφέρετε τον τύπο πίνακα. Για παράδειγμα, αυτός ο τύπος λειτουργεί για μια συλλογή που εμφανίζει μια λίστα επαφών όπου το Όνομα εταιρείας είναι μια αναζήτηση Πελάτης :
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
Και για τις δύο συναρτήσεις, καθορίστε τον τύπο χρησιμοποιώντας το όνομα της προέλευσης δεδομένων που είναι συνδεδεμένη στον πίνακα. Για να λειτουργήσει ο τύπος, προσθέστε μια προέλευση δεδομένων στην εφαρμογή για τυχόν τύπους που θέλετε να ελέγξετε ή να κάνετε μετατροπή. Για παράδειγμα, προσθέστε τον πίνακα Χρήστες ως προέλευση δεδομένων εάν θέλετε να χρησιμοποιήσετε IsType και AsType με μια αναζήτηση Κάτοχος και εγγραφές από αυτόν τον πίνακα. Προσθέστε μόνο τις προελεύσεις δεδομένων που χρησιμοποιείτε στην εφαρμογή σας. δεν χρειάζεται να προσθέσετε όλους τους πίνακες στους οποίους θα μπορούσε να κάνει αναφορά μια αναζήτηση.
Εάν η αναφορά εγγραφής είναι κενή, IsType επιστρέφει FALSE και AsType επιστρέφει κενό. Όλα τα πεδία μιας κενής καρτέλας θα είναι κενά.
Dynamic values
Μια δυναμική τιμή από ένα Web API ή τη συνάρτηση [ParseJSON ] πρέπει να μετατραπεί σε μια συγκεκριμένη τιμή τύπου, για να μπορέσετε να τη χρησιμοποιήσετε στο Power Fx. Ακολουθούν ορισμένες επιλογές:
- Πληκτρολογήστε έμμεσα το πεδίο στο σημείο που το χρησιμοποιείτε. Για παράδειγμα, ένα αντικείμενο μετατρέπεται σε αριθμό εάν το χρησιμοποιήσετε με τον
+τελεστή, εάν μπορεί να μετατραπεί σε αριθμό. Αυτή η επιλογή μπορεί να προκαλέσει μη αναμενόμενες μετατροπές και δεν μπορεί να μετατρέψει εγγραφές και πίνακες στο σύνολό τους. - Πληκτρολογήστε ρητά κάθε πεδίο ξεχωριστά με τις συναρτήσεις Δεκαδικός, Κείμενο, DateTime, GUID και άλλες συναρτήσεις κατασκευαστή τύπων. Αυτή η επιλογή είναι η πιο ακατανόητη λύση για τους τύπους σας, επειδή πρέπει να κάνετε κάθε πεδίο ξεχωριστά.
- Προσδιορίστε ρητά το JSON με το δεύτερο όρισμα της συνάρτησης ParseJSON. Αυτή η επιλογή είναι εύκολη και αποτρέπει την ανάγκη της δυναμικής τιμής.
- Πληκτρολογήστε ρητά μια δυναμική τιμή χρησιμοποιώντας τη AsType συνάρτηση. Μπορείτε επίσης να ελέγξετε τον τύπο προτού δοκιμάσετε τη μετατροπή με τη IsType συνάρτηση.
Syntax
AsType( Αναφορά εγγραφής, TableType )
- RecordReference - Υποχρεωτικό. Μια αναφορά εγγραφής, συχνά ένα πεδίο αναζήτησης που αναφέρεται σε μια εγγραφή σε οποιονδήποτε από πολλούς πίνακες.
- TableType - Απαιτείται. Ο συγκεκριμένος πίνακας στον οποίο θα γίνει η μετατροπή της εγγραφής.
AsType( DynamicValue, TypeSpecification )
- DynamicValue - Υποχρεωτικό. Μια δυναμική τιμή από τη συνάρτηση ParseJSON ή την κλήση API.
- TypeSpecification - Απαιτείται. Ένα όνομα τύπου ή προδιαγραφή τύπου που καθορίζετε με τη συνάρτηση Type.
IsType( Αναφορά εγγραφής, TableType )
- RecordReference - Υποχρεωτικό. Μια αναφορά καρτέλας, συχνά ένα πεδίο αναζήτησης που μπορεί να αναφέρεται σε μια καρτέλα σε οποιονδήποτε από πολλούς πίνακες.
- TableType - Απαιτείται. Ο συγκεκριμένος πίνακας για τον οποίο θα ελεγχθεί.
IsType( DynamicValue, TypeSpecification )
- DynamicValue - Υποχρεωτικό. Μια δυναμική τιμή από τη συνάρτηση ParseJSON ή μια κλήση API.
- TypeSpecification - Απαιτείται. Ένα όνομα τύπου ή μια προδιαγραφή τύπου που ορίζεται με τη συνάρτηση Τύπος.
Examples
Record References
Κατανόηση των αναφορών καρτέλας και των πολυμορφικών αναζητήσεων περιέχει εκτενή παραδείγματα.
Δημιουργήστε μια κενή εφαρμογή καμβά για tablet.
Στο αριστερό τμήμα παραθύρου,επιλέξτε> Προσθήκη δεδομένων και, στη συνέχεια, προσθέστε πίνακες Λογαριασμοί και Επαφές.
Στο αριστερό τμήμα παραθύρου, επιλέξτε + (Εισαγωγή) >Διάταξη>Κενή κατακόρυφη συλλογή.
Επιλέξτε Σύνδεση σε δεδομένα και, στη συνέχεια, επιλέξτε Επαφές ως προέλευση δεδομένων.
Ορίστε τη διάταξη συλλογής σε Τίτλος και υπότιτλος.
Στο τμήμα παραθύρου Δεδομένα, ανοίξτε τη λίστα Title1 κι, έπειτα, επιλέξτε Ονοματεπώνυμο.
Επιλέξτε το Στοιχείο ελέγχου Label Subtitle1.
Ορίστε την ιδιότητα Text του Subtitle1 σε αυτόν τον τύπο:
If( IsBlank( ThisItem.'Company Name' ), "--", IsType( ThisItem.'Company Name', Accounts ), "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name', "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name' )
Ο υπότιτλος στη συλλογή δείχνει αυτές τις τιμές:
- "--" εάν το "Όνομα εταιρείας" είναι κενό.
- "Λογαριασμός: " και το πεδίο Όνομα λογαριασμού από τον πίνακα Λογαριασμοί , εάν το πεδίο Όνομα εταιρείας αναφέρεται σε έναν λογαριασμό.
- "Επαφή: " και το πεδίο Πλήρες όνομα από τον πίνακα Contacts , εάν το πεδίο Επωνυμία εταιρείας αναφέρεται σε μια επαφή.
Τα αποτελέσματά σας μπορεί να διαφέρουν καθώς μπορείτε να τροποποιήσετε το δείγμα δεδομένων για να εμφανίσετε περισσότερους τύπους αποτελεσμάτων.
Dynamic values
Τα παρακάτω παραδείγματα δείχνουν μια απλή εγγραφή JSON που ερμηνεύεται με διάφορους τρόπους από τα ParseJSON, AsTypeκαι IsType στο Pac CLI Power Fx REPL.
Σε αυτό το πρώτο παράδειγμα, δεν παρέχονται πληροφορίες τύπου στο ParseJSON, επομένως επιστρέφει μια δυναμική τιμή.
>> Set( rec, ParseJSON( "{""a"":1}" ) )
rec: <Dynamic: Use Value, Text, Boolean, or other functions to establish the type>
Το πεδίο μετατρέπεται σιωπηρά σε αριθμό όταν χρησιμοποιείται σε αριθμητικό περιβάλλον.
>> 1 + rec.a
2
Εναλλακτικά, αυτό το παράδειγμα μετατρέπει ρητά την εγγραφή σε τυπολογημένη Power Fx εγγραφή με το δεύτερο όρισμα σε ParseJSON.
>> ParseJSON( "{""a"":1}", Type( {a: Number} ) )
{a:1}
Και μια άλλη εναλλακτική λύση, αυτό το παράδειγμα μετατρέπει ρητά την εγγραφή σε μια πληκτρολογηθείσα εγγραφή Power Fx χρησιμοποιώντας .AsType
>> AsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
{a:1}
Τέλος, εάν δεν είστε βέβαιοι, αυτό το παράδειγμα ελέγχει τον τύπο πριν από τη μετατροπή του με τη IsType συνάρτηση.
>> IsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
true