ユーザーアクティビティを取得するためのデータストリームアクションの作成

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:11分
  • SaaS アプリケーションからユーザーアクティビティを取得するデータストリームアクションを作成します。

    始める前に

    既存の ServiceNow® 統合ハブ スポークを使用している場合は、ユーザーアクティビティを作成する代わりに使用できるユーザーアクティビティを取得するためのデータストリームアクションがあるかどうかを確認してください。

    データストリームアクションの詳細については、「 データストリームアクション」を参照してください。

    必要なロール:flow_designer または admin

    このタスクについて

    ユーザーアクティビティを監視して、会社が支払っているが使用されていないソフトウェアサブスクリプションを見つけます。これらの未使用のサブスクリプションを再利用して、会社のソフトウェア経費を削減できます。

    データストリームアクションを作成する前に、意味のあるユーザーアクティビティを定義する方法を決定します。有意義なアクティビティは、ユーザーアクションの組み合わせにすることができます。ユーザーアクティビティメトリクスごとに個別のデータストリームアクションを作成します。たとえば、ベースシステム Webex Meetings 統合では、有意義なアクティビティを会議の開催として定義します。1 つのデータストリームアクションを使用して、すべてのユーザーに対して最後にホストされた会議の日付を取得します。Webex Meetings 統合に有意義なアクティビティとしてログインを含める場合は、すべてのユーザーの最新のログイン時間を取得する 2 番目のデータストリームアクションを作成します。

    ユーザーを取得するデータストリームアクションは、前回のログイン時間などのユーザーアクティビティメトリクスを返す場合があります。この場合、追加のユーザーアクティビティメトリクスを定義する場合を除き、ユーザーアクティビティを取得するデータストリームアクションやユーザーアクティビティを取得するサブフローを作成する必要はありません。ユーザーを取得するサブフローで、このユーザーアクティビティメトリクスが [ユーザーサブスクリプションをアップサート] アクションの最後のアクティビティ入力として設定されていることを確認してください。

    手順

    1. 次のように移動する。 All (すべて) > Flow Designer (フローデザイナー) > デザイナー.
    2. [新規] をクリックし、[データ ストリーム] を選択します。
    3. フォームのフィールドに入力します。
      表 : 1. アクションプロパティフォーム
      フィールド
      [Name (名前)] 任意の名前。たとえば、「 ユーザーアクティビティの取得」などです。
      アクセス可能 [すべてのアプリケーションスコープ] を選択します。
      カテゴリ このフィールドは空のままにします。
      保護 なしを選択します。
      アプリケーション SaaS アプリケーションと統合するためのスポークアプリ。このスポークアプリは、既存の 統合ハブ スポークでも、作成した新しいスポークでもかまいません。
      インフロー注釈 このフィールドは空のままにします。
      説明 任意の説明。
    4. [Submit (送信)] を選択します。
    5. [アクションアウトライン] の [入力] セクションで、[ 入力の作成] をクリックします。
    6. 過去の検索時間の入力を追加します。
      表 : 2. 入力
      ラベル 名前 タイプ 必須
      過去の検索時間 look_back_time 日付/時刻
    7. 使用している API が要求に対してユーザー認証を必要とする場合は、認証用の入力を追加します。
      一般的なユーザー認証入力の例は、アドミンユーザー ID とサイト名です。特定のケースでのユーザー認証の要件については 選択した API のドキュメントを参照してください。API がアクセストークンを必要とする場合、 認証情報の値 変数は後で自動的に作成されます。アクセストークンを入力として追加する必要はありません。

      完了したデータストリームアクションをサブフローで使用する場合は、これらの入力として渡す値を定義します。

    8. [アクションアウトライン] で [要求 ] をクリックします。
    9. フォームのフィールドに入力します。
      表 : 3. [要求] フォーム
      フィールド Value (値)
      データをどのように取得しますか。 REST ステップまたは SOAP ステップのいずれかを選択します。選択は、統合する SaaS アプリケーションの API によって異なります。
      ページネーションを有効化 選択済み。
      各要求の前にスクリプトを実行 選択されていません。
    10. [アクションアウトライン] で [ページネーションセットアップ] ステップ をクリックします。
    11. SaaS API で使用されるクエリパラメーターに基づいてページネーション変数を定義します。

      オフセットベースのページネーションを使用している場合は、制限/オフセットページネーションテンプレートを使用してページネーション構成をプリロードします。

      注:
      予約済みの getNextPage 変数の値は、結果の別のページを要求するかどうかを決定します。getNextPage 変数が true である限り、アクションは次のページの要求を送信し続けます。
    12. ページネーション変数を更新するページネーション変数スクリプトを記述します。

      スクリプトは要求ごとに実行されます。ページネーションテンプレートを使用している場合は、必要に応じてプリロードされたスクリプトを調整します。

      次の画像は、ページネーションセットアップ手順の完成した例を示しています。この例は、[サブスクリプションをダウンロード] サブフローで使用される [ユーザーを取得] Webex データストリームアクションからのものです。

      ページネーションセットアップステップ
      注:
      ページネーション変数は、文字列データ型のみをサポートします。数学演算を実行するには、値を整数に変換し、必要な演算を実行してから、文字列に変換します。
    13. データの取得方法として選択したオプションに応じて、[アクションアウトライン] で [SOAP ステップ ] または [REST ステップ ] をクリックします。
    14. [SOAP] を選択した場合は、詳細を入力します。
      表 : 4. SOAP ステップフォーム
      フィールド Value (値)
      接続の詳細
      接続 接続エイリアスを使用
      接続エイリアス 統合プロファイルの作成時に作成した接続エイリアス。統合プロファイルをまだ作成していない場合は、手順に従って、 接続エイリアスを使用してカスタム統合プロファイルを作成します。
      エンドポイント この値は、接続エイリアスを選択すると自動的に入力されます。これは、エイリアスにリンクされている HTTP(s) 接続レコードからの接続 URL に設定されます。
      要求の詳細
      エンベロープの作成 手動
      SOAP アクション 有意義なユーザーアクティビティのリストを取得するための API 要求。たとえば、ベースシステム Webex Meetings 統合では、意味のあるユーザーアクティビティを会議の開催として定義し、 LstsummaryMeeting 要求を使用してすべての会議のリストを取得するようにします。選択した API のドキュメントを参照して、適切な要求を選択します。
      SOAP エンベロープ すべてのユーザーのリストを取得するための XML 要求メッセージ。XML 要求メッセージを記述する方法については、選択した API のドキュメントを参照してください。一般に、ヘッダーには、ユーザー認証の入力変数と、アクセストークンとしての 認証情報値 変数を含める必要があります。本文には、有意義なユーザーアクティビティのリストを取得する要求、[ 過去の検索時間 ] 入力として設定された開始日、およびページネーションセットアップステップからの変数を含める必要があります。
      注:
      SOAP エンベロープの例については、「 Webex ユーザーアクティビティの更新」サブフローで使用される「ユーザーアクティビティを取得」データストリームアクションを参照してください。
    15. REST を選択した場合は、詳細を入力します。
      表 : 5. REST ステップフォーム
      フィールド Value (値)
      接続の詳細
      接続 接続エイリアスを使用
      接続エイリアス 統合プロファイルの作成時に作成した接続エイリアス。

      統合プロファイルをまだ作成していない場合は、手順に従って、 接続エイリアスを使用してカスタム統合プロファイルを作成します。

      ベース URL この値は、接続エイリアスを選択すると自動的に入力されます。これは、エイリアスにリンクされている HTTP(s) 接続レコードからの接続 URL に設定されます。
      要求の詳細
      ビルド要求 手動
      リソースパス リソースへのパス。この値はベース URL に追加されます。リソースパスの構築方法については、使用している API の ドキュメント を参照してください。
      HTTP メソッド GETです。
      クエリーパラメーター ページネーションのパラメーターを追加します。ページネーションセットアップステップで作成した変数として値を設定します。
      開始日に別のパラメーターを追加して、要求が開始日から現在の日付までの結果を返すようにします。値を [ 過去の検索時間 ] 入力として設定します。
      注:
      過去の検索時間の入力日付/時刻変数が、使用している API に対して正しい形式になっていることを確認してください。文字列などの別のデータタイプに再フォーマットまたは変換する必要がある場合は、アクション前処理スクリプトステップで行うことができます。

      次の画像は、REST ステップの完成した例を示しています。この例は、[ユーザーアクティビティの更新] サブフローで使用される [監査ログ Jira ストリームを取得] アクションからのものです。

      REST ステップ
    16. [アクションアウトライン] で [解析 ] をクリックします。
    17. フォームのフィールドに入力します。
      表 : 6. 解析フォーム
      フィールド Value (値)
      各レコードをどのように識別しますか。 JSON/XML スプリッター
      各アイテムをどのように解析してオブジェクトにしますか。 スクリプトパーサー
    18. [アクションアウトライン] で [ スプリッターステップ ] をクリックします。
    19. フォームのフィールドに入力します。
      表 : 7. スプリッターステップフォーム
      フィールド Value (値)
      ソースフォーマット API 応答によって返された形式に応じて、 XML または JSON を選択します。
      アイテムパス 応答メッセージ内の意味のあるアクティビティ要素への絶対パス。応答メッセージの形式については、使用している API のドキュメントを参照してください。
      • XML アイテムパスの例: /message/body/meeting
      • JSON アイテムパスの例: $.data.meeting
    20. アクションアウトラインの [出力 ] をクリックします。
    21. [ 出力の作成 ] をクリックし、次のように変数を編集します。
      表 : 8. アクションの出力
      ラベル 名前 タイプ 必須
      targetObject targetObject オブジェクト いいえ
    22. targetObject の子アイテムを追加して、ユーザーのメールと有意義なアクティビティの日付を保存します。
      たとえば、XML 応答は次のようになります。
      <message>​
        <body>​
          <meeting>
            <meetingID>​12345</meetingID>​
            <startDate>​08/13/2019 20:08:16</startDate>​
            <hostEmail>​email@email.com</hostEmail>​
          </meeting>​
          <meeting>
            ...
          </meeting>
        </body>​
      </message>
      この応答に対して、次のように子アイテムを追加します。
      表 : 9. targetObject の子アイテム
      ラベル 名前 タイプ 必須
      メール メール 文字列 いいえ
      last_activity last_activity 文字列 いいえ
    23. [アクションアウトライン] で、[ スクリプトパーサーステップ] をクリックします。
    24. 応答内の意味のあるアクティビティ要素ごとに targetObject 出力オブジェクトを作成し、アクティビティの日付とユーザーの各メールを targetObject 子アイテムにマップします。

      パーサースクリプトは、ユーザー要素ごとに実行されます。

      注:
      これらの例は、応答に含めることができる要素のタイプを示しています。これらのスクリプトを直接コピーしないでください。使用している API のドキュメントの要素名を使用します。
      XML 応答を解析するスクリプトの例。
      (function parse(inputs, outputs) {
          var xmlDoc = new XMLDocument(inputs.sourceItem, false);
          outputs.targetObject.email = xmlDoc.getNodeText('/meeting/hostEmail');
          outputs.targetObject.last_activity = xmlDoc.getNodeText('/meeting/startDate');
      })(inputs, outputs)
      JSON 応答を解析するサンプルスクリプト。
      (function parse(inputs, outputs) {
          var record = JSON.parse(inputs.sourceItem);
          outputs.targetObject.email = record.hostEmail;
          outputs.targetObject.last_activity = record.startDate;
      })(inputs, outputs)
    25. データストリームアクションをテストするには、[ テスト] をクリックします。
      1. テスト結果とシステムログを表示して、エラーの詳細を確認します。
        システムログを表示するには、次に移動します: システムログ > システムログ > All (すべて).
      2. データストリームアクションにエラーがある場合は、正しいエンドポイントを使用していること、および API 要求と応答が想定どおりに構造化されていることを確認してください。
    26. データストリームアクションが期待どおりに機能していることを確認したら、[ 公開] をクリックします。