다음을 통해 공유


연습 UII WPF 호스팅된 컨트롤 만들기 

게시 날짜: 2016년 11월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

이 연습에서는 Unified Service Desk 및 외부 응용 프로그램(독립 실행형 및 웹)과 상호 작용하는 Windows Presentation Foundation(WPF)기반 UII(User Interface Integration) 호스팅된 컨트롤을 빌드하는 방법을 보여줍니다.

이 연습에서 수행할 작업

  • UIIWPF 호스팅된 컨트롤, 샘플 UII WPF 호스팅된 컨트롤 을 만들면 연락처를 검색하고 연락처 이름을 클릭하여 Unified Service Desk의 세션에서 열 때 연락처의 이름, 성, 주소 및 ID를 표시합니다. 이러한 값은 Unified Service Desk 컨텍스트에서 표시됩니다.

  • 여기에서 만드는 UIIWPF 호스팅된 컨트롤의 Unified Service Desk에서 외부 응용 프로그램 및 웹 응용 프로그램에서 이름, 성 또는 주소 값을 변경합니다. 앞의 연습에서 외부 및 웹 응용 프로그램 연습: UII 응용 프로그램 어댑터 만들기연습: UII 웹 응용 프로그램 어댑터 만들기를 만들었습니다.

  • 값을 업데이트하도록 Unified Service Desk 컨텍스트의 변경을 알립니다.

이 항목의 내용

필수 조건

1단계: Visual Studio를 사용하여 UII WPF 호스팅된 컨트롤 만들기

2단계: Unified Service Desk에서 호스팅된 컨트롤 정의

3단계: Unified Service Desk에서 외부 응용 프로그램 및 웹 응용 프로그램 호스팅된 컨트롤의 UII 작업 정의

호스팅된 컨트롤을 테스트합니다.

필수 조건

1단계: Visual Studio를 사용하여 UII WPF 호스팅된 컨트롤 만들기

  1. Visual Studio를 시작하고 새 프로젝트를 만듭니다.

  2. 새 프로젝트 대화 상자에서:

    1. 설치된 템플릿 목록에서 Visual C# 를 확장하고 Dynamics 365 SDK 템플릿 > Unified Service Desk > UII WPF 호스팅된 컨트롤 을 선택합니다.

    2. 프로젝트의 위치와 이름을 지정하고 확인 을 선택하여 새 프로젝트를 만듭니다.

      UII WPF 호스팅된 컨트롤 만들기

  3. 솔루션 탐색기에서 UiiWpfControl.xaml 파일을 오른쪽 클릭하고 열기를 선택하여 XAML 디자이너를 표시합니다.

  4. 디자이너에서 도구 상자에서 다음 컨트롤을 추가합니다.

    컨트롤 유형

    이름

    텍스트

    레이블

    lblFirstName

    이름

    레이블

    lblLastName

    레이블

    lblAddress

    주소

    레이블

    lblID

    ID

    TextBox

    txtFirstName

    TextBox

    txtLastName

    TextBox

    txtAddress

    TextBox

    txtID

    단추

    btnUpdate

    호스팅된 응용 프로그램에서 값 업데이트

    단추

    btnUpdateContext

    컨텍스트 업데이트

    XAML 디자이너에서 컨트롤을 배치하는 방법입니다.

    XAML 디자이너의 컨트롤 레이아웃

  5. 호스트형 응용 프로그램의 값 업데이트 단추(btnUpdate)를 두 번 클릭하여 이 단추에 대한 click 이벤트용 코드를 추가하고 다음 코드를 추가합니다.

    private void btnUpdate_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // This is how you fire an action to other hosted applications. 
       // The DoAction() code in the other application or application adapter 
       // will be called.
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateFirstName", txtFirstName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateLastName", txtLastName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateAddress", txtAddress.Text)); // For the external application
    
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateFirstName", txtFirstName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateLastName", txtLastName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateAddress", txtAddress.Text)); // For the external web application
    }
    
  6. XAML 디자이너로 이동하여 컨텍스트 업데이트 단추(btnUpdateContext) 를 두 번 클릭하여 이 단추의 click 이벤트용 코드를 추가합니다. 다음 코드를 추가합니다.

    private void btnContextChange_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // Get the current context and create a new context object from it.
       string temp = Context.GetContext();
       Context updatedContext = new Context(temp);
    
       // Update the new context with the changed information.
       updatedContext["firstname"] = txtFirstName.Text;
       updatedContext["lastname"] = txtLastName.Text;
       updatedContext["address1_line1"] = txtAddress.Text;
    
       // Notify Unified Service Desk of this new context information.
       FireChangeContext(new ContextEventArgs(updatedContext));
    
       // Notify this UII hosted control about the change.
       NotifyContextChange(updatedContext);
    }
    
  7. 동일한 파일(UiiWpfControl.xaml.cs)에서 NotifyContextChange 메서드의 다시 정의를 다음으로 업데이트합니다.

    public override void NotifyContextChange(Context context)
    {
       // Populating text fields from context information.
       txtFirstName.Text = context["firstname"];
       txtLastName.Text = context["lastname"];
       txtAddress.Text = context["address1_line1"];
       txtID.Text = context["CustomerID"];
    
       base.NotifyContextChange(context);
    }
    
  8. 프로젝트를 저장하고 빌드(빌드 > 솔루션 빌드)합니다. 프로젝트를 성공적으로 작성한 후 프로젝트의 /bin/debug 폴더에 프로젝트와 같은 이름의 어셈블리(.dll 파일)가 생성됩니다(이 경우 UIIWPFHostedControl1.dll).

  9. 이 파일을 Unified Service Desk 클라이언트 응용 프로그램 설치 디렉터리(일반적으로 C:\Program Files\Microsoft Dynamics CRM USD\USD)로 복사합니다. 이 파일은 클라이언트 응용 프로그램에서 이 컨트롤을 테스트하고 사용하는 데 필요합니다.

    UiiWpfControl.xaml.cs 파일에서 UII 호스팅된 컨트롤을 작성하는 데 사용되는 클래스 이름을 기록합니다. 이 경우 UiiWpfControl입니다. 다음 단계에서 이 정보가 필요합니다.

2단계: Unified Service Desk에서 호스팅된 컨트롤 정의

Unified Service Desk에서 UII WPF 호스팅된 컨트롤을 호스팅하려면 정의하고 구성해야 합니다.

  1. Microsoft Dynamics 365에 로그인합니다.

  2. 탐색 모음에서 Microsoft Dynamics 365 > 설정 > Unified Service Desk를 선택합니다.

  3. Unified Service Desk 창에서 호스팅된 컨트롤을 선택합니다.

  4. 호스팅된 컨트롤 페이지에서 새로 만들기를 선택합니다.

  5. 새 호스팅된 컨트롤 페이지에서 다음 값을 지정합니다.

    필드

    이름

    UIIWPFHostedControl

    표시 이름

    샘플 UII WPF 호스팅된 컨트롤

    USD 구성 요소 유형

    CCA 호스트형 응용 프로그램

    호스트형 응용 프로그램

    호스팅된 컨트롤

    응용 프로그램이 전역임

    선택됨

    표시 그룹

    MainPanel

    어댑터

    어댑터 사용 안 함

    어셈블리 URI

    UIIWPFHostedControl1

    어셈블리 유형

    UIIWPFHostedControl1.UiiWpfControl

    참고

    어셈블리 URI는 어셈블리의 이름이고 어셈블리 유형은 어셈블리의 이름이며, 점(.)이 뒤에 붙습니다.Visual Studio 프로젝트의 클래스 이름이 뒤에 붙습니다. 이 예제에서 어셈블리의 이름은 UIIWPFHostedControl1이고 클래스 이름은 UiiWpfControl이며, 이는 UII WPF 호스팅된 컨트롤을 만들 때 기본 클래스 이름입니다.

    새 호스팅된 컨트롤을 정의합니다.

  6. 저장을 선택하여 호스팅된 컨트롤을 만듭니다.

3단계: Unified Service Desk에서 외부 응용 프로그램 및 웹 응용 프로그램 호스팅된 컨트롤의 UII 작업 정의

외부 독립 실행형 및 웹 응용 프로그램용 어댑터는 UpdateFirstName, UpdateLastNameUpdateAddress의 세 가지 작업을 노출합니다. 외부 독립 실행형 및 웹 응용 프로그램에 대한 이러한 어댑터와 호스팅된 컨트롤은 이전 연습에서 만들었습니다(연습: UII 응용 프로그램 어댑터 만들기연습: UII 웹 응용 프로그램 어댑터 만들기).

UII WPF 호스팅된 컨트롤 내에서 외부 응용 프로그램의 정보를 업데이트하려면 각 외부 응용 프로그램용 어댑터에서 이전에 정의된 것과 같은 이름을 사용하여 세 가지 UII 작업을 정의해야 합니다. 이전 어댑터 연습(연습: UII 응용 프로그램 어댑터 만들기연습: UII 웹 응용 프로그램 어댑터 만들기)에서 Unified Service Desk 내에 외부 응용 프로그램을 표시하도록 Unified Service Desk에 QsExternalAppQsExternalWebApplication의 두 호스팅된 컨트롤을 정의했습니다. 이 단계에서는 각 호스팅된 컨트롤에 대해 세 개의 UII 작업을 추가할 것입니다.

중요

연습: UII Windows Forms 호스팅된 컨트롤 만들기에서 3단계의 일부로 UII 작업에 이미 추가한 경우 이 단계는 다시 수행할 필요가 없습니다. 호스팅된 컨트롤을 테스트하기 위해 다음 섹션으로 진행할 수 있습니다.

  1. Microsoft Dynamics 365에 로그인합니다.

  2. 탐색 모음에서 Microsoft Dynamics 365 > 설정 > Unified Service Desk를 선택합니다.

  3. Unified Service Desk 창에서 호스팅된 컨트롤을 선택합니다.

  4. 호스팅된 컨트롤 페이지에서 QSExternalApp를 검색하고 편집을 위해 엽니다.

  5. QSExternalApp 페이지에서 호스팅된 컨트롤 이름 옆의 아래쪽 화살표를 선택한 다음 UII 작업을 클릭합니다.

  6. 다음 페이지에서 새 UII 작업 추가를 선택합니다.

  7. 새 UII 작업 페이지에서 이름으로 UpdateFirstName을 입력하고 저장 후 닫기를 선택합니다. 이전 페이지에서 작업을 추가합니다.

  8. 마찬가지로, UpdateLastNameUpdateAddress의 두 작업을 추가합니다.QSExternalApp 호스팅된 컨트롤에 대해 세 가지 작업을 사용할 수 있게 됩니다.

    호스팅된 컨트롤에 사용 가능한 UII 작업

  9. 4 ~ 8단계를 수행하여 QSExternalWebApp에 대해 이름이 같은 세 개의 UII 작업을 만듭니다.

호스팅된 컨트롤을 테스트합니다.

UIIWPF 호스팅된 컨트롤을 테스트하기 전에 Unified Service Desk 내에 렌더링되도록 샘플 웹 응용 프로그램을 실행해야 합니다.

  1. Unified Service Desk 클라이언트를 실행하여 Dynamics 365 서버에 연결합니다.

  2. 성공적으로 로그인하면 샘플 UII WPF 호스팅된 컨트롤, 샘플 외부 웹 응용 프로그램샘플 외부 응용 프로그램의 세 가지 호스팅된 컨트롤이 표시됩니다.

    샘플 UII WPF 호스팅된 컨트롤 사용 가능

  3. 검색을 선택한 다음 연락처를 선택합니다. 연락처를 선택하여 세션에 연락처 세부 정보를 표시합니다. 또한 모두 세 개의 샘플 컨트롤에서 현재 표시된 연락처 레코드의 이름, 성, 주소 및 ID를 표시합니다.

    3개의 컨트롤에 USD 컨텍스트에서 표시되는 데이터

  4. 샘플 UII WPF 호스팅된 컨트롤에서 값을 변경하고 호스트형 응용 프로그램의 값 업데이트를 클릭하여 다른 두 외부 응용 프로그램에서 값을 업데이트합니다.

    외부 앱에서 업데이트된 값

  5. 샘플 UII WPF 호스팅된 컨트롤에서 컨텍스트 업데이트를 선택하여 Unified Service Desk에서 컨텍스트 정보를 업데이트합니다.

    USD 컨텍스트에서 업데이트된 값

참고 항목

외부 응용 프로그램 및 웹 응용 프로그램과 통합
Unified Service Desk에서 UII 호스팅된 컨트롤 사용
연습: UII Windows Forms 호스팅된 컨트롤 만들기
UII 작업

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. 저작권 정보