최초 문서 게시일: 2012년 11월 22일 목요일

이종화의 사진안녕하세요? 저는 SharePoint Designer 팀의 프로그램 관리자인 임종화입니다.
오늘 이 블로그 게시물에서는 SharePoint Conference 2012(SPC 2012)에서 시연된 예제 워크플로를 보여 드리고, 더 나아가 이 예제 워크플로를 보다 실제적인 워크플로로 수정 및 확장해 보려고 합니다. 또한 SharePoint Designer 2013(SPD 2013)으로 워크플로를 만들 때 사용할 수 있는 몇 가지 팁을 알려 드리려고 합니다. 자세한 내용을 설명할 때는 여러분이 SharePoint Designer 2013 및 SharePoint 2013 유형 워크플로에 익숙한 것으로 가정하겠습니다. 그렇지 않으실 경우 SharePoint 2013 워크플로에 대한 이전 블로그 게시물들을 먼저 읽어 보시기 바랍니다. 

레저 이벤트 회사의 워크플로 

Contoso Leisure라는 레저 회사가 있다고 합시다. 이 회사는 승마, 낚시, 클레이 사격, 패러글라이딩, 스카이다이빙 등에 대한 레저 교습을 제공합니다.

이미지

또한 다음과 같은 승인 워크플로가 필요하다고 하겠습니다.

  • 이벤트 코디네이터 SharePoint 그룹으로부터 요청 승인
  • 거부될 경우 고객에게 거부 메일 전송
  • 승인될 경우 이벤트/교습 전 5일까지 기다렸다가 이벤트에 대한 미리 알림 메일 전송
    • 미리 알림 메일에는 날씨 정보와 찾아오는 길 및 약도를 비롯한 이벤트 관련 정보가 들어 있습니다. 

이 워크플로 예제에서는 두 가지 웹 서비스를 사용하지만 한 가지 웹 서비스만 SPD에서 사용할 수 있는 'HTTP 웹 서비스 호출' 동작을 통해 처리됩니다. 나머지 웹 서비스는 문자열 변수 내에서 참조되어 <IMG> 태그를 사용해서 메일 본문에 배치됩니다. 자세한 내용은 Bing 지도 API 페이지(http://www.microsoft.com/maps/developers/web.aspx)를 참조하십시오.

여러분이 이 워크플로를 만들면 다음과 같은 워크플로가 생성됩니다.

이미지

이미지

이미지

여기서 '날씨 정보 얻기(Get Weather Info)' 스테이지에 'HTTP 웹 서비스 호출(Call HTTP Web Service)' 동작이 포함되어 있습니다. 첫 번째 매개 변수를 클릭하면 다음과 같은 URL이 사용되는 것을 볼 수 있습니다. 이 URL에서 'Web Service Keys'라는 별도 목록에 웹 서비스 키가 저장되어 있습니다. 웹 서비스 동작, 사전에서 항목 가져오기 동작 및 루프 컨테이너에 대한 설명과 사용 방법은 김형국 님의 이전 블로그 게시물(http://blogs.technet.com/b/office_ko/archive/2012/09/28/quot-http-quot.aspx)을 참조하시기 바랍니다. 

이미지

또한 '미리 알림 전자 메일 보내기(Send Reminder Email)' 스테이지에서 '워크플로 변수 설정(Set Workflow Variable)' 동작을 클릭하면 '웹 서비스 키(Web Service Keys)' 목록을 사용하여 웹 서비스 키 또는 토큰이 저장되는 것을 볼 수 있습니다.

이미지 

좀 더 실제적인 워크플로

실제 상황에서는 웹 서비스 키를 안전하게 관리해야 할 수 있습니다. 이렇게 하려면 모든 권한이 있는 사람만 액세스할 수 있는 목록에 웹 서비스 키를 저장하여 보호해야 합니다. 그러나 이 경우 일반적인 워크플로 논리가 워크플로 시작자 및 (논리 AND) 워크플로 앱의 권한으로 실행되므로 웹 서비스 키에 액세스하지 못합니다. 즉, 워크플로 시작자에게 웹 서비스 키가 포함된 목록에 액세스할 수 있는 권한이 없는 경우 워크플로가 실패합니다. 워크플로 논리가 모든 사이트 목록에 대한 읽기/쓰기가 가능한 워크플로 앱 권한으로만 실행되게 하려면 앱 단계를 사용해야 합니다.

1단계. 목록이 독립적인 권한을 갖도록 하여 목록 보호

방금 설명한 대로, 웹 서비스 키가 포함된 목록을 모든 권한을 가진 사용자만 액세스할 수 있도록 만들어야 합니다. 이를 위해 목록에서 상속을 중지하고 불필요한 사용자를 제거해야 합니다.

목록 이름이 'Web Service Keys' 목록이라고 합시다. 목록 설정이 목록에 대한 권한 페이지로 이동하면 상속을 중지할 수 있는 메뉴가 있습니다.

이미지

상속을 중지한 후에는 아래와 같이 모든 권한(Full Control)을 갖지 않는 사용자들을 선택하고 사용자의 사용 권한 제거(Remove User Permissions) 단추를 클릭합니다.

이미지

그러면 목록에 모든 권한을 가진 사용자만 표시됩니다.

이미지

2단계. 앱 단계 기능 활성화

앱 단계를 사용하려면 사이트 설정->사이트 기능 관리에서 아래와 같이 워크플로의 앱 사용 권한(Workflows can use app permissions) 기능을 활성화해야 합니다.

이미지

그러면 SPD에서 앱 단계(App Step) 단추가 활성화됩니다.

이미지

3단계. 앱 단계를 추가하고 앱 단계로 논리 이동

'Web Service Keys' 목록을 참조하는 논리를 찾아 앱 단계(App Step) 컨테이너 안에 포함시켜야 합니다. 앱 단계(App Step) 내에 배치해야 할 논리가 두 개 있습니다. 아래 그림에 나타난 HTTP 웹 서비스 호출(Call HTTP web service) 동작과 RouteMap 변수 설정(Set RouteMap variable) 동작입니다. 

이미지

이미지

4단계. 워크플로 게시

워크플로를 게시하면 이 동작을 설명하는 다음과 같은 대화 상자가 표시됩니다.

이미지

이 게시물을 통해 앱 단계를 적절히 사용하는 방법을 파악하고 유용한 정보를 얻으셨기를 바랍니다. 다음 게시물에서 다시 뵙겠습니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012)을 참조하십시오.