Compartir a través de


Solución de problemas y depuración del código de inserción

Al desarrollar una solución de análisis insertada, es posible que se produzcan errores. Cuando esto sucede, debe averiguar por qué se produjo el error.

Use el evento error para depurar la solución de análisis insertada y comprender mejor lo que causó los errores.

Si hay un error que no sabe cómo controlar, siempre puede buscar o formular una pregunta en Stack Overflow.

Buscar qué error se produjo

Un evento error se desencadena cuando se produce un error. Puede escuchar el evento mediante element.on(...)y, a continuación, establecer un controlador de eventos.

report.on('error', (errorObject) => {
    ...
});

Para obtener más información sobre el control de eventos, vea Cómo controlar eventos.

El evento error devuelve un objeto IError:

interface IError {
    message: string;
    detailedMessage?: string;
    errorCode?: string;
    level?: TraceType;
    technicalDetails?: ITechnicalDetails;
}

Por ejemplo, cuando expire el token, obtendrá el siguiente objeto de error:

{
    "message": "TokenExpired",
    "detailedMessage": "Access token has expired, resubmit with a new access token",
    "errorCode": "403"
}

Para obtener información sobre cómo actualizar el token de acceso, consulte Actualizar el token de acceso.

Solución de problemas

Después de adquirir el objeto IError, compárelo en la Solución de problemas de la aplicación insertada con el objeto IError tabla y busque las posibles causas del error.

Nota

Hay una tabla de errores comunes para los usuarios de Power BI (también conocido como inserción de para la organización) y para usuarios que no son de Power BI (también conocidos como insertar para los clientes).

Depuración en la consola del explorador

También puede depurar simplemente la aplicación en la consola del explorador. Por ejemplo, escriba el siguiente fragmento de código después de tener una instancia de inserción:

// Add a listener to 'error' events
report.on('error', (errorObject) => {
    const err = errorObject.detail;

    // Print the error to console
    console.log(`Error occurred: ${err.message}. Detailed message: ${err.detailedMessage}`);
    console.log(err);
});

Detectar los errores de las API

La mayoría de las API de cliente son funciones asincrónicas de que devuelven un Promise.

Si usa el patrón async/await, debe usar try/catch para detectar posibles errores. Por ejemplo:

try {
    ...

    // Set a new access token
    await report.setAccessToken(newAccessToken.token);
} catch (e) {
    ...
}

Si no usa el patrón async/await, puede usar la función catch para detectar posibles errores. Por ejemplo:

// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
    ...
});