Salesforce和Heroku集成入门

学习目标

完成本单元后,您将能够:

  • 了解集成Salesforce和Heroku的不同原因。
  • 描述集成Salesforce和Heroku的方法。

作为Salesforce开发人员,您知道Heroku提供了一个运行与Salesforce集成的应用程序的好地方,可用于各种用例。但究竟是什么原因以及最佳的整合方法是什么?继续阅读,您的问题很快就会得到解答。

集成Salesforce和Heroku的原因

现代企业系统由许多不同的部分组成,具有不同类型的用户的不同接口。这些接口通常将来自各种数据源的数据汇集在一起​​。微服务架构已经成为一种将系统各部分分离为更易于维护,可独立部署的服务的方式,以提供将不同系统组合在一起的端点。Heroku是运行应用程序和微服务的好地方,您可以通过各种集成方法与Salesforce一起使用它们。

将Heroku上的应用程序与Salesforce集成的四个常见原因是:

  • 数据复制
  • 数据代理
  • 自定义用户界面
  • 外部流程

我们稍后会在模块中更深入地研究每一个。

通过数据复制集成

数据复制是在Salesforce和另一个系统之间复制或同步数据。您可以使用数据复制进行数据仓库,以启用跨数据源报告和分析。您还可以使用它来处理需要Salesforce数据或将数据提供给Salesforce的旧系统。Heroku和Salesforce最常见的用例是为使用开源技术构建的面向客户的应用程序提供高吞吐量,低延迟的界面。

例如,假设您正在销售充气式独角兽派对帽。Salesforce是您的产品信息记录系统,例如定价和库存,使用Node.js,Rails,Java等构建的公共网站。该网站使用该数据显示可用性并提供订购功能。通过在Heroku上运行公共Web应用程序,将产品信息复制到Heroku上的数据存储区是有意义的,这样它就可以处理大量低延迟的请求。例如,如果公共站点的用户可以“喜欢”某个产品,则可以使用数据复制将喜欢的数量传播回营销团队的Salesforce。

通过数据代理集成

数据代理聚合不同的数据存储,但与数据复制不同,不会复制数据。数据只能按需读取。这种方法使数据科学,商业智能,报告和仪表板工具能够跨多个数据存储整理数据,而无需担心存储和过时等数据同步问题。您可以通过数据代理集成旧系统和外部系统,以向Salesforce提供数据,或者Salesforce可以将其数据提供给其他外部系统。

如果Salesforce用户需要运行将Salesforce中的产品数据与来自外部系统的仓库数据相关联的库存报告,则数据代理可以提供该信息,而无需使用提取转换和加载(ETL)等较慢的方法。运行报表时,Salesforce从外部系统获取必要的数据,而不会存储数据。同样也适用于相反的方向 – 在Heroku上运行的应用程序是Salesforce到另一个提供安全和转换层的系统的数据代理。我们很快就会谈到这一点。

通过自定义用户界面集成

您可以使用各种技术(例如Visualforce和Lightning Components)轻松地为Salesforce创建自定义用户界面。当使用Java,Node.js,PHP等开源技术构建接口时,它们可以在Heroku上运行并集成到Salesforce UI中或仅与Salesforce数据集成。其他时候,旧系统或外部系统提供需要在Salesforce UI中显示的用户界面。

例如,使用Salesforce for CRM的公司收购了另一家公司,该公司使用Java内置的自定义系统。集成这些系统的第一种简单方法就是在Heroku上运行Java系统并在Salesforce中进行渲染。在Heroku上运行Java系统可以减轻扩展和操作负担,同时标准化自定义系统的部署体系结构。在Heroku上运行并与Salesforce数据集成的独立用户界面可以为Salesforce以及面向客户的Web和移动应用程序提供后台扩展。自定义用户界面可能具有库,功能或开发人员技能组,这些技能组决定了在本机Force.com选项上使用Heroku和开源技术。

通过外部流程整合

外部流程可以卸载批处理或工作流,并触发事件处理到Heroku上的应用程序。根据需要完成的工作类型和所涉及的工作量,此方法可能会有所帮助。数据科学,机器学习,图像和视频处理以及与传统或外部系统的集成可能是将外部进程卸载到Heroku的原因。

例如,假设您的房地产公司为其列出的待售房屋上传照片。这些照片非常庞大,因此您需要一种方法来调整它们以减少加载时间和存储成本。您可以轻松地将此作业卸载到Heroku上的外部进程。每次将照片上传到Salesforce时,都会将其发送到Heroku上的应用程序进行处理,并将已调整大小的图像保存回Salesforce。Heroku上处理外部进程的应用程序只能负责系统的这一部分。在这种情况下,应用程序可能被视为可以单独部署的微服务,而不需要任何其他系统依赖性。

集成方法概述

所以现在你知道数据复制,数据代理,自定义用户界面和外部进程都是Heroku和Salesforce结合的重要原因。但你如何真正做到这一点?有许多方法可以实现这些类型的集成,包括:

  • Heroku Connect
  • Salesforce Connect
  • Salesforce REST API
  • 标注
  • 帆布

我们很快就会深入研究每一个,但这里有一个快速概述,可以帮助您入门。

Heroku Connect

Heroku Connect为Salesforce提供数据复制和数据代理。数据复制在Salesforce和Heroku Postgres数据库之间同步数据。根据配置方式,同步可以是单向或双向。要了解Heroku Connect,请查看 快速入门:Heroku Connect Trailhead项目。Heroku Connect还使用Heroku外部对象通过OData协议为Salesforce提供数据代理 。Heroku外部对象为Heroku Connect维护连接的Heroku Postgres数据库提供了一个OData包装器。此功能允许其他Web服务使用包装器生成的RESTful端点从指定的Heroku Postgres数据库中检索数据。

图表显示箭头首先从Salesforce转到中间组件然后再转到Heroku,然后在插入联系人后返回Salesforce

使用Heroku Connect进行数据复制的最大好处之一是,Heroku上的应用程序可以快速轻松地访问Salesforce数据的子集。作为应用程序开发人员,您只需像往常一样为查询编写标准SQL。Heroku Connect和Postgres提供对Salesforce数据的低延迟和高吞吐量访问。

Salesforce Connect

您可以使用Salesforce Connect(以前称为Lightning Connect)作为数据代理,根据需要将OData或其他数据源提取到Salesforce中。没有数据复制到Salesforce数据库。您可以运行在Heroku上公开OData 2.0或由外部系统提供的端点。如前所述,Heroku Connect可以将Heroku Postgres数据库公开为OData供Salesforce Connect使用。或者, Salesforce Connect自定义适配器允许Salesforce代理Apex可以与之通信的任何数据源,包括REST与XML或JSON和SOAP。

该图描述了外部对象如何用于外部连接通过SAP,Oracle,Workday或Heroku提供的外部数据

Salesforce Connect的主要优点是它将外部数据带入Salesforce UI,并使其看起来好像数据驻留在Salesforce中,尽管它只是根据需要从外部数据源代理。通过此过程,可以轻松为Salesforce用户整理不同的数据源。

Salesforce REST API

Salesforce REST API通过简单的JSON格式的HTTP请求提供Heroku访问Salesforce数据的应用程序。您可以将此集成用于数据代理和自定义用户界面。使用在Heroku上运行的开源技术构建的应用程序可以使用OAuth在自定义用户界面中授权用户,然后代表他们与Salesforce数据进行交互。没有用户界面的集成用例可以在Salesforce和外部系统之间代理数据。

该图显示了通过REST接口将Salesforce中的对象与Heroku之间的连接

Callouts

您可以使用Salesforce中的Callouts来调用Heroku上的外部进程。您在Apex中编写Callouts或使用工作流出站消息使Salesforce上的事件触发Heroku上的进程执行。该过程通常使用前面提到的集成方法之一将流程结果返回到Salesforce。

该图显示了Salesforce和从出站消息触发或发送的数据事件的框。 箭头来自框并指向包含Heroku托管的所有应用程序的另一个框

Canvas

Canvas提供了一种将外部用户界面加载到Salesforce中的方法,该方法可以通过JavaScript API与Salesforce数据进行交互。您可以在Heroku上运行外部UI,并使用开源Web技术构建它。数据请求Canvas应用程序在Salesforce用户的上下文中发生。

该图表显示Heroku应用程序可以通过Canvas Javascript桥与Salesforce交互

比较整合方法

每个Salesforce和Heroku集成方法都有一个位置,取决于开发人员技能组和手头的用例。以下是集成选项之间的一些基本差异。

Heroku ConnectSalesforce ConnectREST APICallouts Canvas
安全模型集成用户各种(包括集成用户和命名主体)OAuth的应用用户应用用户
范围排除在限制之外最大数量的源,对象和字段API限制API限制请求限制
SObject功能所有标准功能只读
无公式和汇总汇总字段
无触发,工作流程,审批流程
无验证规则
字段历史记录跟踪
无备注,附件
所有标准功能N / A所有标准功能
数据战略实时BiDi同步或ODataOData或代理阅读和复制有效载荷Canvas API
终端用户匿名,客户Salesforce用户任何没有Salesforce用户
协议SQLApex HTTPHTTPHTTP

以下是集成的一些一般性建议:

  • 要在Salesforce和Heroku之间复制数据,请使用Heroku Connect。
  • 要将Heroku Postgres数据库公开给Salesforce,请使用Heroku Connect外部对象。
  • 要将OData,SOAP,XML或JSON数据源代理到Salesforce,请使用Salesforce Connect。
  • 如果Heroku Connect不符合要求,就像在Heroku上有用户通过Salesforce登录的自定义UI时,请使用Salesforce REST API。
  • 要卸载或扩展Salesforce数据事件的处理,请使用Salesforce到Heroku的标注。
  • 要将Heroku(或其他外部Web应用程序)中的自定义UI嵌入到Salesforce中,请使用Canvas。