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