2010-02-17 15 views

回答

1

This article helped me

您必須做的是設置InitializeWorkflow活動併爲該活動創建新的關聯標記。此關聯標記的父級必須設置父級序列活動。然後在OnWorkflowItemChanged事件上使用此新標記。

了我的一切工作正常,如果把按照以下順序活動:

-Replicator (i have to create multiple tasks) 
--Sequence 
--some stuff 
---InitializeWorkflow (this activity is for bugfix, create new token, parent=Sequence) 
---While (in my case: while task changed or wf item changed) 
----ListenActivity 
-----EventDriven (OnTaskChanged) 
-----EventDriven (OnWorkflowItemChanged, use newly created token) 

把另一序列,並在WHILE循環initializeworkflow導致OnWorkflowItemChanged被稱爲僅第一次項目的變化。

+0

看起來很有希望,讓我試試這個 – Wint 2013-12-20 09:39:37

+0

意外的\t System.InvalidOperationException:此操作不能在運行時執行。在System.Workflow.Activities.CallExternalMethodActivity.set_CorrelationToken上的System.Workflow.ComponentModel.DependencyObject.SetValue(System.Workflow.ComponentModel.DependencyObject.SetValueCommon(DependencyProperty dependencyProperty,Object value,PropertyMetadata metadata,Boolean shouldCallSetValueOverrideIfExists) (CorrelationToken值),手動設置令牌時出現此錯誤,您是如何做的? – Wint 2013-12-20 09:59:55

+0

@Wint我找不到特定的代碼,我使用這個東西,或者我用不同的方式做了它... 你確定你做了它,如鏈接[文章]所示(http://blogs.msdn。 COM/yvan_duhamel /存檔/ 2009/11/25 /工作流鎖,因爲-的-onworkflowitemchanged事件-handler.aspx)?看起來像是在運行時分配相關令牌,嘗試使用設計器並將其綁定到CorrelationToken屬性以執行InitializeWorkflow操作。 (不要忘記將OwnerActivityName指向父序列活動)。然後將該CorrelationToken與設計器綁定onWorkflowItemChanged事件。 – 2013-12-20 16:09:47