演练:创建 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 自定义托管控件”。
确保 .NET Framework 4.5.2 已被选中。
指定项目的名称和位置,然后单击“确定”以创建新项目。
在“解决方案资源管理器”中,双击 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 的替代定义内作为注释提供了大部分代码,以帮助您快速开始进行开发。 您需要取消所需代码行,并用您的值替换占位符的值。
保存您的项目,并构建项目(“构建” > “构建解决方案”),检查是否成功构建。
测试自定义托管控件
在项目成功构建后,测试自定义托管控件。 测试包括两个部分:在服务器上定义自定义托管控件,然后使用客户端应用程序连接到服务器上的 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 服务器。
成功登录后,您将在桌面上看到自定义托管控件“我的自定义托管控件”。
单击“启动调试器”启动调试器托管控件。
要测试自定义操作,选择“调试器”选项卡,然后单击“操作调用”选项卡上方的向下箭头以显示您可以测试操作调用和 UII 操作的区域。
选择“直接操作”选项卡。
从“托管控件”列表中,选择“我的自定义托管控件”,并从“操作”列表中,选择“MyCustomAction”。
根据自定义操作的定义,此操作调用需要一个名为 username 的参数,因此在“数据”字段中添加如下值:username=Tracie Hamilton。
单击“运行直接操作”图标 (),然后单击“我的自定义托管控件”选项卡。 指定的用户名在标签字段中显示。
另请参阅
USD 托管控件(托管控件)
托管控件类型和操作/事件引用
统一服务台配置演练
在 Unified Service Desk 中使用自定义托管控件
Unified Service Desk 2.0
© 2017 Microsoft。 保留所有权利。 版权