about_Suspend-Workflow

Descrição breve

Descreve a Suspend-Workflow atividade, que suspende o fluxo de trabalho no qual a atividade aparece.

Descrição longa

A Suspend-Workflow atividade interrompe temporariamente o processamento do fluxo de trabalho de dentro do fluxo de trabalho. Antes de suspender, o Fluxo de Trabalho do Windows PowerShell usa um ponto de verificação para que o estado e os dados do fluxo de trabalho sejam preservados e o fluxo de trabalho possa ser retomado a partir do ponto de suspensão.

Para retomar o fluxo de trabalho, o usuário que executa o fluxo de trabalho usa o Resume-Job cmdlet. Não é possível retomar um fluxo de trabalho de dentro do fluxo de trabalho.

Sintaxe

workflow <Verb-Noun>
{
    Suspend-Workflow
}

Descrição detalhada

O Suspend-Workflow interrompe temporariamente o fluxo de trabalho e retorna um objeto de trabalho que representa o trabalho de fluxo de trabalho. Um objeto de trabalho é retornado mesmo se você não executou o fluxo de trabalho como um trabalho. Por exemplo, como usando o parâmetro comum de fluxo de trabalho AsJob . O estado do trabalho é Suspenso.

Você pode usar os cmdlets de trabalho para gerenciar o trabalho de fluxo de trabalho suspenso. Para retomar o trabalho de fluxo de trabalho, use o Resume-Job cmdlet.

Quando você retoma o trabalho de fluxo de trabalho, o fluxo de trabalho é retomado no comando que segue a Suspend-Workflow atividade.

Por exemplo, o fluxo de trabalho a seguir inclui a Suspend-Workflow atividade. Quando você executa o fluxo de trabalho, ele executa a Get-Date atividade, salva sua saída na variável e, em $a seguida, suspende o fluxo de trabalho e retorna um objeto de trabalho que representa o fluxo de trabalho suspenso. O tipo de trabalho é PSWorkflowJob.

Você pode usar os cmdlets de trabalho, como Get-Job, para gerenciar o trabalho de fluxo de trabalho.

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

Retomando um trabalho de fluxo de trabalho

Para retomar o trabalho de fluxo de trabalho, use o Resume-Job cmdlet. O Resume-Job cmdlet retorna o objeto de trabalho de fluxo de trabalho imediatamente, mesmo que ele ainda não tenha sido retomado. Para aguardar a retomada do trabalho, use o parâmetro Wait ou use o Get-Job cmdlet para obter o objeto de trabalho atual.

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

Obtendo a saída de um trabalho de fluxo de trabalho

Para obter a saída de um trabalho de fluxo de trabalho, use o Receive-Job cmdlet. A saída mostra que o fluxo de trabalho foi retomado no comando que seguiu o Suspend-Workflow cmdlet. O valor da variável, que foi preenchido antes da suspensão, estará disponível para o fluxo de $a trabalho quando ele for retomado.

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

Confira também