Open Message Bus を使用するためのプロデューサーイベント通知フレームワークの構成

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

    始める前に

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