怎样解决 Case.Link 无法在 Visualforce Email Template 中使用的问题

首先我们来看一下 Case.Link 的描述,Case.Link 可以返回 Case 在 Salesforce 内部访问的 URL,无论这条记录是在 Sandbox 还是在 Production,它都可以返回正确的访问地址。

第一步:创建一个文本 Email Template, 并把 {!Case.Link} 加到这个 Email Template 中。如下图所示:

测试结果如下所示:

第二步: 创建一个 Visualforce Email Template,如下图所示:

接下来在 Visualforce Email Template 上单击 Edit Template Button。因为 Link 不是 Case 对象上的一个 Field, 因此我们无法在 Visualforce Email Template 中使用 Case.Link,但是我们可以用下面的代码来替代:

{!LEFT($Api.Partner_Server_URL_290,
     FIND('services', $Api.Partner_Server_URL_290) - 1)}{!relatedTo.Id}

代码解释如下:

在这里 relatedTo 指的就是 Case 本身,并且 Partner_Server_URL_290 可以获取 Partner Service URL 。代码中的290,代表了使用的 API 版本是29.0。

VF Email Template 完整代码如下:

<messaging:emailTemplate subject="Test Case Link" recipientType="Contact" relatedToType="Case">  
    <messaging:plainTextEmailBody >
        Here is the Case URL:
{!LEFT($Api.Partner_Server_URL_290,FIND('services',$Api.Partner_Server_URL_290)-1)}{!relatedTo.Id}
    </messaging:plainTextEmailBody>
</messaging:emailTemplate>  

效果如下:

结语

如果大家有兴趣的话可以了解一下 Salesforce 中其它一些比较有用的且隐藏比较深的关键词,例如 Community_Url。

Samba

Read more posts by this author.