Windows SharePoint Services 워크플로 제작

업데이트 날짜: 2009년 2월

적용 대상: Office SharePoint Server 2007

 

마지막으로 수정된 항목: 2009-02-19

Windows SharePoint Services 워크플로는 기본적으로 워크플로가 사용자와 상호 작용하는 데 사용하는 양식과 워크플로의 동작을 정의하는 논리로 구성됩니다. Windows SharePoint Services 워크플로를 만드는 방법을 이해하려면 이 두 구성 요소에 대해 알아야 합니다.

웹 브라우저를 통해 사용자와 통신하기 때문에 Windows SharePoint Services 워크플로는 Microsoft ASP.NET을 사용하여 양식을 표시합니다. 따라서 이러한 양식은 ASPX 페이지로 정의됩니다. Windows SharePoint Services 워크플로는 수명 주기 중 다음과 같은 4가지 시점에 양식을 표시할 수 있습니다.

  • 연결: Windows SharePoint Services 관리자가 워크플로 서식 파일을 특정 문서 라이브러리나 목록에 연결하면 이 연결로부터 생성되는 모든 워크플로 인스턴스에 적용될 옵션을 설정할 수 있습니다. 워크플로 제작자가 이를 허용하도록 선택하면 제작자는 관리자가 이 정보를 지정할 수 있도록 양식을 제공해야 합니다.

  • 시작: 워크플로 시작자는 실행 중인 인스턴스를 시작할 때 옵션을 지정할 수 있습니다. 예를 들어 앞서 설명한 승인 시나리오에는 워크플로 참가자 목록을 지정하고 각 참가자가 자신의 작업을 완료해야 하는 시간을 정의하는 옵션이 있습니다. 워크플로에서 이 작업을 허용하는 경우 제작자는 이전 다이어그램의 3단계에 따라 시작자가 이러한 옵션을 설정할 수 있도록 양식을 제공해야 합니다.

  • 작업 완료: 실행 중인 워크플로 인스턴스는 워크플로 참가자가 자신의 작업을 완료할 수 있도록 하는 양식을 표시해야 합니다. 이전 다이어그램의 6단계에 표시된 대로 이 양식은 이전 시나리오에서 승인자가 문서에 대해 의견을 추가하고 승인 또는 거부를 나타내도록 허용된 항목입니다.

  • 수정: 위 시나리오에는 나와 있지 않지만 워크플로 제작자는 워크플로를 실행하는 동안 이를 수정할 수 있도록 허용할 수 있습니다. 예를 들어 워크플로를 실행한 이후에 새 참가자를 추가하거나 작업 완료 기한을 연장할 수 있습니다. 이 옵션을 사용하는 경우 참가자가 변경해야 하는 항목을 지정할 수 있는 양식이 이 시점에 워크플로에 표시되어야 합니다.

나중에 설명하겠지만, 전적으로 Windows SharePoint Services를 기반으로 하는 워크플로는 양식을 .aspx 페이지로 정의하는 반면 Office SharePoint Server를 사용하는 워크플로는 InfoPath에서 만든 양식도 사용할 수 있습니다. 두 경우 워크플로 논리는 WF 기반 워크플로처럼 항상 활동 그룹으로 정의됩니다. Microsoft는 워크플로 논리 및 양식을 지정할 수 있는 두 가지 서로 다른 도구를 제공하며 각각 서로 다른 대상 그룹을 목표로 합니다. 소프트웨어 개발자는 Visual Studio 2005에 호스팅된 WF Workflow Designer를 사용합니다. 보다 전문성이 떨어지는 그룹인 정보 근로자는 Office SharePoint Designer를 사용하여 코드를 작성하지 않고 워크플로를 만듭니다. 다음 두 섹션에서는 이러한 각 도구를 사용하여 Windows SharePoint Services 워크플로를 만드는 방법에 대해 설명합니다.

Visual Studio 2005 및 WF Workflow Designer에서 워크플로 만들기

여러 가지 면에서 워크플로는 순서도와 유사합니다. 따라서 개발자가 워크플로의 동작을 지정할 수 있도록 그래픽 도구를 제공하는 것이 좋습니다. WF에서는 Workflow Designer가 도구로 제공되며 Windows Workflow Foundation Extensions for Visual Studio 2005에 포함되어 있습니다. 개발자는 WF Workflow Designer를 사용하여 워크플로 활동 및 활동 실행 순서를 그래픽으로 정의합니다. 아래 화면에서는 워크플로의 간단한 예를 보여 줍니다.

Windows SharePoint Services 워크플로 예제

사용할 수 있는 활동이 화면 왼쪽의 도구 상자에 나타납니다. 개발자는 이러한 활동을 디자인 화면으로 끌어 워크플로에서 해당 단계를 정의할 수 있습니다. 그런 다음 오른쪽 아래에 나타나는 속성 창에서 각 활동의 속성을 설정할 수 있습니다.

WF의 BAL(Base Activity Library)은 앞서 설명한 대로 기본 활동 그룹을 제공합니다. 또한 Windows SharePoint Services는 Windows SharePoint Services 워크플로를 만들기 위해 명시적으로 고안된 활동 집합도 제공합니다. 이 중 가장 중요한 활동은 다음과 같습니다.

  • OnWorkflowActivated: Windows SharePoint Services 워크플로에 대한 기준 시작 위치를 제공합니다. 무엇보다 이 활동은 워크플로가 문서 라이브러리나 목록과 연결된 경우 Windows SharePoint Services 관리자가 연결 양식을 통해 제공한 정보를 수용할 수 있습니다. 또한 워크플로가 시작된 경우 시작 양식을 통해 제공한 정보도 수용할 수 있습니다. 모든 Windows SharePoint Services 워크플로는 이 활동으로 시작되어야 합니다.

  • CreateTask: 작업 목록에서 특정 사용자에게 할당된 작업을 만듭니다. 예를 들어 앞서 설명한 시나리오의 승인 워크플로에서 각 참가자가 사용하는 작업 목록에 작업을 추가하기 위해 이 활동을 사용했습니다. 이 활동에는 true로 설정할 경우 해당 작업의 대상자에게 전자 메일 메시지를 자동으로 보내는 SendEmailNotification 속성이 포함됩니다.

  • OnTaskChanged: 작업 완료 양식에서 정보를 수용합니다. 이전 시나리오의 승인 워크플로에서는 문서가 승인된 경우 각 참가자의 입력을 수용하는 데 이 활동을 사용했습니다.

  • CompleteTask: 작업을 완료됨으로 표시합니다.

  • DeleteTask: 작업 목록에서 작업을 제거합니다.

  • OnWorkflowModified: 수정 양식으로부터 정보를 수용한 후 워크플로에서 해당 인스턴스가 작동하는 방식을 변경할 수 있습니다. 워크플로 제작자가 워크플로에 이 활동의 인스턴스를 포함하지 않도록 선택한 경우 실행 중에 워크플로를 수정할 수 없습니다.

  • SendEmail: 지정된 사용자 또는 사용자 그룹에 전자 메일을 보냅니다.

  • LogToHistoryList: 사용 기록 목록에 워크플로의 실행 정보를 기록합니다. 이 목록에 있는 정보를 통해 사용자는 워크플로 중 어느 단계를 실행 중인지 확인하고 완료된 워크플로 기록 등을 확인할 수 있습니다. 이러한 종류의 모니터링이 가능하려면 워크플로 제작자가 워크플로 실행 중 적절한 시점에 사용 기록 목록에 정보를 기록해 두어야 합니다. 워크플로 추적을 위한 고유의 메커니즘이 제공되므로 Windows SharePoint Services에서는 WF의 표준 추적 서비스를 지원하지 않습니다.

간단한 Windows SharePoint Services 워크플로의 일반적인 형태는 OnWorkflowActivated 활동으로 시작한 다음 CreateTask 활동을 사용하여 워크플로 참가자에게 작업를 할당하는 것입니다. 그런 다음 사용자가 작업를 완료할 때까지 대기하는 데 BAL의 표준 While 활동을 사용할 수 있습니다. 이 시점(대개 사용자가 작업에 대한 여러 사항을 변경한 다음 작업 완료 양식에 있는 확인란을 선택한 시점)을 확인하기 위해 OnTaskChanged 활동을 While 내에 실행하여 사용자가 양식에 입력한 정보를 모두 추출합니다. 사용자가 작업를 완료하면 CompleteTask 활동이 실행된 후 DeleteTask가 실행됩니다. 그런 후 워크플로는 다음 참가자에게로 넘어가 CreateTask를 사용하여 작업을 할당하는 등의 작업을 진행합니다. 물론 전자 메일 보내기, 사용 기록 목록에 정보 기록, 임의 코드 실행을 허용하는 BAL의 코드 활동과 같은 기타 작업이 발생할 수도 있습니다.

Windows SharePoint Services에서 제공하는 모든 활동은 Windows SharePoint Services 환경에서 워크플로를 수행한다는 전제가 따릅니다. 워크플로에서 구현하는 비즈니스 논리는 전적으로 워크플로 제작자의 의도에 따라 결정됩니다. 실제로 Windows SharePoint Services 워크플로를 제작한 개발자는 Windows SharePoint Services 및 WF에서 제공하는 활동만 사용하지 않고 자신이 사용자 지정한 활동을 자유롭게 만들어 사용할 수 있습니다.

앞서 설명한 것처럼 Windows Workflow Foundation에서는 순차 및 상태 시스템 워크플로를 모두 지원합니다. WF Workflow Designer로 만든 Windows SharePoint Services 워크플로에서도 이 두 옵션을 사용할 수 있습니다. 옵션을 사용하려면 Windows SharePoint Services에서 각 워크플로 스타일마다 두 프로젝트 유형을 Visual Studio 2005에 추가해야 합니다.

선택한 스타일에 관계없이 개발자는 워크플로 논리를 추가로 정의해야 합니다. 또한 사용할 ASPX 양식도 지정해야 합니다. 이를 위해 개발자는 workflow.xml 파일을 사용합니다. 이 파일은 개발자가 Windows SharePoint Services에서 작업이 허용된 4개 지점에 각각 표시될 양식(있는 경우)을 지정하기 위해 작성하는 서식 파일을 제공합니다.

개발자는 Windows SharePoint Services 워크플로와 사용하는 ASPX 양식 사이에 정보를 전달하기 위해 몇 가지 작업을 수행해야 합니다. Windows SharePoint Services는 개발자를 위한 개체 모델을 제공하는 Microsoft.Windows.SharePoint.Workflow 네임스페이스를 지원합니다. Windows SharePoint Services 워크플로 제작자는 이 네임스페이스에 있는 유형을 사용하여 ASPX 양식에서 워크플로로 또는 그 반대로 정보를 전달할 수 있습니다.

Windows SharePoint Services 워크플로와 해당 양식을 만든 후 개발자는 Windows SharePoint Services 3.0에서 기능으로 참조할 수 있는 양식으로 이를 패키징해야 합니다. 그런 다음 Windows SharePoint Services 관리자가 이 기능을 설치해야 하며 여기에는 워크플로 어셈블리를 대상 시스템의 전역 어셈블리 캐시에 설치하는 과정도 포함됩니다. 그러면 새로운 워크플로가 관리자에게 문서 라이브러리 또는 목록과 연결할 수 있는 워크플로 서식 파일로 표시됩니다.

소프트웨어 개발자에게 있어 Visual Studio 및 WF Workflow Designer를 사용하여 Windows SharePoint Services를 만드는 일은 그다지 어려운 일이 아닙니다. 개발자는 이러한 환경에서의 작업과 관련한 사항을 이해해야 하지만 금방 익힐 수 있습니다. 소프트웨어 개발자만이 Windows SharePoint Services 워크플로를 제작할 수 있는 것은 아니며 나중에 설명하겠지만 전문 개발자가 아니더라도 Office SharePoint Designer를 사용하여 워크플로를 만들 수 있습니다.

Office SharePoint Designer 2007에서 워크플로 만들기

Office SharePoint Designer 2007은 독립적으로 사용권이 허가된 2007 Office system의 구성 요소로, 정보 근로자 및 기타 근로자가 Windows SharePoint Services 사이트에 워크플로로 구현된 응용 프로그램 논리를 추가할 수 있도록 해줍니다. 이는 분명히 유용한 요소이지만 Office SharePoint Designer는 다른 중요한 문제도 해결해 줍니다. 개발자가 Visual Studio를 사용하여 Windows SharePoint Services 워크플로를 만드는 경우 이 워크플로를 다른 응용 프로그램처럼 Windows SharePoint Services 서버에 설치해야 합니다. 아직 많은 Windows SharePoint Services 관리자가 시스템이 불안정해질 위험이 매우 높다는 믿음 때문에 자신의 서버에 임의 코드의 배포를 허용하지 않고 있습니다. 문서 및 목록 항목과 연결된 직관적인 비즈니스 논리를 작성할 수 있다는 점은 매우 유용하며 많은 Windows SharePoint Services 사용자가 원하는 것이기도 합니다. 전문가가 아니더라도 워크플로를 제작할 수 있도록 허용하는 것 외에도 Office SharePoint Designer는 Windows SharePoint Services 서버에 비즈니스 논리를 정의 및 배포할 수 있는 보다 안전한 방법을 제공하여 이 문제를 해결합니다.

Office SharePoint Designer에서 수행되는 워크플로 시나리오와 Visual Studio 및 WF Workflow Designer에서 수행되는 워크플로 시나리오는 그 방법에 있어서 서로 다릅니다. 복잡한 응용 프로그램을 만들 수 있다는 점은 확실하지만 Office SharePoint Designer의 목적은 사용자가 Windows SharePoint Services 사이트에 비즈니스 논리를 추가하도록 하는 것입니다. 예를 들어 사이트에 사용자가 변경 요청을 전송할 수 있는 목록이 들어 있다고 가정해 봅시다. Office SharePoint Designer에서는 사용자의 변경 요청이 수락 또는 거절될 때 전송자에게 이를 자동으로 알리는 워크플로를 만들 수 있습니다. 마찬가지로 사용자 지정 워크플로에서도 특정 문서 라이브러리에 새 문서가 추가될 때마다 특정 사용자 그룹에 이를 알릴 수 있습니다. 워크플로 제작은 쉽기 때문에 이러한 종류의 사용자 지정 알림을 수행하는 것은 복잡하지 않지만 이전 버전의 Windows SharePoint Services에서는 관리자가 사용자가 작성한 코드를 설치하기를 꺼려했기 때문에 어려운 일이었습니다.

여기에서 왜 Office SharePoint Designer에서 만든 논리를 다르게 처리해야 하는지 궁금할 수 있습니다. Windows SharePoint Services 관리자가 이 도구에서 제공하는 워크플로를 자신이 관리하는 시스템에 기꺼이 배포하도록 허용하는 이유는 Office SharePoint Designer에서 제공하는 워크플로는 관리자가 제어하는 목록의 활동만 사용할 수 있기 때문입니다. 사이트 관리자는 이 목록에 개발자가 사용자 지정한 활동을 포함하도록 선택할 수 있으나 선택 사항입니다. Windows SharePoint Services 관리자는 워크플로에서 허용되는 작업을 정확히 정의할 수 있기 때문에 Office SharePoint Designer를 사용하여 만든 논리로 인해 시스템 불안정이 야기되지 않는다는 사실을 잘 이해하고 있습니다.

개발자보다는 정보 근로자를 대상으로 하고 보다 간단한 시나리오를 주로 다루기 때문에 Office SharePoint Designer에서는 워크플로를 만드는 데 Visual Studio에 호스팅된 WF Workflow Designer와 다른 모델을 사용합니다. Office SharePoint Designer는 그래픽 방식보다는 규칙 기반 방식을 사용합니다. 많은 사람들에게 익숙한 도구인 Outlook의 규칙 마법사와 다소 유사한 형태입니다. 아래 화면에서는 Office SharePoint Designer 사용자가 워크플로에서 단계를 정의하는 방식을 보여 줍니다.

Windows SharePoint Services 워크플로 제작

각 단계에는 조건과 동작이 있습니다. 조건은 위에 표시된 If 문처럼 이 단계의 동작을 실행해야 하는지 여부를 결정합니다. 선택할 수 있는 동작으로는 워크플로 참가자에게 할 일 항목을 할당하거나 전자 메일을 보내는 등의 동작이 포함됩니다. 이러한 동작은 각각 Windows SharePoint Services 활동을 통해 실제로 수행되며 여기서 사용된 활동은 Visual Studio 및 WF Workflow Designer의 활동과 동일합니다. 예를 들어 위의 전자 메일 보내기 옵션은 SendEmail 활동에 해당하며 할 일 항목 지정은 CreateTask 활동의 특수화된 버전에 해당합니다. 동작 목록에는 개발자가 만든 사용자 지정 활동 등 Windows SharePoint Services 관리자가 이 사이트에서 허용하는 기타 활동도 포함됩니다.

사용자 인터페이스가 Visual Studio 및 WF Workflow Designer에 사용된 그래픽 방식과 많이 다른 것처럼 보이지만 Office SharePoint Designer는 표준 WF 워크플로를 만듭니다. 실제로 생성되는 워크플로는 WF 규칙 엔진을 사용하여 표현된 조건을 이용한 순차 워크플로입니다. 그러나 이 도구를 사용하여 만든 워크플로에는 몇 가지 제한 사항이 있습니다. 예를 들어 Visual Studio 및 WF Workflow Designer를 사용하여 만든 워크플로와는 달리 실행 중에 수정할 수 없으며 순차 워크플로만 만들 수 있고 상태 시스템 워크플로는 지원되지 않습니다. 또한 이 도구를 사용하여 만든 워크플로는 디자인할 때 특정 문서 라이브러리 또는 목록에 대해 제작되어야 합니다. 나중에 다른 라이브러리 또는 목록이나 콘텐츠 형식과 연결할 수 있는 일반적인 워크플로 서식 파일을 만드는 것은 불가능합니다. 워크플로를 사용할 수 있는 방식에도 제한이 있지만 워크플로를 배포하는 방식은 훨씬 간단합니다. 실제로 사용자가 Office SharePoint Designer로 워크플로 제작을 완료하면 워크플로가 대상 사이트에 자동 배포됩니다. 여러 단계의 배포 프로세스를 걸쳐야 하는 Visual Studio 및 WF Workflow Designer를 사용한 워크플로보다 복잡성이 크게 줄어들었습니다.

Office SharePoint Designer를 사용하여 만든 워크플로에서는 사용자 지정 양식도 표시할 수 있습니다. 워크플로 제작자가 ASPX 페이지를 직접 작성하는 대신 이 도구가 페이지를 생성해 줍니다. 제작자가 포함할 필드와 같이 생성된 페이지의 모양에 대한 세부 사항을 지정하면 Office SharePoint Designer가 나머지 작업을 처리해 줍니다. 양식이 사용될 수 있는 Windows SharePoint Services 워크플로의 4가지 수명 주기 중 시작 및 작업 완료의 두 가지만 Office SharePoint Designer를 사용한 워크플로 제작에 사용됩니다. 이 도구를 사용하여 만든 모든 워크플로는 특정 문서 라이브러리 또는 목록에 연결되므로 연결 단계가 필요하지 않으며 따라서 연결 양식도 필요하지 않습니다. 실행 중에는 워크플로를 수정할 수 없으므로 수정 양식도 필요하지 않습니다.

Windows SharePoint Services 워크플로 제작 이외의 작업에 Office SharePoint Designer를 사용할 수 있습니다. 예를 들어 이 도구를 사용하여 Windows SharePoint Services 사이트를 만들 수 있으며 사이트의 마스터 페이지를 편집하여 사이트 내 페이지의 디자인을 사용자 지정할 수도 있습니다. 또한 ASP.NET의 데이터 바인딩 지원에 의존하는 외부 데이터의 연결에 사용할 수 있습니다. 그러나 Windows SharePoint Services 사이트에서 실행되는 논리를 작성해야 하는 정보 근로자에게 가장 중요한 Office SharePoint Designer의 기능은 당연히 워크플로 제작에 대한 지원입니다.

Windows SharePoint Services에서는 문서 기반 워크플로를 제작하기 위한 여러 가지 기능을 제공하지만 궁극적으로는 개발 및 실행을 위한 플랫폼입니다. 최종 사용자가 직접 사용할 수 있는 워크플로 기능은 제공되지 않습니다. 즉시 사용이 가능한 워크플로 응용 프로그램이 필요한 경우 대개 Windows SharePoint Services로는 충분하지 않습니다. Windows SharePoint Services만 사용하여 제작한 워크플로에는 Office 클라이언트 응용 프로그램을 통해 참가자와 상호 작용할 수 없는 등의 기타 제한 사항도 있습니다. 나중에 설명하겠지만 Office SharePoint Server는 이러한 모든 제한을 극복할 수 있는 방법을 제공합니다.

이 문서의 다운로드

이 항목은 다운로드 가능한 다음 문서에도 포함되어 있어 더 쉽게 읽고 인쇄할 수 있습니다.

사용 가능한 문서의 전체 목록은 다운로드 가능한 Office SharePoint Server 2007 관련 콘텐츠 (영문)를 참조하십시오.