チュートリアル: 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 2012Visual Studio 2013Visual Studio 2015 の NuGet パッケージ マネージャー

  • ユーザー定義のホストされたコントロールのプロジェクト テンプレートを含む Visual Studio 用 CRM SDK テンプレートCRM SDK テンプレート を Visual Studio ギャラリーから ダウンロード し、CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studio でテンプレートをインストールします。

ユーザー定義のホストされたコントロールの作成

  1. Visual Studioを起動し、新しいプロジェクトを作成します。

  2. 新しいプロジェクトダイアログ ボックスで以下を実行します。

    1. インストールされているテンプレートの一覧から、Visual C# を展開し、CRM SDK のテンプレート>Unified Service Desk>USD のユーザー定義のホストされたコントロールを選択します。

    2. .Net Framework 4.6.2 が選択されていることを確認します。

    3. プロジェクトの場所と名前を指定し、OK をクリックして新しいプロジェクトを作成します。

    ユーザー定義でホストされたコントロールを作成するためのテンプレート。

  3. ソリューション エクスプローラーで、USDControl.xaml ファイルをダブルクリックし、XAML デザイナーを起動します。

  4. このデザイナーで、ツールボックスから次のコントロールを追加します。

    • ラベル: プロパティウィンドウで、コントロールの名前を “myLabel.” に設定します。

    • ボタン: プロパティウィンドウで、コントロールの名前を “myButton,” に、コンテンツをデバッガーの起動に設定します。

      これが、コントロールを XAML デザイナーに表示する方法です。

    カスタム コントロール を使用する XAML デザイナー。

  5. このボタンをダブルクリックすると、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));
    }
    
  6. ホストされたコントロールのユーザー定義アクションを定義します。 USDControl.xaml.cs ファイルで、DoAction のオーバーライド定義を参照します。

    protected override void DoAction(Microsoft.Uii.Csr.RequestActionEventArgs args)
    
  7. 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 のオーバーライド定義内でコードの大部分をコメントとして提供し、作成をすぐ開始できるように支援します。 必要なコード行のコメントを解除し、プレース ホルダーの値を自分の値に置き換える必要があります。

  8. プロジェクトを保存し、ビルドし (ビルド>ソリューションのビルド)、正常にビルドされたかどうか確認します。

カスタムのホストされたコントロールのテスト

プロジェクトのビルドが完了したら、ユーザー定義のホストされたコントロールをテストします。 テストは 2 つの部分から構成されます。1 つは、サーバー上でユーザー定義のホストされたコントロールを定義することであり、もう 1 つは、クライアント アプリケーションを使用してサーバー上の Unified Service Desk に接続することです。

カスタムのホストされたコントロールとアクションの定義

  1. Unified Service Desk 管理者にサインインします。

  2. 基本設定で、ホストされたコントロールを選択します。

  3. + 新規を選択します。

  4. 新しいホストされたコントロールのページで、次の値を指定します:

フィールド
名前 新しいユーザー定義のホストされたコントロール
[表示名] 新しいユーザー定義のホストされたコントロール
Unified Service Desk コンポーネントの種類 USD のホストされたコントロール
アプリケーションはグローバル チェック済み
表示グループ MainPanel
  1. ホスト タブを選択し、以下を指定します。
フィールド
アセンブリ URI: MyCustomControl
アセンブリの種類 MyCustomControl.USDControl

Note

アセンブリ URI はアセンブリの名前であり、アセンブリ型は、後ろにドット (.) と、Visual Studio プロジェクトのクラス名が付いたアセンブリ (dll) の名前です。 この例では、アセンブリの名前は MyCustomControl、クラスの名前は USDControl です。このクラス名は、カスタムのホストされたコントロールが作成されるときの既定のクラス名です。

  1. 保存を選択して、ホストされたコントロールを作成します。

  2. Visual Studioで定義したホストされたコントロールのアクションを作成します。 関連タブを選択してから、UII アクションを選択します。

  3. + 新しい UII アクションを選択します。

  4. MyCustomAction名前フィールドに入力し、保存を選択します。

    これで、Microsoft Dataverse サーバー上での、ユーザー定義のホストされたコントロールとユーザー定義アクションの構成が完了しました。

Unified Service Desk クライアントを実行し、カスタムのホストされたコントロールを使用する

  1. Visual Studio プロジェクトの出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk アプリケーション ディレクトリに、自分のユーザー定義のホストされたコントロール定義を含むアセンブリをコピーします。 この場合は、MyCustomControl.dll ファイルを、c:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。

  2. Unified Service Desk クライアントを使用して Dataverse サーバーに接続します。

  3. サインインに成功すると、デスクトップに、ユーザー定義のホストされたコントロール My Custom Hosted Control が表示されます。

    ユーザー定義でホストされたコントロール。

  4. デバッガーの起動を選択し、デバッガーのホストされたコントロールを起動します。

  5. ユーザー定義アクションをテストするには、デバッガータブを選択し、次にアクション呼び出しタブの上にある下矢印を選択して、アクション呼び出しおよび UII アクションをテストできる領域を表示します。

    デバッガー内で展開されたテスト領域。

  6. 直接アクションタブを選択します。

  7. ホストされたコントロールリストから、My Custom Hosted Control を選択し、アクションリストから MyCustomAction を選択します。

  8. このユーザー定義アクションの定義に従って、このアクション呼び出しはパラメーター username を待つので、データフィールドに username=Tracie Hamilton を追加します。

    カスタムのホストされたコントロールのテスト。

  9. 直接アクションの実行アイコン (Unified Service Desk のデバッガ実行アクション コール ボタン。) を選択してから、My Custom Hosted Control タブをクリックします。ラベルフィールドに、指定したユーザー名が表示されます。

    ユーザー名を表示する [My Custom Host Control] タブ。

参照

USD のホストされたコントロール (ホストされたコントロール)
ホストされたコントロールの種類とアクション/イベント リファレンス
Unified Service Desk の構成チュートリアル
Unified Service Desk のカスタムのホストされたコントロールの使用