연습: SharePoint Designer의 재사용 가능한 워크플로 가져오기
이 연습에서는 SharePoint Designer 2010에서 만든 다시 사용 가능한 워크플로를 Visual Studio SharePoint 워크플로 프로젝트로 가져오는 방법을 보여 줍니다.
SharePoint Designer에서 만든 워크플로 또는 선언적 워크플로는 코드 대신 XML 문으로 구성됩니다. SharePoint Designer 2010에는 SharePoint 사이트의 다양한 목록에서 사용할 수 있는 이식 가능하고 선언적인 워크플로인 '재사용 가능한 워크플로'가 도입되었습니다.
순차 및 상태 머신 워크플로와 같이 Visual Studio 2012에서 생성된 워크플로를 코드 워크플로라고 합니다. 코드 워크플로는 사용자가 워크플로의 동작을 사용자 지정할 수 있는 XML 파일 및 코드 모듈로 구성됩니다.
Visual Studio에서는 SharePoint Designer 2010에서 만든 다시 사용할 수 있는 워크플로를 가져와서 SharePoint 사이트에서 사용할 수 있도록 코드 워크플로로 변환할 수 있습니다.
이 연습에서는 다음 작업을 수행합니다.
SharePoint Designer에서 간단한 재사용 가능한 워크플로를 만듭니다.
SharePoint Designer 재사용 가능한 워크플로를 .wsp 파일 및 SharePoint로 내보냅니다.
재사용 가능한 워크플로 가져오기 프로젝트를 사용하여 .wsp 파일을 Visual Studio로 가져옵니다.
코드를 추가하여 워크플로를 변경합니다.
가져온 워크플로를 SharePoint 사이트에서 사용합니다.
참고 항목
일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 IDE 개인 설정을 참조하세요.
필수 조건
이 연습을 완료하려면 다음과 같은 구성 요소가 필요합니다.
지원되는 Microsoft Windows 및 SharePoint 버전.
Visual Studio.
Microsoft Office SharePoint Designer 2010.
대상 SharePoint 하위 사이트 만들기
먼저 새 SharePoint 하위 사이트 두 개를 만듭니다. 하나는 SharePoint Designer에서 재사용 가능한 워크플로를 호스트하며, 다른 하나는 변환된 워크플로를 호스트합니다.
SharePoint 하위 사이트를 만들려면
SharePoint Designer 2010의 메뉴 모음에서 파일>새 웹 사이트를 선택합니다.
새 웹 사이트 대화 상자에서 워크플로를 만들려는 SharePoint 사이트로 이동하거나, http://SystemName/ 값을 사용한 다음 확인 단추를 선택합니다.
홈페이지가 나타납니다.
하위 사이트 섹션에서 새로 만들기 단추를 선택합니다.
새로 만들기 대화 상자에 있는 왼쪽 창의 목록에서 SharePoint 템플릿을 선택하고 오른쪽 창의 목록에서 팀 사이트를 선택합니다.
웹 사이트의 위치를 지정하세요. 상자에서 URL의 단어 subsite를 SPD1으로 바꾼 다음 확인 단추를 선택합니다.
새 하위 사이트가 SharePoint Designer에서 열립니다. SharePoint Designer의 이 인스턴스를 닫고 첫 번째 인스턴스(최상위 사이트)로 돌아갑니다.
3~5단계를 반복하여 두 번째 하위 사이트를 만듭니다. 이번에는 URL에서 subsite라는 단어를 SPD2로 바꿉니다.
SharePoint Designer 재사용 가능한 워크플로 만들기
SharePoint에는 이 예제에 사용할 수 있는 재사용 가능한 워크플로가 없으니, 이러한 워크플로를 만들어야 합니다. 이 간단한 워크플로에서는 사용자가 특정 제목이 있는 작업 목록에 새 작업을 입력할 때 사용자에게 작업이 할당됩니다.
SharePoint Designer 재사용 가능한 워크플로를 만들려면
하위 사이트 섹션에서 SPD1 사이트를 선택하여 수정합니다.
리본 메뉴에서 재사용 가능한 워크플로 단추를 선택합니다.
재사용 가능한 워크플로 만들기 마법사가 나타납니다.
이름 상자에 SPD Task Workflow를 입력합니다.
콘텐츠 형식 목록에서 작업을 선택한 다음 확인 단추를 선택합니다.
SharePoint Designer 워크플로 디자이너에서 워크플로가 열립니다.
워크플로 디자이너에서 1단계를 선택한 다음 리본 메뉴에서 조건 단추를 선택합니다.
조건 목록에서 현재 항목 필드와 값이 일치하는 경우를 선택합니다.
이 단계에서는 필드와 값이 일치하는 경우라는 조건을 추가합니다.
필드와 값이 일치하는 경우 조건에서 필드 링크를 선택합니다.
값 목록에서 제목을 선택합니다.
필드와 값이 일치하는 경우 조건에서 값 링크를 선택합니다.
상자에 New task를 입력합니다.
이제 조건 문은 If Current Item:Title equals New task라고 표시됩니다.
조건문 아래의 줄을 선택한 다음 리본 메뉴에서 작업 단추를 선택합니다.
작업 목록에서 현재 항목의 필드 설정을 선택합니다.
필드를 값으로 설정 작업에서 필드 링크를 선택한 다음 목록에서 담당자를 선택합니다.
필드를 값으로 설정 작업에서 값 링크를 선택한 다음 기존 사용자 및 그룹 목록에서 현재 항목을 만든 사용자를 선택합니다.
추가 단추를 선택한 후 확인 단추를 선택합니다.
이제 작업 설명에 Set Assigned To Current Item:CreatedBy가 표시됩니다.
재사용 가능한 워크플로 저장 및 배포
Visual Studio는 .wsp 파일만 가져올 수 있으므로 다시 사용 가능한 워크플로를 .wsp 파일로 저장하고 Visual Studio로 가져오기 전에 SharePoint에 배포해야 합니다.
Important
다음 절차를 수행하는 동안 런타임 오류가 발생하는 경우 SharePoint 사이트에 액세스할 수 있는 시스템에서 프로시저를 수행해야 합니다.
재사용 가능한 워크플로를 저장하고 배포하려면
SharePoint Designer의 맨 위에서 저장 단추를 선택하여 진행 상황을 저장하고 게시 단추를 선택하여 SPD1 SharePoint 사이트에 워크플로를 배포합니다.
탐색 창에서 워크플로 개체를 선택합니다.
재사용 가능한 워크플로에서 SPD Task Workflow를 선택합니다.
리본 메뉴에서 템플릿으로 저장 단추를 선택하여 워크플로를 .wsp 파일로 저장합니다.
브라우저에서 SPD1 SharePoint 사이트를 열어 .wsp 파일을 SharePoint에서 확인합니다.
빠른 실행 모음에서 라이브러리 링크를 선택합니다.
문서 라이브러리 섹션에서 사이트 자산 링크를 선택합니다.
SPD 작업 워크플로 파일이 다른 사이트 자산과 함께 나열됩니다.
파일 목록에서 해당 파일의 이름을 선택합니다.
파일 다운로드 대화 상자에서 저장 단추를 선택하여 .wsp 파일을 로컬 시스템에 저장합니다.
.wsp 파일을 Visual Studio에 가져오기
다시 사용 가능한 워크플로 가져오기 프로젝트를 사용하여 .wsp 파일을 Visual Studio로 가져옵니다. 이 프로젝트는 워크플로를 재사용 가능한 선언적 워크플로에서 코드 워크플로로 변환합니다. 워크플로가 변환된 후에는 코드를 사용하여 워크플로의 동작을 수정합니다.
.wsp 파일에서 워크플로를 가져오고 수정하려면
Visual Studio의 메뉴 모음에서 파일>새로 만들기>프로젝트를 선택합니다.
새 프로젝트 대화 상자에서 Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010 노드를 선택합니다.
템플릿 창에서 재사용 가능한 SharePoint 2010 워크플로 가져오기 템플릿을 선택하고 프로젝트의 이름을 WorkflowImportProject1로 둔 다음 확인 단추를 선택합니다.
SharePoint 사용자 지정 마법사가 나타납니다.
디버깅을 위한 사이트 및 보안 수준 지정 페이지에서 이전에 만든 두 번째 SharePoint 하위 사이트의 URL인 http://시스템 이름/SPD2를 입력합니다.
이 SharePoint 솔루션의 신뢰 수준을 선택하세요. 섹션에서 팜 솔루션으로 배포 옵션 단추를 선택하고 다음 단추를 선택합니다.
샌드박스 솔루션과 팜 솔루션의 차이에 대한 자세한 내용은 샌드박스 솔루션 고려 사항을 참조하세요.
새 프로젝트 소스 지정 페이지에서 이전에 .wsp 파일을 저장한 시스템 위치로 이동하고 파일을 연 후 다음 단추를 선택합니다.
참고 항목
마침 단추를 선택하여 .wsp 파일에서 사용할 수 있는 모든 항목을 가져옵니다.
가져올 수 있는 재사용 가능한 워크플로 목록이 표시됩니다.
가져올 항목 선택 상자에서 SPD Task Workflow 워크플로를 선택한 다음 마침 단추를 선택합니다.
가져오기 작업이 완료되면 SPD_Workflow_TestFT라는 워크플로가 포함된 WorkflowImportProject1이라는 프로젝트가 생성됩니다. 이 폴더에는 워크플로의 정의 파일인 Elements.xml과 워크플로 디자이너 파일(.xoml)이 있습니다. 디자이너에는 규칙 파일(.rules)과 코드 숨김 파일(프로젝트의 프로그래밍 언어에 따라 .cs 또는 .vb)이라는 두 가지 파일이 포함되어 있습니다.
솔루션 탐색기에서 Other Imported Files 폴더를 삭제합니다.
Elements.xml 파일에서
InstantiationURL="_layouts/IniErkflIP.sspx"
를 삭제합니다.솔루션 탐색기에서 WorkflowImportProject1을 선택한 다음 메뉴 모음에서 프로젝트>시작 프로젝트로 설정을 선택하여 WorkflowImportProject1을 시작 항목으로 설정합니다.
이렇게 하면 프로젝트를 디버그할 때 목록이 즉시 표시됩니다.
재사용 가능한 SharePoint 2010 워크플로 가져오기 템플릿은 가져온 워크플로에 대한 연결 속성 값을 가져오지 않기 때문에 해당 값을 입력해야 합니다. 방법:
솔루션 탐색기에서 SPD_Workflow_TestFT 노드를 선택합니다.
대상 목록 속성과 같은목록 속성 중 하나의 옆에 있는 줄임표(
) 단추를 선택합니다.
SharePoint 사용자 지정 마법사에서 누락된 값을 입력한 다음 마침 단추를 선택합니다.
.xoml 파일을 선택한 다음 메뉴 모음에서 보기>디자이너를 선택하여 워크플로 디자이너에서 가져온 워크플로를 봅니다.
도구 상자의 Windows Workflow v3.0 노드에서 다음 단계 중 하나를 수행합니다.
코드 작업의 바로 가기 메뉴를 열고 복사를 선택합니다. 워크플로 디자이너에서 SequenceActivity1 작업 아래의 줄에 대한 바로 가기 메뉴를 열고 붙여넣기를 선택합니다.
코드 작업을 도구 상자에서 워크플로 디자이너로 끌어 SequenceActivity1 작업 아래의 줄에 연결합니다.
이렇게 하면 CodeActivity1이라는 워크플로 디자이너에 활동이 추가됩니다. 이 활동에서는 사용자가 워크플로를 시작할 때 알림 목록에 공지 사항을 만드는 코드 작업을 추가합니다.
다음 단계 중 하나를 수행합니다.
CodeActivity1을 두 번 클릭하여 이벤트 처리기를 생성하고 코드를 봅니다.
CodeActivity1의 속성 창에서 ExecuteCode 속성의 값을 codeActivity_ExecuteCode로 설정합니다.
기존 using 또는 Imports 지시문에 다음을 추가합니다.
codeActivity1_ExecuteCode
를 다음으로 바꿉니다.private void codeActivity1_ExecuteCode(object sender, System.EventArgs e) { try { // Get reference to SharePoint site. SPSite site = new SPSite("http://MyServer"); SPWeb web = site.OpenWeb("SPD2/"); // Get reference to Announcements list. SPList announcementsList = web.Lists["Announcements"]; // Add announcement to Announcements list for the Task. SPListItem oListItem = announcementsList.Items.Add(); oListItem["Title"] = "Assigned task on " + DateTime.Now.ToString(); oListItem.Update(); } catch (Exception err) { Console.WriteLine("Error: " + err.ToString()); } }
프로젝트 배포 및 워크플로 연결
그런 다음 WorkflowImportProject1을 실행하여 SharePoint 사이트에 배포한 다음, 워크플로를 Tasks 목록에 연결하여 수정 및 변환된 워크플로를 보고 테스트합니다.
프로젝트를 배포하고 워크플로를 연결하려면
Visual Studio에서 F5 키를 선택하여 변환된 워크플로 프로젝트를 실행하고 배포합니다.
빠른 실행 모음에서 작업 링크를 선택하여 작업 목록을 표시합니다.
목록 도구 탭에서 항목 단추를 선택한 다음 새 항목 단추를 선택합니다.
작업 - 새 항목 대화 상자가 열립니다.
제목 상자에 새 작업을 입력한 후 저장 단추를 선택합니다.
목록 도구 탭에서 목록 단추를 선택한 다음 목록 설정 단추를 선택합니다.
목록 설정 페이지가 나타납니다.
사용 권한 및 관리 섹션에서 워크플로 설정 링크를 선택합니다.
워크플로 설정 페이지가 나타납니다.
워크플로 추가 링크를 선택합니다.
워크플로 목록에서 WorkflowImportProject1 - SPD Workflow Test를 선택합니다.
이름 상자에 SPD Workflow Test를 입력한 후 확인 단추를 선택합니다.
빠른 실행 모음에서 작업 목록을 선택합니다.
새 작업 옆에 있는 화살표를 선택하고 목록에서 워크플로를 선택합니다.
새 워크플로 시작 섹션에서 SPD Workflow Test의 링크를 선택한 다음 시작 단추를 선택하여 워크플로를 시작합니다.
참고 항목
또는 워크플로 설정 마법사를 실행하고 워크플로를 자동으로 연결하도록 설정하여, 워크플로를 목록에 자동으로 연결할 수도 있습니다.
워크플로에서는 두 가지 작업을 수행합니다. 사용자의 이름은 작업의 할당 대상 열에 표시되고 공지 사항은 공지 사항 목록에 표시됩니다.