インスタンスに Open Message Bus を展開した場合、または展開する予定の場合は、このメッセージバス用にプロデューサーイベント通知フレームワークを構成する必要があります。このメッセージバスは、クラウドインスタンスとオンプレミスインスタンスの両方に展開できます。
手順
-
現在のメッセージバスのトピックを ServiceNow インスタンスと同期します。
-
事前設定された REST アクションにメッセージを直接送信するように OpenMessageBusEventPublisherOOB - publishMessageToComptibleRestProxy(Object tmfEventPayload, Array 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 プロキシ送信要求を選択します。
-
[統合要求定義] タブを選択します。
-
スポークを構成するための統合要求定義エントリを作成します。
追加のガイダンスについては、 Demo Rest プロキシ応答定義 エントリーも参照できます。