Paginate: set a maximum page index
この関数カードはConnector Builderでのみ使用可能です。
Paginate関数カードを使用する場合、関数の反復回数を制御することが重要です。Okta Workflowsでは、この関数の反復回数が5,000回に制限されます。そのため、フローをテストする際には、この回数を超えないことが重要です。
この例では、max_page_indexを10に設定し、そのインデックスに達したらページネーションを停止する方法を示します。
この関数カードの使用を開始するには、「Pagenate(ページネーション)」を、このカードの使用時のその他のベストプラクティスについては「Paginate: API endpoint」を参照してください。
Constructオブジェクトカードを使用して、3つのキーと値のペアを含むオブジェクトを作成します。たとえば、次のようなキーが考えられます。
-
page_index:現在の繰り返し回数。
-
max_page_index:ヘルパーフローが繰り返し実行を行う最大回数。
-
break:関数がループを停止するためにチェックする値。
その後、生成されたobject(オブジェクト)をPaginate関数カードに渡すことができます。
ヘルパーフロー
Paginate関数にはヘルパーフローが必要です。ヘルパーフローで定義される入力は、ページネーションobject(オブジェクト)で定義したキーと一致する必要があります。
-
page_index
-
max_page_index
-
break
ヘルパーフローの実行時に、フローに渡される値を管理する必要があります。ページネーション関数によって行われる反復回数を追跡することが目的であるため、反復ごとにpage_indexの値を増やす必要があります。これを行うには、Add数値関数カードを使用します。
次に、ページネーションobject(オブジェクト)をPaginate関数カードに返せるように新しく再構築します。
生成されるobject(オブジェクト)の値は次のようになります。
{
"page_index": 1,
"max_page_index": 10,
"break": false
}
フローが反復すると、カウンターが増加します。page_indexが10に到達(max_page_indexに一致)した後にPagination関数の反復を停止するには、object(オブジェクト)からbreakを削除する必要があります。
-
ヘルパーフロー内にIf/Else分岐関数を追加します。[Compare(比較)]フィールドに、new_indexがmax_page_indexに等しいかどうかをチェックすることを入力します。
[Save(保存)]をクリックします。
-
[FALSEの場合に実行]行では、更新されたオブジェクトをAssignカードにドラッグできます。オブジェクトは、If/Elseカードを変更せずにそのままにします。
-
[TRUEの場合に実行]行(page_indexがmax_page_indexに等しくなったときにトリガーされます)で、Unsetオブジェクト関数を追加してbreakキーを削除します。生成されたページネーションobject(オブジェクト)が親フローに返されると、Paginate関数はbreakパスをチェックします。そのパスが更新されたobject(オブジェクト)に見つからない場合、関数はページネーションを停止して完了します。
-
[Create outputs(出力を作成)]をクリックし、[出力]フィールドをReturnフロー制御カードにドラッグします。
-
各行から出力object(オブジェクト)を、trueまたはfalseのテスト結果に対応する[出力]フィールドにドラッグします。
親フローを実行すると、最終的なobject(オブジェクト)は次のようになります。
{
"page_index": 10,
"max_page_index": 10
}