オープンメッセージバスを使用するようにプロデューサーイベント通知フレームワークを構成する

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:4分
  • インスタンスに Open Message Bus を展開した、または展開する予定の場合は、このメッセージバスのプロデューサーイベント通知フレームワークを構成する必要があります。このメッセージバスは、クラウドインスタンスとオンプレミスインスタンスの両方に展開できます。

    始める前に

    必要なロール:admin

    オープン メッセージバスを使用したメッセージの公開の詳細については、 Producing outbound API notifications using the open message busを参照してください。

    手順

    1. 現在のメッセージバス内のトピックを ServiceNow インスタンスと同期します。

      トピックの同期の詳細については、「 Producing outbound API notifications using the open message bus」を参照してください。

    2. 事前設定された 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);
          }
        }
      },
    3. トピックの REST プロキシを設定します。
      スポークが設定されると、メッセージは、スポークで設定されたトピックの指定された REST プロキシーで公開されます。
      1. 移動先 すべて > スポークセレクター > 要求タイプ
      2. トピック Rest プロキシ送信要求を選択します。
      3. [統合要求定義] タブを選択します。
      4. 統合要求定義エントリを作成して、スポークを構成します。
        追加のガイダンスについては、「 Demo Rest Proxy Response Def 」エントリを参照することもできます。