演练:创建 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 模板。 您可以使用下列方式之一获取模板:

    • 从 Visual Studio 库 内下载 CRM SDK 模板。 双击 CRMSDKTemplates.vsix 文件在 Visual Studio 中安装模板。

    • 下载和安装 CRM SDK。 模板文件、CRMSDKTemplates.vsix 位于 SDK\Templates 文件夹中。 双击该模板文件,以在 Visual Studio 中安装模板。

创建自定义托管控件

  1. 启动 Visual Studio 并创建一个新项目。

  2. 在“新项目”对话框中:

    1. 从已安装的模板列表中,展开“Visual C#”,然后选择“Dynamics 365 SDK 模板” > “Unified Service Desk” > “USD 自定义托管控件”。

    2. 确保 .NET Framework 4.5.2 已被选中。

    3. 指定项目的名称和位置,然后单击“确定”以创建新项目。

    用于创建自定义托管控件的模板

  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. 保存您的项目,并构建项目(“构建” > “构建解决方案”),检查是否成功构建。

测试自定义托管控件

在项目成功构建后,测试自定义托管控件。 测试包括两个部分:在服务器上定义自定义托管控件,然后使用客户端应用程序连接到服务器上的 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. 成功登录后,您将在桌面上看到自定义托管控件“我的自定义托管控件”。

    自定义托管控件

  4. 单击“启动调试器”启动调试器托管控件。

  5. 要测试自定义操作,选择“调试器”选项卡,然后单击“操作调用”选项卡上方的向下箭头以显示您可以测试操作调用和 UII 操作的区域。

    Expanded testing area in debugger

  6. 选择“直接操作”选项卡。

  7. 从“托管控件”列表中,选择“我的自定义托管控件”,并从“操作”列表中,选择“MyCustomAction”。

  8. 根据自定义操作的定义,此操作调用需要一个名为 username 的参数,因此在“数据”字段中添加如下值:username=Tracie Hamilton

    测试自定义托管控件

  9. 单击“运行直接操作”图标 (USD 调试程序运行操作调用按钮),然后单击“我的自定义托管控件”选项卡。 指定的用户名在标签字段中显示。

    “我的自定义托管控件”选项卡显示用户名

另请参阅

USD 托管控件(托管控件)
托管控件类型和操作/事件引用
统一服务台配置演练
在 Unified Service Desk 中使用自定义托管控件

Unified Service Desk 2.0

© 2017 Microsoft。 保留所有权利。 版权