Manipulando o suporte ao gateway
Testar Ligação
O suporte ao Conector Personalizado está disponível nos modos Pessoal e Padrão do gateway de dados local. Ambos os modos de gateway suportam Importar. O Direct Query só é suportado no modo Padrão. Atualmente, o OAuth para conectores personalizados via gateways é suportado apenas para administradores de gateways, mas não para outros usuários de fontes de dados.
É provável que o método para implementar a funcionalidade TestConnection seja alterado enquanto a funcionalidade do Power BI Custom Data Connector estiver em visualização.
Para dar suporte à atualização agendada por meio do gateway de dados local, seu conector deve implementar um manipulador TestConnection. A função é chamada quando o usuário está configurando credenciais para sua origem e usada para garantir que elas sejam válidas. O manipulador TestConnection é definido no registro Data Source Kind e tem a seguinte assinatura:
(dataSourcePath) as list => ...
Onde dataSourcePath
é o valor Data Source Path para sua função e o valor de retorno é uma lista composta por:
- O nome da função a ser chamada (essa função deve ser marcada como
#shared
, e geralmente é sua função de fonte de dados primária). - Um ou mais argumentos para passar para a sua função.
Se a invocação da função resultar em um erro, TestConnection será considerado como tendo falhado e a credencial não será persistida.
Nota
Como dito acima, o nome da função fornecido pelo TestConnection deve ser um shared
membro.
Exemplo: Conector sem argumentos necessários
O trecho de código abaixo implementa o TestConnection para uma fonte de dados sem parâmetros necessários (como o encontrado no tutorial do TripPin). Os conectores sem parâmetros necessários (referidos como 'Singletons') não precisam de nenhuma entrada fornecida pelo usuário para testar uma conexão (além de credenciais). Nesse caso, o dataSourcePath
valor seria igual ao nome do Tipo de Fonte de Dados e pode ser ignorado.
A TripPin.Contents
função é invocada sem parâmetros adicionais.
TripPin = [
TestConnection = (dataSourcePath) => { "TripPin.Contents" },
Authentication = [
Anonymous = []
],
Label = "TripPin"
];
Exemplo: Conector com um parâmetro de URL
Se sua função de fonte de dados tiver um único parâmetro necessário do tipo Uri.Type
, ela dataSourcePath
será igual à URL fornecida pelo usuário. O trecho abaixo mostra a implementação TestConnection do exemplo do Github.
GithubSample = [
TestConnection = (dataSourcePath) => {"GithubSample.Contents", dataSourcePath},
Authentication = [
OAuth = [
StartLogin = StartLogin,
FinishLogin = FinishLogin,
Label = Extension.LoadString("AuthenticationLabel")
]
]
];
Exemplo: Conector com parâmetros necessários
Se sua função de fonte de dados tiver vários parâmetros ou um único parâmetro não-URL, o dataSourcePath
valor será uma cadeia de caracteres JSON contendo os parâmetros. O trecho abaixo vem do exemplo DirectQueryForSQL .
DirectSQL = [
TestConnection = (dataSourcePath) =>
let
json = Json.Document(dataSourcePath),
server = json[server],
database = json[database]
in
{ "DirectSQL.Database", server, database },
Authentication = [
Windows = [],
UsernamePassword = []
],
Label = "Direct Query for SQL"
];