Salesforce Integration 概览(六) UI Update Based on Data Changes(UI自动更新基于数据变更)
Salesforce用户界面必须由于Salesforce数据的更改而自动更新。这个场景其实在我所经历的项目中用到的不是特别多,因为客户可能直接点击刷新按钮就直接看到了最新的数据,而不是那种一直不刷新然后基于数据变化以后等着自动刷新。所以这种集成模式应该是基于某种特定的行业数据变动很快要求实时性的UI查看那种。
一. 上下文
您使用Salesforce管理客户Case。一位客户服务代表正在和一位正在办案的客户通电话。客户进行支付,客户服务代表需要从支付处理应用程序中查看Salesforce中的实时更新,指示客户已成功支付订单的未付金额。对这个场景更好的解释是当一个用户打开了某个UI场景下,如果后台的数据发生改变以后,即使用户不手动刷新页面情况下也要展示变更后的数据信息
二. 问题和考虑因素
问题: 当Salesforce中发生事件时,如何在Salesforce用户界面中通知用户而不必刷新屏幕并可能潜在的丢失工作内容?
考虑因素:
当基于这种模式应用解决方案时,需要考虑各种各样的因素:
- 所处理的数据是否需要存储在Salesforce中?
- 是否可以构建自定义用户界面层来查看这些数据?
- 用户是否有权调用自定义用户界面?
三. 解决方案
此种集成问题的推荐解决方案是使用Salesforce Streaming API。此解决方案由以下组件组成:
•带有查询定义的PushTopic,允许以下操作:
–指定触发更新的事件
–选择要包含在通知中的数据
•基于JavaScript的Bayeux协议(目前为CometD)实现,可供用户界面使用
•Visualforce页面或Lightning组件
•作为静态资源包含的JavaScript库
详情可以查看:
salesforce零基础学习(八十五)streaming api 简单使用(接近实时获取你需要跟踪的数据的更新消息状态)
四. 流程草图

五. 其他关键点
应用与此模式相关的解决方案有以下好处:
•无需编写自定义轮询机制
•无需用户启动反馈回路
坏处:某些场景并不支持(Push Topic的限制):
•不保证发送通知。
•不保证通知的顺序。
•批量API所做的记录更改不会生成通知。(其实说的不够严谨,只有针对 batch job并且设置了'Use Bulk Mode' 不会生成通知)
六. 常见考题
Customer Support Reps at Universal Containers (UC) work on a Case record in Salesforce while talking to a customer on the phone about a piece of machinery they have purchased from UC. This machine is a connected device and sends data packets to UC as the customer presses buttons on the machine. What integration pattern will allow the support Rep to watch their screen and diagnose problems customer is having in near real-time?
UI Update Based on Data Changes
总结:此种模型基本上需要 streaming api,然后需要的页面作为订阅端,基于轮询操作去实时监听。篇中有错误地方欢迎指出,有不懂欢迎留言。
Salesforce Integration 概览(六) UI Update Based on Data Changes(UI自动更新基于数据变更)的更多相关文章
- 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 Process Invocation—Request and Reply(远程进程调用--请求和响应)
本篇参考: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 概览(七) Data Virtualization数据可视化
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf Salesforc ...
- Salesforce Integration 概览(三) Remote Process Invocation—Fire and Forget(远程进程调用-发后即弃)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在上一篇讲了远 ...
- Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference
上一篇中我们在demo中使用了很多的 @salesforce 以及 lightning/ui*Api的方法,但是很多没有细节的展开.其实LWC中针对这些module提供了很多好用的方法,下面对这两种进 ...
- [React] Optimistic UI update in React using setState()
In this lesson we will refactor an existing UI update from a typical loading approach to an optimist ...
- Web UI开发速速种草—Kendo UI for jQuery网格编辑操作概述
Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...
随机推荐
- springBoot-Quartz快速入门
springBoot-Quartz快速入门 开发环境 JDK1.8.Maven.Idea 技术栈 SpringBoot 2.1.6.quartz 2.3.0等 数据库准备 说明:数据库脚本由Quart ...
- Linux:VMware配置NAT网络IP
设置虚拟机网络配置 在目标虚拟机下右键, 选择"设置", 打开"虚拟机设置"对话框, 再选择"网络适配器"使用NAT模式的, 如下图所示: ...
- 在spring boot使用总结(九) 使用yaml语言来写配置文件
yaml是专门用来写配置文件的语言.使用yaml来写配置文件扩展性比较强而且十分方便.spring boot支持使用yaml语言来写配置文件,使用snakeyaml库来读取配置文件.spring bo ...
- Leetcode No.27 Remove Element(c++实现)
1. 题目 1.1 英文题目 Given an integer array nums and an integer val, remove all occurrences of val in nums ...
- QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系
摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可 ...
- 前端-HTML标签
1.<p></p>段落标签 <p>别在最该拼搏的年纪选择稳定,世界上最大的不变是改变,只有每天进步,才能拥抱生命的无限可能!</p> 2.</b& ...
- asp.net c# 保存图片到sql2008
//图像数据表:tx//字段id (nvarchar(50) ,image(image)//tgav为图片ID,实质为上传前的主名 (省略了.jpg)private void kkkkk(byte[] ...
- navicate for mysql命令中输入中文报错
insert into xsxx(name,xb) values('李四','男') 错误提示: [SQL]insert into xsxx3(name,xb) values('李四','男') [E ...
- Java基础00-集合进阶26
1. Collection Collection常用方法详解 1.1 集合知识回顾 1.2 集合类体系结构 集合存储数据的方式有单列和双列 Collection中还有List(可以存储可重复的数据)和 ...
- 手把手教你实现Android编译期注解
一.编译期注解在开发中的重要性 从早期令人惊艳的ButterKnife,到后来的以ARouter为首的各种路由框架,再到现在谷歌大力推行的Jetpack组件,越来越多的第三方框架都在使用编译期注解这门 ...