共用方式為


逐步解說:建立自訂的 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) 控制項:呼叫 Debugger 託管控制項的按鈕,以及當自訂動作 MyCustomAction 被呼叫時顯示使用者名稱的文字標籤。

本節內容

先決條件

建立自訂的託管控制項

測試您的自訂託管控制項

先決條件

  • Microsoft .NET Framework 4.5.2

  • Unified Service Desk 用戶端應用程式,此用戶端應用程式是測試託管控制項所需的。

  • Microsoft Visual Studio 2012、Visual Studio 2013 或 Visual Studio 2015

  • Visual Studio 2012Visual Studio 2013Visual Studio 2015 的 NuGet 套件管理員

  • Visual Studio 的 Microsoft Dynamics 365 SDK 範本,包含自訂的託管控制項專案範本。 您可以用下列其中一個方式取得它:

建立自訂的託管控制項

  1. 啟動 Visual Studio 並建立新的專案。

  2. 在 [新增專案] 對話方塊:

    1. 從已安裝的範本清單中,展開 [Visual C#],然後選取 [Dynamics 365 SDK 範本] > [Unified Service Desk] > [USD Custom 託管控制項]。

    2. 確定已選取 .NET Framework 4.5.2

    3. 指定專案的名稱和位置,然後按一下 [確定] 建立新的專案。

    建立自訂託管控制項的範本

  3. 在 [方案總管] 中,按兩下 USDControl.xaml 檔案帶出 XAML 設計工具。

  4. 在設計工具中,從工具箱加入下列控制項:

    • 標籤:在 [屬性] 窗格,將控制項的名稱設定為「myLabel」。

    • 按鈕:在 [屬性] 窗格,將控制項的名稱設定為「myButton」,並將內容設定為「Start Debugger」。

    這是在 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 的覆寫定義內加入下列程式碼中,來定義可接受參數 username 的自訂動作 MyCustomAction

    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. 儲存您的專案,然後將其建置 ([建置] > [建置方案]),確認是否建置成功。

測試您的自訂託管控制項

專案建置完成後,測試自訂的託管控制項。 測試包含兩個部分:在伺服器上定義自訂的託管控制項,然後使用您的用戶端應用程式連線到伺服器上的Unified Service Desk。

在 Dynamics 365 伺服器上定義自訂的託管控制項和動作

  1. 登入 Microsoft Dynamics 365。

  2. 選擇導覽列上的 [Microsoft Dynamics 365],然後選取 [設定]。

  3. 選擇 [設定] > [Unified Service Desk] > [託管控制項]。

  4. 選擇 [新增],然後在 [新增託管控制項] 畫面指定值,如下所示:

    新的自訂託管控制項

    注意

    [組件 URI] 是您的組件名稱,而 [組件類型] 是您的組件 (dll) 的名稱後面接著句點 (.), 最後是您的 Visual Studio 專案中的類別名稱。 在這個範例中,組件名稱是 MyCustomControl,而類別名稱是 USDControl,這是當您建立自訂的託管控制項時預設的類別名稱。

  5. 選擇 [儲存] 建立託管控制項。

  6. 為您在 Visual Studio 中定義的託管控制項建立動作。 在導覽列上,選擇託管控制項旁的向下箭號,然後選取 [UII 動作]。

  7. 選擇 [新增 UII 動作]。

  8. 在 [名稱] 欄位中,輸入 MyCustomAction,然後選擇 [儲存]。

您現在已在 Dynamics 365 伺服器上設定您的自訂託管控制項和自訂動作。

執行 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用戶端連線到您的 Dynamics 365 伺服器。

  3. 在成功登入,您會在桌面上看到自訂的託管控制項 [My Custom Hosted Control]。

    自訂託管控制項

  4. 按一下 [Start Debugger] 啟動偵錯工具託管控制項。

  5. 若要測試自訂動作,請選擇 [偵錯工具] 索引標籤,然後按一下 [動作呼叫] 索引標籤上面的向下箭號,顯示您可以在其中測試動作呼叫和 UII 動作的區域。

    Expanded testing area in debugger

  6. 選擇 [直接動作] 索引標籤。

  7. 從 [託管控制項] 清單中,選取 [我的自訂託管控制項],並從 [動作] 清單中,選取 [MyCustomAction]。

  8. 依據我們的自訂動作定義,這個動作呼叫預期 username 參數,讓我們在 [資料] 欄位中新增下列值:username=Tracie Hamilton

    測試您的自訂託管控制項

  9. 按一下 [執行直接動作] 圖示 (USD 偵錯工具執行動作呼叫按鈕),然後按一下 [我的自訂託管控制項] 索引標籤。 指定的使用者名稱會顯示在 [標籤] 欄位。

    [我的自訂代管控制項] 索引標籤顯示使用者名稱

另請參閱

USD 託管控制項 (託管控制項)
託管控制項型別和動作/事件參考
Unified Service Desk 設定逐步解說
使用 Unified Service Desk 中自訂的託管控制項

Unified Service Desk 2.0

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權