Tratamento do suporte ao gateway

Teste a conexã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 dão suporte à importação. Somente há suporte para a consulta direta no modo padrão. Atualmente, o OAuth para conectores personalizados por gateways tem suporte apenas para administradores de gateway, mas não para outros usuários da fonte de dados.

o método para implementar a funcionalidade TestConnection provavelmente será alterado enquanto a funcionalidade do conector de dados personalizado Power BI estiver em versão prévia.

Para dar suporte à atualização agendada por meio do gateway de dados local, o conector deve implementar um manipulador TestConnection. A função é chamada quando o usuário está configurando credenciais para sua fonte e é usada para garantir que elas sejam válidas. O manipulador TestConnection é definido no registro do tipo da fonte de dados e tem a seguinte assinatura:

(dataSourcePath) as list => ...

Em que dataSourcePath é o valor do caminho da fonte de dados 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 é a função de fonte de dados primária).
  • Um ou mais argumentos a serem passados para sua função.

Se a invocação da função resultar em um erro, TestConnection será considerado com falha e a credencial não será persistida.

Observação

Conforme mencionado acima, o nome da função fornecido por TestConnection deve ser um shared membro.

Exemplo: conector sem argumentos obrigatórios

O trecho de código abaixo implementa TestConnection para uma fonte de dados sem parâmetros obrigatórios (como aquele encontrado no tutorialde). Os conectores sem parâmetros obrigatórios (chamados de "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 da 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 obrigatório do tipo Uri.Type , seu dataSourcePath será igual à URL fornecida pelo usuário. O trecho de código abaixo mostra a implementação de 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 a função da fonte de dados tiver vários parâmetros ou um único parâmetro que não seja de URL, o dataSourcePath valor será uma cadeia de caracteres JSON que contém os parâmetros. O trecho de código a seguir 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"
];