Salesforce Integration 概览(七) Data Virtualization数据可视化
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf
Salesforce实时访问外部数据。这样就不需要在Salesforce中保存数据,然后在Salesforce和外部系统之间协调数据。
一.上下文
您可以使用Salesforce跟踪销售线索、管理销售渠道、创建销售机会,并捕获将销售线索转换为客户的订单详细信息。然而,Salesforce不是包含或处理订单的系统。订单由外部(远程)系统管理。但是销售代表希望在Salesforce中查看和更新实时订单信息,而不必学习和使用外部系统。
二. 问题和考虑因素
问题: 在Salesforce中,如何查看、搜索和修改存储在Salesforce外部的数据,而不将数据从外部系统移动到Salesforce中?
考虑因素:当基于这种模式应用解决方案时,需要考虑各种各样的因素:
•是否要在Salesforce中构建声明式/点击式出站集成或UI mashup?
•是否有大量数据并且不想复制到Salesforce组织中?
•是否需要同时访问少量远程系统数据?
•是否需要实时访问最新数据?
•是否将数据存储在云端或后台系统中,但希望在Salesforce组织中显示或处理这些数据?
•在Salesforce中存储某些类型的数据时,您是否有数据驻留问题?
三. 解决方案
解决方案 |
适配程度 |
介绍 |
Salesforce Connect |
Best |
使用Salesforce Connect访问来自外部源的数据以及Salesforce数据。实时从传统系统(如SAP、Microsoft和Oracle)中提取数据,而无需在Salesforce中复制数据。Salesforce Connect将外部系统中的数据表映射到组织中的外部对象。外部对象与自定义对象类似,只是它们映射到Salesforce组织外部的数据。Salesforce Connect使用到外部数据的实时连接来始终保持外部对象的最新状态。 访问外部对象从外部系统实时获取数据。Salesforce Connect允许您: •查询外部系统中的数据。 •在外部系统中创建、更新和删除数据。 •通过列表视图、详细信息页、记录提要、自定义选项卡和页面布局访问外部对象。 •定义外部对象与标准或自定义对象之间的关系,以集成不同来源的数据。 •在外部对象页面上启用Chatter提要以进行协作。 •对外部数据运行报告(有限)。 •查看Salesforce移动应用程序上的数据。 要使用Salesforce Connect访问存储在外部系统上的数据,可以使用以下适配器之一: •OData 2.0适配器或OData 4.0适配器-连接到任何OData 2.0或4.0生产商公开的数据。 •跨组织适配器-连接到存储在另一个Salesforce组织中的数据。跨组织适配器使用标准的Lightning Platform REST API。与OData不同,跨组织适配器直接连接到另一个组织,而不需要中间web服务。 •通过Apex创建的自定义适配器-如果OData和跨组织适配器不适合您的需要,请使用Apex连接器框架开发您自己的适配器。 也可以参考: |
Request and Reply |
Suboptimal |
使用Salesforce web服务API发出特殊数据请求以访问和更新外部系统数据。此解决方案包括以下方法: 使用Salesforce SOAP API。自定义Visualforce页面或按钮以同步方式启动Apex SOAP调用。在Salesforce中,您可以使用WSDL并生成最终的代理Apex类。此类提供调用远程服务所需的逻辑。Visualforce页上用户启动的操作然后调用Apex控制器操作,该操作执行此代理Apex类以执行远程调用。Visualforce页面需要定制Salesforce应用程序。 使用Salesforce REST API。自定义Visualforce页面或按钮以同步方式启动Apex HTTP调用(REST服务)。在Salesforce中,可以使用标准的GET、POST、PUT和DELETE方法调用HTTP服务。可以使用几个HTTP类与RESTful服务集成。Visualforce页上用户启动的操作然后调用Apex控制器操作,该操作执行这些代理Apex类以执行远程调用。Visualforce页面需要定制Salesforce应用程序。 这种操作适用于特殊场景,需要过滤或者需要做数据的格式转换等操作,之所以次优因为需要有沟通、开发以及联调的工作,耗时长,稳定性取决于代码质量等等。 |
四. 流程草图
在这种情况下:
1.浏览器执行一个AJAX调用,该调用依次对相应的外部对象适配器执行一个操作。
2.适配器将操作转换为OData请求,并通过集成层和服务层向远程系统发出HTTP GET请求。
3.远程系统通过集成层和服务层向Salesforce返回JSON响应。
4.将响应从OData转换为外部对象并呈现回浏览器。
五. 其他关键点
调用机制 |
描述 |
External Objects |
Salesforce Connect将Salesforce外部对象映射到外部系统中的数据表。Salesforce Connect不是将数据复制到组织中,而是按需实时访问数据。即使数据存储在组织外部,Salesforce Connect也能与Lightning平台无缝集成。Salesforce工具可以使用外部对象,例如全局搜索、查找关系、记录源和Salesforce移动应用程序。外部对象也可用于Apex、SOSL、SOQL查询、salesforceapi,以及通过元数据API、变更集和包进行部署。 |
Lighting Components or Visualforce Pages |
当远程进程作为涉及用户界面的端到端进程的一部分触发时使用,并且结果必须在Salesforce记录中显示或更新。例如,向外部支付网关提交信用卡支付并立即返回显示给用户的支付结果的过程。由用户界面事件触发的集成通常需要创建自定义Lightning组件或Visualforce页面。 |
六. 常见考题
Given the diagram below, a Salesforce org, middleware, and Historical data store (with 20milIion records and growing) exists with connectivity between them.
Historical records are archived from Salesforce and moved to Historical Data store (which houses 20M records and growing; fine tuned to be performant with search queries). Call center agents use Salesforce, when reviewing occasional special cases, have requested access to view the related historical case items that relate to submitted cases. Which mechanism and patterns are recommended to maximize declarative configuration?
Use ESB tool with Data Virtualization pattern, expose OData endpoint, and then use Salesforce Connect to consume and display the External Object along side with the Case object.
Universal Containers (UC) wants to connect their on-premise ERP system to view Order data in Salesforce. UC is considering a solution to integrate the on-premise system using Salesforce Connect via OData. Which three considerations should an Architect keep in mind when recommending use of Salesforce Connect? Salesforce Connect的优点
Customer wants the ability to query external data using Global Search and reports.
Customer needs to query small amounts of data at any time and display using a related list.
Customer has a large amount of data that they do not want to load into Salesforce.
Customer does not want real-time access to the ERP data and is willing to wait for hourly refreshes.
Customer wants to create a master-detail relationship between Opportunity and the external object.
总结:此种场景针对大数据不能落在SF并且满足需要查看等的需求,还是很好的解决方案。至此所有的集成模式都已经描述完。篇中有错误欢迎指出,有不懂欢迎留言。
Salesforce Integration 概览(七) Data Virtualization数据可视化的更多相关文章
- salesforce Integration 概览(一) 杂篇
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在做sales ...
- Salesforce Integration 概览(四) Batch Data Synchronization(批量数据的同步)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 前两篇博客讲了一下 ...
- Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->salesforce)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 本篇博客介绍 Re ...
- Salesforce Integration 概览(六) UI Update Based on Data Changes(UI自动更新基于数据变更)
Salesforce用户界面必须由于Salesforce数据的更改而自动更新.这个场景其实在我所经历的项目中用到的不是特别多,因为客户可能直接点击刷新按钮就直接看到了最新的数据,而不是那种一直不刷新然 ...
- Salesforce Integration 概览(二) Remote Process Invocation—Request and Reply(远程进程调用--请求和响应)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在项目中,经常 ...
- Salesforce Integration 概览(三) Remote Process Invocation—Fire and Forget(远程进程调用-发后即弃)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在上一篇讲了远 ...
- python爬虫+数据可视化项目(关注、持续更新)
python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...
- 【Data Visual】一文搞懂matplotlib数据可视化
一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...
- 《python for data analysis》第七章,数据规整化
<利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...
随机推荐
- 25、mysqlreport(my.cnf)调优工具
25.1.mysqlreport介绍: mysqlreport以很友好的方式显示 MySQL状态变.事实上,它几乎报告了所有的状态.不像 SHOW STATUS 只是在显示 了100多个状态值,mys ...
- [HNOI2006]公路修建问题题解
题目 题目描述 OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织成立了, ...
- Springboot:Springboot+Swagger2集成服务
Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务 ...
- {"errcode":40017,"errmsg":"invalid button type hint: [I8nq_a0783sha1]"}
在开发微信公众号 添加菜单时遇到问题 一直提示:{"errcode":40017,"errmsg":"invalid button type hint ...
- 【Quartz】Quartz存储与持久化-基于quartz.properties的配置
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一. Quartz存储与持久化 Quartz提供两种基本作业存储类型.第一种类型叫做RAM ...
- Message /index.jsp (line: [17], column: [45]) The JSP specification requires that an attribute name is preceded by whitespace
Error: Message /index.jsp (line: [17], column: [45]) The JSP specification requires that an attribut ...
- 重新梳理调度器——GMP 调度模型
调度器--GMP 调度模型 Goroutine 调度器,它是负责在工作线程上分发准备运行的 goroutines. 首先在讲 GMP 调度模型之前,我们先了解为什么会有这个模型,之前的调度模型是什么样 ...
- libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板
前言 Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...
- 前端009-vue框架
vue-admin-element https://panjiachen.github.io/vue-element-admin-site/zh/ 基于vue的生态做的很好,提供的很多的文档,中文.并 ...
- Scala学习——操作外部数据
scala操作外部数据 一.scala读取文件及网络数据 package top.ruandb.scala.Course08 import scala.io.Source object FileApp ...