Partilhar via


Obter WorkflowInstanceId

O exemplo GetWorkflowInstanceId demonstra como usar a atividade GetWorkflowInstanceId personalizada para retornar a ID da instância do fluxo de trabalho.

Demonstra

Desenvolvimento de atividade personalizada, como acessar a instância do fluxo de trabalho.

Debate

Obter o ID de instância de um fluxo de trabalho em execução requer escrever código. Se você quiser escrever um fluxo de trabalho totalmente declarativo, precisará de uma atividade que possa retornar o ID da instância do fluxo de trabalho para que a atividade possa ser referenciada no fluxo de trabalho para fornecer uma experiência de criação de fluxo de trabalho totalmente declarativa. Muitos cenários exigem acesso ao ID da instância: alguns exemplos são para fins de registro em log ou auditoria ou para fazer correlação no nível do aplicativo, fornecendo o ID da instância de volta a um cliente para associação futura (por exemplo, usando essa atividade dentro de uma atividade SendReply).

GetWorkflowInstanceId é implementado como um CodeActivity<TResult> porque deve retornar um valor do tipo Guid, e deve ter acesso ao CodeActivityContext para obter o ID da instância do fluxo de trabalho. A sua implementação é bastante básica.

public sealed class GetWorkflowInstanceId : CodeActivity<Guid>
{
    protected override Guid Execute(CodeActivityContext context)
    {
        return context.WorkflowInstanceId;
    }
}