ServiceNow

Le connecteur ServiceNow vous permet d'effectuer des opérations d'insertion, de suppression, de mise à jour et de lecture sur la base de données ServiceNow.

Avant de commencer

Avant d'utiliser le connecteur Servicenow, effectuez les tâches suivantes:

  • Dans votre projet Google Cloud :
    • Accorder à l'utilisateur le rôle IAM roles/connectors.admin configuration du connecteur.
    • Attribuez les rôles IAM suivants au compte de service que vous souhaitez utiliser pour le connecteur :
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Un compte de service est un compte Google spécial destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google. Si vous ne possédez pas de compte de service, vous devez en créer un. Pour plus d'informations, consultez la section Créer un compte de service.

    • Activez les services suivants :
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Pour savoir comment activer des services, consultez la page Activer des services.

    Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer lors de la configuration du connecteur.

  • Accordez l'accès aux tables suivantes dans votre instance ServiceNow:

    • sys_db_object
    • sys_dictionary
    • sys_glide_object

    Cette autorisation est nécessaire pour que le connecteur puisse se connecter à vos données. Pour fournir l'accès, procédez comme suit:

    1. Dans votre application ServiceNow, accédez à Sécurité du système > Contrôles des accès (LCA)
    2. Sélectionnez New (Nouveau) pour créer un objet de contrôle des accès.
    3. Dans le champ Type, sélectionnez record (enregistrement).
    4. Dans le champ Opération, sélectionnez lecture.
    5. Dans le champ Nom, sélectionnez Table [sys_db_object] dans le premier menu déroulant et --None-- dans le deuxième menu déroulant.
    6. Dans la section Rôle requis, double-cliquez sur la zone de texte Insérer une nouvelle ligne.... puis recherchez et sélectionnez le rôle souhaité.
    7. Cliquez sur Envoyer pour créer l'objet LCA.
    8. Attribuez à l'utilisateur authentifié le rôle associé à la LCA créée. Pour ce faire, accédez à Administration des utilisateurs > Utilisateurs > Sélectionnez "Authentification de l'utilisateur" > Rôles > Modifier... > puis ajoutez votre rôle à partir de votre collection.

Configurer le connecteur

Pour configurer le connecteur, vous devez créer une connexion à votre source de données (système backend). Une connexion est spécifique à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit :

  1. Dans la console Cloud, accédez à la page Integration Connectors > Connections (Connecteurs d'intégration > Connexions), puis sélectionnez ou créez un projet Google Cloud.

    Accéder à la page "Connexions"

  2. Cliquez sur + CRÉER pour ouvrir la page Créer une connexion.
  3. Dans la section Emplacement, choisissez l'emplacement de la connexion.
    1. Région : sélectionnez un emplacement dans la liste déroulante.

      Pour obtenir la liste de toutes les régions disponibles, consultez la page Emplacements.

    2. Cliquez sur NEXT (Suivant).
  4. Dans la section Détails de connexion, procédez comme suit :
    1. Connecteur : sélectionnez ServiceNow dans la liste déroulante des connecteurs disponibles.
    2. Version du connecteur : sélectionnez la version du connecteur dans la liste déroulante des versions disponibles.
    3. Dans le champ Nom de connexion, saisissez un nom pour l'instance de connexion.

      Les noms de connexion doivent répondre aux critères suivants :

      • Les noms de connexion peuvent contenir des lettres, des chiffres ou des traits d'union.
      • Les lettres doivent être en minuscules.
      • Les noms de connexion doivent commencer par une lettre et se terminer par une lettre ou un chiffre.
      • Les noms de connexion ne peuvent pas dépasser 63 caractères.
    4. Saisissez éventuellement une Description pour l'instance de connexion.
    5. Compte de service : sélectionnez un compte de service disposant des rôles requis.
    6. Pour utiliser la connexion pour souscrire des abonnements à des événements, sélectionnez Activer l'abonnement aux événements. Sélection... affiche les options suivantes:
      • Activer l'abonnement à des événements avec une entité et des actions: sélectionnez cette option pour utiliser la connexion pour les opérations d'abonnement aux événements et de connecteur (entités et actions).
      • Activer uniquement l'abonnement à un événement: sélectionnez cette option pour utiliser la connexion. uniquement pour l'abonnement à un événement. Si vous sélectionnez cette option, cliquez sur Suivant, puis configurer un abonnement à un événement.
    7. Vous pouvez également configurer les paramètres du nœud de connexion :

      • Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
      • Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.

      Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Pour traiter plus de transactions pour une connexion, plus de nœuds sont nécessaires. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez la section Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour une meilleure disponibilité) et le nombre maximal sur 50.

    8. Utiliser un proxy : cochez cette case pour configurer un serveur proxy pour la connexion, et spécifiez les valeurs suivantes :
      • Schéma d'authentification du proxy : sélectionnez le type d'authentification pour l'authentification auprès du serveur proxy. Les types d'authentification suivants sont compatibles :
        • Basique : authentification HTTP de base.
        • Condensé : authentification HTTP par condensé.
      • Utilisateur du proxy : nom d'utilisateur à utiliser pour l'authentification auprès du serveur proxy.
      • Mot de passe du proxy : secret Secret Manager du mot de passe de l'utilisateur.
      • Type SSL du proxy : type SSL à utiliser lors de la connexion au serveur proxy. Les types d'authentification suivants sont compatibles :
        • Auto : paramètre par défaut. Dans le cas d'une URL HTTPS, l'option "Tunnel" est utilisée. Dans le cas d'une URL HTTP, l'option "JAMAIS" est utilisée.
        • Toujours : la connexion SSL est toujours activée.
        • Jamais : la connexion n'est pas activée pour SSL.
        • Tunnel : la connexion s'effectue via un proxy de tunnelisation. Le serveur proxy ouvre une connexion à l'hôte distant et le trafic transite par le proxy.
      • Dans la section Serveur proxy, saisissez les détails du serveur proxy.
        1. Cliquez sur + Ajouter une destination.
        2. Sélectionnez un type de destination.
          • Adresse de l'hôte : spécifiez le nom d'hôte ou l'adresse IP de la destination.

            Si vous souhaitez établir une connexion privée à votre système backend, procédez comme suit :

    9. Vous pouvez également cliquer sur + AJOUTER UN LIBELLÉ pour ajouter un libellé à la connexion sous la forme d'une paire clé/valeur.
    10. Cliquez sur NEXT (Suivant).
  5. Dans la section Destinations, saisissez les informations concernant l'hôte distant (système backend) auquel vous souhaitez vous connecter.
    1. Type de destination : sélectionnez un type de destination.
      • Sélectionnez Adresse hôte dans la liste pour spécifier le nom d'hôte ou l'adresse IP de la destination.
      • Si vous souhaitez établir une connexion privée à vos systèmes backend, sélectionnez Rattachement du point de terminaison dans la liste, puis sélectionnez le rattachement du point de terminaison requis dans la liste Rattachement du point de terminaison.

      Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité supplémentaire, vous pouvez envisager de configurer des adresses IP sortantes statiques pour vos connexions, puis de configurer vos règles de pare-feu pour ajouter à la liste d'autorisation uniquement les adresses IP statiques spécifiques.

      Pour saisir d'autres destinations, cliquez sur + AJOUTER UNE DESTINATION.

    2. Cliquez sur NEXT (Suivant).
  6. Dans la section Authentification, saisissez les informations d'authentification.
    1. Sélectionnez un type d'authentification, puis saisissez les informations appropriées.

      Les types d'authentification suivants sont compatibles avec la connexion Servicenow :

      • Nom d'utilisateur et mot de passe
    2. Pour comprendre comment configurer ces types d'authentification, consultez la section Configurer l'authentification.

    3. Cliquez sur SUIVANT.
  7. Si vous avez activé l'abonnement aux événements, la section Détails de l'abonnement aux événements s'affiche sur la page de création de connexion. Pour comprendre comment configurer les détails de l'abonnement à un événement, consultez Configurer un abonnement à un événement.
  8. Vérifiez vos informations de connexion et d'authentification.
  9. Cliquez sur Créer.

Configurer l'authentification

Saisissez les détails en fonction de l'authentification que vous souhaitez utiliser.

  • Nom d'utilisateur et mot de passe
    • Nom d'utilisateur : nom d'utilisateur ServiceNow à utiliser pour la connexion.
    • Mot de passe: secret Secret Manager contenant le mot de passe associé au nom d'utilisateur ServiceNow.

Configurer l'abonnement à un événement [Preview]

Si vous avez activé l'abonnement à l'événement, saisissez les valeurs suivantes dans la section Détails de l'abonnement aux événements:

  • Jeton d'authentification: (facultatif) sélectionnez le secret Secret Manager de votre jeton d'authentification, ainsi que la version du secret correspondante dans le champ Menu déroulant Version du secret.
  • Algorithme HMAC: (facultatif) sélectionnez l'algorithme HMAC pour chiffrer la charge utile de la réponse.
  • Clé secrète HMAC: si vous avez sélectionné un algorithme HMAC, sélectionnez le code secret Secret du gestionnaire de la clé HMAC et version du secret correspondante à partir de Menu déroulant Version du secret.

Étapes de création de la connexion après la publication

Pour terminer la configuration de l'abonnement à un événement, vous devez enregistrer l'URL du webhook auprès de votre application ServiceNow. Une fois la connexion créée, effectuez les étapes supplémentaires suivantes:

  1. Accédez à la page d'informations de la connexion que vous venez de créer, puis copiez l'URL du webhook pour l'abonnement à l'événement.
  2. Connectez-vous à votre application ServiceNow et procédez comme suit:
    1. Dans la colonne Tous > Règles d'entreprise > Quand exécuter, sélectionnez l'opération que vous souhaitez écouter.
    2. Cliquez sur l'onglet Advanced (Avancé). Un éditeur de script s'ouvre.
    3. Saisissez un code JavaScript qui envoie une requête à l'URL de rappel. La requête contient charge utile déclenchée chaque fois que l'une des opérations activées se produit. Voici un exemple de code JavaScript: <ph type="x-smartling-placeholder">
      </ph>

      Modèle

      (function executeRule(current, previous /*null when async*/ ) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('WEBHOOK_URL'); // here you must the listener url where you want send the event payload
      
      request.setHttpMethod('POST');
      
      var authToken = "AUTHENTICATION_TOKEN"
      request.setRequestHeader("authorization", authToken);
      request.setRequestHeader("Accept", "application/json");
      request.setRequestHeader('Content-Type', 'application/json');
      
      request.setRequestBody("{\"eventType\":\"" +
      "EVENT_TYPE" + CUSTOM_FIELDS "\"}");
      
      var data = request.getRequestBody();
      var secretKey = "SECRET_KEY";
      
      var signature = SncAuthentication.encode(data, secretKey, "ENCRYPTION_ALGORITHM");
      request.setRequestHeader("hmacauthorization",signature);
      var response = request.execute();
      
      })(current, previous);
      

      Remplacez les éléments suivants :

      • WEBHOOK_URL: URL du webhook pour l'abonnement à l'événement que vous auriez obtenu via le page d'informations de connexion d'Integration Connectors.
      • AUTHENTICATION_TOKEN: texte réel du jeton d'authentification que vous avez configuré pour la connexion.
      • EVENT_TYPE: texte réel du type d'événement que vous avez configuré dans le déclencheur ServiceNow.
      • CUSTOM_FIELDS: le corps de la requête doit toujours comporter le champ eventType. En plus de ce champ, vous pouvez ajouter d'autres champs selon vos besoins.
      • SECRET_KEY: texte de la clé secrète que vous avez configurée pour la connexion.
      • ENCRYPTION_ALGORITHM: doit correspondre à l'une des valeurs suivantes: <ph type="x-smartling-placeholder">
          </ph>
        • HmacSHA224
        • HmacSHA256
        • HmacSHA384
        • HmacSHA512

        L'algorithme doit être identique à celui que vous avez configuré pour la connexion.

      Exemple

      (function executeRule(current, previous /*null when async*/ ) {
      var request = new sn_ws.RESTMessageV2();
      request.setEndpoint('https://webhook.site/bb37937e-24ea-19b3-9dcd-84eca77f60eg'); // here you must the listener url where you want send the event payload
      
      request.setHttpMethod('POST');
      
      var authToken = "YWRtaW46ZkVpNypxVzhCL3VY"
      request.setRequestHeader("authorization", authToken);
      request.setRequestHeader("Accept", "application/json");
      request.setRequestHeader('Content-Type', 'application/json');
      
      request.setRequestBody("{\"caller_id\":\"" +
      current.caller_id + "\",\"eventType\":\"" +
      "service_now_event_type_1" + "\",\"company\":\"" +
      current.company + "\",\"number\":\"" +
      current.number + "\",\"description\":\"" +
      current.description + "\",\"FirstName\":\"" +
      current.u_firstname + "\",\"LastName\":\"" +
      current.u_lastname + "\",\"status\":\"" +
      current.u_status + "\",\"Element\":\"" +
      current.getElement() + "\",\"category\":\"" +
      current.category + "\",\"opened_at\":\"" +
      current.opened_at + "\",\"opened_by\":\"" +
      current.opened_by + "\",\"location\":\"" +
      current.location + "\",\"salesforceId\":\"" +
      current.u_salesforceid + "\"}"); //fields you want
      
      var data = request.getRequestBody();
      var secretKey = "YWRtaW46ZkVpNypxVzhCL3VY";
      
      // var MAC_ALG_4 = "HmacSHA384";
      var MAC_ALG_3 = "HmacSHA256";
      // var MAC_ALG_5 = "HmacSHA512";
      // var MAC_ALG_2 = "HmacSHA224";
      
      var signature = SncAuthentication.encode(data, secretKey, MAC_ALG_3);
      request.setRequestHeader("hmacauthorization",signature);
      var response = request.execute();
      
      })(current, previous);

Entités, opérations et actions

Tous les connecteurs Integration Connectors fournissent une couche d'abstraction pour les objets de l'application connectée. Vous ne pouvez accéder aux objets d'une application que via cette abstraction. L'abstraction vous est présentée en tant qu'entités, opérations et actions.

  • Entité : une entité peut être considérée comme un objet ou un ensemble de propriétés dans l'application ou le service connecté. La définition d'une entité diffère d'un connecteur à l'autre. Par exemple, dans un connecteur de base de données, les tables sont les entités, dans un connecteur de serveur de fichiers, les dossiers sont les entités et, dans un connecteur de système de messagerie, les files d'attente sont les entités.

    Toutefois, il est possible qu'un connecteur ne soit pas compatible ou ne possède aucune entité. Dans ce cas, la liste Entities est vide.

  • Opération : une opération est l'activité que vous pouvez effectuer sur une entité. Vous pouvez effectuer l'une des opérations suivantes sur une entité :

    La sélection d'une entité dans la liste disponible génère une liste d'opérations disponibles pour l'entité. Pour obtenir une description détaillée des opérations, consultez les opérations d'entité de la tâche de connecteur. Toutefois, si un connecteur n'accepte aucune des opérations d'entité, ne sont pas répertoriées dans la liste Operations.

  • Action : une action est une fonction de première classe mise à la disposition de l'intégration via l'interface du connecteur. Une action vous permet de modifier une ou plusieurs entités, et varie d'un connecteur à l'autre. Normalement, une action comporte des paramètres d'entrée et une sortie . Toutefois, il est possible qu'un connecteur ne prenne en charge aucune action, auquel cas la liste Actions est vide.

Actions

Cette section liste toutes les actions compatibles avec la connexion Servicenow.

Action "UploadAttachment" (Importer une pièce jointe)

Cette action Importez un fichier en tant que pièce jointe à un enregistrement spécifié.

Paramètres d'entrée de l'action UploadAttachment

Nom du paramètre Type de données Requis Description
Contenu Chaîne Non Contenu de chaîne à importer sous forme de fichier.
ContentBytes Chaîne Non Contenu en octets à importer en tant que fichier.
HasBytes Booléen Non Indique si le contenu doit être importé sous la forme d'octets.
TableName Chaîne Non Nom de la table à laquelle joindre le fichier.
TableSysId Chaîne Non Sys_id de l'enregistrement dans la table spécifiée par TableName à laquelle vous souhaitez joindre le fichier.

Paramètres de sortie de l'action UploadAttachment

Cette action renvoie un ensemble de paramètres à partir de l'entité importée

Par exemple, pour configurer l'action UploadAttachment, consultez les exemples.

Action DownloadAttachment

Cette action permet de télécharger une pièce jointe à partir d'un enregistrement spécifique.

Paramètres d'entrée de l'action DownloadAttachment

Nom du paramètre Type de données Requis Description
SysId Chaîne Oui Identifiant système du fichier en pièce jointe.
HasBytes Booléen Non Indique si le contenu doit être téléchargé sous forme d'octets.

Paramètres de sortie de l'action DownloadAttachment

Cette action indique si la valeur du téléchargement est "True" ou "False" via le paramètre "Success" et, si elle est définie sur "True", génère le contenu de DownloadAttachment.

Par exemple, pour configurer l'action DownloadAttachment, consultez les exemples.

Examples

Cette section décrit comment effectuer certaines opérations sur les entités dans ce connecteur.

Exemple : Importer une pièce jointe pour un incident

  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action UploadAttachment, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors (Connecteurs), cliquez sur connectorInputPayload, puis saisissez une valeur semblable à celle-ci dans la section Champ Default Value:
    {
      "Content": "File is uploaded",
      "TableName": "Incident",
      "TableSysId": "018f4057473ae5104593a6b5316d4357"
    }
  4. Cet exemple importe la valeur Content de la charge utile en pièce jointe et renvoie l'ensemble des paramètres pour l'entité "importée". Si l'action aboutit, la Réponse connectorOutputPayload de la tâche UploadAttachment aura une valeur semblable à celle-ci:

    {
                          "SysId": "a667f5d1939be110ff87352d6cba10fc",
                          "FileName": "7043426257788756581.connector.txt",
                          "TableSysId": "018f4057473ae5104593a6b5316d4357",
                          "TableName": "Incident",
                          "DownloadLink": "https://gcp.service-now.com/api/now/v1/attachment/a667f5d1939be110ff87352d6cba10fc/file",
                          "ContentType": "text/plain",
                          "SizeBytes": "16",
                          "ChunkSizeBytes": "700000",
                          "Compressed": "true",
                          "SizeCompressed": "36",
                          "SysTags": "",
                          "ImageHeight": "",
                          "ImageWidth": "",
                          "AverageImageColor": "",
                          "SysModCount": "0",
                          "Hash": "807e96c2942c41ad699d004a9d6a74595c84fab09111d479b6bbe013d5debff6",
                          "State": "pending",
                          "SysUpdatedBy": "gcp2",
                          "SysUpdatedOn": "2023-06-07 07:23:34",
                          "SysCreatedBy": "gcp2",
                          "SysCreatedOn": "2023-06-07 07:23:34",
                          "encryption_context": ""
                        }

Exemple : Télécharger la pièce jointe d'un incident

  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action DownloadAttachment, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors (Connecteurs), cliquez sur connectorInputPayload, puis saisissez une valeur semblable à celle-ci dans la section Champ Default Value:
    {
      "SysId": "440c3995471fe1104593a6b5316d4384"
    }
  4. Cet exemple indique si la valeur de téléchargement est "True" ou "False" via le paramètre "Success" et, si la valeur est "True", génère le contenu de DownloadAttachment. Si l'action aboutit, la Réponse connectorOutputPayload de la tâche DownloadAttachment aura une valeur semblable à celle-ci:

    [
                        {
                          "Success": "True"
                        },
                        {
                          "Content": " A Simple Text File \r\n\r\n\r\n This is a small demonstration .txt file - \r\n just for use in the Virtual Mechanics tutorials. More text. And more \r\n text. And more text. And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. And more text. Boring, zzzzz. And more text. And more text. And \r\n more text. And more text. And more text. And more text. And more text. \r\n And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. And more text. And more text. Even more. Continued on page 2 ...\r\n Simple PDF File 2 \r\n ...continued from page 1. Yet more text. And more text. And more text. \r\n And more text. And more text. And more text. And more text. And more \r\n text. Oh, how boring typing this stuff. But not as boring as watching \r\n paint dry. And more text. And more text. And more text. And more text. \r\n Boring. More, a little more text. The end, and just as well. "
                        }]

Limites du système

Le connecteur ServiceNow peut traiter jusqu'à 10 transactions par seconde, par nœud, et les limitations toute transaction au-delà de cette limite. Par défaut, Integration Connectors alloue deux nœuds (pour une meilleure disponibilité) à une connexion.

Pour en savoir plus sur les limites applicables à Integration Connectors, consultez Limites.

Utiliser Terraform pour créer des connexions

Vous pouvez utiliser l'outil Terraform ressource pour créer une connexion.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Pour afficher un exemple de modèle Terraform pour la création de connexions, consultez cet exemple de modèle.

Lorsque vous créez cette connexion à l'aide de Terraform, vous devez définir les variables suivantes dans votre fichier de configuration Terraform:

Nom du paramètre Type de données Requis Description
proxy_enabled VALEUR BOOLÉENNE Faux Cochez cette case pour configurer un serveur proxy pour la connexion.
proxy_auth_scheme ENUM Faux Type d'authentification à utiliser pour s'authentifier auprès du proxy ProxyServer. Les valeurs acceptées sont: BASIC, DIGEST, NONE
proxy_user STRING Faux Nom d'utilisateur permettant de s'authentifier auprès du proxy ProxyServer.
proxy_password SECRET Faux Mot de passe à utiliser pour l'authentification auprès du proxy ProxyServer.
proxy_ssltype ENUM Faux Type SSL à utiliser lors de la connexion au proxy ProxyServer. Les valeurs acceptées sont: AUTO, ALWAYS, NEVER et TUNNEL.
include_system_tables VALEUR BOOLÉENNE Faux Détermine si les tables système doivent être exposées ou non.
filter_tables STRING Faux Spécifiez les tables que vous souhaitez afficher dans une liste d'éléments séparés par une virgule.

Utiliser la connexion ServiceNow dans une intégration

Une fois la connexion créée, elle devient disponible à la fois Apigee Integration et Application Integration. Vous pouvez utiliser la connexion lors d'une intégration via la tâche "Connecteurs".

  • Pour comprendre comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez la section Tâche Connecteurs.
  • Pour découvrir comment créer et utiliser la tâche Connecteurs dans Application Integration, consultez la section Tâche Connecteurs.

Obtenir de l'aide auprès de la communauté Google Cloud

Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.

Étape suivante