逐步解說:建立自訂的 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 2012、Visual Studio 2013 或 Visual Studio 2015 的 NuGet 套件管理員
Visual Studio 的 Microsoft Dynamics 365 SDK 範本,包含自訂的託管控制項專案範本。 您可以用下列其中一個方式取得它:
從 Visual Studio 組件庫下載 CRM SDK 範本。 按兩下 CRMSDKTemplates.vsix 檔案,將範本安裝在 Visual Studio 中。
下載並安裝 CRM SDK。 範本檔案 CRMSDKTemplates.vsix 位於 SDK\Templates 資料夾中。 按兩下範本檔案,將它安裝在 Visual Studio 中。
建立自訂的託管控制項
啟動 Visual Studio 並建立新的專案。
在 [新增專案] 對話方塊:
從已安裝的範本清單中,展開 [Visual C#],然後選取 [Dynamics 365 SDK 範本] > [Unified Service Desk] > [USD Custom 託管控制項]。
確定已選取 .NET Framework 4.5.2。
指定專案的名稱和位置,然後按一下 [確定] 建立新的專案。
在 [方案總管] 中,按兩下 USDControl.xaml 檔案帶出 XAML 設計工具。
在設計工具中,從工具箱加入下列控制項:
標籤:在 [屬性] 窗格,將控制項的名稱設定為「myLabel」。
按鈕:在 [屬性] 窗格,將控制項的名稱設定為「myButton」,並將內容設定為「Start Debugger」。
這是在 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 的覆寫定義內加入下列程式碼中,來定義可接受參數 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 的覆寫定義中的註解,協助您快速著手開發。 您必須取消註解需要的程式碼行,並以您的值取代預留位置值。
儲存您的專案,然後將其建置 ([建置] > [建置方案]),確認是否建置成功。
測試您的自訂託管控制項
專案建置完成後,測試自訂的託管控制項。 測試包含兩個部分:在伺服器上定義自訂的託管控制項,然後使用您的用戶端應用程式連線到伺服器上的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]。
按一下 [Start Debugger] 啟動偵錯工具託管控制項。
若要測試自訂動作,請選擇 [偵錯工具] 索引標籤,然後按一下 [動作呼叫] 索引標籤上面的向下箭號,顯示您可以在其中測試動作呼叫和 UII 動作的區域。
選擇 [直接動作] 索引標籤。
從 [託管控制項] 清單中,選取 [我的自訂託管控制項],並從 [動作] 清單中,選取 [MyCustomAction]。
依據我們的自訂動作定義,這個動作呼叫預期 username 參數,讓我們在 [資料] 欄位中新增下列值:username=Tracie Hamilton。
按一下 [執行直接動作] 圖示 (
),然後按一下 [我的自訂託管控制項] 索引標籤。 指定的使用者名稱會顯示在 [標籤] 欄位。
另請參閱
USD 託管控制項 (託管控制項)
託管控制項型別和動作/事件參考
Unified Service Desk 設定逐步解說
使用 Unified Service Desk 中自訂的託管控制項
Unified Service Desk 2.0
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權