使用替换参数配置 Unified Service Desk

 

发布日期: 2016年11月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2013,Dynamics CRM 2015,Dynamics CRM 2016

替换参数可用于在特定业务流程中通过操作和窗口导航规则自定义交互。详细信息:替换参数

本主题提供在替换参数中可以使用的替换密钥的相关信息,指示如何在一些特殊条件下使用 Unified Service Desk 中的替换参数的特殊处理。

本主题内容

替换密钥

专业化处理程序

替换密钥

下表提供可以在替换参数中使用的替换密钥的相关信息。

替换密钥

说明

+

当存在该密钥时,将用一个空字符串替换空或者不存在的密钥。

例如:在 account.name 不定义的方案中,调用 [[account.name]] 可能导致”调用操作<ActionName> 中不是所有参数都可用,中止调用操作。“ 错误。 这将停止处理正在执行的规则或者行项目。

但是,[[account.name]+] 将返回空白,且不会引发替换密钥错误。

$

该密钥允许转义引号和换行符。 在调用 scriptlet 或返回多行字符串时,其通常用作运算符。

例如:[[script.MyMultiLineString]$]

^

该密钥可以防止引号和换行符的转义,并用来简化多行结果集。

例如: MyMultiline=[[myvalue]^]

U

该密钥用于 URL 编码(也称为百分比编码)替换参数。

例如,考虑以下 URL 中的替换参数:http://mysite?something=[[opportunity.name]u。

返回以下字符串:http://mysite?something=My%20Opportunity。

X

该密钥用于 XML 编码替换参数。 这允许 XAML 字符(如 <)转义并在输出中正常显示。

例如,[[myvalue]x]。

g

该密钥用于从全局会话中返回值。 如果在全局会话中找不到该密钥,则将导致找不到密钥的错误。

a

该密钥用于从处于焦点的当前可用会话中返回值。 如果在可用会话中找不到该密钥,则将导致找不到密钥的错误。

V

该密钥用于在替换密钥中替换密钥。

例如,考虑以下两个值:

  • account.name = “我的客户”

  • mytemplate.value =“我的模板是 [[account.name]+]”

在您调用 [[mytemplate.value]] 时,返回以下字符串:“我的模板是 [[account.Name]+]”。

但是,在调用 [[mytemplate.value]v] 时,返回以下字符串:“我的模板是我的客户”。

专业化处理程序

往往需要执行简单操作,如 if/then/else 类型构造不为创建 scriptlet 提供担保。 这些情况要求在操作调用中使用 scriptlet。 在调用操作中构建内联小脚本时,两个专业化处理程序可提供帮助:$Expression和**$Multiline**。

$Expression

考虑基于现有实体的实体类型代码 (etc) 需要切换显示名称的情况。 构建 URL 需要此信息。 在这种情况下,只能加载客户或联系人。

在此方案,我们使用数据字段中的以下值对标准 Web 应用程序托管控件调用导航操作:

url= http://mysite/showmessage.aspx?displayname={either the account or contact display name}

为了实现此目的,我们将使用 $Expression 如下所示:

url= http://mysite/showmessage.aspx?displayname=$Expression("[[$Context.etc]]" == "1" ? "[[account.name]u+]" : "[[contact.fullname]u+]")

在处理操作时,这将有效创建和运行 scriptlet。

$Multiline

在 $Expression 部分,我们谈论了在操作中执行内联 scriptlet。 在需要执行更复杂的 scriptlet 的情况下,您仍不想使用 scriptlet 对象来存储 scriptlet,则 $Multiline 命令可以用来存储更复杂的 scriptlet。

例如,使用先前在**$Expression**部分中使用的示例,它可以划分为:

url= http://mysite/showmessage.aspx?displayname=$Multiline( $Expression(
function doWork()
{
      If ("[[$Context.etc]]" == "1")
          return "[[account.name]u+]" 
      else 
          return "[[contact.fullname]u+]"
}
doSomeWork(); 
))

另请参阅

替换参数
在 Unified Service Desk 中使用 scriptlet 执行脚本
统一服务台配置演练

Unified Service Desk 2.0

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