逐步解說:建立 UII Windows Forms 託管控制項
發行︰ 2016年11月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016
此逐步解說示範如何建置 Windows FormsUser Interface Integration (UII) 託管控制項,與 Unified Service Desk 以及獨立或 Web 外部應用程式互動。
本逐步解說中,您將會:
建立 User Interface Integration (UII) Windows Forms 託管控制項 [範例 UII Windows Forms 託管控制項]。搜尋連絡人時,然後按一下連絡人姓名,在Unified Service Desk工作階段開啟它時,此託管控制項會顯示連絡人的名字、姓氏、街道地址與識別碼。 從 Unified Service Desk 內容顯示這些值。
從我們建立的 UII Windows Forms 託管控制項,變更在外部應用程式與 Unified Service Desk 託管的 Web 應用程式中的名字、姓氏或街道地址。 外部與 Web 應用程式是在先前的逐步解說中建立:逐步解說:建立 UII 應用程式配接器 和 逐步解說:建立 UII Web 應用程式配接器。
通知 Unified Service Desk 內容的變更以更新該處值。
本主題內容
先決條件
步驟 1:使用 Visual Studio,建立 UII Windows Forms 託管控制項
步驟 2:在 Unified Service Desk 中定義託管控制項
步驟 3:為外部應用程式和 Unified Service Desk 的 Web 應用程式託管控制項定義 UII 動作
測試託管控制項
先決條件
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 範本,包含 UII Windows Forms 託管控制項專案範本。 您可以用下列其中一個方式取得它:
下載 CRM SDK 範本。 按兩下 CRMSDKTemplates.vsix 檔案,將範本安裝在 Visual Studio 中。
下載並解壓縮 CRM SDK 套件。 移至 SDK\Templates 資料夾。 按兩下 CRMSDKTemplates.vsix 檔案,將範本安裝在 Visual Studio 中。
您應該先完成 逐步解說:建立 UII 應用程式配接器 和 逐步解說:建立 UII Web 應用程式配接器,確定您已設定具有個別配接器的外部應用程式與 Web 應用程式,以便與這些應用程式互動。
步驟 1:使用 Visual Studio,建立 UII Windows Forms 託管控制項
啟動 Visual Studio 並建立新的專案。
在 [新增專案] 對話方塊:
從已安裝的範本清單中,展開 [Visual C#],然後選取 [Dynamics 365 SDK 範本] > [Unified Service Desk] > [UII Windows Form 託管控制項]。
指定專案的名稱和位置,然後按一下 [確定] 建立新的專案。
在 [方案總管] 窗格中,以滑鼠右鍵按一下 UiiWinformControl.cs 檔案,然後選取 [開啟] 顯示 Windows Forms 設計工具。
在設計工具中,從工具箱加入下列控制項:
控制項類型
名稱
文字
標籤
lblFirstName
名字
標籤
lblLastName
姓氏
標籤
lblAddress
街名地址
標籤
lblID
識別碼
文字方塊
txtFirstName
文字方塊
txtLastName
文字方塊
txtAddress
文字方塊
txtID
按鈕
btnUpdate
Update values in hosted apps
按鈕
btnUpdateContext
Update context
這是控制項在設計工具應有的配置。
按兩下 [Update values in hosted apps] 按鈕 (btnUpdate),新增此按鈕的 click 事件程式碼,並新增下列程式碼。
private void btnUpdate_Click(object sender, EventArgs e) { // This is how you fire an action to other hosted applications. // The DoAction() code in the other application or application adapter // will be called. FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateFirstName", txtFirstName.Text)); // For the external application FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateLastName", txtLastName.Text)); // For the external application FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateAddress", txtAddress.Text)); // For the external application FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateFirstName", txtFirstName.Text)); // For the external web application FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateLastName", txtLastName.Text)); // For the external web application FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateAddress", txtAddress.Text)); // For the external web application }
前往設計檢視表,按兩下 [Update context] 按鈕 (btnUpdateContext),新增此按鈕的 click 事件程式碼。 新增下列程式碼。
private void btnUpdateContext_Click(object sender, EventArgs e) { // Get the current context and create a new context object from it. string temp = Context.GetContext(); Context updatedContext = new Context(temp); // Update the new context with the changed information. updatedContext["firstname"] = txtFirstName.Text; updatedContext["lastname"] = txtLastName.Text; updatedContext["address1_line1"] = txtAddress.Text; // Notify Unified Service Desk of this new context information FireChangeContext(new ContextEventArgs(updatedContext)); // Notify this UII hosted control about the change NotifyContextChange(updatedContext); }
在同一檔案 (UiiWinformControl.cs),將 NotifyContextChange 方法的覆寫定義更新如下:
public override void NotifyContextChange(Context context) { // Populating text fields from context information. txtFirstName.Text = context["firstname"]; txtLastName.Text = context["lastname"]; txtAddress.Text = context["address1_line1"]; txtID.Text = context["CustomerID"]; base.NotifyContextChange(context); }
儲存專案,然後建置它 ([建置] > [建置方案])。 在專案建置成功之後,於專案的 /bin/debug 資料夾中產生名稱與您的專案名稱 (在此案例中為 UIIWindowsFormHostedConrol1.dll) 相同的組件 (.dll 檔案)。
將此檔案複製到 Unified Service Desk 用戶端應用程式安裝目錄 (通常是 C:\Program Files\Microsoft Dynamics CRM USD\USD)。 此檔案為測試所需,以及最終從您的用戶端應用程式利用此控制項所需。
提示
請注意 UiiWinformControl.cs 檔案中用來建立自己的 UII 託管控制項的類別名稱。 在此案例中,它是 UiiWinformControl。 在下一個步驟中需要此資訊。
步驟 2:在 Unified Service Desk 中定義託管控制項
若要在Unified Service Desk託管 UII Windows Forms 託管控制項,必須定義和設定它。
登入 Microsoft Dynamics 365。
在導覽列上,選擇 [Microsoft Dynamics 365] > [設定] > [Unified Service Desk]。
在 [Unified Service Desk] 頁面上,按一下 [託管控制項]。
在 [託管控制項] 頁面,按一下 [新增]。
在 [新增託管控制項] 頁面上,指定下列值:
欄位
值
名稱
UIIWindowsFormHostedControl
顯示名稱
範例 UII Windows Forms 託管控制項
USD 元件類型
CCA 託管應用程式
託管應用程式
託管控制項
應用程式是全域的
已選取
顯示群組
MainPanel
配接器
使用無配接器
組件 URI
UIIWindowsFormHostedControl1
組件類型
UIIWindowsFormHostedControl1.UiiWinformControl
注意
[組件 URI] 是您的組件名稱,而 [組件類型] 是您的組件的名稱後面接著句點 (.), 最後是您的 Visual Studio 專案中的類別名稱。 在這個範例中,組件名稱是 UIIWindowsFormHostedControl1,而類別名稱是 UiiWinformControl,這是當您建立 UII Windows Forms 託管控制項時預設的類別名稱。
按一下 [儲存] 建立託管控制項。
步驟 3:為外部應用程式和 Unified Service Desk 的 Web 應用程式託管控制項定義 UII 動作
外部獨立應用程式與 Web 應用程式配接器會公開下列三個動作:UpdateFirstName、UpdateLastName 和 UpdateAddress。 這些配接器和外部獨立應用程式與 Web 應用程式的託管控制項是在先前的配接器逐步解說 (逐步解說:建立 UII 應用程式配接器和逐步解說:建立 UII Web 應用程式配接器) 中建立。
若要從 UII Windows Forms 託管控制項中更新外部應用程式中的資訊,您必須為每個外部應用程式配接器定義三個同名 UII 動作,如先前所定義。 在先前的配接器逐步解說 (逐步解說:建立 UII 應用程式配接器和 逐步解說:建立 UII Web 應用程式配接器),您在Unified Service Desk定義下列兩個託管控制項,以便從Unified Service Desk中顯示外部應用程式:QsExternalApp 和 QsExternalWebApplication。 在此步驟,您將為每個託管控制項新增三個 UII 動作。
重要
如果您已經在逐步解說:建立 UII WPF 託管控制項 的步驟 3 新增 UII 動作,就不必再次執行此步驟。 您可以繼續執行下一節測試託管控制項。
登入 Microsoft Dynamics 365。
在導覽列上,選擇 [Microsoft Dynamics 365] > [設定] > [Unified Service Desk]。
在 [Unified Service Desk] 頁面上,選擇 [託管控制項]。
在 [託管控制項] 頁面,搜尋 QsExternalApp,並開啟它進行編輯。
在 [QsExternalApp] 頁面上,按一下託管控制項名稱旁的向下箭號,然後按一下 [UII 動作]。
在下頁,按一下 [新增 UII 動作]。
輸入 UpdateFirstName 做為名稱,然後按一下 [儲存並關閉]。 這會在上一頁新增動作。
同樣地,新增下列兩個動作:UpdateLastName 和 UpdateAddress。 所有三個動作變成可供 QsExternalApp 託管控制項使用。
依照步驟 4 到 8,為 QsExternalWebApp 託管控制項建立三個同名 UII 動作。
測試託管控制項
在測試 UII Windows Forms 託管控制項之前,請確定範例 Web 應用程式正在執行,讓它呈現在 Unified Service Desk 中。
執行Unified Service Desk用戶端連線到您的 Dynamics 365 伺服器。
在成功登入,會顯示三個託管控制項:[範例 UII Windows Forms 託管控制項]、[範例外部 Web 應用程式] 和 [範例外部應用程式]。
選擇 [搜尋],然後選擇 [連絡人]。 選取任何連絡人,在連絡人中顯示連絡人詳細資料。 這也會在所有三個範例控制項中顯示目前顯示的連絡人記錄的名字、姓氏、街道地址與識別碼,如下圖所示。
變更 [範例 UII Windows Forms 託管控制項] 的值,然後按一下 [Update values in hosted apps],更新其他兩個外部應用程式的值。
在 [範例 UII Windows Forms 託管控制項],按一下 [Update context] 更新Unified Service Desk的內容資訊。
另請參閱
UII 託管控制項與 Unified Service Desk 搭配使用
逐步解說:建立 UII WPF 託管控制項
Unified Service Desk 2.0
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權