ページネーションを使用して新しいデータストリームアクションをすばやくセットアップする方法Summaryこのチュートリアルの提案は、新しいデータストリームアクションとページネーションをすばやく設定して理解できるようにすることです。 REST テーブル API を使用して、[cmdb] テーブルの別のインスタンスからデータをプルします。Releaseデータストリームアクションとページネーションが New York リリースで導入されました。Instructionsこの例では、別のインスタンスの [cmdb] テーブルからデータを取得し、返される各レコードをログに記録します。データストリームアクションは、フローで使用される場合、常に「for each item in」フローロジックを含みます (下のスクリーンショットを参照)。 データストリームアクションは、各 [cmdb] レコードの名前、作成ユーザー、および Sys ID を返します。リモート [cmdb] テーブルのレコードごとに、ログに記録します。 新しい「データストリーム」アクションを追加するには、フローデザイナーのタブの横にあるプラス記号をクリックします。フロー、サブフロー、アクション、およびデータストリームを選択するオプションが表示されます。アクションに名前を付けて保存します。この例では、アクションに変数を渡さず、アクションの前処理は行われません。 アクションを編集する場合は、[アクションアウトライン] で [要求] ステップをクリックし、[データの取得方法] フィールドで [REST ステップ] を選択して、[ページネーションを有効にする] をオンにします。REST とページネーションを選択すると、新しいステップがアクションに追加されます。「ページネーション設定」ステップをクリックします。ここから「limit」変数と「offset」変数を追加し、「offset」変数はアクションの REST ステップで使用されます。「limit」変数には値 100 が含まれ、「次の値取得元」スクリプト、オフセットには初期値 0 が含まれ、「次の値取得元」スクリプトが含まれます。(下のスクリーンショットを参照)次のスクリプトはドキュメントからの抜粋です。 (function paginate(variables, pageResponse) { // Use this script to set pagination variables or // manipulate variables extracted by XPath or JSON Path var limit = parseInt(variables.limit); var totalCount = parseInt(pageResponse.response_headers['X-Total-Count']); var currentOffset = parseInt(variables.offset); var nextOffset = currentOffset + limit; if(nextOffset < totalCount){ variables.getNextPage = true; variables.offset = nextOffset.toString(); } else { variables.getNextPage = false; } })(variables, pageResponse); 基本的にスクリプトが行うことは、テーブルのすべてのレコードが要求されたことを確認することです。応答のヘッダーには、テーブル上のレコードの合計数を含む「X-Total-Count」が含まれています。オフセット変数はインクリメントされ、その変数は、REST ステップのセットアップで見るように、リモートインスタンスへの次の要求で使用されます。[REST ステップ] をクリックし、接続フィールドから [接続エイリアスを使用] を選択し、接続エイリアスを選択します。これにはユーザー名とパスワードとベース URL が含まれます。モジュール「接続および資格情報エイリアス」を使用して設定します。要求の詳細について、次のようにセットアップします (スクリーンショットを参照)- ビルドリクエスト「手動」- リソースパス:/api/now/table/cmdb- HTTP メソッド:GET- 2 つのクエリパラメーターを追加します。- sysparm_limit、値は 100- sysparm_offset、この値はページネーションセットからのオフセット変数です(変数をドラッグしてデータピルを形成します)。次に、「解析」ステップから、次のように設定します。- 各レコード「JSON/XML スプリッター」をどのように識別しますか?- 各アイテムをどのように解析してオブジェクト「スクリプトパーサー」にするか上記のオプションを選択すると、追加のサブステップが追加されます-「Splitterstep」から「SourceFormat」を「JSON」として選択し、itemPath「$.result」を選択します。-「result」は、テーブル API を使用するときに返される JSON オブジェクトの配列です-「スクリプトパーサーステップ」から、このステップは受信レコードの値をoutput.targetObjectにマッピングし、データストリームアクションの出力変数として使用します。次のコードを貼り付けると、[cmdb] レコードの名前が使用され、作成者と targetObject にマップされた sys id が取得されます var record = JSON.parse(inputs.sourceItem); gs.info("each JSON sourceItem " + JSON.stringify(inputs.sourceItem)); outputs.targetObject.name=record.name; outputs.targetObject.sys_created_by=record.sys_created_by; outputs.targetObject.sys_id=record.sys_id; データストリームアクションの最終的な構成は、フローで使用する出力変数を構成することです- 「出力」ステップから、「オブジェクト」タイプの CMDB CIs という変数を作成します- これにはステップ 6 の targetObject が含まれていますが、ここからは 3 つのサブ変数を作成する必要があります。名前はステップ 6 で作成された targetObject の変数と一致する必要があります (下のスクリーンショットを参照)アクションを公開し、どのフローでも使用できるようにすると、新しいアクションには、メインフロー内の他のアクションで使用できる出力変数が含まれます。Related Links詳細については、New York 製品ドキュメントを参照してください。