WF DelayActivity é acionado imediatamente?

Tenho um fluxo de trabalho que criei e implantei em um farm do Sharepoint 2007. Quando ele é executado em um item, duas atividades de atraso são criadas imediatament

Configurei um retorno de chamada no evento InitializeTimeoutDuration. Através de logs e saída de depuração, posso ver que está definindo o atraso para uma hora. No entanto, no próximo ciclo de trabalho do timer SP (menos de 5 minutos), os eventos que prosseguem com a atividade Atraso são disparados.

Eu estou perdido aqui. Qualquer ajuda é muito apreciada

Atualiza

Através de algumas escavações, fui capaz de determinar por que isso estava disparando. Depois que o fluxo de trabalho é iniciado, um registro é adicionado à tabela ScheduledWorkItems no banco de dados de Conteúdo do SP. No entanto, o "DeliveryDate" no registro é definido como o horário atual, enquanto a data "Criada" é definida como uma hora anterior. No entanto, o atraso que estou usando é de 2 horas, portanto nenhum desses momentos faz sentido para mim. Vou tentar codificá-lo ....

Update 2

Mesmo com uma duração codificada, os horários estão desativados. Eu codifiquei um atraso de 2 horas e o "DeliveryDate" é agora uma hora no futuro, enquanto a data "Created" é uma hora no passado. Portanto, pelo menos a diferença entre eles é bo

Atualiza

Bem, isso é embaraçoso ... encontrei o problema. Estou postando aqui para outras pessoas que podem cometer erros como eu. Primeiro, eu não estava correto na minha conversão UTC-> local. Os horários no banco de dados estavam corretos. O que não estava correto era como eu estava definindo o TimeoutDuration:

// WRONG!
delayActivity.TimeoutDuration = new TimeSpan("1:00:00"); // one hour

o que eu deveria estar fazendo:

// RIGHT!
((DelayActivity)sender).TimeoutDuration = new TimeSpan("1:00:00"); // one hour

uma vez que fiz essa mudança, tudo o resto parece estar be

questionAnswers(1)

yourAnswerToTheQuestion