在 Unified Service Desk 中配置通知
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2013,Dynamics CRM 2015,Dynamics CRM 2016
在 Unified Service Desk 中配置通知,以便向客户服务代表显示弹出通知消息,这些消息中包含一般信息或代理可处理的某些与客户或流程有关的信息。 通知消息的布局和行为通过使用 Unified Service Desk 中的窗体以 XAML 格式定义,并使用新托管控件类型 Popup Notification 显示为浮动弹出消息。详细信息:弹出式通知(托管控件)
通知支持 Unified Service Desk 操作、事件和替换参数,供您定义发生特定事件时显示的弹出消息,与其他托管控件交互,以及显示会话的上下文信息。 可以定义同时显示多个通知。 可以定义通知在代理应用程序中的显示位置,以及有关通知自动消失前的超时的信息。
通知可以是全局的,也可以基于会话。 全局通知在会话外显示,仅当超时或被用户明确关闭时才隐藏。 基于会话的通知仅在会话内显示,切换到其他会话时将隐藏通知。 切换回带通知的会话时将再次显示通知,直到通知超时或被用户明确关闭。
备注
此功能是在 Unified Service Desk 2.2 版中引入的。
本主题内容
使用窗体定义通知的布局和行为
使用弹出通知控件显示通知
多个通知控件
如何配置通知?
使用窗体定义通知的布局和行为
可使用 Unified Service Desk 窗体定义窗体的布局和行为。 定义新窗体记录时(“设置”>“Unified Service Desk ”>“窗体”>“新建”),请在窗体记录的“标记”字段中指定 XAML 以定义布局。
备注
您应该提前了解 Windows Presentation Foundation (WPF) 和用于定义窗体布局和行为的 XAML 脚本。
用于从通知执行 UII 操作、操作调用和事件的命令绑定
Unified Service Desk(Microsoft.Crm.UnifiedServiceDesk.Dynamics 程序集)中有一些自定义 WPF 命令,这些命令可关联到通知控件内托管的窗体 XAML 中的 WPF 控件,如按钮和超链接。 可将命令关联到用于实施 ICommandSource 接口的控件。详细信息:命令概述。
命令可用于对任何托管控件执行操作,或从托管窗体 XAML 的通知控件触发事件。
重要
下面提到要在窗体 XAML 中指定的命令值有命名空间别名 CCA,该别名在 XAML 的根元素中定义,如下所示:
xmlns:CCA="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Dynamics;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics"
UII 操作:若要从窗体 XAML 执行 UII 操作,请为 Command 和 CommandParameter 指定以下值。
Command
CCA:ActionCommands.DoActionCommandCommandParameter
命令参数中必须包含要对其执行操作的托管控件的名称,UII 操作的名称和可选操作数据。 必须将所有这些值指定为以下 URL 格式:http://uii/[HostedControlName]/[UIIActionName]?[ActionData]。请注意,如果需要 URL 的不同部分,则必须按照标准指南为这些部分编码。 例如,空格字符必须编码为“%20”或“+”。
示例
假设有一个类型为“CRM 页面”的托管控件 Contact,而您希望使用以下操作数据对此控件执行 Open_CRM_Page 操作:LogicalName=contactid=[[contact.Id]]
需要将以下 URL 作为窗体 XAML 中的 CommandParameter 值传递:
http://uii/Contact/Open_CRM_Page?LogicalName%3Dcontact%0D%0Aid%3D%5B%5Bcontact.Id%5D%5D
此外,可以将命令与窗体 XAML 中的按钮点击关联,如下所示:
<Button Command="CCA:ActionCommands.DoActionCommand" CommandParameter="http://uii/Contact/Open_CRM_Page?LogicalName%3Dcontact%0D%0Aid%3D%5B%5Bcontact.Id%5D%5D"
操作调用:充当对不希望编码操作数据并将其放入 XAML 的托管控件执行 UII 操作的备用方法。 若要从窗体 XAML 执行操作调用,请为 Command 和 CommandParameter 指定以下值。
Command
CCA:ActionCommands.DoActionCommandCommandParameter
命令参数中必须包含要执行的操作调用的名称,并且必须指定为以下 URL 格式:http://actioncall/[ActionCallName]。请注意,如果操作调用名称中包含空格或特殊字符,则必须为其执行 URL 编码。 例如,空格字符必须编码为“%20”或“+”。
示例
假设您希望执行名称为 Open Contact Page 的操作调用。需要将以下 URL 作为窗体 XAML 中的 CommandParameter 值传递:
http://actioncall/Open+Contact+Page
事件:若要从窗体 XAML 执行事件,请为 Command 和 CommandParameter 指定以下值。
Command
CCA:ActionCommands.UIIEventCommandParameter
此命令参数必须包含事件名称,后面可以选择带问号 (?) 以及查询字符串格式的事件参数。 每个参数指定为“名称 = 值”对,其中的名称和值在必要时需要执行 URL 编码。 此外,参数必须使用是用“&”分隔。指定以下格式的命令参数:[EventName]?[Name]=[Value]&[Name]=[Value]
示例
假设您希望使用以下参数触发名称为 OK 的事件。Name1=Value1Name2=My Value
需要将以下信息作为窗体 XAML 中的 CommandParameter 值传递:
OK?Name1=Value1&Name2=My+Value
在通知中显示倒计时计时器
可以使用 TimeoutProperty 参数为通知消息显示倒计时计时器,直到显示消息。 通知控件的超时值在您配置用于显示该控件的操作时定义。详细信息:如何配置通知?
例如,您可以在窗体 XAML 中添加一个标签元素,该元素绑定到 TimeoutProperty 参数,用于显示以秒为单位的倒计时,倒计时结束之后将关闭通知消息。 例如:
<TextBlock Foreground="White" x:Name="lblElapsedTime" Margin="0,0,9,0"
HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="20"
Grid.Column="1" Text="{Binding TimeoutProperty}" FontFamily="Calibri" />
通知的示例 XAML
以下示例 XAML 根据实例中的替换参数内配置的最大会话值数量显示通知,并在您达到会话限制时显示通知。
<Border xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CCA="clr-namespace:Microsoft.Crm.UnifiedServiceDesk.Dynamics;assembly=Microsoft.Crm.UnifiedServiceDesk.Dynamics"
BorderBrush="Blue" BorderThickness="1">
<Grid Background="AliceBlue" Height="100" Width="400">
<Grid.Resources>
<CCA:CRMImageConverter x:Key="CRMImageLoader" />
<Style x:Key="ImageLogo" TargetType="{x:Type Image}">
<Setter Property="Width" Value="16" />
<Setter Property="Height" Value="16" />
<!--<Setter Property="Margin" Value="5" /> -->
</Style>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="75"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
</Grid.ColumnDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="350"/>
</Grid.ColumnDefinitions>
<Image Style="{DynamicResource ImageLogo}" Source="{Binding Source=msdyusd_Email16, Converter={StaticResource CRMImageLoader}}" Grid.Column="0" />
<TextBlock TextWrapping="Wrap" Grid.Column="1" Text="You can have a maximum of [[$Global.maxNumberOfSessions]+] concurrent sessions open. To open a new session, close at least one of the existing ones."/>
</Grid>
<Grid Background="SkyBlue" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0">
<Run Text="The notification closes in " />
<Run Text="{Binding TimeoutProperty}" />
<Run Text=" seconds"/>
</TextBlock>
<Button Height="20" Width="90" Grid.Column="1" Foreground="Black" Command="CCA:ActionCommands.UIIEvent" CommandParameter="Cancel">Close</Button>
</Grid>
</Grid>
</Border>
使用弹出通知控件显示通知
可使用为 Popup Notification 控件预定义的操作显示、隐藏和关闭通知消息。
通过使用 Show 操作,可以指定要显示的窗体名称,希望通知消息在屏幕上显示的位置,以及显示通知的持续时间。详细信息:预定义的 UII 操作。
可使用为 Popup Notification 控件预定义的事件来响应通知消息中指定的用户操作,如前文的说明。 也可以为事件添加更多在其发生时要执行的操作。详细信息:预定义的事件。
多个通知控件
您可以配置多个通知控件并彼此独立调用操作。 如果同时显示多个通知,则以其调用顺序显示所有通知。 如果两个全局通知配置为在同一位置显示,最近一个将层叠在较早一个通知上。 同样,如果一个全局通知和一个基于会话的通知或多个基于会话的通知配置为在会话中的同一个位置显示,则会话中的最近一个将层叠在较早通知上。
如何配置通知?
下面是用于显示通知的通用步骤:
使用通知定义 (XAML) 创建一个“窗体”记录。 例如,使用前面介绍的示例 XAML 和以下名称创建一个窗体:MaxSessionNotificationForm。
创建一个 Popup Notification 控件,并且使其保留全局性。 例如,使用以下名称创建一个控件:MaxSessionNotificationControl。
通过指定要显示的窗体名称和 Show 操作的“数据”字段中的其他参数,创建操作调用以显示通知。 例如,使用以下名称创建一个操作调用:Action Call for Max Sessions Notification:
最后,将操作调用添加到事件以执行操作。 新建会话以显示通知时检查最大会话数期间,将操作调用添加到 全局管理器(承载的控件) 的 SessionNew 事件。
另请参阅
弹出式通知(托管控件)
将操作调用添加到事件
开始配置您的代理应用程序
Unified Service Desk 2.0
© 2017 Microsoft。 保留所有权利。 版权