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"
];