방법: 워크플로 관리자 1.0용 사용자 지정 작업 만들기

 

게시 날짜: 2016년 7월

작업이란 WF의 핵심 동작 단위로 개발자가 워크플로를 작성하는 구성 블록입니다.Workflow Manager 1.0에서 사용자 지정 작업과 워크플로는 작업 및 워크플로를 작성하는 데 사용할 수 있는 신뢰할 수 있는 유형 및 작업 집합인 워크플로 관리자 1.0 신뢰할 수 있는 표면 유형으로 구성됩니다.워크플로 관리자 1.0 시작 자습서의 이 단계에서는 http://services.odata.org/Northwind/Northwind.svc에 호스팅되는 Northwind 샘플 데이터베이스에서 제품을 검색하는 사용자 지정 작업을 만듭니다. 그런 다음 자습서의 다음 단계에서 이 작업을 사용합니다.

참고

연습 동영상을 보거나 자습서의 시작 파일 및 전체 버전을 다운로드하려면 워크플로 관리자 1.0 - 시작 자습서를 참조하세요.

이 자습서의 단계

  • Visual Studio 솔루션 및 작업 라이브러리 프로젝트 만들기

  • GetProducts 작업 만들기

Visual Studio 솔루션 및 작업 라이브러리 프로젝트 만들기

  1. Visual Studio 2012를 열고 파일 메뉴에서 새로 만들기, 프로젝트를 선택합니다.

    설치, 템플릿 목록에서 기타 프로젝트 형식 노드를 확장하고 Visual Studio 솔루션을 선택합니다.

  2. Visual Studio 솔루션 목록에서 빈 솔루션을 선택합니다. .NET Framework 버전 드롭다운 목록에서 .NET Framework 4.5가 선택되어 있는지 확인합니다.이름 상자에 WFMgrGettingStarted을 입력한 다음 확인을 클릭합니다.

  3. 솔루션 탐색기에서 WFMgrGettingStarted를 마우스 오른쪽 단추로 클릭하고 추가, 새 프로젝트를 선택합니다.

    솔루션 탐색기 창이 표시되지 않으면 보기 메뉴에서 솔루션 탐색기를 선택합니다.

  4. 설치 노드에서 Visual C#, 워크플로를 선택합니다..NET Framework 버전 드롭다운 목록에서 .NET Framework 4.5가 선택되어 있는지 확인합니다.워크플로 목록에서 작업 라이브러리를 선택합니다.이름 상자에 GetProductsActivities를 입력한 다음 확인을 클릭합니다.

    참고

    Visual Studio에서 기본 언어로 구성된 프로그래밍 언어에 따라 Visual C# 노드가 설치 노드의 다른 언어 노드 아래에 있을 수 있습니다.

  5. 솔루션 탐색기에서 Activity1.xaml을 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.확인을 클릭하여 확인합니다.

  6. 솔루션 탐색기에서 GetProductsActivities를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.

  7. 찾아보기 단추를 클릭하고 C:\Program Files\Reference Assemblies\Microsoft\Workflow Manager\1.0으로 이동합니다.

  8. Microsoft.Activities.dll을 선택하고 추가, 확인을 차례로 클릭합니다.

  9. 솔루션 탐색기에서 GetProductsActivities 프로젝트 아래의 속성을 확장하고 AssemblyInfo.cs를 두 번 클릭하여 코드를 확인합니다.

  10. 파일 맨 위에 다른 using 문과 함께 다음 using 문을 추가합니다(코드 조각 1).

    using System.Windows.Markup;
    

    코드 조각 파일은 자습서에서 제공됩니다. 이 파일을 사용하려면 워크플로 관리자 1.0 - 시작 자습서에서 자습서 시작 파일을 다운로드하세요.Visual Studio의 도구 메뉴에서 코드 조각 관리자를 선택합니다.언어 드롭다운에서 Visual C#을 선택한 후 추가 단추를 클릭합니다. 시작 파일을 추출한 위치를 찾아 Assets\WFMgrGettingStarted 폴더를 선택합니다.폴더 선택, 확인을 차례로 클릭합니다. 코드 파일에서 코드 조각을 삽입할 지점을 마우스 오른쪽 단추로 클릭하고 코드 조각 삽입을 선택합니다. 목록을 아래로 스크롤하고 WFMgrGettingStarted를 두 번 클릭한 후 원하는 코드 조각을 두 번 클릭합니다.

  11. 다음 코드 줄을 파일 아래에 추가합니다(코드 조각 2).

    [assembly: XmlnsDefinition("wf://workflow.windows.net/$Current/$Activities", "GetProductsActivities")]
    
    System_CAPS_important중요

    이 단계는 매우 중요하며 두 번째 매개 변수는 사용자 지정 작업이 포함된 프로젝트의 네임스페이스와 일치해야 합니다. 이러한 단계를 수행하지 않으면 이 사용자 지정 작업을 사용하는 모든 워크플로에서 다음 예외와 유사한 예외로 인해 게시에 실패합니다.

    System.Xaml.XamlObjectWriterException: 알 수 없는 형식 '{clr-namespace:GetProductsActivities}GetProducts'을(를) 만들 수 없습니다.

  12. Ctrl+Shift+B를 눌러 솔루션을 빌드합니다.

GetProducts 작업 만들기

이 섹션에서는 GetProducts 사용자 지정 작업을 만듭니다.GetProducts 작업은 HttpSend 작업을 사용하여 http://services.odata.org/Northwind/Northwind.svc에서 호스팅되는 Northwind oData 서비스를 쿼리하고 서비스 결과를 DynamicValue로 변환합니다. 그런 다음 GetProducts 작업은 반환된 DynamicValue로 드릴다운하고 GetDynamicValueProperty<T> 작업을 사용하여 키워드 검색 결과를 반환합니다.

  1. 솔루션 탐색기에서 GetProductsActivities를 마우스 오른쪽 단추로 클릭하고 추가, 새 항목을 선택합니다.

  2. 설치, Visual C# 항목 노드에서 워크플로를 선택합니다.워크플로 목록에서 작업을 선택합니다.

  3. 이름 상자에 GetProducts를 입력한 다음 추가를 클릭합니다.

  4. 솔루션 탐색기에서 GetProducts.xaml을 두 번 클릭하여 디자이너에 표시합니다(아직 표시되지 않은 경우).

  5. 활동 디자이너의 왼쪽 아래에 있는 인수를 클릭하여 인수 창을 표시합니다.

  6. 인수 만들기를 클릭합니다.

  7. 이름 상자에 SearchKeyword를 입력하고 방향 드롭다운 목록에서 안쪽을 선택한 후 인수 형식 드롭다운 목록에서 문자열을 선택하고 Enter 키를 눌러 인수를 저장합니다.

  8. 인수 만들기를 클릭합니다.

  9. 새로 추가된 SearchKeyword 인수 아래에 있는 이름 상자에 ProductsData를 입력하고 방향 드롭다운 목록에서 바깥쪽을 선택한 후 인수 형식 드롭다운 목록에서 형식 찾아보기를 선택합니다.

  10. 형식 이름 상자에 DynamicValue를 입력하고 결과 목록에서 DynamicValue를 선택한 후 확인을 클릭합니다.

    검색 결과에 DynamicValue가 표시되지 않는 경우 Visual Studio 솔루션 및 작업 라이브러리 프로젝트 만들기에 설명된 대로 Microsoft.Activities.dll에 대한 참조를 추가했는지 확인합니다.

  11. 도구 상자제어 흐름 섹션에서 GetProducts 활동 디자이너의 여기에 작업 놓기 레이블로 시퀀스 작업을 끌어 놓습니다.

    도구 상자 창이 표시되지 않으면 보기 메뉴에서 도구 상자를 선택합니다.

  12. 도구 상자메시징 섹션에서 시퀀스 작업의 여기에 작업 놓기 레이블로 HttpSend 작업을 끌어 놓습니다.

    작업에 대한 도구 상자를 찾아보는 대신 도구 상자 맨 위의 도구 상자 검색 상자에서 원하는 작업의 이름을 입력할 수도 있습니다.

  13. 워크플로 디자이너에서 HttpSend 작업을 클릭하여 선택하고 속성 창에서 다음 속성을 구성합니다.

    속성

    메서드

    GET

    Uri

    "http://services.odata.org/Northwind/Northwind.svc/Products?$format=application/json;odata=verbose&$filter=substringof('" + SearchKeyword + "', ProductName) eq true"

    ResponseContent

    ProductsData

    속성 창이 표시되지 않으면 보기 메뉴에서 속성을 선택합니다.

  14. GetDynamicValueProperty<T> 작업이 HttpSend 작업 뒤에 오도록 도구 상자DynamicValue 섹션에서 시퀀스 작업으로 끌어서 놓습니다.

    작업을 놓을 때 나타나는 형식 선택 창의 드롭다운 목록에서 Microsoft.Activities.DynamicValue를 선택합니다.DynamicValue가 목록에 없으면 형식 찾아보기를 선택하고 이름 입력 상자에 DynamicValue를 입력한 후 결과 목록에서 DynamicValue를 선택하고 확인을 클릭합니다. 드롭다운 목록에서 DynamicValue를 선택한 후 확인을 클릭합니다.

  15. 워크플로 디자이너에서 GetDynamicValueProperty<T> 작업을 클릭하여 선택하고 속성 창에서 다음 속성을 구성합니다.

    속성

    PropertyName

    "d/results"

    결과

    ProductsData

    원본

    ProductsData

  16. Ctrl+Shift+B를 눌러 솔루션을 빌드합니다.

    완료된 작업 예제와 이 자습서 단계의 연습 동영상을 보려면 워크플로 관리자 1.0 - 시작 자습서를 참조하세요.

이 작업을 사용하여 워크플로를 만드는 방법은 방법: 워크플로 관리자 1.0용 워크플로 만들기를 참조하세요.

참고 항목

워크플로 관리자 1.0 시작 자습서