Gestão do suporte de gateway

Testar ligação

Tanto os modos Pessoal como o Standard do gateway de dados local suportam conectores personalizados.

Ambos os modos de gateway suportam Import. A Consulta Direta só é suportada no modo Standard. O OAuth para conectores personalizados através de gateways atualmente suporta apenas administradores de gateway, não outros utilizadores de fontes de dados.

Para suportar a atualização programada através do gateway de dados local, o seu conector deve implementar um handler TestConnection. A função é chamada quando o utilizador está a configurar credenciais para a sua fonte, e usada para garantir que são válidas. O Data Source Kind coloca o handler TestConnection em registo. Tem a seguinte assinatura:

(dataSourcePath) as list => ...

Onde dataSourcePath é o valor do Caminho da Fonte de Dados para a sua função, e o valor de retorno é uma lista composta por:

  • O nome da função a chamar (esta função deve ser marcada como #shared, e normalmente é a sua principal função fonte de dados).
  • Um ou mais argumentos para passar à tua função.

Se a invocação da função resultar num erro, o TestConnection falha e a credencial não é mantida.

Observação

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

Exemplo: Conector sem argumentos obrigatórios

O seguinte excerto de código implementa o TestConnection para uma fonte de dados sem parâmetros necessários (como o encontrado no tutorial do TripPin). Conectores sem parâmetros necessários (chamados Singletons) não precisam de qualquer input fornecido pelo utilizador para testar uma ligação (para além das credenciais). Neste caso, o dataSourcePath valor é igual ao nome do Tipo da Fonte de Dados, e 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 URL

Se a sua função fonte de dados tiver um único parâmetro exigido do tipo Uri.Type, é dataSourcePath igual à URL fornecida pelo utilizador. O excerto seguinte mostra a implementação do TestConnection a partir 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 sua fonte de dados tiver múltiplos parâmetros, ou um único parâmetro que não seja URL, então o dataSourcePath valor é uma string JSON contendo os parâmetros. O seguinte excerto provém 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"
];