データストリームアクションおよびページネーション

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む8読むのに数分
  • たとえば、サードパーティの人事サイトから大量の従業員データをインポートする アクションを作成します。 アクションは、REST 要求をサードパーティのサイトに送信し、応答を処理してユーザー [sys_user] テーブルのレコードに入力します。
    注:

    利点

    アクションは以下の利点を提供します。

    • 10 MB を超える応答データのストリームを解析してフォーマットします。
    • 該当する場合、結果をページネーションする API に複数の要求を自動的に送信します。
    • 統合ハブ - インポートで、またデータソースを作成するために使用できます。
    • Flow Designer が、複雑なコーディングや構成を行うことなく、大規模な要求を処理できるようにします。
    • Flow Designer で次のことを実行できます:
    • Flow Designer が、同じデータソースを複数の方法で使用して、複数のフローで アクションを再利用できるようにします。

    データストリームアクションの実行

    アクションを実行するには、2 つの方法があります。

    フローから
    ユーザーは次のことを実行できます:
    スクリプトから
    FlowAPI クラスの executeDataStreamAction() メソッドを使用して を開始できます。詳細については、「FlowAPI」を参照してください。

    アクションアウトライン

    アクションは設定された構造に従います。プロンプトに従って、アクションアウトラインのステップを追加および削除します。 アクションに手動でステップを追加することはできません。

    図 : 1. REST および SOAP データストリームアクション
    REST および SOAP データストリームアクション。
    図 : 2. JDBC データストリームアクション
    JDBC データストリームアクション
    注:

    アクション前処理

    アクション前処理カテゴリを使用して、接続と資格情報の詳細を取得したり、前処理スクリプトを実行したりします。

    アクションで使用する接続と資格情報の詳細を取得するには、[接続情報を取得 (Retrieve connection info)] を選択します。このオプションを選択すると、アクション前処理の最初のステップとして「接続情報の取得」ステップが追加されます。詳細については、「Get Connection Info step」を参照してください。

    アクションが最初の API 要求を送信する前の前処理スクリプトを実行するには、[前処理スクリプトを有効化] を選択します。たとえば、アクション入力を検証するかデフォルト値を設定します。

    前処理は、最初の API 要求の前にアクションごとに 1 回実行されます。

    これは、インスタンスまたは MID サーバー のいずれかで実行されるオプションの アクションコンポーネントです。

    要求

    [要求] カテゴリを使用して、アクションが API 要求を送信する方法を設定します。[要求] セクションは、結果のページごとに 1 回実行されます。要求コンポーネントは、次の構成オプションを提供します。

    ページネーションセットアップステップ

    次のことを要求します:。ページネーションセットアップステップを使用して、API に必要なページネーションオプションを設定します。ページネーションのセットアップ手順を手動で構成するか、構築済みのテンプレートを選択して一般的な構成を適用します。

    注:
    ライセンスの目的では、各要求は、結果の次のページの各要求を含め、1 つのトランザクションとしてカウントされます。

    予約済みの読み取り専用 getNextPage 変数の値は、結果の別のページを要求するかどうかを決定します。

    注:
    スクリプトで値を明示的に true に設定する必要があります。そうしないと、デフォルトで false に設定されます。
    これは、インスタンスのみで実行されるオプションのアクションコンポーネントです。
    注:
    ページネーションは JDBC ステップには適用されません。
    スクリプト ステップ

    結果の次のページに対してすべての要求の前にスクリプトを実行します。このスクリプトは、ページネーションされた API を呼び出すときにデータの検証と変換に使用します。たとえば、次のページ要求の JSON ペイロードを生成します。

    これは、インスタンスまたは MID サーバー のいずれかで実行されるオプションの要求コンポーネントです。

    REST または SOAP ステップ

    REST または SOAP 要求をサードパーティ API に送信します。関連するステップを アクションに追加するデータ形式を選択します。詳細については、「REST ステップ」と「SOAP ステップ」を参照してください。

    これは、インスタンスまたは MID サーバー のいずれかで実行される必須要求コンポーネントです。

    JDBC ステップ

    JDBC 要求をサードパーティ API に送信します。変換スクリプトを使用して、データをフォーマットし、関連するステップを アクションに追加します。詳細については、「JDBC ステップ」と「JDBC ステップのテスト」を参照してください。すべてのデータが取得され、ページネーションは必要ありません。

    これは、MID サーバー で実行される必須要求コンポーネントです。

    REST および SOAP ステップでの解析

    [解析] カテゴリを使用して、アクションでデータストリーム要素を複雑なデータオブジェクトに分離する方法を設定します。スプリッターステップを使用してアイテムを識別し、XML または JSON ストリームから分離し、スクリプトパーサーステップを使用して各アイテムを複雑なオブジェクトに変換します。[解析中] セクションは、ストリーム内のアイテムごとに 1 回実行されます。fd_data オブジェクトを使用して、データストリームアクションの前のステップの出力にアクセスできます。ただし、次のものは除きます。
    • REST または SOAP ステップの応答本文、ストリーム、またはエラーメッセージの出力
    • セパレーターステップ出力

    ユーザーレコードのストリームを分割および解析する

    複合データの詳細については「複合データ」を参照してください。解析コンポーネントは、これらの構成オプションを提供します。

    スプリッターステップ

    次のことを特定します:

    XML または JSON データストリーム内の繰り返しアイテムを識別して区切るためにスプリッタータイプを選択します。

    これは、インスタンスのみで実行される必須解析コンポーネントです。

    スクリプトパーサーステップ

    使用 必要に応じて、[スクリプトパーサー] ステップのスクリプトセクションに outputs.state = 'SKIP' を追加することで、ストリーム内のアイテムをスキップできます。

    これは、インスタンスのみで実行される必須解析コンポーネントです。

    図 : 3. REST および SOAP データストリームアクション概要
    REST および SOAP データストリームアクションの概要。

    JDBC ステップの変換スクリプト

    JDBC データストリームアクションはページネーションを必要としません。また、スプリッターステップとパーサーのステップは必要ありません。

    JDBC ステップでは、取得したレコードごとに複合オブジェクトを生成します。したがって、JDBC データストリームアクションのアクション前処理と変換スクリプトはオプションです。変換スクリプトを使用する場合、アクションデザイナーは変換スクリプトのテーブル列の内部名を指定する必要があります。
    図 : 4. JDBC データストリームアクションの概要
    JDBC データストリームアクションの概要。

    SOAP ステップおよび REST ステップでのデータストリーム出力

    アクションを設計するときは、オブジェクトタイプまたはダイナミックオブジェクトタイプの単一の出力を作成する必要があります。スクリプトパーサーステップは、 targetObject グローバルオブジェクトを使用して、ストリーム内のアイテムをこのオブジェクトにマップします。

    実行時に、システムは 構成に従って応答データのストリームを分割して解析します。ストリーム内の各アイテムは、スクリプトパーサーステップで定義された複雑なオブジェクト構造とオブジェクト出力にマップされ、結果として一連の複雑なオブジェクトが大量に生成されます。複合データの詳細については「複合データ」を参照してください。

    JDBC ステップでのデータストリーム出力

    JDBC ステップの出力は、複雑なオブジェクトストリームです。データ全体は、1 回の要求でのみ取得されます。
    注:
    • JDBC データストリームアクションを使用してデータを取得することはできますが、レコードを更新または削除することはできません。
    • JDBC ステップで使用可能な [最大行] および [最大ペイロードサイズ (KB)] フィールドは、JDBC データストリームアクションでは使用できません。

    REST および SOAP ステップの実行の詳細

    アクションによって処理された各アイテムの構成と実行時の結果を表示します。レコード番号を選択すると、その構成と実行時の詳細が表示されます。デフォルトでは、実行の詳細には最新の 1000 アイテムの要求が含まれます。実行の詳細のアイテム数を変更するには、 com.snc.process_flow.reporting.datastream.item.lastn システムプロパティを更新します。

    データストリームアクションの実行の詳細

    データストリームサマリー

    次の情報を含む実行の概要を表示します。

    • [ページ数]:ページネーションされた API によって返されるページ数。
    • [合計アイテム数]:複合オブジェクト出力にマップされた応答ストリーム内のアイテムの数。
    • [エラー数]:発生したエラーの数。
    ページの詳細

    アクション内の各ステップのランタイムデータを表示します。ページネーションされた API への各要求のランタイムの詳細を表示するページを選択します。デフォルトでは、[実行の詳細] には最後の 5 ページの要求が含まれます。実行の詳細の要求数を変更するには、 com.snc.process_flow.page.reporting.lastn システムプロパティを更新します。値を 0 に設定すると [実行の詳細] からページが削除され、 -1 に設定するとすべてのページが含まれます。

    注:
    すべてのページを含めるとパフォーマンスに影響する可能性があるため、お勧めしません。

    ランタイムの詳細

    JDBC ステップでの実行の詳細

    JDBC データストリームアクションでは、出力複合オブジェクトスキーマの構築は必要ありません。クエリをテストし、クエリ結果を確認できます。詳細については、「JDBC ステップのテスト」を参照してください。要件に従ってデータを取得するように MID サーバー プロパティ mid.jdbc.datastream.max.record.size および mid.jdbc.datastream.fail.when.attachement.limit.exceeded を設定します。詳細については、「MID Server プロパティ」を参照してください。