インスタンスにオープンメッセージバスを展開した、または展開する予定の場合は、このメッセージバスのプロデューサーイベント通知フレームワークを構成する必要があります。このメッセージバスは、クラウドインスタンスとオンプレミスインスタンスの両方に展開できます。
手順
-
現在のメッセージバスのトピックを ServiceNow インスタンスと同期します。
-
事前設定された REST アクションにメッセージを直接送信するように OpenMessageBusEventPublisherOOB - publishMessageToComptibleRestProxy(オブジェクト tmfEventPayload, 配列 compatibleTopicArr) メソッドをカスタマイズします。
このメソッドは、スポークセレクターを使用してカスタムメッセージプラットフォームの REST プロキシにメッセージを送信します。カスタムメッセージプラットフォームは、メッセージが公開されるメッセージバスです。
次のコード例は、このメソッドをカスタマイズして、スポークセレクターの代わりにスポークセレクターフローとカスタムアクションを使用する方法を示しています。
publishMessageToComptibleRestProxy: function(tmfEventPayload, compatibleTopicArr) {
if (gs.nil(tmfEventPayload) || gs.nil(compatibleTopicArr)) {
return;
}
for (var i = 0; i < compatibleTopicArr.length; i++) {
// Invoking spoke selector flow which will in turn pick the rest proxy based on the input condition
var topicGr = new GlideRecord(Constants.TABLE_TOPIC);
topicGr.get(compatibleTopicArr[i]);
if (!topicGr.isValidRecord()) {
this._logger.debug("Invalid topic sys_id passed to open message publisher. Sys_id passed is " + compatibleTopicArr[i]);
return;
}
// NOTE THAT IN THIS IMPLEMENTATION INVOKES A CUSTOM ACTION INSTEAD OF SPOKE SELECTOR
var restProxyResponse = new sn_appss.RequestAPI(spokeSelectorRequestTypeId, spokeSelectorRequestTypeInputMap, spokeSelectorRequestTypeContextObject).execute();
// var restProxyResponse = sn_fd.FlowAPI.executeActionQuick('sn_api_notif_mgmt.demo_topic_rest_proxy_response', spokeSelectorRequestTypeInputMap);
var responseCode = restProxyResponse.response.code;
if (Constants.REGISTRATION_RESPONSE_SUCCESS_CODES.indexOf(responseCode) == -1) {
this._logger.logErr("Publishing message to Message bus rest proxy failed with HTTP response code " + responseCode);
}
}
},
-
トピックの REST プロキシを構成します。
スポークが構成されると、スポークで構成されたトピックの指定された REST プロキシでメッセージが公開されます。
-
移動先
-
トピック Rest プロキシ送信要求を選択します。
-
[ 統合要求定義] タブを選択します。
-
統合要求定義エントリを作成してスポークを設定します。
追加のガイダンスについては、「 Rest プロキシ応答定義のデモ 」エントリも参照できます。