2011-05-04 7 views
1

나는 셰어 포인트 2010을 사용하고 있는데 막혔다. FeatureAcitvated 메서드가있는 기능이 있습니다. 이 메서드에는 내가 만든 워크 플로를 시작하는 코드를 갖고 싶은 클래스가 있습니다.언제 셰어 워크 플로가 만들어 집니까?

그래서 나는이

foreach (SPListItem item in itemCollection) 
    { 
     SPWorkflowAssociation wfAssoc = listItem.ParentList.WorkflowAssociations[new Guid("0768433d-23b1-4797-be66-fefc486e7e08")]; 
    } 

했다 그러나 그것은 항상 null입니다. 그것은 내 작업 흐름을 찾지 못합니다. WorkflowAssociations를 살펴보면 내가 알고있는 워크 플로우 중 하나의 워크 플로우 수만 있습니다.

그래서 이번에 생성 된 워크 플로가 궁금합니다. 또는 EventReceiver 클래스가 실행 된 후에 생성됩니까?

나는 비주얼 스튜디오이 코드는 문제를 해결할 것이라고 생각

답변

1

2010 년까지 목록 워크 플로우로 내 워크 플로우를 만들었습니다. 가장 먼저해야 할 일은 워크 플로 템플릿과 목록을 연결하는 것입니다. 이것은 각 항목에 대해 한 번이 아니라 목록에 한 번만 필요합니다. 그런 다음 각 항목을 반복하고 사이트 모음의 WorkflowManager 속성을 사용하여 각 항목에서 워크 플로를 시작합니다.

var assoc = list.WorkflowAssociations[new Guid("...")]; 
var manager = site.WorkflowManager; 
foreach (SPListItem item in list.Items) 
{ 
    manager.StartWorkflow(item, assoc, assoc.AssociationData, true); 
} 
관련 문제