Intégration avec les connecteurs par push

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Intégrez un connecteur par push pour vous connecter à une source d’événement externe. Les connecteurs push traitent les messages d’événement collectés et les transforment au format d’événement requis.

    Avant de commencer

    Assurez-vous que le module d’extension Gestion des événements Connecteurs (sn_em_connector) est installé.

    Rôle requis : evt_mgmt_admin

    Remarque :
    Si vous mettez à niveau une instance à partir d’une instance ou une version antérieure, vous pouvez utiliser des ServiceNow AI Platform scripts de Paris transformation d’écouteur hérités. Voir Utiliser les scripts de transformation d’écouteur hérités pour plus d’informations.

    Pourquoi et quand exécuter cette tâche

    Les connecteurs par push acceptent les messages d’événements générés par des sources d’événements externes.

    Configurez un connecteur pour écouter une source d’événement externe. À l’aide d’un connecteur push personnalisé, envoyez les messages d’événement via l’instance Serveur MID ou l’autre.

    Remarque :
    Vous pouvez utiliser cette URL cible JSON générique pour collecter des événements : https :/<<INSTANCE>>/api/sn_em_connector/em/inbound_event ?source=genericJson. Cette URL peut être utilisée telle quelle et nécessite la configuration d’une règle d’événement.

    Procédure

    1. Accédez à la Tous > Gestion des événements > Intégrations > Connecteurs par push.
    2. Cliquez sur Nouveau ou sur le connecteur push que vous souhaitez modifier, par exemple, AWS ou sur Azure.
    3. Remplissez les champs du formulaire.
      Champ Description
      Nom Nomunique de ce connecteur poussoir pour une identification facile.
      Description Entrez une description pour l’utilisation du connecteur push.
      Nom de l'en-tête Spécifiez le nom de l’en-tête pour lequel vous voulez la valeur, par exemple Set-Header.
      Valeur de l'en-tête Valeur du nom d’en-tête pour lequel vous voulez la valeur, par exemple Set-Header.
      Type Sélectionnez cette option pour envoyer les événements d’instance ou MID. Dans chaque cas, utilisez l’URL du type sélectionné. Consultez la description du champ de valeur du paramètre d’URL .
      Actives Sélectionnez cette option pour permettre l’extraction d’événements de cette source d’événement externe.
      Ordre Ordre dans lequel une règle d’événement est évaluée lorsque plusieurs règles sont définies pour le même type d’événement. Les règles d’événements sont évaluées par ordre croissant.
      Valeur du paramètre d'URL
      • Envoyer des événements à l’instance.

        Utilisez l’URL au format suivant pour tous les connecteurs : https://<<INSTANCE>>/api/sn_em_connector/em/inbound_event ?source={URL_parameter_value}

      • Envoyer des événements via le Serveur MID fichier .

        Utiliser l’URL au format :http://{MID_Server_IP} :{MID_Web_Server_Port}/api/mid/em/inbound_event ? Transform={Transform_script}

        Remarque :
        L’envoi Serveur MID d’événements nécessite la configuration préalable de l’extension d’écouteur d’événements MID WebService.
    4. Dans la section Script :
      • Si la valeur sélectionnée pour le champ Type est MID, le champ Script de transformation s’affiche. Dans ce champ, spécifiez ou recherchez le nom de l’include de script MID qui accepte les messages d’événements générés par la source d’événement externe requise et que le script analyse au format d’événement requis. Utilisez cette convention de dénomination pour le script : TransformEvents_<votre source>
      • Si la valeur sélectionnée pour le champ Type est Instance, l’éditeur de script apparaît. Dans l’éditeur de script , entrez le script personnalisé qui accepte les messages d’événement générés par la source d’événement externe requise et que le script analyse au format d’événement requis.
      Cet exemple montre les champs qui ont été transformés, ajoutés à un formulaire d’événement.
      (function process(/*RESTAPIRequest*/ request, body) {
      	/*Function that receives a JSON object, adding all its fields to the Additional information object. The field name is a concatenation of the field key and the parent field key if it exists.*/
      	function updateAdditionalInfo(event, field,jsonObject,additionalInfo) {
              for (var key in jsonObject) {
                  var newKey = key;
                  if (field != "") {
                      newKey = field + '_' + key;
                  }
      			// You can do some transformation here and set fields on the event
      			//if(key == "MySource")
      			//   event.source = jsonObject[key];
                  additionalInfo[newKey] = jsonObject[key];
              }
          }
          
          try
      	{		
              gs.info("TransformEvents_generic received body:" + body);
      		var jsonObject = JSON.parse(body);
              var event = new GlideRecord('em_event');
      		event.source = "GenericJson"; //TODO: Need to define
              event.event_class = "GenericJsonClass"; //TODO: Need to define
              event.severity = "5";
      		
              var additionalInfo = {};
              updateAdditionalInfo(event, "",jsonObject,additionalInfo);
      		/*Iterates over Additional information JSON object and adds all nested objects' fields as fields of the Additional information object*/
              var notDone = true;
              while (notDone) {
                  notDone = false;
                  for (var key in additionalInfo) {
                      if (Object.prototype.toString.call(additionalInfo[key]) == '[object Object]') {
                          notDone = true;
                          updateAdditionalInfo(event, key,additionalInfo[key],additionalInfo);
      					additionalInfo[key] = "";
                      }
                  }
              }
      		gs.info("TransformEvents_generic generated additional information:" + JSON.stringify(additionalInfo));
              event.additional_info = JSON.stringify(additionalInfo);
              event.insert();
      	}
      	catch(er){
      		gs.error(er);
      		status=500;
      		return er;
      	}
      	return "success";
      })(request, body);