MIDHermesProducer - グローバル
MIDHermesProducer API は、MID サーバー からHermesトピックにデータを送信するメソッドを提供します。
MID Server ECC Queue を使用するのではなく Hermes Messaging Service 経由でデータを送信する方が、ServiceNowインスタンスにデータを取得する効率的な方法です。
この API には、 ServiceNow MID Hermes API (com.glide.mid.hermes_api) プラグインが必要です。呼び出し元ユーザーにはkafka_adminロールが必要です。この API を呼び出す前に、次の手順に従って Configure the MID Hermes API Extensionしてください。
この API は、 MID サーバー で実行されるスクリプト ( MID サーバー バックグラウンドスクリプトなど) で使用します。 ワークフロースタジオ [ 必要なランタイム ] を MID に設定したアクションスクリプトステップ。
MIDHermesProducer:MIDHermesProducer()
Hermesトピックにメッセージを送信するための MIDHermesProducer を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
この例では、 MIDHermesProducer をインスタンス化します。
var producer = new MIDHermesProducer();
MIDHermesProducer - send(オブジェクトオプション)
MID サーバーから指定されたHermesトピックにメッセージを送信します。
Hermesトピックにメッセージを送信するには、4000 〜 4050 ポート範囲が開いている必要があります。詳細については、「Producing and consuming messages from a Kafka client」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| オプション | オブジェクト | メッセージの設定パラメーターが含まれます。 |
| options.applicationId | 文字列 | オプション。トピックルーティングのアプリケーション識別子。指定すると、メッセージは snc.{ にルーティングされます。インスタンス}。{applicationId} です。{topic} 以外の場合は snc にルーティングされます 。インスタンス}。{トピック}。 |
| options.onErrorCallback | 関数 | オプション。メッセージ配信が失敗した場合に実行する JavaScript 関数。この関数は、文字列 errorMessage と文字列 errorType (完全修飾 Java 例外クラス名) の 2 つのパラメーターを受け取ります。 |
| options.headers | オブジェクト | オプション。メッセージヘッダーのキーと値のペア。Apache Kafka でサポートされているヘッダーはすべて有効です。 |
| options.key | 文字列 | オプション。Apache Kafka でのパーティショニングのメッセージキー。同じキーを持つメッセージは同じパーティションに送信され、順序が確保されます。 |
| options.message | 文字列 | トピックに送信するメッセージの内容。文字列として書式設定された値はすべて有効です。 |
| options.topic | 文字列 | メッセージの送信先の Hermes トピックの名前。 注: インスタンスプリフィックスは含めないでください。自動的に追加されます。 |
| タイプ | 説明 |
|---|---|
| なし | このメソッドは値を返しません。メッセージ配信は非同期です。 成功:メッセージは Hermes Kafka ブローカーに非同期に配信されます。MID サーバーログで配信確認を確認します。 失敗:メッセージ配信が失敗した場合、オプションのコールバック関数 (提供されている場合) がエラーの詳細とともに呼び出されます。よくあるエラーには次のようなものがあります。
エラーを解決するための追加手順:
|
この例では、 Hermes トピックにメッセージを送信します。
// Create producer instance
var producer = new MIDHermesProducer();
// Define error callback function
var errorCallback = function(errorMessage, errorType) {
gs.error("Message delivery failed: " + errorType + " - " + errorMessage);
};
// Send message with all optional parameters
producer.send({
topic: "order-events",
applicationId: "sn_streamconnect",
message: JSON.stringify({
orderId: "ORD-12345",
status: "completed",
timestamp: new Date().getTime()
}),
key: "customer-456",
headers: {
"content-type": "application/json",
"source": "mid-server",
"version": "1.0"
},
onErrorCallback: errorCallback
});
メッセージは非同期に送信されます。MID サーバーログで配信確認を確認します。