2009-06-24 5 views
1

목록의 항목에서 실행중인 워크 플로가 있습니다. 워크 플로에는 While 작업 내에있는 OnWorkflowItemChanged 활동이 있습니다. 워크 플로가 While 루프로 들어가고 UI를 통해 항목을 업데이트하면 OnWorkflowItemChanged 작업이 실행됩니다. 그러나 프로그래밍 방식으로 (콘솔 응용 프로그램을 통해) 항목을 업데이트하면 OnWorkflowItemChanged 활동이 실행되지 않을뿐만 아니라 UI를 통한 업데이트에 대한 응답도 중지됩니다.목록 항목이 프로그래밍 방식으로 업데이트 될 때 워크 플로가 응답하지 않는다

이전에 본 사람이 있습니까? 프로그래밍 방식으로 목록 항목을 업데이트하고 워크 플로가 이벤트에 응답하고 이후 이벤트에 계속 응답하는 방법이 있습니까?

편집 : 항목을 업데이트하기 위해 목록 웹 서비스를 사용하면 정상적으로 작동합니다. 객체 모델을 사용하면 왜 엉망이됩니까?

답변

0

이벤트를 발생시키는 유일한 방법은 목록 웹 서비스를 사용하는 것입니다.

0

이벤트 수신기의 개체 모델을 통해 목록 항목을 업데이트 할 때 SPEventReceiverBase.DisableEventFiring() 등을 호출 할 수 있습니다. SPEventReceiverBase.DisableEventFiring() 시도 했습니까? 아니면 워크 플로가 있습니까? link text

+0

DisableEventFiring() 및 EnableEventFiring()은 이벤트 수신기가 재귀 호출을 방지하기위한 것입니다. 워크 플로우 또는 외부 코드에는 사용할 수 없습니다. 또한 SPListItem.Update() 메서드를 호출하면 firint 이벤트가 기본적으로 비활성화되는 이유는 알 수 없습니다. – zimdanen

+0

위의 포함하도록 의도 된 링크를 추가했습니다. – Chloraphil

+0

업데이트 전후에 EnableEventFiring을 설정하려고했지만 여전히 이벤트를 발생시키지 않거나 UI를 통해 응답하지 않습니다. 상품 [ "Decision 1"] = "Concur"; SPEventManagerWrapper.EnableEventFiring(); item.Update(); SPEventManagerWrapper.EnableEventFiring(); – zimdanen

0

그래 내가 동의 문제는 이벤트가 전혀 발사하지입니다 :

다음은 이벤트 수신기 내부에서 트리거되지 않은 업데이트를 발사 이벤트를 해제하는 해킹. 나는 당신이 IIS를 리셋하면 처음에는 작동하지만 그 이후에는 업데이트가 없다는 것을 알아 챘다.

관련 문제