Como processar o suporte do gateway

Testar conectividade

Os modos Pessoal e Standard do gateway de dados local dão suporte a conectores personalizados.

Ambos os modos de gateway dão suporte a Importar. A Consulta Direta só tem suporte no modo Standard. Atualmente, o OAuth para conectores personalizados por meio de gateways dá suporte apenas a administradores de gateway, não a outros usuários da fonte de dados.

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 Tipo de Fonte de Dados define o manipulador de TestConnection no registro. Ele tem a seguinte assinatura:

(dataSourcePath) as list => ...

Onde dataSourcePath está o valor do Caminho da Fonte de Dados para sua função e o valor retornado é uma lista composta de:

  • 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 a serem passados para sua função.

Se a invocação da função resultar em um erro, TestConnection falhará e a credencial não será mantida.

Observação

Como mencionado anteriormente, o nome da função fornecido por TestConnection deve ser um membro de shared.

Exemplo: conector sem argumentos necessários

O trecho de código a seguir implementa TestConnection para uma fonte de dados sem parâmetros obrigatórios (como o do tutorial TripPin). Conectores sem parâmetros necessários (conhecidos 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 é igual ao nome do Tipo de Fonte de Dados e você pode ignorá-lo.

A TripPin.Contents função é invocada sem outros parâmetros.

TripPin = [
    TestConnection = (dataSourcePath) => { "TripPin.Contents" },
    Authentication = [
        Anonymous = []
    ],
    Label = "TripPin"
];

Exemplo: conector com um parâmetro de URL

Se a 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 de código a seguir 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 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 que contém os parâmetros. O snippet 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"
];