扩展和增强Salesforce CRM:AppExchange与Mashups实践
1. AppExchange应用安装最佳实践
在从AppExchange市场网站安装应用时,应遵循以下最佳实践:
-
明确应用规格
:确保应用的规格符合需求,并评估任何评论和反馈。
-
进行测试驱动
:如果有测试驱动选项,一定要尝试。
-
审查组件与安全
:查看包中包含的所有组件,并注意与链接和会话ID相关的任何安全问题。
-
沙盒测试
:在将应用部署到生产环境之前,先在沙盒中进行测试。
-
争取业务支持
:在部署到生产环境之前,尝试争取业务支持来拥有和验证应用。
-
试点部署
:如果应用特别复杂,可以考虑为选定的用户进行试点部署。
-
沟通应用情况
:在生产环境中部署和激活应用之前,将应用情况告知业务部门。
-
准备培训材料
:如果应用特别复杂,为所有受影响的用户准备培训材料。
2. 企业Web应用中的Mashups
Mashup是一个通用术语,通常用于描述来自多个来源的功能和内容的合并。它通常用于描述Web应用程序的合并,其中这些来源可能使用不同的技术来提供服务或应用程序。Web应用程序Mashup的一个共同特点是通过互联网实现连接。
根据相关信息或内容是仅用于查看还是需要修改,以及数据是否要在各个系统之间分布,不同来源之间的连接可能需要不同级别的集成和复杂度。最初,Web上的Mashup主要是为了在互联网浏览器中查看来自其他Web源的内容,而不在源系统之间传输任何数据或功能。
例如,一个网站在其网页(如联系页面)中显示“如何找到我们”类型的页面,HTML代码中可能嵌入了显示静态Google地图或类似Web控件的功能,这就是一个简单的客户端Mashup示例,连接发生在Web浏览器内部。这种网页内的编码提供了一种组合来自多个互联网源的静态信息并生成优雅视觉展示的方式。
随着Mashup的发展,现在可以实现更复杂的功能,能够在Web应用程序之间实现复杂的集成,无缝共享信息和功能,但这需要更复杂的编码,可能还需要使用服务器端基础设施。
3. Salesforce CRM中的Mashups
虽然对于不太熟悉HTML等互联网脚本技术的人来说,Mashup可能看起来令人生畏,但某些类型的Mashup大多数人都可以完成,不需要专业的软件开发人员或IT团队。
在开始之前,评估Mashup的实现方式和位置,特别是要合并的数据和服务类型非常有用。了解这些之后,就可以开始考虑编码工作并规划实施所需的资源。
从高层次来看,Salesforce CRM中的Mashup开发主要分为两类:服务器端和客户端,它们的流程如下:
服务器端Mashup流程
graph LR
A[用户使用浏览器向Salesforce CRM发出页面请求] --> B[浏览器调用Salesforce CRM服务器,触发自定义Apex代码]
B --> C[Salesforce CRM中的自定义Apex代码调用外部应用服务器上的函数]
C --> D[外部应用将响应返回给Salesforce CRM]
D --> E[Salesforce CRM处理响应并将详细信息返回给用户的浏览器]
E --> F[用户的浏览器将整体响应呈现给用户]
客户端Mashup流程
graph LR
A[用户使用浏览器向Salesforce CRM发出页面请求] --> B[用户的浏览器向Salesforce CRM请求详细信息]
B --> C[Salesforce CRM将响应返回给用户的浏览器]
C --> D[用户的浏览器向外部应用请求详细信息]
D --> E[外部应用将响应返回给用户的浏览器]
E --> F[用户的浏览器将整体响应呈现给用户]
服务器端Mashup通常需要复杂的编码和外部基础设施,一般由IT资源提供。这里我们主要关注客户端Mashup的用例,并提供一些逐步指导,介绍如何在Salesforce CRM应用中创建客户端Mashup以及可用的工具。
4. 服务器端Mashups概述
服务器端Mashups是外部服务Mashup的一个特定示例。在这种情况下,外部系统可以作为客户端响应Salesforce的数据请求,或者使用Salesforce提供的数据并在外部系统中合并复合数据。
这些Mashup通常使用Web服务,大多数由使用Web API的组织提供。Web API描述了客户端应用程序如何通过互联网访问服务,并且在托管服务的远程系统上执行。
万维网联盟(W3C)对Web服务的正式定义是:“Web服务是一种软件系统,旨在支持通过网络进行可互操作的机器对机器交互。它具有以机器可处理格式(特别是WSDL)描述的接口。其他系统根据其描述使用SOAP消息与Web服务进行交互,通常通过HTTP传输并结合XML序列化以及其他与Web相关的标准。”虽然W3C对机器对机器交互的Web服务定义提到了使用简单对象访问协议(SOAP),但如今另一种协议——表述性状态转移(REST)也越来越受欢迎。
5. 客户端Mashups
在Salesforce CRM中,客户端Mashup通常有两种类型:客户端服务Mashup和客户端展示Mashup。
客户端服务Mashups
与服务器端Mashup类似,客户端服务Mashup也可用于调用Web服务或使用网站和提要。它们可以在浏览器内调用Salesforce CRM Web服务API。客户端服务Mashup比客户端展示Mashup需要更复杂的编程,通常依赖于与Web服务相关的技术。
客户端服务Mashup和外部服务Mashup对于需要从通常服务于业务数据流程的各种系统中实时访问信息并进行交互的组织非常有用。指定和开发这些类型的Mashup需要仔细评估所需的工作量和资源。
客户端展示Mashups
客户端展示Mashup是最不复杂的Mashup类型,可以相对快速地组合。在这里,来自多个来源的实时数据和功能被嵌入到一个需要Salesforce平台数据的网页中,与非Salesforce数据和功能进行合并。
在Salesforce中,可以使用Visualforce、HTML和JavaScript来组合客户端展示Mashup,非技术用户通常可以通过复制和粘贴代码来立即为Web应用程序增加价值。
下面我们将通过一个示例来展示如何在Salesforce CRM中创建客户端展示Mashup。我们将创建一个显示Google地图小部件的客户端展示,为Salesforce中的给定公司记录显示Google地图位置详细信息。在选择适当的账户记录后,Google地图将在Salesforce CRM中呈现给用户,并且实时的Google地图信息将直接显示在相关的账户详细页面中。这个Mashup将通过创建一个包含所需Google地图小部件的新Visualforce页面,然后在账户详细页面中添加一个新部分来包含该Visualforce页面来实现。
6. Visualforce简介
Visualforce是Salesforce CRM中的一个框架,它允许你在之前介绍的标准功能之外,进一步自定义组织的用户界面。
使用Visualforce,你可以组合来自多个对象的数据,与外部Web服务的数据创建Mashup,甚至可以覆盖标准Salesforce CRM应用程序功能中的一些逻辑和行为。Visualforce由以下三个元素组成:
-
Visualforce页面
:用于定义用户界面。
-
Visualforce组件
:可以看作是标准或自定义构建的Visualforce代码段库。
-
Visualforce页面控制器
:用于控制Visualforce页面的行为,可以由标准逻辑控制,也可以创建自定义逻辑来更改或扩展标准Salesforce CRM行为。
7. Visualforce页面
Visualforce框架允许创建Visualforce页面。这些页面类似于存储在Salesforce中的文档,包含指定页面外观和功能的指令。与HTML类似,Visualforce页面由基于标签的标记语言组成,每个Visualforce标签类型对应一个特定的用户界面组件。Visualforce页面的最大大小不能超过15 MB。对于技术人员来说,Visualforce的功能类似于Java Server Pages或Active Server Pages,用于管理从Salesforce平台检索数据并通过互联网浏览器用户界面呈现结果。
创建Visualforce页面有两种方式:
使用Visualforce页面设置页面
导航到“Setup | Develop | Pages”,点击“New”按钮创建新的Visualforce页面,选择现有条目查看页面或点击“Edit”进行修改。
使用开发模式
开发模式提供了一些有用的功能,使构建Visualforce页面更加容易。要启用开发模式,导航到“Your Name | Setup | My Personal Information | Personal Information”,点击“Edit”按钮,选择“Development Mode”复选框,然后点击“Save”。
在Visualforce开发模式下,只需在浏览器地址栏中输入唯一的URL即可创建新页面。例如,输入URL “https://na10.salesforce.com/apex/GoogleMap” 将创建一个名为“Google Map”的新页面。需要注意输入正确的URL文本,因为“/apex/GoogleMap”部分会提示Salesforce CRM检查并在页面不存在时创建新页面,同时也要确保URL的开头输入正确,“https://na10.salesforce.com” 部分指的是你的Salesforce CRM应用程序的Salesforce实例。
启用开发模式后,在创建或编辑Visualforce页面时,页面下方会自动显示一个开发部分,其中包含一个编辑器。编辑器允许你直接在浏览器窗口中编写Visualforce组件标签,并提供以下功能:
- 保存页面
- 搜索文本
- 导航到代码中的指定行
- 撤销更改
- 重做更改
- 增大文本字体大小
- 减小文本字体大小
点击“Component Reference”链接将带你进入在线文档,其中提供了所有Visualforce组件的描述和示例代码。页面编辑器还提供高亮显示和自动完成功能,可自动显示可用的组件标记标签。在使用Salesforce CRM平台构建Visualforce页面时,启用开发模式的最大好处是,当你添加组件标签并构建页面代码时,点击保存图标即可立即查看结果更改。但在保存页面之前,Visualforce页面必须没有错误。
8. Visualforce组件
Salesforce提供了一组标准的预构建组件,如
<apex:actionFunction>
和
<apex:actionStatus>
,可以添加到Visualforce页面以构建功能页面。此外,你还可以构建自己的自定义组件来扩充这个组件库。
自定义Visualforce组件类似于编程语言中的函数,允许你构建通用代码,然后在一个或多个Visualforce页面中重复使用。自定义组件允许定义可以传递给每个组件的属性,属性的值可以改变标记在最终页面上的显示方式以及该组件实例执行的基于控制器的逻辑。
Visualforce自定义组件由使用标准
<apex:component>
标签的Visualforce标记标签组成。因此,你可以定义一个具有特定属性的自定义组件,然后使用这些属性在页面上显示功能,而不是在每个需要通用代码的页面上重复所需的Visualforce标记。一旦定义,组织中的每个Visualforce页面都可以像使用标准组件(如
<apex:dataTable>
或
<apex:actionStatus>
)一样使用自定义组件。
9. 使用Visualforce创建示例Mashup
要构建我们的示例Mashup,我们将按照以下步骤进行:
删除默认的新Visualforce标记内容
删除现有Visualforce页面文本(如特定截图中的第2到5行),只保留起始和结束标签
<apex:page>
和
</apex:page>
。
更改Visualforce控制器以指定账户标准控制器
为了读取存储在账户记录上的字段值,我们需要更改Visualforce页面控制器。将
<apex:page>
标签修改为
<apex:page standardController="account">
。
复制并粘贴Google地图代码并添加Salesforce特定的合并字段
复制并粘贴以下包含Salesforce合并字段的代码,以在我们的账户记录上渲染Google地图:
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize()
{
var map;
var mapOptions =
{
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
}
var mapMarker;
var geocoder = new google.maps.Geocoder();
var address =
"{!SUBSTITUTE(JSENCODE(Account.BillingStreet),'\r\n',' ')}, " + "{!Account.BillingCity}, " +
"{!Account.BillingPostalCode}, " +
"{!Account.BillingCountry}";
geocoder.geocode( {address: address}, function(results, status)
{ if(status ==
google.maps.GeocoderStatus.OK && results.length)
{ if(status !=
google.maps.GeocoderStatus.ZERO_RESULTS)
{
map = new
google.maps.Map(document.getElementById("map"),
mapOptions);
map.setCenter(results[0].geometry.location);
mapMarker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title: "{!Account.Name} " + address
});
}
} else {
document.getElementById("map").innerHTML = "Unable to find or display a map for {!Account.Name}'s billing address : " + address;
}
});
}
</script>
<div id="map" style="width:100%;height:300px"></div>
<script>
initialize();
</script>
我们使用Salesforce合并字段将账户记录的账单地址数据传递给Google地图API,如下所示:
var address = "{!SUBSTITUTE(JSENCODE(Account.BillingStreet),'\r\n',' ')}, " + "{!Account.BillingCity}, " + "{!Account.BillingPostalCode}, " + "{!Account.BillingCountry}";
最终代码将显示在Visualforce页面中。通过以上步骤,我们就可以在Salesforce CRM中成功创建一个客户端展示Mashup,实现Google地图与账户记录的集成展示。
扩展和增强Salesforce CRM:AppExchange与Mashups实践
10. 操作步骤总结
为了更清晰地呈现如何在Salesforce CRM中创建客户端展示Mashup,下面将操作步骤进行总结:
|步骤|操作内容|
| ---- | ---- |
|1|从AppExchange安装应用时,遵循明确应用规格、测试驱动、审查组件与安全等最佳实践。|
|2|了解企业Web应用中Mashup的概念和发展,区分服务器端和客户端Mashup。|
|3|确定要创建客户端展示Mashup,明确其适用于在网页中嵌入多源实时数据和功能。|
|4|熟悉Visualforce框架,了解其由Visualforce页面、组件和控制器组成。|
|5|使用Visualforce创建页面,可通过设置页面或开发模式进行。开发模式下在浏览器地址栏输入唯一URL可创建新页面。|
|6|构建自定义Visualforce组件,定义属性并在页面中复用。|
|7|构建示例Mashup:删除默认Visualforce标记内容,更改控制器为账户标准控制器,复制粘贴Google地图代码并添加Salesforce合并字段。|
11. 技术点分析
11.1 AppExchange应用安装
在安装AppExchange应用时,各项最佳实践都有其重要性。明确应用规格能确保应用符合业务需求,避免安装后因功能不匹配而造成资源浪费。测试驱动可以提前发现应用可能存在的问题,降低部署风险。审查组件与安全则是保障系统安全稳定运行的关键,防止因链接或会话ID等安全问题导致数据泄露。
11.2 Mashup类型
- 服务器端Mashup :虽然能实现复杂的集成和功能,但需要复杂的编码和外部基础设施支持。它适用于对数据处理和交互要求较高、需要与外部系统深度集成的场景。例如,企业需要从多个外部数据源实时获取数据并进行复杂计算和处理时,服务器端Mashup就能发挥重要作用。
- 客户端Mashup :相对简单,客户端服务Mashup可调用Web服务,客户端展示Mashup则能快速组合多源数据。客户端展示Mashup尤其适合非技术人员操作,通过简单的代码复制粘贴就能为Web应用增加价值,适用于快速展示数据和功能集成的场景,如在账户详细页面展示Google地图。
11.3 Visualforce
- Visualforce页面 :作为定义用户界面的关键元素,其大小限制为15 MB,这在一定程度上影响了页面的复杂度和包含的内容量。它使用标签式标记语言,与HTML类似,便于有Web开发基础的人员上手。
- Visualforce组件 :标准组件提供了常用的功能,自定义组件则允许开发者根据特定需求构建可复用的代码块。通过定义属性,可以灵活控制组件的显示和逻辑,提高开发效率和代码的可维护性。
- Visualforce页面控制器 :可以根据业务需求选择标准逻辑或自定义逻辑,为页面行为的控制提供了灵活性。例如,在处理复杂的业务规则或数据交互时,自定义控制器能实现更精准的控制。
12. 常见问题及解决方法
12.1 AppExchange应用安装问题
- 问题 :安装后发现应用功能不符合需求。
-
解决方法 :安装前仔细评估应用规格,查看用户评论和反馈,进行充分的测试驱动。
-
问题 :应用存在安全漏洞。
- 解决方法 :审查组件时,重点关注链接和会话ID的安全问题,可咨询安全专家进行评估。
12.2 Mashup创建问题
- 问题 :服务器端Mashup开发难度大,缺乏技术支持。
-
解决方法 :如果企业内部缺乏相关技术人员,可以考虑与专业的开发团队合作,或者选择一些成熟的第三方解决方案。
-
问题 :客户端展示Mashup代码复制粘贴后无法正常显示。
- 解决方法 :检查代码是否完整,是否正确添加了Salesforce合并字段,确保代码中的URL和引用的资源可用。同时,要保证Visualforce页面没有语法错误,保存前进行错误检查。
13. 未来发展趋势
随着企业数字化转型的加速,对Salesforce CRM的扩展和增强需求将不断增加。AppExchange上的应用将更加丰富多样,功能也将更加专业化和定制化。Mashup技术将进一步发展,可能会出现更多与新兴技术(如人工智能、大数据分析)相结合的应用场景。例如,利用人工智能对多源数据进行分析和预测,为企业决策提供更精准的支持。
Visualforce框架也将不断优化,提供更强大的功能和更便捷的开发方式。可能会引入更多的可视化工具和模板,降低开发门槛,让更多非技术人员能够参与到用户界面的自定义中。同时,与其他流行的Web开发框架和技术的集成也将更加紧密,提高开发效率和系统的兼容性。
14. 总结
通过本文,我们全面了解了在Salesforce CRM中扩展和增强功能的方法,包括AppExchange应用的安装最佳实践、企业Web应用中Mashup的概念和类型,以及如何使用Visualforce框架创建客户端展示Mashup。
AppExchange应用的合理安装能为企业带来更多的功能扩展,而Mashup技术则为数据和功能的集成提供了强大的手段。Visualforce作为Salesforce CRM的重要框架,为用户界面的自定义提供了丰富的工具和灵活的方式。
在实际应用中,企业应根据自身的业务需求和技术能力,选择合适的应用和Mashup类型,充分利用Visualforce的优势,打造符合自身需求的个性化CRM系统。同时,要关注技术的发展趋势,不断学习和探索新的应用场景,以适应不断变化的市场环境。
希望本文能为读者在Salesforce CRM的扩展和增强方面提供有价值的参考,帮助大家更好地利用这些技术提升企业的运营效率和竞争力。
超级会员免费看

被折叠的 条评论
为什么被折叠?



