다음을 통해 공유


연습: SharePoint 워크플로 솔루션 만들기 및 디버깅

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • SharePoint 워크플로

Microsoft Office 버전

  • SharePoint Server 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 연습에서는 기본적인 순차 워크플로 서식 파일을 만드는 방법을 보여 줍니다. 워크플로에서는 문서 라이브러리의 속성을 검사하여 문서가 검토되었는지 여부를 확인합니다. 문서가 검토된 경우 워크플로가 완료됩니다.

이 연습에서는 다음 작업을 수행합니다.

  • SharePoint 2007 순차 워크플로 프로젝트 만들기

  • 워크플로 일정 만들기

  • 작업 이벤트 처리

참고:

실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

Visual Studio Tools for Office를 사용하여 SharePoint 워크플로 서식 파일을 만드는 방법에 대한 자세한 내용은 SharePoint 워크플로 솔루션을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio Tools for Office(Visual Studio 2008 Professional 및 Visual Studio Team System의 선택적 구성 요소)

  • Microsoft SharePoint Server 2007

  • 제목이 문서 센터이며 URL이 https://localhost/Docs인 SharePoint Server 웹 사이트. 단일 컴퓨터에 독립 실행형 설치로 Microsoft Office SharePoint Server 2007을 설치한 경우 이 웹 사이트는 SharePoint 제품 및 기술 구성 마법사를 완료하면 자동으로 만들어집니다.

  • Microsoft Office Word 2007 또는 Microsoft Office Word 2003

Visual Studio Tools for Office는 기본적으로 나열된 Visual Studio 버전과 함께 설치됩니다. 설치 여부를 확인하려면 Visual Studio Tools for Office 설치를 참조하십시오.

SharePoint 문서 라이브러리에 속성 추가

문서 라이브러리에 있는 문서의 검토 상태를 추적하려면 워크플로 참석자가 문서의 Document Status, Assignee 및 Review Comments 속성을 설정해야 합니다. 이러한 속성은 문서 라이브러리에서 정의합니다.

SharePoint 문서 라이브러리에 속성을 추가하려면

  1. Internet Explorer에서 기본 SharePoint Server 2007 웹 사이트를 엽니다.

    참고:

    기본적으로 SharePoint 사이트는 https://localhost에 있습니다. https://localhost를 SharePoint가 아닌 웹 사이트에 매핑하면 이 연습의 단계를 통해 워크플로 서식 파일을 테스트할 수 없습니다.

  2. 문서 센터 탭을 클릭합니다.

  3. 탐색 창에서 문서를 클릭합니다.

  4. 문서 페이지에서 설정을 클릭하고 문서 라이브러리 설정을 클릭합니다.

  5. 문서 사용자 지정 페이지의 에서 열 만들기를 클릭합니다.

  6. 열의 이름을 Document Status로 지정하고 **선택(선택 메뉴)**를 선택한 후 다음 세 개의 선택 옵션을 지정하고 확인을 클릭합니다.

    • 검토 필요

    • 검토 완료

    • 변경 요청

  7. 두 개의 열을 더 만들고 해당 이름을 AssigneeReview Comments로 지정합니다. Assignee 열의 서식을 한 줄 텍스트로 지정하고 Review Comments 열의 서식을 여러 줄 텍스트로 지정합니다.

문서를 체크 아웃하지 않고도 편집할 수 있도록 설정

문서를 체크 아웃하지 않고 편집할 수 있는 경우 워크플로 서식 파일을 보다 손쉽게 테스트할 수 있습니다.

문서를 체크 아웃하지 않고도 편집할 수 있도록 설정하려면

  1. 문서 사용자 지정 페이지의 일반 설정에서 버전 관리 설정을 클릭합니다.

  2. **문서를 편집하려면 먼저 체크 아웃해야 합니다.**에 대해 아니요를 선택하고 확인을 클릭합니다.

  3. Internet Explorer를 닫습니다.

SharePoint 순차 워크플로 프로젝트 만들기

순차 워크플로는 마지막 작업이 끝날 때까지 순서대로 실행되는 일련의 단계입니다.

SharePoint 순차 워크플로 프로젝트를 만들려면

  1. Visual Studio를 시작합니다.

  2. 새 프로젝트 대화 상자를 열고 사용할 언어 아래의 Office 노드를 확장한 다음 2007 노드를 선택합니다.

  3. 템플릿 창에서 SharePoint 2007 순차 워크플로를 선택합니다.

  4. 이름 상자에 MySharePointWorkflow를 입력합니다. Visual C# 개발 설정이나 일반 개발 설정을 사용하도록 IDE에 설정된 경우 위치와 솔루션 이름을 입력합니다.

  5. 확인을 클릭합니다.

    새 Office SharePoint 워크플로 마법사가 나타납니다.

  6. 워크플로 이름 및 디버깅할 사이트를 지정하십시오. 페이지에서 다음을 클릭하여 기본 워크플로 이름 및 사이트를 적용합니다.

  7. 디버깅 시 사용할 목록을 선택하십시오. 페이지에서 다음을 클릭하여 기본 문서 라이브러리, 작업 목록 및 기록 목록을 적용하고 워크플로 서식 파일을 문서 라이브러리에 자동으로 연결합니다.

  8. 워크플로 시작 조건을 지정할 수 있습니다. 페이지에서 마침을 클릭하여 기본 선택 사항을 적용합니다.

워크플로 일정 만들기

워크플로 서식 파일에는 수행할 작업이 포함된 하나 이상의 워크플로 일정이 들어 있습니다. 일정의 작업을 정렬하려면 워크플로 디자이너를 사용합니다. 문서 목록에 있는 문서의 검토 상태를 모니터링하려면 HandleExternalEventActivityMicrosoft.SharePoint.WorkflowActions.OnWorkflowItemChanged 작업을 추가합니다.

워크플로 일정을 만들려면

  1. 솔루션 탐색기에서 Workflow1.cs 또는 Workflow1.vb를 두 번 클릭하여 디자이너에서 워크플로 일정을 엽니다.

  2. 디자이너에서 OnWorkflowActivated1 작업을 클릭하여 선택합니다.

  3. 속성 창에서 Invoked 속성 옆에 onWorkflowActivated를 입력하고 Enter 키를 누릅니다.

    코드 편집기가 열리고 onWorkflowActivated라는 이벤트 처리기 메서드가 Workflow1 코드 파일에 추가됩니다.

  4. 디자이너에서 워크플로 일정을 다시 엽니다.

  5. 보기 메뉴에서 도구 상자를 클릭합니다.

  6. 도구 상자Windows Workflow v3.0 탭에서 While 작업을 onWorkflowActivated1 작업 아래로 끌어 옵니다.

  7. WhileActivity1 작업을 클릭하여 선택합니다.

  8. 속성 창에서 Condition을 Code Condition으로 설정합니다.

  9. Condition 속성을 확장하고 자식 Condition 속성 옆에 isWorkflowPending을 입력한 다음 Enter 키를 누릅니다.

    코드 편집기가 열리고 isWorkflowPending이라는 메서드가 Workflow1 코드 파일에 추가됩니다.

  10. 디자이너에서 워크플로 일정을 다시 엽니다.

  11. 도구 상자SharePoint 워크플로 탭에서 OnWorkflowItemChanged 작업을 whileActivity1 작업으로 끌어 옵니다.

  12. onWorkflowItemChanged1 작업을 클릭하여 선택합니다.

  13. 속성 창에서 속성을 다음 표와 같이 설정합니다.

    속성

    CorrelationToken

    workflowToken

    Invoked

    onWorkflowItemChanged

작업 이벤트 처리

마지막 단계에서는 각 작업에서 문서 상태를 확인합니다. 문서가 검토된 경우 워크플로가 완료됩니다.

작업 이벤트를 처리하려면

  1. 솔루션 탐색기에서 Workflow1.cs 또는 Workflow1.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  2. 다음 필드를 Workflow1 클래스의 맨 위에 추가합니다. 작업에서 이 필드를 사용하여 워크플로를 완료할지 여부를 결정합니다.

    Dim workflowPending As Boolean = True
    
    Boolean workflowPending = true;
    
  3. Workflow1 클래스에 다음 메서드를 추가합니다. 이 메서드는 문서 목록의 Document Status 속성 값을 검사하여 문서가 검토되었는지 여부를 확인합니다. Document Status 속성이 Review Complete로 설정되어 있으면 checkStatus 메서드는 workflowPending 필드를 false로 설정하여 워크플로를 완료할 수 있음을 나타냅니다.

    Private Sub checkStatus()
        If CStr(workflowProperties.Item("Document Status")) = "Review Complete" Then
            workflowPending = False
        End If
    End Sub 
    
    private void checkStatus()
    {
        if ((string)workflowProperties.Item["Document Status"] == "Review Complete")
        workflowPending = false;
    }
    
  4. onWorkflowActivated 및 onWorkflowItemChanged 메서드에 다음 코드를 추가하여 checkStatus 메서드를 호출합니다. 워크플로가 시작되면 onWorkflowActivated 메서드는 checkStatus 메서드를 호출하여 문서가 이미 검토되었는지 여부를 확인합니다. 문서가 검토되지 않았으면 워크플로가 계속 실행됩니다. 문서가 저장되면 onWorkflowItemChanged 메서드는 checkStatus 메서드를 다시 호출하여 문서가 검토되었는지 여부를 확인합니다. workflowPending 필드가 true로 설정되어 있는 동안에는 워크플로가 계속 실행됩니다.

    Private Sub onWorkflowActivated(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs)
        checkStatus()
    End Sub
    
    Private Sub onWorkflowItemChanged(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ExternalDataEventArgs)
        checkStatus()
    End Sub
    
    private void onWorkflowActivated(object sender, ExternalDataEventArgs e)
    {
        checkStatus();
    }
    
    private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e)
    {
        checkStatus();
    }
    
  5. isWorkflowPending 메서드에 다음 코드를 추가하여 workflowPending 속성의 상태를 확인합니다. 문서가 저장될 때마다 whileActivity1 작업에서는 isWorkflowPending 메서드를 호출합니다. 이 메서드는 ConditionalEventArgs 개체의 Result 속성을 검사하여 WhileActivity1 작업을 계속해야 할지 마쳐야 할지를 결정합니다. 속성이 true로 설정되어 있으면 해당 작업이 계속 실행됩니다. 그렇지 않으면 작업이 완료되고 워크플로가 완료됩니다.

    Private Sub isWorkflowPending(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ConditionalEventArgs)
        e.Result = workflowPending
    End Sub
    
    private void isWorkflowPending(object sender, ConditionalEventArgs e)
    {
        e.Result = workflowPending;
    }
    

SharePoint 워크플로 서식 파일 테스트

디버거를 시작하면 Visual Studio Tools for Office에서는 워크플로 서식 파일을 SharePoint Server 2007에 배포하고 문서 목록에 연결합니다. 워크플로를 테스트하려면 문서 목록에 있는 문서에서 워크플로 서식 파일의 인스턴스를 시작합니다.

SharePoint 워크플로 서식 파일을 테스트하려면

  1. 솔루션 탐색기에서 Workflow1.cs 또는 Workflow1.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  2. onWorkflowActivated 메서드 옆에 중단점을 설정합니다.

  3. F5 키를 누릅니다.

    기본 SharePoint 사이트의 문서 페이지가 열립니다.

  4. 문서 페이지에서 새로 만들기를 클릭하여 새 문서를 만듭니다.

  5. 문서를 기본 위치에 저장합니다.

    이렇게 하면 문서가 문서 목록에 추가되고 워크플로가 시작됩니다.

  6. Visual Studio에서 디버거가 onWorkflowActivated 메서드 옆의 중단점에서 중지되는지 확인합니다.

  7. F5 키를 눌러 실행을 계속합니다.

  8. 문서를 닫습니다.

  9. 기본 SharePoint 웹 사이트의 문서 페이지로 돌아갑니다.

  10. 문서 페이지에서 MySharePointWorkflow 열 아래의 값이 진행 중으로 설정되어 있는지 확인합니다. 이는 워크플로가 진행 중이고 문서 검토가 대기 중임을 나타냅니다.

  11. 문서 페이지에서 문서를 가리키고 아래쪽 화살표를 클릭한 다음 속성 편집을 클릭합니다.

  12. Document StatusReview Complete로 설정하고 확인을 클릭합니다.

  13. 기본 SharePoint 웹 사이트의 문서 페이지로 돌아갑니다.

  14. 문서 페이지에서 MySharePointWorkflow 열 아래의 값이 완료로 설정되어 있는지 확인합니다. 이는 워크플로가 완료되고 문서가 검토되었음을 나타냅니다.

다음 단계

다음 항목에서는 워크플로 서식 파일을 만드는 방법에 대해 더 자세히 설명합니다.

참고 항목

작업

방법: SharePoint 솔루션을 디버깅할 때 도우미 파일 포함

SharePoint 순차 워크플로 샘플

개념

SharePoint 워크플로 솔루션

SharePoint 워크플로 솔루션 디버깅

참조

SharePoint 워크플로 프로젝트 템플릿