ProducerV2 :スコープ対象

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:4分
  • ProducerV2 API は、ServiceNow インスタンスから Kafka トピックにメッセージを公開するためのメソッドを提供します。

    注:
    この API には ストリームコネクト サブスクリプションが必要です。詳細については、「https://www.servicenow.com/now-platform/workflow-data-fabric.html」を参照してください。
    この API には ServiceNow ストリームコネクトインストーラープラグイン (com.glide.hub.stream_connect.installer) が必要で、 sn_ih_kafka 名前空間で実行されます。

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

    指定されたメッセージを指定された Kafka トピックに送信します。

    表 : 1. パラメーター
    名前 タイプ 説明
    topicSysID 文字列 メッセージの公開先のトピックのSys_id。トピックは Kafka トピック [sys_kafka_topic] テーブルに格納されます。
    キー 文字列 トピック内の特定のパーティションのキーの名前。
    メッセージ 文字列 メッセージのテキスト。
    isSync ブール 続行する前に、送信メソッドの完了をスクリプトで待機させる必要があるかどうかを示すフラグ。
    有効な値:
    • true:ステップが完了するまで待機してから、関連するフローを続行します。
    • false:ステップが完了するまで待機せずに、関連するフローを続行します。
    ヘッダー オブジェクト キーと値のペアとして定義されたメッセージのヘッダー。
    "headers": {
      "<key>": "<value>"
    }
    例: var headers = { "origin": "sn_business_rule" };
    • キー:文字列。ヘッダーの名前。
    • value:文字列。ヘッダーの値。
    schemaID 文字列 スキーマレコードのSys_id。

    スキーマを使用してプレーンテキストメッセージを Avro メッセージに変換したり、その逆を行ったりする場合に必要です。スキーマは、ストリームコネクトスキーマ [stream_connect_schema] テーブルに格納されます。詳細については、「Schema management in Stream Connect」を参照してください。

    表 : 2. 戻り値
    オブジェクトのプロパティ 説明
    配達 Kafka プロデューサーの配信。isSyncパラメーターに設定された値を反映します。
    可能な値:
    • async - 非同期配信
    • sync:同期配信

    データタイプ:文字列

    オフセット Hermes Kafka のトピックのパーティション内のメッセージのオフセット。この値は、同期配信の場合にのみ返されます。

    データタイプ:数値

    パーティション メッセージが保存されるトピックのパーティション。この値は、同期配信の場合にのみ返されます。

    データタイプ:数値

    非同期配信

    この例では、sys_id f9d083f3ff610210ef7343d3653bf12e のスキーマを使用して、sys_id 75135aa2ff0311105cf343d0653bf155 で変更されたインシデント情報を Kafka トピックに送信する方法を示します。

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

    同期配信

    この例では、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);
    出力:
    *** Script: Partition was 1
    *** Script: Offset was :258072
    *** Script: Delivery was :sync