Gestione del percorso origine dati
Il motore M identifica un'origine dati usando una combinazione del tipo e del percorso. Quando viene rilevata un'origine dati durante una valutazione della query, il motore M tenta di trovare le credenziali corrispondenti. Se non vengono trovate credenziali, il motore restituisce un errore speciale che genera una richiesta di credenziali in Power Query.
Il valore Kind deriva dalla definizione Tipo origine dati.
Il valore Path è derivato dai parametri obbligatori della funzione dell'origine dati. I parametri facoltativi non vengono inseriti nell'identificatore del percorso dell'origine dati. Di conseguenza, tutte le funzioni dell'origine dati associate a un tipo di origine dati devono avere gli stessi parametri. È disponibile una gestione speciale per le funzioni con un singolo parametro di tipo Uri.Type
. Per informazioni dettagliate, passare a Funzioni con un parametro URI.
È possibile vedere un esempio di come vengono archiviate le credenziali nella finestra di dialogo Impostazioni origine dati in Power BI Desktop. In questa finestra di dialogo il tipo è rappresentato da un'icona e il valore Path viene visualizzato come testo.
Nota
Se si modificano i parametri obbligatori della funzione di origine dati durante lo sviluppo, le credenziali archiviate in precedenza non funzionano più perché i valori del percorso non corrispondono più. È consigliabile eliminare le credenziali archiviate ogni volta che si modificano i parametri della funzione dell'origine dati. Se vengono trovate credenziali incompatibili, è possibile che venga visualizzato un errore in fase di esecuzione.
Formato percorso origine dati
Il valore Path per un'origine dati è derivato dai parametri obbligatori della funzione di origine dati. I parametri obbligatori possono essere esclusi dal percorso aggiungendo DataSource.Path = false
ai metadati della funzione. Per altre informazioni, vedere Esclusione dei parametri obbligatori dal percorso dell'origine dati.
Per impostazione predefinita, è possibile visualizzare il valore stringa effettivo nella finestra di dialogo Impostazioni origine dati in Power BI Desktop e nel prompt delle credenziali. Se la definizione Tipo origine dati include un Label
valore, verrà visualizzato il valore dell'etichetta.
Ad esempio, la funzione origine dati nell'esempio HelloWorldWithDocs ha la firma seguente:
HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...
La funzione ha un singolo parametro obbligatorio (message
) di tipo text
e viene usato per calcolare il percorso dell'origine dati. Il parametro facoltativo (count
) viene ignorato. Il percorso verrà visualizzato come segue:
Richiesta di credenziali
Interfaccia utente delle impostazioni dell'origine dati
Quando viene definito un valore Label, il valore del percorso dell'origine dati non viene visualizzato:
Nota
È attualmente consigliabile non includere un'etichetta per l'origine dati se la funzione ha parametri obbligatori, perché gli utenti non saranno in grado di distinguere tra le diverse credenziali immesse. Si spera di migliorarlo in futuro, ovvero consentendo ai connettori dati di visualizzare i propri percorsi di origine dati personalizzati.
Esclusione dei parametri obbligatori dal percorso dell'origine dati
Se si vuole che sia necessario un parametro di funzione, ma non come parte del percorso dell'origine dati, è possibile aggiungere DataSource.Path = false
ai metadati della documentazione della funzione. Questa proprietà può essere aggiunta a uno o più parametri per la funzione. Questo campo rimuove il valore dal percorso dell'origine dati (ovvero non viene più passato alla TestConnection
funzione), quindi deve essere usato solo per i parametri che non sono necessari per identificare l'origine dati o distinguere tra le credenziali utente.
Ad esempio, il connettore nell'esempio HelloWorldWithDocs richiede credenziali diverse per valori diversimessage
.
L'aggiunta DataSource.Path = false
message
al parametro lo rimuove dal calcolo del percorso dell'origine dati, rendendo effettivamente il connettore un "singleton". Tutte le chiamate a HelloWorldWithDocs.Contents
vengono considerate come la stessa origine dati e l'utente fornisce le credenziali una sola volta.
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""}})"
]}
];
Funzioni con un parametro Uri
Poiché le origini dati con un identificatore basato su URI sono così comuni, è disponibile una gestione speciale nell'interfaccia utente di Power Query quando si gestiscono percorsi di origine dati basati su URI. Quando viene rilevata un'origine dati basata su URI, la finestra di dialogo credenziali fornisce un elenco a discesa che consente all'utente di selezionare il percorso di base anziché il percorso completo (e tutti i percorsi tra).
Come Uri.Type
è un tipo ascritto anziché un tipo primitivo nel linguaggio M, è necessario usare la funzione Value.ReplaceType per indicare che il parametro di testo deve essere considerato come Uri.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);