Condividi tramite


about_Suspend-Workflow

Descrizione breve

Descrive l'attività Suspend-Workflow che sospende il flusso di lavoro in cui viene visualizzata l'attività.

Descrizione lunga

L'attività Suspend-Workflow interrompe temporaneamente l'elaborazione del flusso di lavoro dall'interno del flusso di lavoro. Prima della sospensione, il flusso di lavoro di Windows PowerShell accetta un checkpoint in modo che lo stato e i dati del flusso di lavoro vengano mantenuti e che il flusso di lavoro possa riprendere dal punto di sospensione.

Per riprendere il flusso di lavoro, l'utente che esegue il flusso di lavoro usa il Resume-Job cmdlet . Non è possibile riprendere un flusso di lavoro dall'interno del flusso di lavoro.

Sintassi

workflow <Verb-Noun>
{
    Suspend-Workflow
}

Descrizione dettagliata

L'oggetto Suspend-Workflow arresta temporaneamente il flusso di lavoro e restituisce un oggetto processo che rappresenta il processo del flusso di lavoro. Viene restituito un oggetto processo anche se non è stato eseguito il flusso di lavoro come processo. Ad esempio, usando il parametro comune del flusso di lavoro AsJob . Lo stato del processo è Suspended.

È possibile usare i cmdlet del processo per gestire il processo del flusso di lavoro sospeso. Per riprendere il processo del flusso di lavoro, usare il Resume-Job cmdlet .

Quando si riprende il processo del flusso di lavoro, il flusso di lavoro riprende dal comando che segue l'attività Suspend-Workflow .

Ad esempio, il flusso di lavoro seguente include l'attività Suspend-Workflow . Quando si esegue il flusso di lavoro, l'attività Get-Date viene eseguita, ne salva l'output nella $a variabile e quindi sospende il flusso di lavoro e restituisce un oggetto processo che rappresenta il flusso di lavoro sospeso. Il tipo di processo è PSWorkflowJob.

È possibile usare i cmdlet del processo, ad esempio Get-Job, per gestire il processo del flusso di lavoro.

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

Ripresa di un processo del flusso di lavoro

Per riprendere il processo del flusso di lavoro, usare il Resume-Job cmdlet . Il Resume-Job cmdlet restituisce immediatamente l'oggetto processo del flusso di lavoro, anche se potrebbe non essere ancora ripreso. Per attendere la ripresa del processo, usare il parametro Wait oppure usare il Get-Job cmdlet per ottenere l'oggetto processo corrente.

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

Recupero dell'output di un processo del flusso di lavoro

Per ottenere l'output di un processo del flusso di lavoro, usare il Receive-Job cmdlet . L'output mostra che il flusso di lavoro è stato ripreso nel comando che ha seguito il Suspend-Workflow cmdlet . Il valore della variabile, popolata prima della $a sospensione, è disponibile per il flusso di lavoro quando riprende.

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

Vedi anche