2010-02-17 1 views
0

내가 변경 위해 OnTaskChanged 이벤트는 ListenActivity 내에 발사하지만,

OnApprovalTaskChanged 해고되고 하나

  • 워크 플로 작업 변경
  • 워크 플로 항목에 대한 모니터링하고 있습니다를 OnWorkflowItemChanged 아니지만, onWorkflowItemChanged하지된다. 이것은 알려진 문제이며 해결 방법이 될 수 있습니까?

    ListenActivity를 제거하면 onWorkflowItemChanged가 실행됩니다! Workflow diagram http://img28.imageshack.us/img28/8397/ss20100217113727.png

답변

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

+0

예기치 않은 \t : 런타임에이 작업을 수행 할 수 없습니다. System.Workflow.ComponentModel.DependencyObject.SetValueCommon (DependencyProperty dependencyProperty, Object value, PropertyMetadata 메타 데이터, 부울 shouldCallSetValueOverrideIfExists)에서 System.Workflow.ComponentModel.DependencyObject.SetValue (DependencyProperty dependencyProperty, Object value) at System.Workflow.Activities.CallExternalMethodActivity.set_CorrelationToken (CorrelationToken 값) 수동으로 토큰을 설정할 때이 오류가 발생했습니다. 어떻게 수행 했습니까? – Wint

+0

@Wint 특정 코드를 찾을 수 없습니다.이 기능을 사용했거나 다른 방법으로 사용했을 수 있습니다 ... 링크 된 [article] (http : //blogs.msdn. com/yvan_duhamel/archive/2009/11/25/workflow-locks-of-onworkflowitemchanged-event-handler.aspx)? 런타임에 상관 토큰을 할당하는 것처럼 보이고 디자이너와 함께 만들고 InitializeWorkflow 작업의 CorrelationToken 속성에 바인딩하려고합니다. OwnerActivityName을 부모 시퀀스 활동으로 지정하는 것을 잊지 마십시오. 그런 다음 해당 CorrelationToken을 onWorkflowItemChanged 이벤트 디자이너와 바인딩합니다. –