Skip to Content

StepCondition

条件は、前のステップの出力やトリガーデータに基づいてステップを実行するかどうかを決定します。

使用方法

条件を指定する方法は3つあります:関数、クエリオブジェクト、シンプルなパス比較です。

1. 関数による条件

workflow.step(processOrder, { when: async ({ context }) => { const auth = context?.getStepResult<{ status: string }>("auth"); return auth?.status === "authenticated"; }, });

2. クエリオブジェクト

workflow.step(processOrder, { when: { ref: { step: "auth", path: "status" }, query: { $eq: "authenticated" }, }, });

3. シンプルなパス比較

workflow.step(processOrder, { when: { "auth.status": "authenticated", }, });

条件のタイプに応じて、ワークフローランナーはこれらのいずれかのタイプに条件をマッチさせようとします。

  1. シンプルなパス条件(キーにドットが含まれている場合)
  2. ベース/クエリ条件(‘ref’ プロパティがある場合)
  3. 関数条件(非同期関数の場合)

StepCondition

ref:

{ stepId: string | 'trigger'; path: string }
ステップ出力値への参照。stepId にはステップIDまたは初期データ用の 'trigger' を指定します。path はステップ結果内の値の場所を指定します。

query:

Query<any>
sift演算子($eq, $gt など)を使用したMongoDBスタイルのクエリ

クエリ

Queryオブジェクトは、前のステップやトリガーデータの値を比較するためのMongoDBスタイルのクエリ演算子を提供します。$eq$gt$ltなどの基本的な比較演算子や、$in$ninのような配列演算子をサポートしており、and/or演算子と組み合わせて複雑な条件を作成できます。

このクエリ構文により、ステップを実行するかどうかを判断するための可読性の高い条件ロジックを記述できます。

$eq:

any
値と等しい

$ne:

any
値と等しくない

$gt:

number
値より大きい

$gte:

number
値以上

$lt:

number
値より小さい

$lte:

number
値以下

$in:

any[]
配列内に値が存在する

$nin:

any[]
配列内に値が存在しない

and:

StepCondition[]
すべての条件がtrueでなければならない条件の配列

or:

StepCondition[]
少なくとも1つがtrueでなければならない条件の配列

関連