チュートリアル: Unified Service Desk のカスタムのホストされたコントロールの作成
公開日: 2016年11月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016
このトピックでは、ユーザー定義アクションを備えた、ユーザー定義のホストされたコントロール My Custom Control を作成する方法を説明します。 ユーザー定義によるホストされたコントロールには Windows Presentation Foundation (WPF) コントロールが 2 つあります。1 つは、Debugger のホストされたコントロールを呼び出すボタンで、もう 1 つは、ユーザー定義アクション MyCustomAction が呼び出されたときにユーザー名を表示するテキスト ラベルです。
このセクションの内容
前提条件
ユーザー定義のホストされたコントロールの作成
カスタムのホストされたコントロールのテスト
前提条件
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
ユーザー定義のホストされたコントロールのプロジェクト テンプレートを含む Visual Studio 用 Microsoft Dynamics 365 SDK テンプレート。 次のいずれかの方法で取得できます。
Visual Studio ギャラリーから CRM SDK テンプレートをダウンロードする。CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studioにテンプレートをインストールします。
SDK をダウンロードしてインストールする。 このテンプレート ファイル、CRMSDKTemplates.vsixは、SDK\Templates フォルダーにあります。 テンプレート ファイルをダブルクリックして、Visual Studio にインストールします。
ユーザー定義のホストされたコントロールの作成
Visual Studioを起動し、新しいプロジェクトを作成します。
新しいプロジェクト ダイアログ ボックスで以下を実行します。
インストールされているテンプレートの一覧から、[Visual C#] を展開し、[Dynamics 365 SDK のテンプレート] > [Unified Service Desk] > [USD のユーザー定義のホストされたコントロール] を選択します。
.NET Framework 4.5.2 が選択されていることを確認します。
プロジェクトの場所と名前を指定し、[OK] をクリックして新しいプロジェクトを作成します。
[ソリューション エクスプローラ] で、USDControl.xaml ファイルをダブルクリックして XAML デザイナーを起動します。
このデザイナーで、[ツールボックス] から次のコントロールを追加します。
[ラベル]: [プロパティ] ウィンドウで、コントロールの名前を myLabel に設定します。
[ボタン]: [プロパティ] ウィンドウで、コントロールの名前を myButton に、コンテンツを [デバッガーの起動] に設定します。
これが、コントロールを XAML デザイナーに表示する方法です。
このボタンをダブルクリックすると、XAML の背後でコードが追加されます。 これにより、USDControl.xaml.cs ファイルでの myButton のクリック イベントの定義に移動します。 次のコマンドを追加します。
private void myButton_Click(object sender, RoutedEventArgs e) { if (!this.desktopAccess.AppExistsInUI("Debugger")) { this.desktopAccess.CreateDynamicApplication("Debugger"); } this.FireRequestAction(new Microsoft.Uii.Csr.RequestActionEventArgs("Debugger", "default", null)); }
ホストされたコントロールのユーザー定義アクションを定義します。USDControl.xaml.cs ファイルで、DoAction のオーバーライド定義を参照します。
protected override void DoAction(Microsoft.Uii.Csr.RequestActionEventArgs args)
DoAction のオーバーライド定義に次のコードを追加して、MyCustomAction と呼ばれるとユーザー定義アクションを定義します。このアクションは、username という名前のパラメーターを受け取ります。
if (args.Action.Equals("MyCustomAction", StringComparison.OrdinalIgnoreCase)) { List<KeyValuePair<string, string>> actionDataList = Utility.SplitLines(args.Data, CurrentContext, localSession); string valueIwant = Utility.GetAndRemoveParameter(actionDataList, "username"); // assume there is a myKey=<value> in the data. if (!string.IsNullOrEmpty(valueIwant)) { this.Dispatcher.Invoke(() => { this.myLabel.Content = valueIwant; }); } }
ヒント
このテンプレートは、DoAction のオーバーライド定義内でコードの大部分をコメントとして提供し、作成をすぐ開始できるように支援します。 必要なコード行のコメントを解除し、プレース ホルダーの値を自分の値に置き換える必要があります。
プロジェクトを保存し、ビルドし ([ビルド] > [ソリューションのビルド])、正常にビルドされたかどうかチェックします。
カスタムのホストされたコントロールのテスト
プロジェクトのビルドが完了したら、ユーザー定義のホストされたコントロールをテストします。 テストは 2 つの部分から構成されます。1 つは、サーバー上でユーザー定義のホストされたコントロールを定義することであり、もう 1 つは、クライアント アプリケーションを使用してサーバー上の Unified Service Desk に接続することです。
Dynamics 365 サーバー上でのユーザー定義のホストされたコントロールとアクションの定義
Microsoft Dynamics 365 にサインインします。
ナビゲーション バーで、[Microsoft Dynamics 365] を選択し、[設定] を選択します。
[設定] > [Unified Service Desk] > [ホストされたコントロール] を選択します。
[新規] を選択し、次に [新しいホストされたコントロールを] 画面で次のように値を指定します。
注意
[アセンブリ URI] はアセンブリ名で、[アセンブリの種類] は後ろにドット (.) が付いたアセンブリ (dll) の名前です。 それから Visual Studio プロジェクト内のクラス名。 この例では、アセンブリの名前は [MyCustomControl]、クラスの名前は USDControl です。このクラス名は、カスタムのホストされたコントロールが作成されるときの既定のクラス名です。
[保存] を選択して、ホストされたコントロールを作成します。
Visual Studio で定義したホストされたコントロールのアクションを作成します。 ナビゲーション バーで、ホストされたコントロールの名前のとなりの下矢印を選択し、[UII アクション] を選択します。
[新しい UII アクションの追加] をクリックします。
[MyCustomAction] を [名前] フィールドに入力し、[保存] を選択します。
これで、Dynamics 365 サーバー上での、ユーザー定義のホストされたコントロールとユーザー定義アクションの構成が完了しました。
Unified Service Desk クライアントを実行し、カスタムのホストされたコントロールを使用する
Visual Studio プロジェクトの出力フォルダー (<ProjectFolder>\bin\debug) から、Unified Service Desk アプリケーション ディレクトリに、自分のユーザー定義のホストされたコントロール定義を含むアセンブリをコピーします。 この場合は、MyCustomControl.dll ファイルを c:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。
Unified Service Desk クライアントを実行し、Dynamics 365 サーバーに接続します。
サインインに成功すると、デスクトップに、ユーザー定義のホストされたコントロール [My Custom Hosted Control] が表示されます。
[デバッガーの起動] をクリックし、デバッガーにホストされたコントロールを起動します。
ユーザー定義アクションをテストするには、[デバッガー] タブを選択し、次に [アクション呼び出し] タブの上にある下矢印をクリックして、アクション呼び出しおよび UII アクションをテストできる領域を表示します。
[直接アクション] タブを選択します。
[ホストされたコントロール] リストから、[My Custom Hosted Control] を選択し、[アクション] リストから [MyCustomAction] を選択します。
このユーザー定義アクションの定義に従って、このアクション呼び出しはパラメーター username を待つので、[データ] フィールドに [username=Tracie Hamilton] を追加します。
[直接のアクションを実行] アイコン () をクリックし、次に [My Custom Hosted Control] タブをクリックします。 [ラベル] フィールドに、指定したユーザー名が表示されます。
関連項目
USD のホストされたコントロール (ホストされたコントロール)
ホストされたコントロールの種類とアクション/イベント リファレンス
統合サービス デスクの構成チュートリアル
Unified Service Desk のカスタムのホストされたコントロールの使用
Unified Service Desk 2.0
© 2017 Microsoft. All rights reserved. 著作権