チュートリアル: Unified Service Desk のカスタムのホストされたコントロールの作成
このトピックでは、ユーザー定義アクションを備えた、ユーザー定義のホストされたコントロール My Custom Control
を作成する方法を説明します。 ユーザー定義によるホストされたコントロールには 2 つの Windows Presentation Foundation (WPF) コントロールがあります。1 つはデバッガーのホストされたコントロールを呼び出すボタンで、もう 1 つはユーザー定義アクション MyCustomAction
が呼び出されたときにユーザー名を表示するテキスト ラベルです。
このセクションの内容
前提条件
Microsoft .NET Framework 4.6.2
Unified Service Desk アプリケーション。クライアント アプリケーションはホストされたコントロールをテストするために必要です
Visual Studio 2012, Visual Studio 2013、または Visual Studio 2015
Visual Studio 2012、Visual Studio 2013、Visual Studio 2015 の NuGet パッケージ マネージャー
ユーザー定義のホストされたコントロールのプロジェクト テンプレートを含む Visual Studio 用 CRM SDK テンプレート。 CRM SDK テンプレート を Visual Studio ギャラリーから ダウンロード し、CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studio でテンプレートをインストールします。
ユーザー定義のホストされたコントロールの作成
Visual Studioを起動し、新しいプロジェクトを作成します。
新しいプロジェクトダイアログ ボックスで以下を実行します。
インストールされているテンプレートの一覧から、Visual C# を展開し、CRM SDK のテンプレート>Unified Service Desk>USD のユーザー定義のホストされたコントロールを選択します。
.Net Framework 4.6.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 に接続することです。
カスタムのホストされたコントロールとアクションの定義
Unified Service Desk 管理者にサインインします。
基本設定で、ホストされたコントロールを選択します。
+ 新規を選択します。
新しいホストされたコントロールのページで、次の値を指定します:
フィールド | 値 |
---|---|
名前 | 新しいユーザー定義のホストされたコントロール |
[表示名] | 新しいユーザー定義のホストされたコントロール |
Unified Service Desk コンポーネントの種類 | USD のホストされたコントロール |
アプリケーションはグローバル | チェック済み |
表示グループ | MainPanel |
- ホスト タブを選択し、以下を指定します。
フィールド | 値 |
---|---|
アセンブリ URI: | MyCustomControl |
アセンブリの種類 | MyCustomControl.USDControl |
Note
アセンブリ URI はアセンブリの名前であり、アセンブリ型は、後ろにドット (.) と、Visual Studio プロジェクトのクラス名が付いたアセンブリ (dll) の名前です。 この例では、アセンブリの名前は MyCustomControl、クラスの名前は USDControl です。このクラス名は、カスタムのホストされたコントロールが作成されるときの既定のクラス名です。
保存を選択して、ホストされたコントロールを作成します。
Visual Studioで定義したホストされたコントロールのアクションを作成します。 関連タブを選択してから、UII アクションを選択します。
+ 新しい UII アクションを選択します。
MyCustomAction を名前フィールドに入力し、保存を選択します。
これで、Microsoft Dataverse サーバー上での、ユーザー定義のホストされたコントロールとユーザー定義アクションの構成が完了しました。
Unified Service Desk クライアントを実行し、カスタムのホストされたコントロールを使用する
Visual Studio プロジェクトの出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk アプリケーション ディレクトリに、自分のユーザー定義のホストされたコントロール定義を含むアセンブリをコピーします。 この場合は、MyCustomControl.dll ファイルを、c:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。
Unified Service Desk クライアントを使用して Dataverse サーバーに接続します。
サインインに成功すると、デスクトップに、ユーザー定義のホストされたコントロール 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 のカスタムのホストされたコントロールの使用