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 :
Vérifiez 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. Pour les connexions OAuth machine à machine (M2M), confirmez uniquement l’identifiant client et le secret client. Le nom d’utilisateur et le mot de passe d’authentification auprès de ServiceNow ne sont pas nécessairement votre nom d’utilisateur et votre mot de passe personnels pour Single Sign On (la SSO). Ce sont les valeurs du nom d’utilisateur et du mot de passe associées à un utilisateur destiné à l’authentification et à l’ingestion avec des services externes.
- Catalog Explorer
- Curl (ROPC)
- Curl (M2M)
-
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"}
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=client_credentials" \
--data-urlencode "client_id=<client-id>" \
--data-urlencode "client_secret=<client-secret>"
Si la requête aboutit (vous recevez un jeton d'accès dans la réponse), les identifiants sont corrects. Passez à l'étape suivante de résolution des problèmes.
Si la demande échoue, vérifiez les éléments suivants :
- La propriété système
glide.oauth.inbound.client.credential.grant_type.enabledest définie surtrue. Voir Activer l'octroi d'identifiants de client. - L'application OAuth possède un utilisateur d'application OAuth , et cet utilisateur est actif. Consultez Créer une application OAuth.
Étape 2 :
Confirmez que l'utilisateur qui s'authentifie dispose des autorisations dans Accorder des autorisations utilisateur. Pour un accès administrateur, l'utilisateur a besoin du rôle admin, et Databricks recommande le rôle snc_read_only pour limiter davantage les autorisations. Pour un accès avec le moindre privilège, l'utilisateur a besoin des ACL au niveau de la table documentées. Pour les connexions OAuth M2M, l'utilisateur qui s'authentifie est l’ Utilisateur de l’application OAuth dans l’application OAuth.
É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.