ProducerV2 - Scoped

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 5분
  • The ProducerV2 API provides methods to publish messages from your ServiceNow instance to a Kafka topic.

    주:
    This API requires a Stream Connect subscription. For more information, see https://www.servicenow.com/now-platform/workflow-data-fabric.html.
    This API requires the ServiceNow Stream Connect Installer plugin (com.glide.hub.stream_connect.installer) and runs in the sn_ih_kafka namespace.

    ProducerV2 - send(String topicSysID, String key, String message, Boolean isSync, Object headers, String schemaID)

    Sends the specified message to the specified Kafka topic.

    표 1. Parameters
    Name Type Description
    topicSysID String Sys_id of the topic to publish the message to. Topics are stored in the Kafka Topics [sys_kafka_topic] table.
    key String Name of the key for a specific partition in the topic.
    message String Message text.
    isSync Boolean Flag that indicates whether to require the script to wait for the send method to complete before continuing.
    Valid values:
    • true: Wait for the step to complete before continuing the associated flow.
    • false: Do not wait for the step to complete before continuing the associated flow.
    headers Object Headers for the message, defined as key-value pairs.
    "headers": {
      "<key>": "<value>"
    }
    For example, var headers = { "origin": "sn_business_rule" };
    • key: String. Name of the header.
    • value: String. Value of the header.
    schemaID String Sys_id of the schema record.

    Required if you're using a schema to convert plain-text messages to Avro messages and back. Schemas are stored in the Stream Connect Schemas [stream_connect_schema] table. For more information, see Schema management in Stream Connect.

    표 2. Returns
    Object property Description
    delivery Kafka producer delivery. Reflects the value set for the isSync parameter.
    Possible values:
    • async - Asynchronous delivery
    • sync - Synchronous delivery

    Data type: String

    offset The offset of the message in the partition of the topic in Hermes Kafka. This value is only returned for synchronous delivery.

    Data type: Number

    partition Partition of the topic in which the message is stored. This value is only returned for synchronous delivery.

    Data type: Number

    Asynchronous delivery

    This example shows how to send changed incident information to the Kafka topic with a sys_id of 75135aa2ff0311105cf343d0653bf155, using a schema with a sys_id of 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');
    

    Synchronous delivery

    This example shows how get the return values of a Kafka message.

    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);
    Output:
    *** Script: Partition was 1
    *** Script: Offset was :258072
    *** Script: Delivery was :sync