ユーザーを取得するためのデータストリームアクションの作成
SaaS アプリケーションからユーザーサブスクリプションのリストを取得するデータストリームアクションを作成します。
始める前に
既存の ServiceNow® 統合ハブ スポークを使用している場合は、作成する代わりに使用できるユーザーのリストを取得するためのデータストリームアクションがあるかどうかを確認します。データストリームアクションの詳細については、「 データストリームアクション」を参照してください。
必要なロール:flow_designer
手順
- 移動先 すべて > フローデザイナー > デザイナー.
- [新規] を選択します。
- [ データストリーム] を選択します。
-
フォームで、フィールドに入力します。
表 : 1. アクションプロパティフォーム フィールド 値 名前 任意の名前。 例: Get Users。
アクセス可能 すべてのアプリケーションスコープ。 カテゴリ このフィールドは空のままにします。 保護 なし。 アプリケーション SaaS アプリケーションと統合するスポークアプリ。 このスポークアプリは、既存の 統合ハブ スポークでも、作成した新しいスポークでもかまいません。
インフロー注釈 このフィールドは空のままにします。 説明 選択した内容の説明。 - [送信] を選択します。
-
使用している API で要求に対するユーザー認証が必要な場合は、[アクションアウトライン] で [入力 ] を選択し、認証の入力を追加します。
一般的なユーザー認証入力の例としては、 アドミンユーザー ID と サイト名があります。特定のケースにおけるユーザー認証の要件については、選択した API のドキュメントを参照してください。 API がアクセストークンを必要とする場合は、 認証情報の値 変数が後で自動的に作成されます。アクセストークンを入力として追加する必要はありません。
完了したデータストリームアクションをサブフローで使用する場合は、これらの入力として渡す値を定義します。
- [アクションアウトライン] で [要求 ] を選択します。
-
フォームで、フィールドに入力します。
表 : 2. [要求] フォーム フィールド 値 データをどのように取得しますか REST ステップまたは SOAP ステップのいずれかを選択します。 選択は、統合する SaaS アプリケーションの API によって異なります。
ページネーションを有効にする 選択済み。 各要求の前にスクリプトを実行 未選択。 - [アクションアウトライン] で ページネーションセットアップステップ を選択します。
-
SaaS API で使用されるクエリパラメーターに基づいてページネーション変数を定義します。
オフセットベースのページネーションを使用している場合は、制限/オフセットページネーションテンプレートを使用してページネーション構成を事前に読み込みます。
注:予約されたgetNextPage変数の値は、結果の別のページを要求するかどうかを決定します。getNextPage変数が true である限り、アクションは次のページの要求を送信し続けます。 -
ページネーション変数を更新するページ ネーション変数 スクリプトを作成します。
スクリプトは要求ごとに実行されます。ページネーションテンプレートを使用している場合は、必要に応じて事前にロードされたスクリプトを調整します。
次の画像は、ページネーションセットアップステップの完了例を示しています。この例は、「サブスクリプションをダウンロード Webex 」サブフローで使用される「ユーザーを取得」データストリームアクションからのものです。
注:ページネーション変数は、文字列データ型のみをサポートします。数式演算を実行するには、値を整数に変換して必要な操作を実行し、文字列に変換する必要があります。 -
データを受信するには、[アクションアウトライン] で SOAP ステップ または REST ステップ を選択します。
- SOAP ステップを選択した場合は、詳細を入力します。
表 : 3. SOAP ステップフォーム フィールド 値 接続の詳細 接続 接続エイリアスを使用。 接続エイリアス 統合プロファイルの作成時に作成した接続エイリアス。統合プロファイルをまだ作成していない場合は、手順に従って接続 エイリアスを使用してカスタム統合プロファイルを作成します。 エンドポイント この値は、接続エイリアスを選択すると自動的に入力されます。 この値は、エイリアスにリンクされている HTTPs 接続レコードからの接続 URL に設定されます。
要求の詳細 エンベロープの作成 手動で。 SOAP アクション すべてのユーザーのリストを取得する API 要求。選択した API のドキュメントを参照して、適切な要求を選択してください。 SOAP エンベロープ すべてのユーザーのリストを取得するための XML 要求メッセージ。XML 要求メッセージの記述方法については、選択した API のドキュメントを参照してください。一般に、ヘッダーには、ユーザー認証用の入力変数と、アクセストークンとしての 認証情報の値 変数が含まれている必要があります。本文には、ページネーションセットアップステップからのすべてのユーザーと変数のリストを取得する要求を含める必要があります。 注:SOAP エンベロープの例については、「 Webex Download Subscriptions サブフローで使用される [ユーザーを取得] データストリームアクションを参照してください。 - REST ステップを選択した場合は、詳細を入力します。
表 : 4. REST ステップフォーム フィールド 値 接続の詳細 接続 接続エイリアスを使用。 接続エイリアス 統合プロファイルの作成時に作成した接続エイリアス。統合プロファイルをまだ作成していない場合は、手順に従って接続 エイリアスを使用してカスタム統合プロファイルを作成します。 ベース URL この値は、接続エイリアスを選択すると自動的に入力されます。エイリアスにリンクされている HTTP(s) 接続レコードからの接続 URL に設定されます。 要求の詳細 ビルド要求 手動で。 リソースパス リソースへのパス。この値はベース URL に追加されます。リソースパスの構築方法については、使用している API のドキュメントを参照してください。 HTTP メソッド GET です。 クエリパラメーター ページネーションのパラメーターを追加します。ページネーションセットアップステップで作成した変数として値を設定します。 次の画像は、REST ステップの完成した例を示しています。この例は、[Jira ダウンロードサブスクリプション] サブフローで使用される [Jiraユーザーを取得] データストリームアクションからのものです。
- SOAP ステップを選択した場合は、詳細を入力します。
- [アクションアウトライン] で [ 解析] を選択します。
-
フォームで、フィールドに入力します。
表 : 5. 解析フォーム フィールド 値 各レコードをどのように識別しますか。 JSON/XML スプリッター 各アイテムをどのように解析してオブジェクトにしますか。 スクリプトパーサー - [アクションアウトライン] で [スプリッターステップ ] を選択します。
-
フォームで、フィールドに入力します。
表 : 6. スプリッターステップ フィールド 値 ソースフォーマット API 応答によって返される形式に応じて、 XML または JSON を選択します。 アイテムパス 応答メッセージ内のユーザー要素への絶対パス。応答メッセージの形式については、使用している API のドキュメントを参照してください。 - XML アイテムパスの例:
/message/body/user - JSON アイテムパスの例:
$.data.user
- XML アイテムパスの例:
- [アクションアウトライン] で 出力 を選択します。
-
[ 出力の作成 ] を選択し、次のように変数を編集します。
表 : 7. アクションの出力 ラベル 名前 タイプ 必須 targetObject targetObject オブジェクト いいえ -
応答メッセージで返されたユーザーの子要素に基づいて、 targetObject の子アイテムを追加します。
たとえば、XML 応答は次のようになります。
この応答には、次に示すように子アイテムを追加します。<message> <body> <user> <userID>12345</userID> <email>email@email.com</email> <firstName>Jane</firstName> <lastName>Doe</lastName> <lastLoginTime>08/13/2019 20:08:16</lastLoginTime> <active>TRUE</active> </user> <user> ... </user> </body> </message>表 : 8. targetObject の子アイテム ラベル 名前 タイプ 必須 userID userID 文字列 いいえ email email 文字列 いいえ firstName firstName 文字列 いいえ lastName lastName 文字列 いいえ lastLoginTime lastLoginTime 文字列 いいえ アクティブ アクティブ True/False いいえ - [アクションアウトライン] で [スクリプトパーサー] ステップ を選択します。
-
応答内の各ユーザー要素に対して targetObject 出力オブジェクトを作成し、各ユーザーの子要素を targetObject 子アイテムにマップします。
パーサースクリプトはユーザー要素ごとに実行されます。
注:これらの例は、ユーザー取得要求への応答に通常含まれる要素のタイプを示しています。これらのスクリプトを直接コピーしないでください。使用する API のドキュメントにある要素名を使用します。XML 応答を解析するスクリプトの例。(function parse(inputs, outputs) { var xmlDoc = new XMLDocument(inputs.sourceItem, false); outputs.targetObject.userID = xmlDoc.getNodeText('/user/userID'); outputs.targetObject.email = xmlDoc.getNodeText('/user/email'); outputs.targetObject.firstName = xmlDoc.getNodeText('/user/firstName'); outputs.targetObject.lastName = xmlDoc.getNodeText('/user/lastName'); outputs.targetObject.lastLoginTime = xmlDoc.getNodeText('/user/lastLoginTime'); outputs.targetObject.active = xmlDoc.getNodeText('/user/active'); })(inputs, outputs)JSON 応答を解析するスクリプトの例。(function parse(inputs, outputs) { var record = JSON.parse(inputs.sourceItem); outputs.targetObject.userID = record.userID; outputs.targetObject.email = record.email; outputs.targetObject.firstName = record.firstName; outputs.targetObject.lastName = record.lastName; outputs.targetObject.lastLoginTime = record.lastLoginTime; outputs.targetObject.active = record.active; })(inputs, outputs) -
データストリームアクションをテストするには、[ テスト] を選択します。
-
エラーの詳細については、テスト結果とシステムログを参照してください。
システムログを表示するには、 システムログ > システムログ > すべて.
- データストリームアクションにエラーがある場合は、正しいエンドポイントを使用していること、および API 要求と応答が想定どおりに構造化されていることを確認してください。
-
エラーの詳細については、テスト結果とシステムログを参照してください。
- データストリームアクションが期待どおりに機能していることを確認したら、[ 公開] を選択します。