ProducteurV2 - Dans le champ d’application

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 2 minutes de lecture
  • L’API ProducerV2 fournit des méthodes pour publier des messages de votre ServiceNow instance vers une rubrique Kafka.

    Remarque :
    Cette API nécessite un Connexion au flux abonnement. Pour plus d'informations, consultez https://www.servicenow.com/now-platform/workflow-data-fabric.html.
    Cette API nécessite le module d’extension ServiceNow Stream Connect Installer (com.glide.hub.stream_connect.installer) et s’exécute dans l’espace de noms sn_ih_kafka .

    ProducerV2 : send(String topicSysID, clé de chaîne, message de chaîne, booléen isSync, en-têtes d’objets, schemaID de chaîne)

    Envoie le message spécifié à la rubrique Kafka spécifiée.

    Tableau 1. Paramètres
    Nom Type Description
    topicSysID Chaîne Sys_id de la rubrique dans laquelle publier le message. Les rubriques sont stockées dans la table Rubriques Kafka [sys_kafka_topic].
    key Chaîne Nom de la clé d’une partition spécifique dans la rubrique.
    message Chaîne Texte du message.
    isSync Booléen Marqueur indiquant s’il faut exiger du script qu’il attende la fin de la méthode d’envoi avant de continuer.
    Valeurs valides :
    • vrai : attendez que l’étape se termine avant de continuer le flux associé.
    • faux : n’attendez pas que l’étape se termine avant de continuer le flux associé.
    en-têtes Objet En-têtes du message, définis sous forme de paires clé-valeur.
    "headers": {
      "<key>": "<value>"
    }
    Par exemple, var headers = { « origin » : « sn_business_rule » } ;
    • clé : Chaîne. Nom de l’en-tête.
    • valeur : chaîne. Valeur de l’en-tête.
    ID du schéma Chaîne Sys_id de l’enregistrement de schéma.

    Requis si vous utilisez un schéma pour convertir des messages en texte brut en messages Avro et inversement. Les schémas sont stockés dans la table Schémas de connexion au flux [stream_connect_schema]. Pour plus d'informations, consultez Schema management in Stream Connect.

    Tableau 2. Renvoie
    Propriété de l’objet Description
    livraison Livraison de producteur Kafka. Reflète la valeur définie pour le isSync paramètre.
    Valeurs possibles :
    • async - livraison asynchrone
    • sync : remise synchrone

    Type de données : chaîne

    décalage Le décalage du message dans la partition de la rubrique dans Hermes Kafka. Cette valeur n’est renvoyée que pour une remise synchrone.

    Type de données : nombre

    partition Partition de la rubrique dans laquelle le message est stocké. Cette valeur n’est renvoyée que pour une remise synchrone.

    Type de données : nombre

    Livraison asynchrone

    Cet exemple montre comment envoyer des informations d’incident modifiées à la rubrique Kafka avec une sys_id de 75135aa2ff0311105cf343d0653bf155, à l’aide d’un schéma avec une sys_id de f9d083f3ff610210ef7343d3653bf12e.

    var message = {
      'number': current.number.toString(),
      'short_description': current.short_description.toString(),
      'caller_id': current.caller_id.getDisplayValue(),
      'priority': current.priority.toString(),
      'state': current.state.toString()
    };
    
    var headers = {
        'origin': 'sn_business_rule'
    };
    
    var producer = new sn_ih_kafka.ProducerV2();
    producer.send('75135aa2ff0311105cf343d0653bf155', gs.generateGUID(), JSON.stringify(message), false, headers, 'f9d083f3ff610210ef7343d3653bf12e');
    

    Livraison synchrone

    Cet exemple montre comment obtenir les valeurs de retour d’un message Kafka.

    var message = "Defect fix";
     
    var producer = new sn_ih_kafka.ProducerV2();
     
    var response = producer.send('63820c0e1b492210dcff64e5604bcb93', gs.generateGUID(), JSON.stringify(message), true, null);
    gs.log("Partition was "+response.partition);
    gs.log("Offset was :"+response.offset);
    gs.log("Delivery was :"+response.delivery);
    Sortie :
    *** Script: Partition was 1
    *** Script: Offset was :258072
    *** Script: Delivery was :sync