다음을 통해 공유


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

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

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

  • Visual Studio에서 SharePoint 목록 정의 순차 워크플로 프로젝트 만들기

  • 워크플로 작업 만들기.

  • 워크플로 작업 이벤트 처리

참고 항목

이 연습에서는 순차 워크플로 프로젝트를 사용하지만 상태 시스템 워크플로 프로젝트도 프로세스는 동일합니다.

또한 일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio IDE 개인 설정을 참조하세요.

필수 조건

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

  • 지원되는 Microsoft Windows 및 SharePoint 버전.

  • Visual Studio.

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

공유 문서 라이브러리에서 문서의 검토 상태를 추적하기 위해 SharePoint 사이트에 공유 문서에 대한 세 가지 새 속성(Status, Assignee, Review Comments)을 만듭니다. 공유 문서 라이브러리에서 이러한 속성을 정의합니다.

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

  1. 웹 브라우저에서 http://<시스템 이름>/SitePages/Home.aspx와 같은 SharePoint 사이트를 엽니다.

  2. 빠른 실행 모음에서 SharedDocuments를 선택합니다.

  3. 라이브러리 도구 리본에서 라이브러리를 선택한 다음 리본에서 열 만들기 단추를 선택하여 새 열을 만듭니다.

  4. 열 이름을 문서 상태로 지정하고, 형식을 선택(선택할 메뉴)으로 설정하고, 다음 세 가지 옵션을 지정한 후 확인 단추를 선택합니다.

    • 검토 필요

    • 검토 완료

    • 변경 요청

  5. 열을 2개 더 만들고 이름을 담당자로, 검토 주석으로 지정합니다. 담당자 열 형식을 텍스트 한 줄로 설정하고, 검토 주석 열 형식을 텍스트 여러 줄로 설정합니다.

체크 아웃 없이 문서를 편집할 수 있도록 설정

체크 아웃할 필요 없이 문서를 편집할 수 있는 경우 워크플로 템플릿 테스트가 더욱 쉽습니다. 다음 절차에서는 이를 사용하도록 SharePoint 사이트를 구성합니다.

체크 아웃 없이 문서를 편집할 수 있도록 설정

  1. 빠른 실행 모음에서 공유 문서 링크를 선택합니다.

  2. 라이브러리 도구 리본에서 라이브러리 탭을 선택하고, 라이브러리 설정 단추를 선택하면 문서 라이브러리 설정 페이지가 표시됩니다.

  3. 일반 설정 섹션에서 버전 관리 설정 링크를 선택하면 버전 관리 설정 페이지가 표시됩니다.

  4. 편집 전에 문서를 체크 아웃해야 함 설정이 아니요인지 확인합니다. 그렇지 않은 경우 아니요로 변경한 다음 확인 단추를 선택합니다.

  5. 브라우저를 닫습니다.

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

순차 워크플로는 마지막 작업이 완료될 때까지 순서대로 실행되는 단계의 집합입니다. 이 절차에서는 공유 문서 목록에 적용되는 순차 워크플로를 만듭니다. 워크플로의 마법사를 사용하면 워크플로를 사이트 정의 또는 목록 정의와 연결하여 워크플로가 시작되는 시기를 결정할 수 있습니다.

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

  1. Visual Studio를 시작합니다.

  2. 메뉴 모음에서 파일>새로 만들기>프로젝트를 선택하여 새 프로젝트 대화 상자를 표시합니다.

  3. Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010 노드를 선택합니다.

  4. 템플릿 창에서 SharePoint 2010 프로젝트 템플릿을 선택합니다.

  5. 이름 상자에 MySharePointWorkflow를 입력한 후 확인 단추를 선택합니다.

    SharePoint 사용자 지정 마법사가 나타납니다.

  6. 디버깅에 사용할 사이트 및 보안 수준 지정 페이지에서 팜 솔루션으로 배포 옵션 단추를 선택한 다음 마침 단추를 선택하여 신뢰 수준 및 기본 사이트를 적용합니다.

    이 단계에서는 솔루션 신뢰 수준을 워크플로 프로젝트에 유일하게 사용할 수 있는 옵션인 팜 솔루션으로 설정합니다. 자세한 내용은 샌드박스 솔루션 고려 사항을 참조하세요.

  7. 솔루션 탐색기에서 프로젝트 노드를 선택한 다음 메뉴 모음에서 프로젝트>새 항목 추가를 선택합니다.

  8. Visual C# 또는 Visual Basic 아래에서 SharePoint 노드를 확장한 다음 2010 노드를 선택합니다.

  9. 템플릿 창에서 순차 워크플로(팜 솔루션에만 해당) 템플릿을 선택한 다음 추가 단추를 선택합니다.

    SharePoint 사용자 지정 마법사가 나타납니다.

  10. 디버그할 워크플로 이름 지정 페이지에서 기본 이름(MySharePointWorkflow - Workflow1)을 적용합니다. 기본 워크플로 템플릿 형식 값을 목록 워크플로로 유지하고 다음 단추를 선택합니다.

  11. Visual Studio를 통해 디버그 세션에서 워크플로를 자동으로 연결하시겠습니까? 페이지에서 다음 단추를 선택하여 모든 기본 설정을 수락합니다.

    이 단계에서는 워크플로를 공유 문서 라이브러리에 자동으로 연결합니다.

  12. 워크플로 시작 방법에 대한 조건 지정 페이지에서 워크플로 시작 방법을 선택하십시오. 섹션에서 선택한 기본값을 유지하고 마침 단추를 선택합니다.

    이 페이지에서는 워크플로가 시작되는 시기를 지정할 수 있습니다. 기본적으로 워크플로는 사용자가 SharePoint에서 수동으로 시작하거나 워크플로가 연결된 항목이 생성될 때 시작됩니다.

워크플로 작업 만들기

워크플로에는 수행할 작업을 나타내는 하나 이상의 작업이 포함되어 있습니다. 워크플로 디자이너를 사용하여 워크플로에 대한 작업을 정렬할 수 있습니다. 이 절차에서는 워크플로에 두 개의 작업(HandleExternalEventActivity 및 OnWorkFlowItemChanged)을 추가합니다. 이러한 작업은 공유 문서 목록에서 문서의 검토 상태를 모니터링합니다.

워크플로 작업 만들기

  1. 워크플로가 워크플로 디자이너에 표시되어야 합니다. 그렇지 않은 경우 솔루션 탐색기에서 Workflow1.vb 또는 Workflow1.vb를 엽니다.

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

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

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

  4. 워크플로 디자이너로 전환하고, 도구 상자를 열고, Windows Workflow v3.0 노드를 확장합니다.

  5. 도구 상자Windows Workflow v3.0 노드에서 다음 단계 집합 중 하나를 수행합니다.

    1. While 작업의 바로 가기 메뉴를 열고 복사를 선택합니다. 워크플로 디자이너에서 onWorkflowActivated1 작업 아래의 줄에 대한 바로 가기 메뉴를 열고 붙여넣기를 선택합니다.

    2. 도구 상자에서 워크플로 디자이너로 While 작업을 끌고, onWorkflowActivated1 아래의 선에 작업을 연결합니다.

  6. WhileActivity1 작업을 선택합니다.

  7. 속성 창에서 조건을 코드 조건으로 설정합니다.

  8. 조건 속성을 확장하고, 조건 속성 옆에 isWorkflowPending을 입력한 다음 Enter 키를 누릅니다.

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

  9. 워크플로 디자이너로 전환하고, 도구 상자를 열고, SharePoint 워크플로 노드를 확장합니다.

  10. 도구 상자SharePoint 워크플로 노드에서 다음 단계 집합 중 하나를 수행합니다.

    • OnWorkflowItemChanged 작업의 바로 가기 메뉴를 열고 복사를 선택합니다. 워크플로 디자이너에서 whileActivity1 작업 내부의 줄에 대한 바로 가기 메뉴를 열고 붙여넣기를 선택합니다.

    • 도구 상자에서 워크플로 디자이너로 OnWorkflowItemChanged 작업을 끌고, whileActivity1 내부의 선에 작업을 연결합니다.

  11. onWorkflowItemChanged1 작업을 선택합니다.

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

    속성
    CorrelationToken workflowToken
    호출됨 onWorkflowItemChanged

작업 이벤트 처리

마지막으로 각 작업에서 문서의 상태를 확인합니다. 문서가 검토되면 워크플로가 완료됩니다.

작업 이벤트 처리

  1. Workflow1.cs 또는 Workflow1.vb에서 다음 필드를 Workflow1 클래스 맨 위에 추가합니다. 이 필드는 작업에서 워크플로가 완료되었는지 여부를 확인하는 데 사용됩니다.

    Boolean workflowPending = true;
    
  2. 다음 메서드를 Workflow1 클래스에 추가합니다. 이 메서드는 문서 목록의 Document Status 속성 값을 검사하여 문서가 검토되었는지 여부를 확인합니다. Document Status 속성이 Review Complete로 설정된 경우 checkStatus 메서드는 workflowPending 필드를 false로 설정하여 워크플로 완료가 준비되었음을 나타냅니다.

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

    private void onWorkflowActivated(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
    private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
  4. isWorkflowPending 메서드에 다음 코드를 추가하여 workflowPending 속성의 상태를 확인합니다. 문서가 저장될 때마다 whileActivity1 작업은 isWorkflowPending 메서드를 호출합니다. 이 메서드는 ConditionalEventArgs 개체의 Result 속성을 검사하여 WhileActivity1 작업을 계속할지 아니면 완료해야 하는지 여부를 확인합니다. 속성이 true로 설정된 경우 작업이 계속됩니다. 그렇지 않은 경우 작업이 완료되고 워크플로가 완료됩니다.

    private void isWorkflowPending(object sender, ConditionalEventArgs e)
    {
        e.Result = workflowPending;
    }
    
  5. 프로젝트를 저장합니다.

SharePoint 워크플로 템플릿 테스트

디버거를 시작하면 Visual Studio에서 워크플로 템플릿을 SharePoint 서버에 배포하고 워크플로를 공유 문서 목록과 연결합니다. 워크플로를 테스트하려면 공유 문서 목록의 문서에서 워크플로의 인스턴스를 시작합니다.

SharePoint 워크플로 템플릿 테스트

  1. Workflow1.cs 또는 Workflow1.vb에서 onWorkflowActivated 메서드 옆에 중단점을 설정합니다.

  2. F5 키를 선택하여 솔루션을 빌드하고 실행합니다.

    SharePoint 사이트가 표시됩니다.

  3. SharePoint의 탐색 창에서 공유 문서 링크를 선택합니다.

  4. 공유 문서 페이지의 라이브러리 도구 탭에서 문서 링크를 선택한 다음 문서 업로드 단추를 선택합니다.

  5. 문서 업로드 대화 상자에서 찾아보기 단추를 선택하고 문서 파일을 하나 선택한 다음 열기 단추, 확인 단추를 선택합니다.

    그러면 선택한 문서가 공유 문서 목록에 업로드되고 워크플로가 시작됩니다.

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

  7. F5 키를 선택하여 실행을 계속합니다.

  8. 여기에서 문서에 대한 설정을 변경할 수 있지만 저장 단추를 선택하여 기본값 그대로 둡니다.

    그러면 기본 SharePoint 웹 사이트의 공유 문서 페이지로 돌아갑니다.

  9. 공유 문서 페이지에서 MySharePointWorkflow - Workflow1 열 아래의 값이 진행 중으로 설정되어 있는지 확인합니다. 이는 워크플로가 진행 중이며 문서가 검토를 기다리고 있음을 나타냅니다.

  10. 공유 문서 페이지에서 문서를 선택하고, 표시되는 화살표를 선택한 다음 속성 편집 메뉴 항목을 선택합니다.

  11. 문서 상태검토 완료로 설정한 다음 저장 단추를 선택합니다.

    그러면 기본 SharePoint 웹 사이트의 공유 문서 페이지로 돌아갑니다.

  12. 공유 문서 페이지에서 문서 상태 열 아래의 값이 검토 완료로 설정되어 있는지 확인합니다. 공유 문서 페이지를 새로 고치고 MySharePointWorkflow - Workflow1 열 아래의 값이 완료됨으로 설정되어 있는지 확인합니다. 이는 워크플로가 완료되었으며 문서를 검토했음을 나타냅니다.

다음 단계

다음 항목에서 워크플로 템플릿을 만드는 방법에 대해 자세히 알아볼 수 있습니다.