> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Workflow state reader Workflow state reader ヘルパーは、`workflow.getWorkflowRunById()` が返す公開 `WorkflowState` を検査します。中断された Run の復元や resume label の確認に使用できます。また、生の Workflow スナップショットを解析せずに、ステップのペイロードや出力を読み取ることもできます。 ## 使用例 ```typescript import { createWorkflowStateReader } from '@mastra/core/workflows' const state = await workflow.getWorkflowRunById('run-123') if (state) { const reader = createWorkflowStateReader(state) const suspendedStep = reader.getSuspendedStep() const labels = reader.getResumeLabels() console.log(reader.getStatus()) console.log(reader.getStepOutput('extract-data')) console.log(suspendedStep?.path) console.log(labels.approve) } ``` ## 関数 ### `createWorkflowStateReader(state)` 1 つの `WorkflowState` にメソッドをバインドした reader オブジェクトを作成します。 ```typescript const reader = createWorkflowStateReader(state) const suspendedStep = reader.getSuspendedStep() ``` ### `getWorkflowStepOutput(state, stepId)` ステップ ID の出力を返します。`parent.child` のようなネストされた Workflow のドットパスにも対応します。`foreach` ステップでは、反復ごとに 1 つのエントリを返します。中断された反復の出力エントリは `undefined` になる場合があります。 ```typescript const output = getWorkflowStepOutput(state, 'extract-data') ``` ### `getWorkflowStepPayload(state, stepId)` ステップに渡されたペイロードを返します。`foreach` ステップでは、反復ごとに 1 つのエントリを返します。 ```typescript const payload = getWorkflowStepPayload(state, 'extract-data') ``` ### `getWorkflowSuspendedStep(state)` Workflow の状態から、最初に中断されたステップを返します。複数のステップが中断されている場合は、`suspendedPaths` に保存された順序に従います。 ```typescript const suspendedStep = getWorkflowSuspendedStep(state) ``` ### `getWorkflowSuspendedSteps(state)` Workflow の状態から、中断されたすべてのステップを返します。各結果には、トップレベルのステップ ID、再開パス、実行パス、中断時のペイロード、中断時の出力、および一致する resume label が含まれます。 ```typescript const suspendedSteps = getWorkflowSuspendedSteps(state) ``` ### `getWorkflowResumeLabel(state, label)` 名前を指定して resume label を返します。 ```typescript const label = getWorkflowResumeLabel(state, 'approve') ``` ### `getWorkflowResumeLabels(state)` Workflow の状態から、すべての resume label を返します。 ```typescript const labels = getWorkflowResumeLabels(state) ``` ## Reader メソッド `createWorkflowStateReader(state)` は次のメソッドを返します。 **getStatus** (`() => WorkflowRunStatus`): Workflow Run のステータスを返します。 **getResult** (`() => WorkflowState["result"]`): 終端状態の Workflow の結果が存在する場合に返します。 **getError** (`() => WorkflowState["error"]`): 終端状態の Workflow のエラーが存在する場合に返します。 **getStepOutput** (`(stepId: string) => any | Array | undefined`): ステップ ID またはネストされた Workflow のドットパスに対応する出力を返します。 **getStepPayload** (`(stepId: string) => any | Array | undefined`): ステップ ID またはネストされた Workflow のドットパスに対応するペイロードを返します。 **getSuspendedStep** (`() => { stepId: string; path: string[]; executionPath?: number[]; step?: NonNullable[string]; payload?: any; suspendPayload?: any; suspendOutput?: any; resumeLabels: Record } | undefined`): 最初に中断されたステップを返します。 **getSuspendedSteps** (`() => Array<{ stepId: string; path: string[]; executionPath?: number[]; step?: NonNullable[string]; payload?: any; suspendPayload?: any; suspendOutput?: any; resumeLabels: Record }>`): 中断されたすべてのステップを返します。 **getResumeLabel** (`(label: string) => { stepId: string; foreachIndex?: number } | undefined`): 名前を指定して resume label を返します。 **getResumeLabels** (`() => Record`): すべての resume label を返します。 ## 注意事項 `requestContext` と `tracingContext` は、`fields` で明示的に要求した場合にのみ `workflow.getWorkflowRunById()` から返されます。 ## 関連項目 - [中断と再開](https://mastra.zisheng.pro/ja/docs/workflows/suspend-and-resume) - [スナップショット](https://mastra.zisheng.pro/ja/docs/workflows/snapshots) - [Workflow クラス](https://mastra.zisheng.pro/ja/reference/workflows/workflow)