다음을 통해 공유


연습: UII Windows Forms 호스팅된 컨트롤 만들기

 

게시 날짜: 2016년 11월

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

이 연습에서는 Unified Service Desk와 상호 작용하는 Windows FormsUII(User Interface Integration) 호스팅된 컨트롤 및 독립 실행형 또는 웹 외부 응용 프로그램을 작성하는 방법을 보여줍니다.

이 연습에서 수행할 작업

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

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

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

이 항목의 내용

필수 조건

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

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

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

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

필수 조건

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

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

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

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

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

      UII Windows Forms 호스팅된 컨트롤 만들기

  3. 솔루션 탐색기 창에서 UiiWinformControl.cs 파일을 마우스 오른쪽 단추로 클릭하고 열기를 선택하여 Windows Forms 디자이너를 표시합니다.

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

    컨트롤 유형

    이름

    텍스트

    레이블

    lblFirstName

    이름

    레이블

    lblLastName

    레이블

    lblAddress

    주소

    레이블

    lblID

    ID

    TextBox

    txtFirstName

    TextBox

    txtLastName

    TextBox

    txtAddress

    TextBox

    txtID

    단추

    btnUpdate

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

    단추

    btnUpdateContext

    컨텍스트 업데이트

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

    UII 호스팅된 컨트롤의 컨트롤 레이아웃

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

    private void btnUpdate_Click(object sender, EventArgs 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. 디자인 보기로 이동하여 컨텍스트 업데이트 단추(btnUpdateContext)를 두 번 클릭하여 이 단추의 클릭 이벤트용 코드를 추가합니다. 다음 코드를 추가합니다.

    private void btnUpdateContext_Click(object sender, EventArgs 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. 동일한 파일(UiiWinformControl.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 파일)가 생성됩니다(이 경우 UIIWindowsFormHostedConrol1.dll).

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

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

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

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

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

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

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

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

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

    필드

    이름

    UIIWindowsFormHostedControl

    표시 이름

    샘플 UII Windows Forms 호스팅된 컨트롤

    USD 구성 요소 유형

    CCA 호스트형 응용 프로그램

    호스트형 응용 프로그램

    호스팅된 컨트롤

    응용 프로그램이 전역임

    선택됨

    표시 그룹

    MainPanel

    어댑터

    어댑터 사용 안 함

    어셈블리 URI

    UIIWindowsFormHostedControl1

    어셈블리 유형

    UIIWindowsFormHostedControl1.UiiWinformControl

    참고

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

    Unified Service Desk의 새 호스팅된 컨트롤

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

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

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

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

중요

연습 UII WPF 호스팅된 컨트롤 만들기에서 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. 이름을 UpdateFirstName으로 입력하고 저장 후 닫기를 클릭합니다. 이전 페이지에서 작업을 추가합니다.

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

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

  9. 4 ~ 8단계를 수행하여 QsExternalWebApp 호스팅된 컨트롤에 대해 이름이 같은 세 개의 UII 작업을 만듭니다.

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

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

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

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

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

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

    연락처 정보를 사용하는 USD의 샘플 컨트롤

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

    업데이트된 값을 사용하는 샘플 컨트롤

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

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

참고 항목

Unified Service Desk에서 UII 호스팅된 컨트롤 사용
연습 UII WPF 호스팅된 컨트롤 만들기

Unified Service Desk 2.0

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