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 => {
...
});