워크플로 제작 도구 선택(SharePoint Foundation)
적용 대상: SharePoint Foundation 2010
마지막으로 수정된 항목: 2015-03-09
워크플로는 기본적으로 워크플로가 사용자와 상호 작용하는 데 사용하는 양식과 워크플로의 동작을 정의하는 논리로 구성됩니다. 워크플로를 만드는 방법을 이해하려면 이 두 구성 요소에 대해 알아야 합니다.
웹 브라우저를 통해 사용자와 통신하기 때문에 워크플로는 ASP.NET을 사용하여 양식을 표시합니다. 따라서 이러한 양식은 .aspx 페이지로 정의됩니다. 워크플로는 수명 주기 중 다음과 같은 4가지 시점에 양식을 표시할 수 있습니다.
연결: 관리자가 워크플로 서식 파일을 특정 문서 라이브러리나 목록에 연결하면 이 연결로부터 생성되는 모든 워크플로 인스턴스에 적용될 옵션을 설정할 수 있습니다. 워크플로 제작자가 이를 허용하도록 선택하면 제작자는 관리자가 이 정보를 지정할 수 있도록 양식을 제공해야 합니다.
시작: 워크플로 시작자는 실행 중인 인스턴스를 시작할 때 옵션을 지정할 수 있습니다. 예를 들어 앞서 설명한 승인 시나리오에는 워크플로 참가자 목록을 지정하고 각 참가자가 자신의 작업을 완료해야 하는 시간을 정의하는 옵션이 있습니다. 워크플로에서 이 작업을 허용하는 경우 제작자는 시작자가 이러한 옵션을 설정할 수 있도록 양식을 제공해야 합니다.
작업 완료: 실행 중인 워크플로 인스턴스는 워크플로 참가자가 자신의 작업을 완료할 수 있도록 하는 양식을 표시해야 합니다. 이 양식은 이전 시나리오에서 승인자가 문서에 대해 의견을 추가하고 승인 또는 거부를 나타내도록 허용된 항목입니다.
수정: 워크플로 제작자는 워크플로를 실행하는 동안 이를 수정할 수 있도록 허용할 수 있습니다. 예를 들어 워크플로를 실행한 이후에 새 참가자를 추가하거나 작업 완료 기한을 연장할 수 있습니다. 이 옵션을 사용하는 경우 참가자가 변경해야 하는 항목을 지정할 수 있는 양식이 이 시점에 워크플로에 표시되어야 합니다.
전적으로 Microsoft SharePoint Foundation 2010을 기반으로 하는 워크플로는 양식을 .aspx 페이지로 정의합니다. 워크플로 논리는 Windows WF(Workflow Foundation) 기반 워크플로처럼 항상 활동 그룹으로 정의됩니다. Microsoft는 워크플로 논리 및 양식을 지정할 수 있는 두 가지 서로 다른 도구를 제공하며 각각 서로 다른 대상 그룹을 목표로 합니다. 소프트웨어 개발자는 Windows Workflow Foundation의 Workflow Designer 기능을 사용합니다. 이 도구는 Visual Studio 2010 Professional Edition에서 실행되며 작업을 워크플로로 구성할 수 있는 그래픽 환경을 제공합니다. 보다 전문성이 떨어지는 그룹인 정보 근로자는 Microsoft SharePoint Designer 2010을 사용하여 코드를 작성하지 않고 워크플로를 만듭니다. 다음 두 섹션에서는 이러한 각 도구를 사용하여 워크플로를 만드는 방법에 대해 설명합니다.
Visual Studio 2010 및 WF Workflow Designer에서 워크플로 제작
여러 가지 면에서 워크플로는 순서도와 유사합니다. 따라서 개발자가 워크플로의 동작을 지정할 수 있도록 그래픽 도구를 제공하는 것이 좋습니다. Visual Studio 2010 Professional에서는 SharePoint 워크플로 도구가 해당합니다. Visual Studio 2010 Professional은 Windows WF(Workflow Foundation) Designer를 사용하는 프로젝트 유형으로 SharePoint 워크플로를 지원하는 양식 및 배포를 추가합니다. 개발자는 WF Workflow Designer를 사용하여 워크플로 활동 및 활동 실행 순서를 그래픽으로 정의합니다. 아래 화면에서는 Microsoft Visual Studio에서 워크플로의 간단한 예를 보여 줍니다.
의견 수집 워크플로
사용할 수 있는 활동이 화면 왼쪽의 도구 상자에 나타납니다. 개발자는 이러한 활동을 디자인 화면으로 끌어 워크플로에서 해당 단계를 정의할 수 있습니다. 그런 다음 오른쪽 아래에 나타나는 속성 창에서 각 활동의 속성을 설정할 수 있습니다.
BAL(Base Activity Library) Windows Workflow Foundation은 앞서 설명한 대로 기본 활동 그룹을 제공합니다. 또한 Microsoft SharePoint Foundation에서는 워크플로를 만들기 위해 명시적으로 고안된 활동 집합도 제공합니다. 이 중 가장 중요한 활동은 다음과 같습니다.
OnWorkflowActivated: 워크플로에 대한 기준 시작 위치를 제공합니다. 무엇보다 이 활동은 워크플로가 문서 라이브러리, 목록, 콘텐츠 형식 또는 사이트와 연결된 경우 SharePoint 관리자가 연결 양식을 통해 제공한 정보를 수용할 수 있습니다. 또한 워크플로가 시작된 경우 시작 양식을 통해 제공한 정보도 수용할 수 있습니다. 모든 워크플로는 이 활동으로 시작되어야 합니다.
CreateTask: 작업 목록에서 특정 사용자에게 할당된 작업을 만듭니다. 예를 들어 앞서 설명한 시나리오의 승인 워크플로에서 각 참가자가 사용하는 작업 목록에 작업을 추가하기 위해 이 활동을 사용했습니다. 이 활동에는 true로 설정할 경우 해당 작업의 대상자에게 전자 메일 메시지를 자동으로 보내는 SendEmailNotification 속성도 포함됩니다.
OnTaskChanged: 작업 완료 양식에서 정보를 수용합니다. 이전 시나리오의 승인 워크플로에서는 문서가 승인된 경우 각 참가자의 입력을 수용하는 데 이 활동을 사용했습니다.
CompleteTask: 작업을 완료됨으로 표시합니다.
DeleteTask: 작업 목록에서 작업을 제거합니다.
OnWorkflowModified: 수정 양식으로부터 정보를 수용한 후 워크플로에서 해당 인스턴스가 작동하는 방식을 변경할 수 있습니다. 워크플로 제작자가 워크플로에 이 활동의 인스턴스를 포함하지 않도록 선택한 경우 실행 중에 워크플로를 수정할 수 없습니다.
SendEmail: 지정된 사용자 또는 사용자 그룹에 전자 메일을 보냅니다.
LogToHistoryList: 사용 기록 목록에 워크플로의 실행 정보를 기록합니다. 이 목록에 있는 정보를 통해 사용자는 워크플로 중 어느 단계를 실행 중인지 확인하고 완료된 워크플로 기록 등을 확인할 수 있습니다. 이러한 종류의 모니터링이 가능하려면 워크플로 제작자가 워크플로 실행 중 적절한 시점에 사용 기록 목록에 정보를 기록해 두어야 합니다. 워크플로 추적을 위한 고유의 메커니즘이 제공되므로 Microsoft SharePoint Foundation에서는 WF의 표준 추적 서비스를 지원하지 않습니다.
간단한 워크플로의 일반적인 형태는 OnWorkflowActivated 활동으로 시작한 다음 CreateTask 활동을 사용하여 워크플로 참가자에게 작업을 할당하는 것입니다. 그런 다음 사용자가 작업을 완료할 때까지 대기하는 데 BAL의 표준 While 활동을 사용할 수 있습니다. 이 시점(대개 사용자가 작업에 대한 여러 사항을 변경한 다음 작업 완료 양식에 있는 확인란을 선택한 시점)을 확인하기 위해 OnTaskChanged 활동을 While 내에 실행하여 사용자가 양식에 입력한 정보를 모두 추출합니다. 사용자가 작업를 완료하면 CompleteTask 활동이 실행된 후 DeleteTask가 실행됩니다. 그런 후 워크플로는 다음 참가자에게로 넘어가 CreateTask를 사용하여 작업을 할당하는 등의 작업을 진행합니다. 물론 전자 메일 보내기, 사용 기록 목록에 정보 기록, 임의 코드 실행을 허용하는 BAL의 코드 활동과 같은 기타 작업이 발생할 수도 있습니다.
SharePoint Foundation에서 제공하는 모든 활동은 SharePoint 환경에서 워크플로를 수행한다는 전제가 따릅니다. 워크플로에서 구현하는 비즈니스 논리는 전적으로 워크플로 제작자의 의도에 따라 결정됩니다. 실제로 워크플로를 제작한 개발자는 SharePoint Foundation 및 WF에서 제공하는 활동만 사용하지 않고 자신이 사용자 지정한 활동을 자유롭게 만들어 사용할 수 있습니다.
앞서 설명한 것처럼 Windows Workflow Foundation은 순차, 동시 및 상태 시스템 워크플로를 모두 지원합니다. WF Workflow Designer로 만든 워크플로에서도 이 옵션을 사용할 수 있습니다. 옵션을 사용하려면 SharePoint Foundation에서 워크플로 스타일마다 하나씩 프로젝트 유형을 Visual Studio에 추가해야 합니다.
선택한 스타일에 관계없이 개발자는 워크플로 논리를 추가로 정의할 뿐 아니라 사용할 .aspx 양식도 지정해야 합니다. 이를 위해 개발자는 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 Foundation을 실행하는 서버에서 워크플로를 배포해야 합니다. 아직 많은 SharePoint 관리자가 시스템이 불안정해질 위험이 매우 높다는 믿음 때문에 자신의 서버에 임의 코드의 배포를 허용하지 않고 있습니다. 문서 및 목록 항목과 연결된 명확한 비즈니스 논리를 만들 수 있다는 점은 매우 유용하며 많은 SharePoint 사용자가 원하는 것이기도 합니다. 전문가가 아니더라도 워크플로를 제작할 수 있도록 허용하는 것 외에도 Microsoft SharePoint Designer는 SharePoint Foundation을 실행하는 서버에 비즈니스 논리를 정의 및 배포할 수 있는 보다 안전한 방법을 제공하여 이러한 문제를 해결합니다.
Microsoft SharePoint Designer에서 다루는 워크플로 시나리오는 Visual Studio 및 WF Workflow Designer에서 다루는 워크플로 시나리오와 몇 가지 면에서 다릅니다. 복잡한 응용 프로그램을 만들 수 있다는 점은 확실하지만 Microsoft SharePoint Designer의 목적은 사용자가 SharePoint 사이트에 비즈니스 논리를 추가하도록 하는 것입니다. 예를 들어 사이트에 사용자가 변경 요청을 전송할 수 있는 목록이 들어 있다고 가정해 봅시다. Microsoft SharePoint Designer에서는 사용자의 변경 요청이 수락 또는 거절될 때 전송자에게 이를 자동으로 알리는 워크플로를 만들 수 있습니다. 마찬가지로 사용자 지정 워크플로에서도 특정 문서 라이브러리에 새 문서가 추가될 때마다 특정 사용자 그룹에 이를 알릴 수 있습니다. 워크플로 제작은 쉽기 때문에 이러한 종류의 사용자 지정 알림을 수행하는 것은 복잡하지 않지만 이전 버전의 SharePoint Foundation에서는 관리자가 사용자가 작성한 코드를 설치하기를 꺼렸기 때문에 어려운 일이었습니다.
이때 왜 Microsoft SharePoint Designer에서 만든 논리를 다르게 처리해야 하는지 궁금할 수 있습니다. SharePoint 관리자가 이 도구를 사용하여 구축된 워크플로를 자신이 관리하는 시스템에 배포하도록 허용하는 이유는 무엇일까요? Microsoft SharePoint Designer를 사용하여 구축된 워크플로는 관리자가 제어하는 목록의 활동만 사용할 수 있기 때문입니다. SharePoint Foundation에서 제공하는 활동 외에도 사이트 관리자는 이 목록에 개발자가 만든 사용자 지정 활동을 포함할지 여부를 선택할 수 있습니다. SharePoint 관리자는 워크플로에서 수행할 수 있는 작업을 정확히 정의함으로써 Microsoft SharePoint Designer를 사용하여 만든 논리를 배포하더라도 시스템이 불안정해지지 않을 것이라는 보다 큰 확신을 가질 수 있습니다.
개발자보다는 정보 근로자를 대상으로 하고 보다 간단한 시나리오를 주로 다루기 때문에 Microsoft SharePoint Designer에서는 워크플로를 만드는 데 Visual Studio에서 호스팅하는 WF Workflow Designer와는 다른 모델을 사용합니다. Microsoft SharePoint Designer는 그래픽 방식 대신에 규칙 기반 방식을 사용합니다. 이는 많은 사람들에게 친숙한 도구인 Microsoft Outlook의 규칙 마법사와 다소 유사합니다. 아래 화면에서는 Microsoft SharePoint Designer 사용자가 워크플로의 단계를 정의하는 방식을 보여 줍니다. 이 워크플로는 일부 동작은 병렬로 실행하고, 또 다른 일부 동작은 직렬로 실행합니다. 이전 버전의 SharePoint Foundation에서는 동작을 직렬로만 실행할 수 있었으므로 동작이 순차적으로만 실행되었습니다.
프로세스 순서 워크플로
각 단계에는 조건과 동작이 있습니다. 조건은 위에 표시된 If 문처럼 이 단계의 동작을 실행해야 하는지 여부를 결정합니다. 선택할 수 있는 동작으로는 이벤트에 엔터테이너 할당, 승인 수집 등이 포함됩니다. 이러한 각 동작은 몇 가지 SharePoint Foundation 활동을 통해 실제로 수행되며 여기서 사용된 활동은 Visual Studio 및 WF Workflow Designer의 활동과 동일합니다. 동작 목록에는 개발자가 만든 사용자 지정 활동 등 SharePoint 관리자가 이 사이트에서 허용하는 기타 활동도 포함됩니다.
사용자 인터페이스가 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 Foundation에서는 문서 중심의 워크플로를 만드는 데 사용할 수 있는 매우 다양한 기능을 제공합니다. 그러나 궁극적으로 Windows SharePoint Services는 개발 및 실행을 위한 플랫폼입니다. 최종 사용자가 직접 사용할 수 있는 워크플로 기능은 제공되지 않습니다. SharePoint Foundation을 실행하는 워크플로에는 Office 클라이언트 응용 프로그램을 사용하여 참가자와 상호 작용할 수 없는 등의 기타 제한 사항도 있습니다.
제작 도구 비교
다음 표에서는 Visual Studio 2010 Professional Edition에서 WF Workflow Designer 및 SharePoint Designer를 사용하여 SharePoint Foundation에서 워크플로를 만들 때 Microsoft에서 지원하는 여러 도구들 간의 중요한 차이를 보여 줍니다.
기능/요구 사항 | SharePoint Designer | Visual Studio의 WF Workflow Designer |
---|---|---|
사이트 관리자가 승인한 동작만 사용하여 워크플로를 만들 수 있습니까? |
예 |
아니요 |
브라우저가 아닌 클라이언트에서 워크플로에 액세스할 수 있습니까? |
예 |
예 |
Microsoft Visio Professional을 사용하여 워크플로 논리를 만들 수 있습니까? |
예 |
아니요 |
코드를 작성해야 합니까? |
아니요 |
예 |
SharePoint Foundation에서 제공하는 활동 이외의 추가 활동을 제공합니까? |
아니요 |
예 |
사용자 지정 활동을 만들 수 있습니까? |
아니요 |
예 |
워크플로를 실행하는 동안 수정할 수 있습니까? |
아니요 |
예 |
한 번 클릭으로 워크플로를 게시할 수 있습니까? |
예 |
예 |
원격으로 워크플로를 배포할 수 있습니까? |
예 |
아니요 |
팜 내에서 사용할 수 있습니까? |
아니요 |
예 |
사이트 모음을 포함할 수 있습니까? |
예 |
예 |