Dépanner l'ingestion ServiceNow
Cette page décrit les problèmes courants avec le connecteur ServiceNow dans Databricks Lakeflow Connect et comment les résoudre.
Pour obtenir des conseils généraux de dépannage applicables à tous les pipelines d'ingestion gérés, consultez Dépanner les pipelines d'ingestion gérés.
L'ingestion pour une table particulière est lente
Dans un premier temps, collaborez avec votre administrateur ServiceNow pour activer l'indexation sur la colonne du curseur. La colonne du curseur est sélectionnée dans la liste suivante, par ordre de préférence : sys_updated_on (1er choix), sys_created_on (2e choix), sys_archived (3e choix). Puis, réessayez votre pipeline d'ingestion. Si le problème persiste, ouvrez un ticket. Pour obtenir des instructions sur l'activation de l'indexation dans ServiceNow, consultez la documentation de ServiceNow.
Pourquoi est-ce que je ne vois pas les suppressions auxquelles je m'attends ?
Databricks utilise la table sys_audit_delete pour suivre les suppressions. Cela peut prendre 3 à 5 minutes pour que les suppressions apparaissent dans la table sys_audit_delete côté ServiceNow. Patientez quelques minutes, puis réessayez le pipeline. Si le problème persiste, ouvrez un ticket d’assistance.
Erreur de redirect_uri invalide
Cela signifie généralement qu'il y a une faute de frappe dans l'URL de redirection dans ServiceNow. Essayez de copier l'URL et de la coller dans un décodeur d'URL de votre choix. Dans l'URL décodée, confirmez que le parameter redirect-uri est au format suivant :
https://<workspace>/login/oauth/servicenow.html
Erreur d'authentification
Erreur :
com.databricks.pipelines.execution.conduit.common.DataConnectorException: [SERVICENOW_CONNECTION_ERROR.OAUTH_TOKEN_EXCHANGE] Failed to authenticate to ServiceNow. This can be caused by issues with your UC credentials, ServiceNow OAuth setup, and more...
Étape 1 :
Confirmez que vous avez fourni le nom d'utilisateur, le mot de passe, l'ID client et le secret client corrects lors de la création de la connexion Unity Catalog. Le nom d'utilisateur et le mot de passe pour l'authentification à ServiceNow ne sont pas nécessairement vos nom d'utilisateur et mot de passe personnels pour le SSO. Il s'agit des valeurs de nom d'utilisateur et de mot de passe associées à un utilisateur destinées à l'authentification et à l'ingestion avec des services externes.
- Catalog Explorer
- curl
-
Dans la barre latérale du Workspace Databricks, cliquez
sur **Catalogue**.
-
En haut du volet Catalogue , cliquez sur l'icône
en forme d'engrenage et sélectionnez Connexions dans le menu.
-
Cliquez sur le nom de la connexion.
Les détails de la connexion sont répertoriés dans l'onglet Aperçu .
Exécutez la requête curl suivante. Remplacez les éléments entre crochets par vos propriétés de connexion.
curl -X POST "https://<instance-id>.service-now.com/oauth_token.do" \
--header "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=password" \
--data-urlencode "client_id=<client-id>" \
--data-urlencode "client_secret=<client-secret>" \
--data-urlencode "username=<username>" \
--data-urlencode "password=<password>"
Si la requête aboutit (vous recevez votre jeton d'accès, votre jeton refresh, et votre périmètre dans la réponse), les informations d'identification sont correctes. Procédez à l'étape de dépannage suivante.
Si la requête échoue, le message d'erreur suivant est renvoyé :
{"error_description":"access_denied","error":"server_error"}
Étape 2 :
Confirmez que l'utilisateur authentifié a le rôle admin. Databricks recommande également que l'utilisateur qui s'authentifie dispose du rôle snc_read_only pour restreindre davantage les autorisations.
Étape 3 :
Confirmez que l'utilisateur d'authentification est marqué comme Actif :
-
Dans ServiceNow, cliquez sur Organization > Users .
-
Sélectionnez l’utilisateur que vous comptez utiliser pour l’authentification.
-
Confirmez que la case Active est cochée.

**Étape 4** :
Confirmez que le plug-in OAuth 2.0 dans ServiceNow est actif :
-
Dans ServiceNow, cliquez sur System Definition > Plugins .
-
Exécutez le script suivant dans la section Scripts - Background :
var oauthActive = gs.getProperty('com.snc.platform.security.oauth.is.active');
gs.info('OAuth Active: ' + oauthActive);Si le script renvoie
true, l'installation du plugin a réussi. Si ce script retournefalse, désinstallez-le, puis réinstallez-le.
Étape 5 :
Confirmez que l'authentification multifactorielle (MFA) est correctement configurée. ServiceNow exige l'MFA par default pour l'OAuth U2M. Si vous rencontrez des échecs d'authentification, confirmez les points suivants :
- Vous avez fourni votre deuxième méthode d’authentification lors de la connexion.
- L’authentification des utilisateurs n’est pas bloquée par les politiques MFA.
Un administrateur ServiceNow peut exempter les utilisateurs s’authentifiant de l’exigence MFA. Pour les instructions, consultez Exemption d’utilisateur dans la documentation ServiceNow.
Étape 6 :
Confirmez que l’endpoint OAuth est configuré correctement :
-
Dans ServiceNow, accédez à System OAuth > Application Registry .
-
Dans le coin supérieur droit, cliquez sur **Nouveau**.
-
Dans les options de l'application OAuth, cliquez sur Créer un endpoint d'API OAuth pour les clients externes .

-
Confirmez que la case Active est cochée.

Une fois que vous avez créé l'application OAuth avec succès, elle apparaît dans la liste sous System OAuth > Application Registry avec le type OAuth Client .
**Étape 7** :
Si le problème persiste après avoir suivi ces étapes de dépannage, veuillez ouvrir un ticket d'assistance.