Tratar acesso 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;
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")
];
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). |
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") }
];
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. |