Compartilhar via


WorkflowPersistenceService.SaveCompletedContextActivity(Activity) Método

Definição

Quando implementado em uma classe derivada, salva o escopo concluído especificado em um armazenamento de dados.

protected public:
 abstract void SaveCompletedContextActivity(System::Workflow::ComponentModel::Activity ^ activity);
protected internal abstract void SaveCompletedContextActivity(System.Workflow.ComponentModel.Activity activity);
abstract member SaveCompletedContextActivity : System.Workflow.ComponentModel.Activity -> unit
Protected Friend MustOverride Sub SaveCompletedContextActivity (activity As Activity)

Parâmetros

activity
Activity

Um Activity que representa o escopo concluído.

Comentários

O mecanismo de runtime de fluxo de trabalho salva o estado das atividades de escopo concluídas para implementar a compensação. Você deve chamar um dos métodos sobrecarregados Save para serializar activity em um Stream; em seguida, você pode optar por processar adicionalmente antes Stream de escrevê-lo em seu armazenamento de dados. No entanto, quando o mecanismo de runtime de fluxo de trabalho chama LoadCompletedContextActivity, você deve restaurar uma cópia idêntica da atividade.

Você deve ser capaz de associar o escopo concluído à instância de fluxo de trabalho delimitador para marcar o escopo como desnecessário no armazenamento de dados quando a instância do fluxo de trabalho for concluída ou terminar. Portanto, você também deve salvar a Guid instância do fluxo de trabalho associada ao escopo concluído; isso pode ser obtido da InstanceId propriedade do WorkflowInstance associado activitya .

LoadCompletedContextActivity usa o Guid escopo concluído como um parâmetro. Portanto, você também deve salvar a ContextGuid propriedade associada activitya . Essa propriedade pode ser referenciada por meio do ActivityContextGuidProperty campo de activity.

Se você estiver implementando um serviço de persistência que usa um repositório durável, para manter a consistência com o estado interno do mecanismo de runtime de fluxo de trabalho, deverá participar do envio em lote de transações de fluxo de trabalho para adiar a gravação real em seu repositório durável até um ponto de confirmação de fluxo de trabalho. Para participar do envio em lote, adicione um item de trabalho à WorkBatch propriedade que representa as alterações pendentes no banco de dados e implemente a IPendingWork interface em seu serviço de persistência.

Se você não puder salvar o escopo concluído em seu armazenamento de dados, deverá lançar uma PersistenceException mensagem de erro com uma mensagem de erro apropriada.

Aplica-se a