ProducerV2 - Scoped

  • Release version: Xanadu
  • Updated August 1, 2024
  • 1 minute to read
  • The ProducerV2 API provides methods to publish messages from your ServiceNow instance to a Kafka topic.

    Note:
    This API requires a Stream Connect subscription. For more information, see https://www.servicenow.com/products/automation-engine.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.

    Table 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.

    Table 2. Returns
    Type Description
    None

    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');