我有一个创建并部署到Sharepoint 2007场的工作流。当它运行两项延迟活动时,我立即产生了火情。WF DelayActivity立即触发?
我已经在InitializeTimeoutDuration事件上设置了回调。通过日志和调试输出,我可以看到它将延迟设置为一个小时。但是,在下一个SP定时器作业周期(少于5分钟)时,延迟活动进行的事件将被触发。
我迷失在这里。任何帮助是极大的赞赏。
更新
通过一些挖,我能够确定为什么这是发射过。一旦工作流程开始,记录将被添加到SP内容数据库的ScheduledWorkItems表中。但是,记录上的“DeliveryDate”设置为当前时间,而“Created”日期设置为之前的一个小时。但是,我使用的延迟时间是2小时,所以这些时间对我来说都没有任何意义。要尝试硬编码....
更新2
即使有一个硬编码的持续时间都是关闭。我硬编码了2个小时的延迟,并且“DeliveryDate”现在是将来一个小时,而“创建”日期是过去一个小时。所以至少它们之间的区别是好的。
更新
嗯,这是令人尴尬......发现了这个问题。我在这里发布它,可能会像我一样犯错误。首先,我在UTC->本地转换中不正确。数据库上的时间是正确的。什么是不正确的是我是如何设置TimeoutDuration:
// WRONG!
delayActivity.TimeoutDuration = new TimeSpan("1:00:00"); // one hour
是我应该做的事情:
// RIGHT!
((DelayActivity)sender).TimeoutDuration = new TimeSpan("1:00:00"); // one hour
,一旦我作出改变一切似乎是罚款。