Condividi tramite


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.

Screenshot delle credenziali delle impostazioni dell'origine dati.

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 texte viene usato per calcolare il percorso dell'origine dati. Il parametro facoltativo (count) viene ignorato. Il percorso verrà visualizzato come segue:

Richiesta di credenziali

Screenshot del prompt delle credenziali con il percorso.

Interfaccia utente delle impostazioni dell'origine dati

Screenshot dell'interfaccia utente delle impostazioni dell'origine dati.

Quando viene definito un valore Label, il valore del percorso dell'origine dati non viene visualizzato:

Screenshot delle impostazioni dell'origine dati con un'etichetta definita.

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).

Screenshot della finestra di dialogo credenziali che mostra il percorso dell'impostazione a cui si applicano le credenziali.

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);