about_Suspend-Workflow

Descripción breve

Describe la Suspend-Workflow actividad, que suspende el flujo de trabajo en el que aparece la actividad.

Descripción larga

La actividad detiene temporalmente el Suspend-Workflow procesamiento del flujo de trabajo desde dentro del flujo de trabajo. Antes de suspender, el flujo de trabajo de Windows PowerShell toma un punto de control para que el estado y los datos del flujo de trabajo se conserven y el flujo de trabajo pueda reanudarse desde el punto de suspensión.

Para reanudar el flujo de trabajo, el usuario que ejecuta el flujo de trabajo usa el Resume-Job cmdlet . No se puede reanudar un flujo de trabajo desde el flujo de trabajo.

Sintaxis

workflow <Verb-Noun>
{
    Suspend-Workflow
}

Descripción detallada

Detiene Suspend-Workflow temporalmente el flujo de trabajo y devuelve un objeto de trabajo que representa el trabajo de flujo de trabajo. Se devuelve un objeto de trabajo incluso si no ejecutó el flujo de trabajo como trabajo. Por ejemplo, por ejemplo, mediante el parámetro común del flujo de trabajo de AsJob . El estado del trabajo es Suspendido.

Puede usar los cmdlets de trabajo para administrar el trabajo de flujo de trabajo suspendido. Para reanudar el trabajo de flujo de trabajo, use el Resume-Job cmdlet .

Al reanudar el trabajo de flujo de trabajo, el flujo de trabajo se reanuda en el comando que sigue a la Suspend-Workflow actividad.

Por ejemplo, el siguiente flujo de trabajo incluye la Suspend-Workflow actividad . Al ejecutar el flujo de trabajo, ejecuta la Get-Date actividad, guarda su salida en la $a variable y, a continuación, suspende el flujo de trabajo y devuelve un objeto de trabajo que representa el flujo de trabajo suspendido. El tipo de trabajo es PSWorkflowJob.

Puede usar los cmdlets de trabajo, como Get-Job, para administrar el trabajo de flujo de trabajo.

Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

Test-Suspend
Id  Name  PSJobTypeName  State      HasMoreData  Location  Command
--  ----  -------------  -----      -----------  --------  -------
8   Job8  PSWorkflowJob  Suspended  True         localhost Test-Suspend

Reanudación de un trabajo de flujo de trabajo

Para reanudar el trabajo de flujo de trabajo, use el Resume-Job cmdlet . El Resume-Job cmdlet devuelve inmediatamente el objeto de trabajo de flujo de trabajo, aunque es posible que aún no se reanude. Para esperar a que se reanude el trabajo, use el parámetro Wait o use el Get-Job cmdlet para obtener el objeto de trabajo actual.

Resume-Job -Name Job8
Id  Name  PSJobTypeName  State    HasMoreData  Location  Command
--  ----  -------------  -----    -----------  --------  -------
8   Job8  PSWorkflowJob  Running  True         localhost Test-Suspend
Get-Job -Name Job8
Id  Name  PSJobTypeName  State      HasMoreData  Location  Command
--  ----  -------------  -----      -----------  --------  -------
8   Job8  PSWorkflowJob  Completed  True         localhost Test-Suspend

Obtención de la salida de un trabajo de flujo de trabajo

Para obtener la salida de un trabajo de flujo de trabajo, use el Receive-Job cmdlet . La salida muestra que el flujo de trabajo se reanudó en el comando que siguió al Suspend-Workflow cmdlet . El valor de la $a variable, que se ha rellenado antes de la suspensión, está disponible para el flujo de trabajo cuando se reanuda.

Get-Job -Name Job8 | Receive-Job
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 19
Milliseconds      : 823
Ticks             : 198230041
TotalDays         : 0.000229432917824074
TotalHours        : 0.00550639002777778
TotalMinutes      : 0.330383401666667
TotalSeconds      : 19.8230041
TotalMilliseconds : 19823.0041
PSComputerName    : localhost

Consulte también