Tratar acesso de dados

Funções da fonte de dados

Um conector de dados encapsula e personaliza o comportamento de uma função de fonte de dados na biblioteca M. Por exemplo, uma extensão para uma API REST usaria a função Web.Contents para realizar solicitações HTTP. Atualmente, um conjunto limitado de funções de fonte de dados foi habilitado para dar suporte à extensibilidade.

Exemplo:

[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents = (optional message as text) =>
    let
        message = if (message <> null) then message else "Hello world"
    in
        message;

Variante de Fonte de Dados

As funções marcadas como shared em sua extensão podem ser associadas a uma fonte de dados específica incluindo um atributo literal DataSource.Kind na função com o nome de um registro de definição de Fonte de Dados. O registro da Fonte de Dados define os tipos de autenticação compatíveis com sua fonte de dados e informações básicas de identidade visual (como o rótulo/nome de exibição). O nome do registro se torna seu identificador exclusivo.

Cada função associada à mesma fonte de dados deve ter os mesmos parâmetros de função necessários, incluindo nome, tipo e ordem. (Para fins de Tipo de Fonte de Dados, um parâmetro não é considerado necessário se estiver marcado optional ou se seus metadados contiverem DataSource.Path = false.)

As funções de um tipo de fonte de dados específico só podem usar credenciais associadas a esse tipo. As credenciais são identificadas em runtime realizando uma pesquisa com base na combinação dos parâmetros necessários da função. Para mais informações sobre como as credenciais são identificadas, consulte Caminhos da Fonte de Dados.

Exemplo:

HelloWorld = [
    Authentication = [
        Implicit = []
    ],
    Label = Extension.LoadString("DataSourceLabel")
];

Propriedades

A tabela a seguir lista os campos do registro de definição da Fonte de Dados.

Campo Type Detalhes
Autenticação registro Especifica um ou mais tipos de autenticação compatíveis com sua fonte de dados. Pelo menos um tipo é necessário. Cada tipo será exibido como uma opção no prompt de credenciais do Power Query. Para mais informações, consulte Tipos de autenticação.
Rótulo text (opcional) Nome de exibição simpático para essa extensão em caixas de diálogo de credenciais.
SupportsEncryption logical (opcional) Quando verdadeiro, a interface do usuário apresentará a opção para se conectar à fonte de dados usando uma conexão criptografada. Normalmente, isso é usado para fontes de dados com um mecanismo de fallback não criptografado (geralmente fontes baseadas em ODBC ou ADO.NET).

Publicar na interface do usuário

Semelhante ao registro de definição da Fonte de Dados, o registro Publicar fornece à interface do usuário do Power Query as informações necessárias para expor esta extensão na caixa de diálogo Obter Dados.

Exemplo:

HelloWorld.Publish = [
    Beta = true,
    ButtonText = { Extension.LoadString("FormulaTitle"), Extension.LoadString("FormulaHelp") },
    SourceImage = HelloWorld.Icons,
    SourceTypeImage = HelloWorld.Icons
];

HelloWorld.Icons = [
    Icon16 = { Extension.Contents("HelloWorld16.png"), Extension.Contents("HelloWorld20.png"), Extension.Contents("HelloWorld24.png"), Extension.Contents("HelloWorld32.png") },
    Icon32 = { Extension.Contents("HelloWorld32.png"), Extension.Contents("HelloWorld40.png"), Extension.Contents("HelloWorld48.png"), Extension.Contents("HelloWorld64.png") }
];

Propriedades

A tabela a seguir lista os campos para seu registro de Publicação.

Campo Type Detalhes
ButtonText lista Lista de itens de texto. O primeiro item define o nome exibido ao lado do ícone da fonte de dados na caixa de diálogo Obter Dados do Power BI. O segundo item (opcional) define a dica de ferramenta que será exibida quando o nome anterior for passado com o mouse.
Categoria text Onde a extensão deve ser exibida na caixa de diálogo Obter Dados. Atualmente, os únicos valores de categoria com entrega especial são Azure e Database. Todos os outros valores irão para a categoria Outros.
Beta logical (opcional) Quando definido como true, a interface do usuário exibirá um identificador de Versão Prévia/Beta ao lado do nome do conector e uma caixa de diálogo de aviso informando que a implementação do conector está sujeita a alterações interruptivas.
LearnMoreUrl text (opcional) URL para o site contendo mais informações sobre essa fonte de dados ou conector.
SupportsDirectQuery logical (opcional) Habilita a consulta direta para sua extensão.
SourceImage registro (opcional) Um registro que contém uma lista de imagens binárias (provenientes do arquivo de extensão usando o método Extension.Contents). O registro contém dois campos (Icon16, Icon32), cada um com sua própria lista. Cada ícone deve ter um tamanho diferente.
SourceTypeImage registro (opcional) Semelhante ao SourceImage, exceto que a convenção para muitos conectores prontos para uso é exibir um ícone de planilha com o ícone específico da fonte no canto inferior direito. Ter um conjunto diferente de ícones para SourceTypeImage é opcional. Muitas extensões simplesmente reutilizam o mesmo conjunto de ícones para os dois campos.