コンテンツにスキップ

制御

5 つのボックスがシナリオの実行フローを操ります。

なお、どのボックスにも暗黙のポート inerrordone があります。 ポートと接続を参照してください。

Input / Param(入力 / パラメーター)

Section titled “Input / Param(入力 / パラメーター)”

シナリオのパラメーターを宣言します。

入力なし
出力value{ name: value, … } という単一のオブジェクト
設定name(パラメーター名)、valueType(型と既定値)

値は起動時に、コマンドラインの --param name=value で渡します。 値が用意されていない状態で実行がこのボックスに到達した場合は、対話的に入力を求められます

入力「baseUrl」(文字列) ──► リクエストの env ポート

シナリオの呼び出し元に結果を公開します。

入力value
出力なし — 終端のボックスです。errordone もありません
設定name

シナリオ実行アクションから呼ばれたシナリオは、その出力のそれぞれを 呼び出し側の output:<name> ポートで利用できるようにします。

2 方向の分岐です。

入力leftright
出力thenelse
設定operatorltlteeqgtegtnecontains — さらにリテラル値としての leftright

コツ:どちらのオペランドも接続されず、値も入力されていない場合、 このボックスは in で受け取ったシグナルの真偽をそのまま判定します。 明示的な条件のない「ここまで到達したかどうか」の判定です。

N 方向の分岐です。

入力on
出力宣言したケースごとに case-<id> ポート、さらに default
設定cases{ id, value } のリスト

分岐先が 3 つ以上になったら、If を数珠つなぎにするよりこちらが適しています。 ケースごとに独立した線になるため、図として読みやすくなります。

エラーからの復帰を区切る境界です。

入力maxAttemptsdelay
出力attempt(試行のたび)、exhausted(試行回数を使い切ったとき)
設定下記を参照
フィールド既定値役割
maxAttempts3最大試行回数
backofffixedfixedlinearexponential
delay + delayUnit基本待ち時間(mssmin
factor2指数モードでの増加係数
maxDelay + maxDelayUnit待ち時間の上限
retryOnErrortrueエラー時に再試行する
retryOnFailurefalse業務上の失敗時に再試行する
retryOnStatusHTTP ステータスのリスト。たとえば [429, 503]

attempt に接続したサブグラフが再試行の対象範囲になります。 成功した場合は done から抜けます。このボックスに error ポートはありません。 このボックス自身が境界だからです。

Retry(3 回、指数、[429,503])
├─ attempt ──► HTTP リクエスト ──► Assert
└─ exhausted ──► Throw「サービス利用不可」