Share via


워크플로 만들기 계획(SharePoint Server 2010)

 

적용 대상: SharePoint Foundation 2010, SharePoint Server 2010

마지막으로 수정된 항목: 2016-11-30

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

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

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

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

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

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

Microsoft SharePoint Server 2010을 사용하여 구축된 워크플로는 InfoPath로 만든 양식을 사용할 수 있습니다. 워크플로 논리는 WF(Windows Workflow Foundation) 기반 워크플로처럼 항상 활동 그룹으로 정의됩니다. Microsoft는 워크플로 논리 및 양식을 지정할 수 있는 두 가지 서로 다른 도구를 제공하며 사용 대상도 서로 다릅니다. 소프트웨어 개발자는 WF의 Workflow Designer 기능을 사용할 수 있습니다. 이 도구는 Visual Studio 2010 Professional Edition에서 실행되며 워크플로에 대한 활동을 구성할 수 있는 그래픽 환경을 제공합니다. 개발자보다 기술적인 면이 덜 필요한 그룹인 정보 근로자는 Microsoft SharePoint Designer 2010을 사용하여 코드를 작성하지 않고도 워크플로를 만들 수 있습니다. 다음 두 섹션에서는 이러한 각 도구를 사용하여 워크플로를 만드는 방법을 설명합니다.

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

SharePoint Server를 사용하는 워크플로에서는 .aspx 양식뿐 아니라 Microsoft InfoPath 2010 워크플로 양식도 사용할 수 있습니다. 워크플로 제작자는 Microsoft InfoPath를 사용하여 이러한 양식을 만듭니다. 이 도구에서는 제작자가 양식의 콘텐츠를 정의할 수 있는 그래픽 편집기를 제공합니다. Visual Studio 환경에서만 작업하기를 원하는 개발자는 Visual Studio 2010 Professional Edition을 사용할 수 있습니다.

만들어진 InfoPath 워크플로 양식은 ASP .NET 양식과 마찬가지로 workflow.xml 파일을 통해 워크플로에 연결됩니다. 그러나 ASP .NET 양식과는 달리 InfoPath 워크플로 양식과 특정 워크플로 사이에서 정보를 이동하는 사용자 지정 코드를 개발자가 작성하지 않아도 됩니다. 대신 SharePoint Server와 InfoPath가 이 링크를 제공하므로 워크플로를 만드는 사용자의 작업이 훨씬 줄어듭니다.

여러 가지 면에서 워크플로는 순서도와 유사합니다. 따라서 개발자가 워크플로의 동작을 지정할 수 있도록 그래픽 도구를 제공하는 것이 좋습니다. 이러한 도구가 바로 Visual Studio 2010 Professional의 SharePoint 워크플로 도구입니다. 이는 프로젝트 형식으로 WF(Windows Workflow Foundation) Workflow Designer를 사용하고 워크플로에 대한 배포 및 양식 지원도 추가합니다. 개발자는 WF Workflow Designer를 사용하여 워크플로 활동 및 해당 활동을 실행할 순서를 그래픽으로 정의할 수 있습니다. 아래 화면은 Microsoft Visual Studio에서 어떻게 표시되는지를 간단히 보여 주는 예입니다.

의견 수집 워크플로

Windows SharePoint Services 워크플로 예제

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Microsoft SharePoint Designer 2010에서 워크플로 제작

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

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

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

개발자보다는 정보 근로자를 대상으로 하고 보다 간단한 시나리오를 주로 다루기 때문에 Microsoft SharePoint Designer에서는 워크플로를 만드는 데 Visual Studio에 호스팅된 WF Workflow Designer와 다른 모델을 사용합니다. Microsoft SharePoint Designer는 그래픽 방식보다는 규칙 기반 방식을 사용합니다. 이는 많은 사람들에게 친숙한 도구인 Microsoft Outlook의 규칙 마법사와 다소 유사한 형태입니다. 아래 화면에서는 Microsoft SharePoint Designer 사용자가 워크플로에서 단계를 정의하는 방식을 보여 줍니다. 이 워크플로는 일부 동작을 병렬 또는 직렬로 실행합니다. 이전 버전의 SharePoint Server는 실행 동작을 직렬로만 지원했으며 순차적으로만 실행되었습니다.

프로세스 순서 워크플로

Process Order Workflow

각 단계에는 조건과 동작이 있습니다. 조건은 위에 표시된 If 문처럼 이 단계의 동작을 실행해야 하는지 여부를 결정합니다. 선택할 수 있는 동작으로 엔터테이너를 이벤트에 할당하거나 승인을 수집하는 등의 동작이 포함됩니다. 이러한 동작은 각각 SharePoint Server 활동을 통해 실제로 수행되며 여기서 사용된 활동은 Visual Studio 및 WF Workflow Designer의 활동과 동일합니다. 동작 목록에는 개발자가 만든 사용자 지정 활동 등 SharePoint 관리자가 이 사이트에서 허용하는 기타 활동도 포함됩니다. SharePoint Server에는 또한 Microsoft SharePoint Designer의 특수 디자이너를 사용하여 "작업 집합을 만들어 완료할 때까지 대기"라는 공통 승인 또는 의견 수집 방법을 사용자 지정할 수 있도록 사용자에게 허용하는 특수 활동 집합도 있습니다.

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

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

Microsoft SharePoint Designer도 Microsoft Visio 2010을 사용하여 만든 워크플로를 가져오는 기능을 제공합니다. 이 기능을 사용하면 비즈니스 관리자 또는 워크플로 제작자가 친숙한 그래픽 환경을 사용하여 워크플로 논리를 만들 수 있습니다. 워크플로 제작자는 워크플로 논리를 Microsoft SharePoint Designer로 가져와 필요한 경우 수정한 다음 SharePoint 사이트로 게시할 수 있습니다.

SharePoint Server에서는 문서 기반 워크플로를 제작할 수 있는 여러 가지 기능을 제공하지만 궁극적으로는 개발 및 실행을 위한 플랫폼입니다. 또한 최종 사용자가 직접 사용할 수 있는 워크플로 기능은 제공하지 않습니다. SharePoint Server에서 실행 중인 워크플로에는 Office 클라이언트 응용 프로그램을 사용하여 참가자와 상호 작용할 수 없는 등의 기타 제한 사항도 있습니다.

제작 도구 비교

다음 표에는 Visual Studio 2010 Professional Edition의 WF Workflow Designer 및 SharePoint Designer를 사용하여 SharePoint Server에 워크플로를 만들었을 때 지원되는 기능의 차이점이 정리되어 있습니다.

기능/요구 사항 SharePoint Designer Visual Studio의 WF Workflow Designer

사이트 관리자가 승인한 동작만을 사용하여 워크플로를 만들 수 있습니까?

아니요

브라우저 외의 클라이언트 응용 프로그램에서 워크플로에 액세스할 수 있습니까?

Microsoft Visio Professional을 사용하여 워크플로 논리를 만들 수 있습니까?

아니요

코드를 작성해야 합니까?

아니요

SharePoint Server에서 제공되는 활동 외의 추가 활동이 제공됩니까?

아니요

사용자 지정 활동을 만들 수 있습니까?

아니요

InfoPath 양식을 워크플로에 사용할 수 있습니까?

워크플로를 실행 중에 수정할 수 있습니까?

아니요

워크플로를 한 번 클릭하여 게시할 수 있습니까?

워크플로를 원격으로 배포할 수 있습니까?

아니요

팜 전체에서 사용 가능하도록 설정할 수 있습니까?

아니요

사이트 모음으로 범위를 지정할 수 있습니까?