Χειρισμός διαδρομής προέλευσης δεδομένων
Ο μηχανισμός M αναγνωρίζει μια προέλευση δεδομένων χρησιμοποιώντας έναν συνδυασμό των Kind και Path. Όταν παρουσιαστεί μια προέλευση δεδομένων κατά τη διάρκεια μιας αξιολόγησης ερωτήματος, ο μηχανισμός M προσπαθεί να βρει αντίστοιχα διαπιστευτήρια. Εάν δεν βρεθούν διαπιστευτήρια, η μηχανή επιστρέφει ένα ειδικό σφάλμα που έχει ως αποτέλεσμα μια προτροπή διαπιστευτηρίων στο Power Query.
Η τιμή Kind προέρχεται από τον ορισμό Είδος προέλευσης δεδομένων.
Η τιμή Διαδρομή προέρχεται από τις απαιτούμενες παραμέτρους της συνάρτησης προέλευσης δεδομένων. Οι προαιρετικές παράμετροι δεν λαμβάνονται υπόψη στο αναγνωριστικό διαδρομής προέλευσης δεδομένων. Κατά συνέπεια, όλες οι συναρτήσεις προέλευσης δεδομένων που συσχετίζονται με ένα είδος προέλευσης δεδομένων πρέπει να έχουν τις ίδιες παραμέτρους. Υπάρχει ειδικός χειρισμός για συναρτήσεις που έχουν μία μόνο παράμετρο τύπου Uri.Type
. Μεταβείτε στην ενότητα Συναρτήσεις με μια παράμετρο Uri για λεπτομέρειες.
Μπορείτε να δείτε ένα παράδειγμα του τρόπου αποθήκευσης των διαπιστευτηρίων στο παράθυρο διαλόγου Ρυθμίσεις προέλευσης δεδομένων στο Power BI Desktop. Σε αυτό το παράθυρο διαλόγου, το Είδος αντιπροσωπεύεται από ένα εικονίδιο και η τιμή Διαδρομή εμφανίζεται ως κείμενο.
Σημείωμα
Εάν αλλάξετε τις απαιτούμενες παραμέτρους της συνάρτησης προέλευσης δεδομένων κατά την ανάπτυξη, τα διαπιστευτήρια που αποθηκεύατε προηγουμένως δεν λειτουργούν πλέον (επειδή οι τιμές διαδρομής δεν συμφωνούν πλέον). Θα πρέπει να διαγράψετε τυχόν αποθηκευμένα διαπιστευτήρια κάθε φορά που αλλάζετε τις παραμέτρους της συνάρτησης προέλευσης δεδομένων. Εάν εντοπιστούν μη συμβατά διαπιστευτήρια, ενδέχεται να λάβετε ένα σφάλμα κατά τον χρόνο εκτέλεσης.
Μορφή διαδρομής προέλευσης δεδομένων
Η τιμή Διαδρομή για μια προέλευση δεδομένων προέρχεται από τις απαιτούμενες παραμέτρους της συνάρτησης προέλευσης δεδομένων. Οι απαιτούμενες παράμετροι μπορούν να εξαιρεθούν από τη διαδρομή προσθέτοντας DataSource.Path = false
στα μετα-δεδομένα της συνάρτησης. Για περισσότερες πληροφορίες, μεταβείτε στην ενότητα Εξαίρεση απαιτούμενων παραμέτρων από τη διαδρομή προέλευσης δεδομένων.
Από προεπιλογή, μπορείτε να δείτε την πραγματική τιμή συμβολοσειράς στο παράθυρο διαλόγου Ρυθμίσεις προέλευσης δεδομένων στο Power BI Desktop και στη γραμμή εντολών. Εάν ο ορισμός Είδος προέλευσης δεδομένων έχει συμπεριλάβει μια Label
τιμή, θα δείτε την τιμή ετικέτας.
Για παράδειγμα, η συνάρτηση προέλευσης δεδομένων στο δείγμα HelloWorldWithDocs έχει την ακόλουθη υπογραφή:
HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...
Η συνάρτηση έχει μια μοναδική απαιτούμενη παράμετρο (message
) τύπου text
και χρησιμοποιείται για τον υπολογισμό της διαδρομής προέλευσης δεδομένων. Η προαιρετική παράμετρος (count
) παραβλέπεται. Η διαδρομή θα εμφανίζεται ως εξής:
Προτροπή διαπιστευτηρίων
Περιβάλλον εργασίας χρήστη ρυθμίσεων προέλευσης δεδομένων
Όταν ορίζεται μια τιμή ετικέτας, η τιμή διαδρομής προέλευσης δεδομένων δεν εμφανίζεται:
Σημείωμα
Προς το παρόν, συνιστούμε να μην συμπεριλάβετε μια Ετικέτα για την προέλευση δεδομένων σας εάν η συνάρτηση έχει απαιτούμενες παραμέτρους, καθώς οι χρήστες δεν θα μπορούν να ξεχωρίσουν τα διαφορετικά διαπιστευτήρια που έχουν εισάγει. Ελπίζουμε να το βελτιώσουμε αυτό στο μέλλον (δηλαδή, επιτρέποντας στις συνδέσεις δεδομένων να εμφανίζουν τις δικές τους προσαρμοσμένες διαδρομές προέλευσης δεδομένων).
Εξαίρεση απαιτούμενων παραμέτρων από τη διαδρομή προέλευσης δεδομένων
Εάν θέλετε να απαιτείται μια παράμετρος συνάρτησης, αλλά δεν πρέπει να συμπεριληφθεί ως μέρος της διαδρομής προέλευσης δεδομένων, μπορείτε να προσθέσετε DataSource.Path = false
στα μετα-δεδομένα τεκμηρίωσης συνάρτησης. Αυτή η ιδιότητα μπορεί να προστεθεί σε μία ή περισσότερες παραμέτρους για τη συνάθεσή σας. Αυτό το πεδίο καταργεί την τιμή από τη διαδρομή προέλευσης δεδομένων (που σημαίνει ότι δεν μεταβιβάζεται πλέον στη συνάκρισή σας TestConnection
), επομένως θα πρέπει να χρησιμοποιείται μόνο για παραμέτρους που δεν απαιτούνται για τον προσδιορισμό της προέλευσης δεδομένων σας ή για διάκριση μεταξύ διαπιστευτηρίων χρήστη.
Για παράδειγμα, η σύνδεση στο δείγμα HelloWorldWithDocs θα απαιτεί διαφορετικά διαπιστευτήρια για διαφορετικές message
τιμές.
Η προσθήκη DataSource.Path = false
στην message
παράμετρο την καταργεί από τον υπολογισμό διαδρομής προέλευσης δεδομένων, καθιστώντας αποτελεσματικά τη σύνδεση "singleton". Όλες οι κλήσεις στο HelloWorldWithDocs.Contents
αντιμετωπίζονται ως η ίδια προέλευση δεδομένων και ο χρήστης παρέχει διαπιστευτήρια μόνο μία φορά.
HelloWorldType = type function (
message as (type text meta [
DataSource.Path = false,
Documentation.FieldCaption = "Message",
Documentation.FieldDescription = "Text to display",
Documentation.SampleValues = {"Hello world", "Hola mundo"}
]),
optional count as (type number meta [
Documentation.FieldCaption = "Count",
Documentation.FieldDescription = "Number of times to repeat the message",
Documentation.AllowedValues = { 1, 2, 3 }
]))
as table meta [
Documentation.Name = "Hello - Name",
Documentation.LongDescription = "Hello - Long Description",
Documentation.Examples = {[
Description = "Returns a table with 'Hello world' repeated 2 times",
Code = "HelloWorldWithDocs.Contents(""Hello world"", 2)",
Result = "#table({""Column1""}, {{""Hello world""}, {""Hello world""}})"
],[
Description = "Another example, new message, new count!",
Code = "HelloWorldWithDocs.Contents(""Goodbye"", 1)",
Result = "#table({""Column1""}, {{""Goodbye""}})"
]}
];
Συναρτήσεις με παράμετρο Uri
Επειδή οι προελεύσεις δεδομένων με αναγνωριστικό που βασίζεται σε Uri είναι τόσο συνηθισμένες, υπάρχει ειδικός χειρισμός στο περιβάλλον εργασίας χρήστη του Power Query κατά τον χειρισμό διαδρομών προέλευσης δεδομένων που βασίζονται σε Uri. Όταν παρουσιάζεται μια προέλευση δεδομένων που βασίζεται σε Uri, το παράθυρο διαλόγου διαπιστευτηρίων παρέχει μια αναπτυσσόμενη λίστα, η οποία επιτρέπει στον χρήστη να επιλέξει τη βασική διαδρομή αντί για την πλήρη διαδρομή (και όλες τις ενδιάμεσες διαδρομές).
Όπως Uri.Type
και ο τύπος που αποδίδεται και όχι ένας στοιχειώδης τύπος στη γλώσσα M, θα πρέπει να χρησιμοποιήσετε τη συνάρτηση Value.ReplaceType για να υποδείξετε ότι η παράμετρος κειμένου σας πρέπει να αντιμετωπίζεται ως Uri.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);