データストリーム アクションデザインの検討
エラーやパフォーマンスの問題を防ぐために、データストリーム アクションを作成するときやフローに データストリーム アクションを追加するときは、次の考慮事項に従ってください。
データストリーム アクションを作成する際の考慮事項
これらの考慮事項を念頭に置いて データストリーム アクションを作成します。
- サードパーティの要件に従ってページネーションロジックを記述する
サードパーティのエンドポイントに必要な形式を評価して理解します。たとえば、
nextPageトークンが応答にある限り、組み込みのgetNextPage変数を true に設定するスクリプトの作成が必要な場合があります。トークンが応答に含まれていない場合は、変数を false に設定します。かっこまたはドット表記を使用して、スクリプトにある変数にアクセスします。たとえば、変数 ['getNextPage']などです。この変数は、ブールデータ型のみを受け入れます。デフォルト値は false です。- 前処理スクリプトが MID サーバー を呼び出したり、アクションを一時停止したりしないようにします。
- データストリームアクションでは、応答ストリームへの常時接続が必要です。アクションを一時停止して MID サーバー を呼び出したり、アクションを一時停止して条件や期間を待機したりする前処理スクリプトはサポートされていません。何らかの理由でアクションを一時停止する前処理スクリプトは、エラーメッセージを返します。
- ページネーション変数のデータタイプを変換して数学演算を実行する
ページネーション変数は、文字列データ型のみをサポートします。数式演算を実行するには、値を整数に変換して必要な操作を実行し、文字列に変換する必要があります。
variables['offset'] = (parseInt(variables['offset']) + parseInt(variables['limit'])).toString();- ページネーションスクリプトに終了条件があることを確認する
getNextPage変数を false に設定する条件を作成することで、無限ループがページネーション要求で発生することを回避します。長実行時間のフローをキャンセルします。データストリーム アクションは、本番環境で使用する前に常にテストしてください。- 構成ページのオプションを慎重にクリアする
- 設定ページのオプションを消去すると手順が データストリーム アウトラインから削除されて、関連付けられるすべてのデータが削除されます。
- 返される各ページのサイズを考慮する
- ページネーションオプションを設定するときは、返される各ページのサイズが 1 GB 未満になるようにしてください。これにより、アクションを使用するフローデザイナーが MID サーバーからデータを取得するときにサイズ制限の問題が発生しなくなります。アクションがページあたり 1 GB を超えるデータを返す場合、フローデザイナーは添付ファイルのサイズ制限を増やす必要がある場合があります。詳細については、「データストリーム アクションの MID サーバー サポート」を参照してください。
- データストリーム をネストするアクションはサポートされていません。
- 再試行ポリシーを使用する場合は、次の考慮事項に注意してください。
- 固定時間間隔戦略のみがデータストリームアクションに適用されます。
- 合計遅延 (カウントに間隔を掛けたもの) は 30 秒を超えることはできません。たとえば、最大 3 回の再試行が必要な場合、各再試行の最大遅延は 10 秒です。
- 再試行中にデータストリームステップは待機ステータスになりません。
データストリーム アクションをフローに追加する際の考慮事項
これらの考慮事項を念頭に置いて データストリーム アクションをフローに追加します。
- 待機条件のあるアクションを データストリーム For Each ロジックブロックに追加しない
フローを一時停止するアクションは データストリーム For Each フローロジックブロックには追加できません。データストリーム アクションには応答ストリームへの常時接続が必要です。たとえば、Ask for 承認または Wait for 条件の各アクションは データストリーム For Each フローロジック内では使用できません。
一部のアクションとステップは常にフローを一時停止し、データストリーム For Each フローロジックブロックに追加できません。ただし、一部のアクションとステップは、構成方法によってはフローを一時停止する場合があります。アクション構成を確認し、ランタイム時にフローが一時停止しないことを確認します。
フローを常に一時停止する (データストリームアクションではサポートされていません) 「承認を求める」アクション 「承認を求める」ステップ 「条件待ち」アクション 「条件待ち」ステップ 構成によってはフローを一時停止する場合がある 「カタログ タスクの作成」アクション 「タスクの作成」アクション 「タスクの作成」ステップ - MID サーバー で実行されるアクションを データストリーム For Each ロジックブロックに追加しない
一部のアクションとステップは常に MID サーバー で実行され、データストリーム For Each フローロジックブロックに追加できません。ただし、一部のアクションとステップは、構成方法によっては MID サーバー で実行できる場合があります。アクション構成を確認し、ランタイム時に MID サーバー で実行されないことを確認します。
常に MID サーバーで実行する (データストリームアクションではサポートされていません) JDBC ステップ PowerShell ステップ SSH ステップ 構成に応じて MID サーバーで実行される場合がある REST ステップ スクリプト ステップ SOAP ステップ - For Each ロジックブロックで多数のレコードを消費する場合はレポートをオフにする
- 特に For Each ロジックブロックに反復ごとに複合アクションが含まれている際は、多数のレコードの反復処理はリソースを集中的に使用する可能性があります。パフォーマンスの問題を回避するには、com.snc.process_flow.reporting.level システムプロパティを使用してレポートをオフにします。詳細については、「Workflow Studio flow system properties」を参照してください。