Tratar suporte de gateway
Teste a conexão
O suporte ao conector personalizado está disponível nos modos Pessoal e Standard do gateway de dados local. Ambos os modos de gateway suportam Importação. A Consulta direta tem suporte apenas no modo Standard. Atualmente, o OAuth para conectores personalizados via gateways é suportado apenas para administradores de gateway, mas não para outros usuários de fonte de dados.
O método para implementar a funcionalidade TestConnection provavelmente será alterado enquanto a funcionalidade Conector de dados personalizados do Power BI se encontrar na versão prévia.
Para suportar a 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 as credenciais para a fonte de dados e é usada para garantir que elas sejam válidas. O manipulador TestConnection é definido no registro Tipo de fonte de dados e tem a seguinte assinatura:
(dataSourcePath) as list => ...
Em que dataSourcePath
é o valor do Caminho da fonte de dados da sua função, e o valor retornado é uma lista composta de:
- Nome da função a ser chamada (essa função deve ser marcada como
#shared
, e geralmente é a função principal da fonte de dados). - Um ou mais argumentos a serem passados na função.
Se a invocação da função resultar em um erro, o TestConnection será considerado como fracassado e a credencial não será gravada.
Observação
Conforme indicado acima, o nome da função fornecido pelo TestConnection deve ser um membro shared
.
Exemplo: conector sem argumentos obrigatórios
O snippet de código abaixo implementa o TestConnection para uma fonte de dados sem parâmetros obrigatórios (como o encontrado no tutorial do TripPin). Os conectores sem parâmetros obrigatórios (conhecidos como "Singletons") não precisam de nenhuma entrada fornecida pelo usuário para testar uma conexão (além das credenciais). Nesse caso, o valor de dataSourcePath
seria igual ao nome do Tipo de fonte de dados e pode ser ignorado.
A função TripPin.Contents
é invocada sem parâmetros adicionais.
TripPin = [
TestConnection = (dataSourcePath) => { "TripPin.Contents" },
Authentication = [
Anonymous = []
],
Label = "TripPin"
];
Exemplo: conector com um parâmetro de URL
Se a sua função de fonte de dados tiver um único parâmetro obrigatório do tipo Uri.Type
, seu dataSourcePath
será igual à URL fornecida pelo usuário. O snippet abaixo mostra a implementação do 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 obrigatórios
Se a função de fonte de dados tiver vários parâmetros ou um único parâmetro não URL, o valor de dataSourcePath
será uma cadeia de caracteres JSON que contém os parâmetros. O snippet abaixo é 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"
];