> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Lecteur d’état de Workflow Les assistants de lecture d’état de Workflow inspectent le `WorkflowState` public renvoyé par `workflow.getWorkflowRunById()`. Utilisez-les pour récupérer des exécutions suspendues et inspecter les libellés de reprise. Ils lisent également les payloads ou les sorties d’étapes sans analyser les instantanés bruts de Workflow. ## Exemple d’utilisation ```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) } ``` ## Fonctions ### `createWorkflowStateReader(state)` Crée un objet lecteur avec des méthodes liées à un `WorkflowState`. ```typescript const reader = createWorkflowStateReader(state) const suspendedStep = reader.getSuspendedStep() ``` ### `getWorkflowStepOutput(state, stepId)` Renvoie la sortie pour un ID d’étape, y compris les chemins par points de Workflows imbriqués tels que `parent.child`. Pour les étapes `foreach`, renvoie une entrée par itération. Les itérations suspendues peuvent avoir des entrées de sortie `undefined`. ```typescript const output = getWorkflowStepOutput(state, 'extract-data') ``` ### `getWorkflowStepPayload(state, stepId)` Renvoie le payload transmis à une étape. Pour les étapes `foreach`, renvoie une entrée par itération. ```typescript const payload = getWorkflowStepPayload(state, 'extract-data') ``` ### `getWorkflowSuspendedStep(state)` Renvoie la première étape suspendue depuis l’état du Workflow. Lorsque plusieurs étapes sont suspendues, l’ordre suit celui stocké dans `suspendedPaths`. ```typescript const suspendedStep = getWorkflowSuspendedStep(state) ``` ### `getWorkflowSuspendedSteps(state)` Renvoie toutes les étapes suspendues depuis l’état du Workflow. Chaque résultat inclut l’ID d’étape de premier niveau, le chemin de reprise, le chemin d’exécution, le payload de suspension, la sortie de suspension et les libellés de reprise correspondants. ```typescript const suspendedSteps = getWorkflowSuspendedSteps(state) ``` ### `getWorkflowResumeLabel(state, label)` Renvoie un libellé de reprise par nom. ```typescript const label = getWorkflowResumeLabel(state, 'approve') ``` ### `getWorkflowResumeLabels(state)` Renvoie tous les libellés de reprise depuis l’état du Workflow. ```typescript const labels = getWorkflowResumeLabels(state) ``` ## Méthodes du lecteur `createWorkflowStateReader(state)` renvoie les méthodes suivantes : **getStatus** (`() => WorkflowRunStatus`): Renvoie l’état de l’exécution du Workflow. **getResult** (`() => WorkflowState["result"]`): Renvoie le résultat final du Workflow lorsqu’il existe. **getError** (`() => WorkflowState["error"]`): Renvoie l’erreur finale du Workflow lorsqu’elle existe. **getStepOutput** (`(stepId: string) => any | Array | undefined`): Renvoie la sortie d’un ID d’étape ou d’un chemin par points de Workflow imbriqué. **getStepPayload** (`(stepId: string) => any | Array | undefined`): Renvoie le payload d’un ID d’étape ou d’un chemin par points de Workflow imbriqué. **getSuspendedStep** (`() => { stepId: string; path: string[]; executionPath?: number[]; step?: NonNullable[string]; payload?: any; suspendPayload?: any; suspendOutput?: any; resumeLabels: Record } | undefined`): Renvoie la première étape suspendue. **getSuspendedSteps** (`() => Array<{ stepId: string; path: string[]; executionPath?: number[]; step?: NonNullable[string]; payload?: any; suspendPayload?: any; suspendOutput?: any; resumeLabels: Record }>`): Renvoie toutes les étapes suspendues. **getResumeLabel** (`(label: string) => { stepId: string; foreachIndex?: number } | undefined`): Renvoie un libellé de reprise par nom. **getResumeLabels** (`() => Record`): Renvoie tous les libellés de reprise. ## Remarques `requestContext` et `tracingContext` ne sont renvoyés par `workflow.getWorkflowRunById()` que lorsqu’ils sont explicitement demandés avec `fields`. ## Voir aussi - [Suspendre et reprendre](https://mastra.zisheng.pro/fr/docs/workflows/suspend-and-resume) - [Instantanés](https://mastra.zisheng.pro/fr/docs/workflows/snapshots) - [Classe Workflow](https://mastra.zisheng.pro/fr/reference/workflows/workflow)