연습: 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 작업 정의
호스팅된 컨트롤을 테스트합니다.
필수 조건
Microsoft .NET Framework 4.5.2
Unified Service Desk 클라이언트 응용 프로그램; 호스팅된 컨트롤을 테스트하는 데 필요합니다.
Microsoft Visual Studio 2012, Visual Studio 2013 또는 Visual Studio 2015
Visual Studio 2012, Visual Studio 2013 또는 Visual Studio 2015용 NuGet 패키지 관리자
UII Windows Forms 호스팅된 컨트롤 프로젝트 템플릿을 포함하는 Visual Studio용 Microsoft Dynamics 365 SDK 템플릿입니다. 다음 방법 중 하나로 얻을 수 있습니다.
CRM SDK 템플릿을 다운로드합니다.CRMSDKTemplates.vsix 파일을 두 번 클릭하여 Visual Studio에 템플릿을 설치합니다.
CRM SDK 패키지를 다운로드하고 추출합니다.SDK\Templates 폴더로 이동합니다.CRMSDKTemplates.vsix 파일을 두 번 클릭하여 Visual Studio에 템플릿을 설치합니다.
외부 응용 프로그램 및 웹 응용 프로그램이 이러한 응용 프로그램과의 상호 작용을 이용하도록 해당 어댑터를 설정하려면 연습: UII 응용 프로그램 어댑터 만들기 및 연습: UII 웹 응용 프로그램 어댑터 만들기를 완료해야 합니다.
1단계: Visual Studio를 사용하여 UII Windows Forms 호스팅된 컨트롤 만들기
Visual Studio를 시작하고 새 프로젝트를 만듭니다.
새 프로젝트 대화 상자에서:
설치된 템플릿 목록에서 Visual C# 을 확장하고 Dynamics 365 템플릿 > Unified Service Desk > UII Windows Forms 호스팅된 컨트롤을 선택합니다.
프로젝트의 위치와 이름을 지정하고 확인 을 클릭하여 새 프로젝트를 만듭니다.
솔루션 탐색기 창에서 UiiWinformControl.cs 파일을 마우스 오른쪽 단추로 클릭하고 열기를 선택하여 Windows Forms 디자이너를 표시합니다.
디자이너에서 도구 상자에서 다음 컨트롤을 추가합니다.
컨트롤 유형
이름
텍스트
레이블
lblFirstName
이름
레이블
lblLastName
성
레이블
lblAddress
주소
레이블
lblID
ID
TextBox
txtFirstName
TextBox
txtLastName
TextBox
txtAddress
TextBox
txtID
단추
btnUpdate
호스팅된 응용 프로그램에서 값 업데이트
단추
btnUpdateContext
컨텍스트 업데이트
디자이너에서 컨트롤을 배치하는 방법입니다.
호스트형 응용 프로그램의 값 업데이트 단추(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 }
디자인 보기로 이동하여 컨텍스트 업데이트 단추(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); }
동일한 파일(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); }
프로젝트를 저장하고 빌드(빌드 > 솔루션 빌드)합니다. 프로젝트를 성공적으로 작성한 후 프로젝트의 /bin/debug 폴더에 프로젝트와 같은 이름의 어셈블리(.dll 파일)가 생성됩니다(이 경우 UIIWindowsFormHostedConrol1.dll).
이 파일을 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 호스팅된 컨트롤을 호스팅하려면 정의하고 구성해야 합니다.
Microsoft Dynamics 365에 로그인합니다.
탐색 모음에서 Microsoft Dynamics 365 > 설정 > Unified Service Desk를 선택합니다.
Unified Service Desk 창에서 호스팅된 컨트롤을 클릭합니다.
호스팅된 컨트롤 페이지에서 새로 만들기를 클릭합니다.
새 호스팅된 컨트롤 페이지에서 다음 값을 지정합니다.
필드
값
이름
UIIWindowsFormHostedControl
표시 이름
샘플 UII Windows Forms 호스팅된 컨트롤
USD 구성 요소 유형
CCA 호스트형 응용 프로그램
호스트형 응용 프로그램
호스팅된 컨트롤
응용 프로그램이 전역임
선택됨
표시 그룹
MainPanel
어댑터
어댑터 사용 안 함
어셈블리 URI
UIIWindowsFormHostedControl1
어셈블리 유형
UIIWindowsFormHostedControl1.UiiWinformControl
참고
어셈블리 URI는 어셈블리의 이름이고 어셈블리 유형은 어셈블리의 이름이며, 점(.)이 뒤에 붙습니다.Visual Studio 프로젝트의 클래스 이름이 뒤에 붙습니다. 이 예제에서 어셈블리의 이름은 UIIWindowsFormHostedControl1이고 클래스 이름은 UiiWinformControl이며, 이는 UII Windows Forms 호스팅된 컨트롤을 만들 때 기본 클래스 이름입니다.
저장을 클릭하여 호스팅된 컨트롤을 만듭니다.
3단계: Unified Service Desk에서 외부 응용 프로그램 및 웹 응용 프로그램 호스팅된 컨트롤의 UII 작업 정의
외부 독립 실행형 및 웹 응용 프로그램용 어댑터는 UpdateFirstName, UpdateLastName 및 UpdateAddress의 세 가지 작업을 노출합니다. 외부 독립 실행형 및 웹 응용 프로그램에 대한 이러한 어댑터와 호스팅된 컨트롤은 이전 어댑터 연습에서 만들었습니다(연습: UII 응용 프로그램 어댑터 만들기 및 연습: UII 웹 응용 프로그램 어댑터 만들기).
UII Windows Forms 호스팅된 컨트롤 내에서 외부 응용 프로그램의 정보를 업데이트하려면 각 외부 응용 프로그램용 어댑터에서 이전에 정의된 것과 같은 이름을 사용하여 세 가지 UII 작업을 정의해야 합니다. 이전 어댑터 연습(연습: UII 응용 프로그램 어댑터 만들기 및 연습: UII 웹 응용 프로그램 어댑터 만들기)에서 Unified Service Desk 내에 외부 응용 프로그램을 표시하도록 Unified Service Desk에 QsExternalApp 및 QsExternalWebApplication의 두 호스팅된 컨트롤을 정의했습니다. 이 단계에서는 각 호스팅된 컨트롤에 대해 세 개의 UII 작업을 추가할 것입니다.
중요
연습 UII WPF 호스팅된 컨트롤 만들기에서 3단계의 일부로 UII 작업에 이미 추가한 경우 이 단계는 다시 수행할 필요가 없습니다. 호스팅된 컨트롤을 테스트하기 위해 다음 섹션으로 진행할 수 있습니다.
Microsoft Dynamics 365에 로그인합니다.
탐색 모음에서 Microsoft Dynamics 365 > 설정 > Unified Service Desk를 선택합니다.
Unified Service Desk 창에서 호스팅된 컨트롤을 선택합니다.
호스팅된 컨트롤 페이지에서 QsExternalApp를 검색하고 편집을 위해 엽니다.
QsExternalApp 페이지에서 호스팅된 컨트롤 이름 옆의 아래쪽 화살표를 클릭한 다음 UII 작업을 클릭합니다.
다음 페이지에서 새 UII 작업 추가를 클릭합니다.
이름을 UpdateFirstName으로 입력하고 저장 후 닫기를 클릭합니다. 이전 페이지에서 작업을 추가합니다.
마찬가지로, UpdateLastName 및 UpdateAddress의 두 작업을 추가합니다.QsExternalApp 호스팅된 컨트롤에 대해 세 가지 작업을 사용할 수 있게 됩니다.
4 ~ 8단계를 수행하여 QsExternalWebApp 호스팅된 컨트롤에 대해 이름이 같은 세 개의 UII 작업을 만듭니다.
호스팅된 컨트롤을 테스트합니다.
UII Windows Forms 호스팅된 컨트롤을 테스트하기 전에 Unified Service Desk 내에 렌더링되도록 샘플 웹 응용 프로그램을 실행해야 합니다.
Unified Service Desk 클라이언트를 실행하여 Dynamics 365 서버에 연결합니다.
성공적으로 로그인하면 샘플 UII Windows Forms 호스팅된 컨트롤, 샘플 외부 웹 응용 프로그램 및 샘플 외부 응용 프로그램의 세 가지 호스팅된 컨트롤이 표시됩니다.
검색을 선택한 다음 연락처를 선택합니다. 연락처를 선택하여 세션에 연락처 세부 정보를 표시합니다. 또한 다음 그림에 나와 있는 것처럼 모두 세 개의 샘플 컨트롤에서 현재 표시된 연락처 레코드의 이름, 성, 주소 및 ID를 표시합니다.
샘플 UII Windows Forms 호스팅된 컨트롤에서 값을 변경하고 호스트형 응용 프로그램의 값 업데이트를 클릭하여 다른 두 외부 응용 프로그램에서 값을 업데이트합니다.
샘플 UII Windows Forms 호스팅된 컨트롤에서 컨텍스트 업데이트를 클릭하여 Unified Service Desk에서 컨텍스트 정보를 업데이트합니다.
참고 항목
Unified Service Desk에서 UII 호스팅된 컨트롤 사용
연습 UII WPF 호스팅된 컨트롤 만들기
Unified Service Desk 2.0
© 2017 Microsoft. All rights reserved. 저작권 정보