Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O motor M identifica uma fonte de dados usando uma combinação do seu Tipo e Caminho. Quando uma fonte de dados é encontrada durante uma avaliação de consulta, o motor M tenta encontrar credenciais correspondentes. Se não forem encontradas credenciais, o motor devolve um erro especial que resulta num prompt de credencial no Power Query.
O valor Kind vem da definição Data Source Kind.
O valor do Path é derivado dos parâmetros necessários da função da sua fonte de dados. Parâmetros opcionais não são considerados no identificador do caminho da fonte de dados. Como resultado, todas as funções de fonte de dados associadas a um tipo de fonte de dados devem ter os mesmos parâmetros. Existe um tratamento especial para funções que têm um único parâmetro do tipo Uri.Type. Vai a Funções com um parâmetro Uri para mais detalhes.
Pode ver um exemplo de como as credenciais são armazenadas no diálogo de definições da fonte de dados no Power BI Desktop. Neste diálogo, o Tipo é representado por um ícone, e o valor do Caminho é exibido como texto.
Observação
Se alterar os parâmetros exigidos da função da sua fonte de dados durante o desenvolvimento, as credenciais previamente armazenadas deixaram de funcionar (porque os valores do caminho já não correspondem). Deves apagar quaisquer credenciais armazenadas sempre que alterares os parâmetros da função da tua fonte de dados. Se forem encontradas credenciais incompatíveis, pode receber um erro em tempo de execução.
Formato do caminho da fonte de dados
O valor de caminho para uma fonte de dados é derivado dos parâmetros exigidos pela função da fonte de dados. Os parâmetros necessários podem ser excluídos do caminho adicionando DataSource.Path = false aos metadados da função. Para mais informações, consulte Excluir parâmetros necessários do caminho da sua fonte de dados.
Por padrão, pode ver o valor literal no diálogo Definições da Fonte de Dados no Power BI Desktop e no prompt de credenciais. Se a definição de Tipo de Origem de Dados tiver incluído um valor Label, verá o valor da etiqueta em vez disso.
Por exemplo, a função fonte de dados na amostra HelloWorldWithDocs tem a seguinte assinatura:
HelloWorldWithDocs.Contents = (message as text, optional count as number) as table => ...
A função tem um único parâmetro necessário (message) do tipo text, e é usada para calcular o caminho da fonte de dados. O parâmetro opcional (count) é ignorado. O percurso seria apresentado da seguinte forma:
Prompt de credencial
Interface de configurações da fonte de dados
Quando um valor de Rótulo é definido, o valor do caminho da fonte de dados não é mostrado:
Observação
Atualmente recomendamos que não inclua um Rótulo para a sua fonte de dados se a sua função tiver parâmetros obrigatórios, pois os utilizadores não poderão distinguir entre as diferentes credenciais que inseriram. Esperamos melhorar isto no futuro (ou seja, permitir que os conectores de dados exibam os seus próprios caminhos de fonte de dados personalizados).
Exclusão de parâmetros necessários do seu caminho de origem de dados
Se quiser que um parâmetro de função seja exigido, mas não incluído como parte do caminho da sua fonte de dados, pode adicionar os metadados DataSource.Path = false à documentação da função. Esta propriedade pode ser adicionada a um ou mais parâmetros para a sua função. Este campo remove o valor do caminho da sua fonte de dados (o que significa que já não é passado para a sua TestConnection função), por isso só deve ser usado para parâmetros que não são necessários para identificar a sua fonte de dados ou distinguir entre credenciais de utilizador.
Por exemplo, o conector no exemplo HelloWorldWithDocs exigiria credenciais diferentes para valores distintos message .
A adição de DataSource.Path = false ao parâmetro message remove-o da fórmula de percurso da fonte de dados, efetivamente tornando o conector em um "singleton". Todas as chamadas para HelloWorldWithDocs.Contents são tratadas como a mesma fonte de dados, e o utilizador fornece credenciais apenas uma vez.
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""}})"
]}
];
Funções com parâmetro Uri
Como as fontes de dados com identificador baseado em Uri são tão comuns, há um tratamento especial na interface do Power Query ao lidar com caminhos de fontes de dados baseados em Uri. Quando é encontrada uma fonte de dados baseada em Uri, o diálogo de credencial fornece um menu suspenso que permite ao utilizador selecionar o caminho principal em vez do caminho completo, bem como todos os caminhos intermediários.
Como Uri.Type é um tipo atribuído em vez de um tipo primitivo na linguagem M, terá de usar a função Value.ReplaceType para indicar que o seu parâmetro de texto deve ser tratado como um Uri.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);