Compartir a través de


Control de la compatibilidad con la puerta de enlace

Probar la conexión

La compatibilidad con conectores personalizados está disponible en los modos Personal y Estándar de la puerta de enlace de datos local. Ambos modos de puerta de enlace admiten la importación. Direct Query solo se admite en modo estándar. Actualmente, OAuth para conectores personalizados a través de puertas de enlace solo es compatible para administradores de puerta de enlace, pero no para otros usuarios de origen de datos.

Es probable que el método para implementar la funcionalidad TestConnection cambie mientras la funcionalidad del conector de datos personalizados de Power BI está en versión preliminar.

Para admitir la actualización programada a través de la puerta de enlace de datos local, el conector debe implementar un controlador TestConnection. Se llama a la función cuando el usuario configura las credenciales para la fuente de datos y se usa para asegurarse de que son válidas. El controlador TestConnection se establece en el registro Tipo de origen de datos y tiene la firma siguiente:

(dataSourcePath) as list => ...

Donde dataSourcePath es el valor del Ruta de acceso del origen de datos para la función, y el valor devuelto es una lista compuesta por:

  • El nombre de la función que se va a llamar (esta función debe marcarse como #sharedy normalmente es la función de origen de datos principal).
  • Uno o varios argumentos para pasar a tu función.

Si la invocación de la función produce un error, Se considera que TestConnection ha producido un error y no se conservará la credencial.

Nota:

Como se indicó anteriormente, el nombre de la función proporcionado por TestConnection debe ser un miembro shared.

Ejemplo: Conector sin argumentos requeridos

El fragmento de código siguiente implementa TestConnection para un origen de datos sin parámetros necesarios (como el que se encuentra en el tutorial de TripPin). Los conectores sin parámetros necesarios (denominados "Singletons") no necesitan ninguna entrada proporcionada por el usuario para probar una conexión (excepto las credenciales). En este caso, el dataSourcePath valor sería igual al nombre del tipo de origen de datos y se puede omitir. La TripPin.Contents función se invoca sin parámetros adicionales.

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

Ejemplo: Conector con un parámetro de dirección URL

Si la función del origen de datos tiene un único parámetro necesario del tipo Uri.Type, su dataSourcePath será igual a la dirección URL proporcionada por el usuario. En el fragmento de código siguiente se muestra la implementación testConnection del ejemplo de Github.

GithubSample = [
    TestConnection = (dataSourcePath) => {"GithubSample.Contents", dataSourcePath},
    Authentication = [
        OAuth = [
            StartLogin = StartLogin,
            FinishLogin = FinishLogin,
            Label = Extension.LoadString("AuthenticationLabel")
        ]
    ]
];

Ejemplo: Conector con parámetros necesarios

Si la función de origen de datos tiene varios parámetros o un único parámetro que no es url, el dataSourcePath valor será una cadena JSON que contiene los parámetros. El fragmento de código siguiente procede del ejemplo 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"
];