チュートリアル: UII WPF でホストされたコントロールの作成
公開日: 2016年11月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016
このチュートリアルでは、Unified Service Desk および外部アプリケーション (スタンドアロンおよび Web) とやり取りする Windows Presentation Foundation (WPF) ベースの User Interface Integration (UII) のホストされたコントロールを作成する方法を示します。
このチュートリアルでは、以下の操作を行います。
UIIWPF でホストされたコントロールの [サンプルの UII WPF のホストされたコントロール] を作成します。このコントロールは、取引先担当者を検索し、取引先担当者の名前をクリックして Unified Service Desk のセッションで開くとき、取引先担当者の名、姓、住所、および ID を表示します。 これらの値は、Unified Service Desk コンテキストから表示されます。
作成した UIIWPF のホストされたコントロールからの名、姓、また住所の値を、Unified Service Desk のホストされた外部アプリケーションおよび Web アプリケーションで変更します。 この外部アプリケーションと Web アプリケーションは、以前のチュートリアル チュートリアル: UII アプリケーション アダプターの作成 および チュートリアル: UII Web アプリケーション アダプターの作成 で作成しました。
その中の値を更新するために、Unified Service Desk コンテキストの変更を通知します。
このトピックの内容
前提条件
ステップ 1: Visual Studio を使用して UII WPF でホストされたコントロールを作成する
[ステップ 2: ホストされたコントロールを Unified Service Desk で定義する
ステップ 3: 外部アプリケーションと Web アプリケーションのホストされたコントロールの UII アクションを Unified Service Desk で定義する
ホストされたコントロールのテスト
前提条件
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 Package Manager
UIIWPF のホストされたコントロールのプロジェクト テンプレートを含む Visual Studio 用 Microsoft Dynamics 365 SDK テンプレート。 次のいずれかの方法でこのテンプレートを取得できます。
CRM SDK テンプレートをダウンロードする。CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studioにテンプレートをインストールします。
CRM SDK パッケージをダウンロードして展開します。SDK\Templates フォルダに移動します。CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studioにテンプレートをインストールします。
外部アプリケーションと Web アプリケーションとのやり取りを容易にするアダプターとの設定を確実に行うために、チュートリアル: UII アプリケーション アダプターの作成 とチュートリアル: UII Web アプリケーション アダプターの作成 を完了する必要があります。
ステップ 1: Visual Studio を使用して UII WPF でホストされたコントロールを作成する
Visual Studioを起動し、新しいプロジェクトを作成します。
新しいプロジェクト ダイアログ ボックスで以下を実行します。
インストール済みのテンプレートの一覧から、[Visual C#] を展開し、[Dynamics 365 SDK のテンプレート] > [Unified Service Desk] > [UII WPF ホストされたコントロール] を選択します。
プロジェクトの場所と名前を指定し、[OK] を選択して新しいプロジェクトを作成します。
[ソリューション エクスプローラ] で、[UiiWpfControl.xaml] ファイルを右クリックし、[開く] を選択して XAML デザイナを表示します。
このデザイナーで、[ツールボックス] から次のコントロールを追加します。
コントロールの種類
名前
テキスト
ラベル
lblFirstName
名
ラベル
lblLastName
姓
ラベル
lblAddress
住所(番地)
ラベル
lblID
ID
TextBox
txtFirstName
TextBox
txtLastName
TextBox
txtAddress
TextBox
txtID
ボタン
btnUpdate
ホストされたアプリケーション内の値の更新
ボタン
btnUpdateContext
コンテキストの更新
これは、これらのコントロールを XAML デザイナーにどのように配置する必要があるかを示します。
[ホストされたアプリケーション内の値の更新] ボタン (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 }
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); }
同じファイル (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); }
プロジェクトを保存してプロジェクトを作成します ([ビルド] > [ソリューションの作成])。 プロジェクトが正常に作成されると、プロジェクトの /bin/debug フォルダーにあるプロジェクト名 (この場合は、UIIWPFHostedControl1.dll) と同じ名前のアセンブリ (.dll ファイル) が生成されます。
このファイルを Unified Service Desk クライアント アプリケーションのインストール ディレクトリ (通常、C:\Program Files\Microsoft Dynamics CRM USD\USD) にコピーします。 このファイルにはテストが必要であり、最終的に、クライアント アプリケーションからこのコントロールを使用します。
ヒント
UII のホストされたコントロールを UiiWpfControl.xaml.cs ファイルで作成するために使用するクラスの名前に留意してください。 この場合、その名前は UiiWpfControl です。 次の手順でこの情報が必要です。
[ステップ 2: ホストされたコントロールを Unified Service Desk で定義する
UII WPF のホストされたコントロールを Unified Service Desk でホストするには 、そのコントロールを定義および構成する必要があります。
Microsoft Dynamics 365 にサインインします。
ナビゲーション バーで、Microsoft Dynamics 365 > [設定] > [Unified Service Desk] を選択します。
[Unified Service Desk] ページで、[ホストされたコントロール] を選択します。
[ホストされたコントロール] ページで、[新規] を選択します。
[新しいホストされたコントロール] ページで、次の値を指定します。
フィールド
値
名前
UIIWPFHostedControl
表示名
UII WPF でホストされたコントロールの例
USD コンポーネントの種類
CCA ホステッド アプリケーション
ホステッド アプリケーション
ホストされたコントロール
アプリケーションはグローバル
選択済み
表示グループ
MainPanel
アダプター
アダプターを使用しない
アセンブリ URI
UIIWPFHostedControl1
アセンブリの種類
UIIWPFHostedControl1.UiiWpfControl
注意
[アセンブリ URI] はアセンブリ名で、[アセンブリの種類] は後ろにドット (.) が付いたアセンブリの名前です。 それから Visual Studio プロジェクト内のクラス名。 この例では、アセンブリの名前は UIIWPFHostedControl1、クラスの名前は UiiWpfControl です。このクラス名は、UII WPF でホストされたコントロールが作成されるときの既定のクラス名です。
[保存] を選択して、ホストされたコントロールを作成します。
ステップ 3: 外部アプリケーションと Web アプリケーションのホストされたコントロールの UII アクションを Unified Service Desk で定義する
外部スタンドアロン アプリケーション用および Web アプリケーション用アダプターは、UpdateFirstName、UpdateLastName、および UpdateAddress の 3 つのアクションを公開します。 外部スタンドアロン アプリケーションおよび Web アプリケーションのアダプターとホストされたコントロールは、以前のチュートリアルで (チュートリアル: UII アプリケーション アダプターの作成 および チュートリアル: UII Web アプリケーション アダプターの作成) で作成しました。
外部アプリケーションの情報を UII WPF のホストされたコントロール内から更新するには、各外部アプリケーションのアダプターで以前定義した同じ名前の 3 つの UII アクションを定義する必要があります。 以前のアダプターのチュートリアル (チュートリアル: UII アプリケーション アダプターの作成 および チュートリアル: UII Web アプリケーション アダプターの作成) で、Unified Service Desk 内で外部アプリケーションを表示するために、Unified Service Desk で 2 つのホストされたコントロール QsExternalApp および QsExternalWebApplication を定義しました。 この手順では、ホストされたコントロールのそれぞれに対して、3 つの UII アクションを追加します。
重要
チュートリアル: UII Windows フォームのホストされたコントロールの作成 の手順 3 の一部として既に UII アクションを追加済みの場合は、この手順を再度実行する必要はありません。 ホストされたコントロールをテストする次のセクションに進むことができます。
Microsoft Dynamics 365 にサインインします。
ナビゲーション バーで、Microsoft Dynamics 365 > [設定] > [Unified Service Desk] を選択します。
[Unified Service Desk] ページで、[ホストされたコントロール] を選択します。
[ホストされたコントロール] ページで、QSExternalApp を検索して編集用に開きます。
QSExternalApp ページで、ホストされたコントロールの名前の横にある下矢印を選択し、次に [UII アクション] を選択します。
次のページで、[新規 UII アクションの追加] を選択します。
[新規 UII アクション] ページで、名前として UpdateFirstName を入力し、[保存して閉じる] を選択します。 これによって、以前のページにアクションが追加されます。
同様に、2 つのアクション UpdateLastName と UpdateAddress を追加します。 3 つのすべてのアクションが、QSExternalApp のホストされたコントロールで使用可能になります。
手順 4 から手順 8 に従って、[QSExternalWebApp] の場合と同じ名前の 3 つの UII アクションを作成します。
ホストされたコントロールのテスト
UIIWPF のホストされたコントロールをテストする場合は、その前に、サンプルの Web アプリケーションが実行されていて、Unified Service Desk に表示されていることを確認します。
Unified Service Desk クライアントを実行し、Dynamics 365 サーバーに接続します。
サインインに成功すると、3 つのホストされたコントロール、[サンプルの UII WPF のホストされたコントロール]、[サンプルの外部 Web アプリケーション]、および [サンプルの外部アプリケーション] が表示されます。
[検索] を選択し、次に [取引先担当者] を選択します。 セッションで取引先担当者の詳細を表示する取引先担当者を選択します。 これには、3 つのすべてのサンプルのコントロールに現在表示されている取引先担当者レコードの名、姓、住所、および ID も表示されます。
[サンプルの UII WPF のホストされたコントロール] の値を変更し、[ホストされたアプリケーション内の値の更新] をクリックして他の 2 つの外部アプリケーションの値を更新します。
[サンプルの UII WPF のホストされたコントロール] で、[コンテキストの更新] を選択して Unified Service Desk 内のコンテキスト情報を更新します。
関連項目
外部アプリケーションおよび Web アプリケーションとの統合
Unified Service Desk での UII のホストされたコントロールの使用
チュートリアル: UII Windows フォームのホストされたコントロールの作成
UII アクション
Unified Service Desk 2.0
© 2017 Microsoft. All rights reserved. 著作権